A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/doxyhtml/sel__list__model__impl_8hpp_source.html below:

NCBI C++ ToolKit: include/gui/widgets/aln_multiple/sel_list_model_impl.hpp Source File

1 #ifndef GUI_WIDGETS_ALN_MULTIPLE___SEL_LIST_MODEL_IMPL__HPP 2 #define GUI_WIDGETS_ALN_MULTIPLE___SEL_LIST_MODEL_IMPL__HPP 47 template

<

class

Item>

78  bool

b_reset_others =

false

);

89  bool

b_keep_selection =

false

);

151 template

<

class

Item>

153

: m_SelectedCount(0),

159 template

<

class

Item>

162  return

x_GetItemsCount();

165 template

<

class

Item>

168  return

x_GetItem(index);

171 template

<

class

Item>

174  return

m_iFocusedItem;

177 template

<

class

Item>

180  return

x_IsItemSelected(index);

183 template

<

class

Item>

186  return

m_SelectedCount;

189 template

<

class

Item>

192  int size

= (

int

) x_GetItemsCount();

193  for

(

int i

= 0;

i

<

size

;

i

++ ) {

194  if

(x_IsItemSelected(

i

)) {

195

vIndices.push_back(

i

);

200 template

<

class

Item>

203  int size

= x_GetItemsCount();

204  for

(

int i

= 0;

i

<

size

;

i

++ ) {

205  if

(x_IsItemSelected(

i

)) {

206  TItem

item = x_GetItem(

i

);

207

items.push_back(item);

212 template

<

class

Item>

215  if

(index != m_iFocusedItem) {

217

vUpdateItems.push_back(m_iFocusedItem);

218

m_iFocusedItem = index;

219

vUpdateItems.push_back(m_iFocusedItem);

221

x_ViewsUpdateItems(vUpdateItems);

225 template

<

class

Item>

229

x_GetSelectedItems(vPrevSel);

231  if

(m_iFocusedItem != index) {

232  if

(m_iFocusedItem >= 0 && ! x_IsItemSelected(m_iFocusedItem))

233

vPrevSel.push_back(m_iFocusedItem);

234

m_iFocusedItem = index;

237  for

(

size_t i

= 0;

i

< vPrevSel.size();

i

++ ) {

239

x_SelectItem(idx,

false

);

242

x_SelectItem(index,

true

);

243

vPrevSel.push_back(index);

244

m_iAnchorItem = index;

246

}

else

m_SelectedCount = 0;

248

x_ViewsUpdateItems(vPrevSel);

252 template

<

class

Item>

257  if

(m_iFocusedItem != index) {

258

vIndices.push_back(m_iFocusedItem);

259

m_iFocusedItem = index;

261  bool

b_old_sel = x_IsItemSelected(index);

262

x_SelectItem(index, ! b_old_sel);

263

vIndices.push_back(index);

264

m_iAnchorItem = index;

265

m_SelectedCount += b_old_sel ? -1 : 1;

266

}

else

m_SelectedCount = 0;

268

x_ViewsUpdateItems(vIndices);

274 template

<

class

Item>

278  if

(b_reset_others) {

279  size_t

n_items = x_GetItemsCount();

280

vector<bool> v_sel(n_items,

false

);

283  for

(

size_t i

= 0;

i

< vIndices.size();

i

++ ) {

284  if

( ! v_sel[vIndices[

i

]]) {

285

v_sel[vIndices[

i

]] =

true

;

289  for

(

size_t

j= 0; j < n_items; j++ ) {

290

x_SelectItem((

int

) j, v_sel[j]);

293

m_SelectedCount =

count

;

295

x_ViewsUpdateItemRange(0, (

int

) n_items - 1);

300  if

( ! x_IsItemSelected(*it)) {

301

x_SelectItem(*it,

true

);

302

vUpdateIndices.push_back(*it);

305

m_SelectedCount += (

int

) vUpdateIndices.size();

307

x_ViewsUpdateItems(vUpdateIndices);

312 template

<

class

Item>

317

x_SelectItem(

i

, b_select);

319

m_SelectedCount = b_select ?

count

: 0;

322

x_ViewsUpdateItemRange(0,

count

- 1);

326 template

<

class

Item>

332  TIndex

iStart =

min

(m_iAnchorItem, index);

333  TIndex

iEnd =

max

(m_iAnchorItem, index);

337  bool

bPrevFocusedChanged =

false

;

342  bool

b_select = (

i

>= iStart &&

i

<= iEnd);

343  if

(x_IsItemSelected(

i

) != b_select)

345

x_SelectItem(

i

, b_select);

346

m_SelectedCount += b_select ? 1 : -1;

347

vUpdateIndices.push_back(

i

);

348  if

(

i

== m_iFocusedItem)

349

bPrevFocusedChanged =

true

;

352  if

(m_iFocusedItem != index)

354  if

( ! bPrevFocusedChanged)

355

vUpdateIndices.push_back(m_iFocusedItem);

356

m_iFocusedItem = index;

359

x_ViewsUpdateItems(vUpdateIndices);

363 template

<

class

Item>

366  if

( find(m_lsViews.begin(), m_lsViews.end(), pView) == m_lsViews.end()) {

367

m_lsViews.push_back(pView);

373 template

<

class

Item>

376  typename

TViewList::iterator itView

377

= find( m_lsViews.begin(), m_lsViews.end(), pView);

378  if

(itView != m_lsViews.end()) {

379

m_lsViews.erase(itView);

385 template

<

class

Item>

387  bool

b_update,

bool

b_keep_selection)

389  size_t

items_n = vItems.size();

392  int n

= x_GetItemsCount();

394  for

(

size_t i

= 0;

i

< items_n;

i

++) {

395

v_entries[

i

].first = vItems[

i

];

397  if

(b_keep_selection) {

398  TIndex

index = x_GetItemIndex(vItems[

i

]);

399

b_sel = (index > -1 && index <

n

) ? x_IsItemSelected(index) :

false

;

401

v_entries[

i

].second = b_sel;

410

x_SetEntries(v_entries);

411

m_SelectedCount = n_sel;

414  TIndex

i_max =

max

(0, (

int

) items_n - 1);

415

x_ViewsUpdateItemRange(0, i_max);

420 template

<

class

Item>

425  size_t

n_items = v_items.size();

426  _ASSERT

(n_items == v_indices.size());

428  TIndex

i_min = x_GetItemsCount();

429  for

(

size_t i

= 0;

i

< n_items;

i

++ ) {

431

ind =

min

(ind, x_GetItemsCount());

432

x_InsertItem(ind,

TItemEntry

(v_items[

i

],

false

));

434

i_min =

min

(i_min, ind);

436

x_CompleteInsertion();

439  TIndex

i_max =

max

(0, x_GetItemsCount() - 1);

440

x_ViewsUpdateItemRange(i_min, i_max);

445 template

<

class

Item>

449  if

(index >= 0 && index <= x_GetItemsCount()) {

450

x_InsertItem(index,

TItemEntry

(item,

false

));

451

x_CompleteInsertion();

454  TIndex

i_max =

max

(0, x_GetItemsCount() - 1);

455

x_ViewsUpdateItemRange(index, i_max);

463 template

<

class

Item>

472  if

(index >= 0 && index <

count

) {

473  if

(m_iFocusedItem == index)

475  if

(m_iAnchorItem == index)

476

m_iAnchorItem = m_iFocusedItem;

478  if

(x_IsItemSelected(index))

480

x_SelectItem(index,

false

);

484

x_MarkItemForErase(index);

488

x_EraseMarkedItems();

490  if

(bUpdate && min_del <

count

) {

491

x_ViewsUpdateItemRange(min_del,

count

-1);

496 template

<

class

Item>

500  if

(index >= 0 && index <

count

) {

501  if

(m_iFocusedItem == index)

503  if

(m_iAnchorItem == index)

504

m_iAnchorItem = m_iFocusedItem;

506  if

(x_IsItemSelected(index))

513

x_ViewsUpdateItemRange(0, i_max);

521 template

<

class

Item>

525

x_ViewsUpdateItemRange(0, -1);

529 template

<

class

Item>

534

m_iFocusedItem = m_iAnchorItem = -1;

539 template

<

class

Item>

542

vIndices.reserve(m_SelectedCount);

545  if

(x_IsItemSelected(

i

))

546

vIndices.push_back(

i

);

548  _ASSERT

(vIndices.size() == (

size_t

) m_SelectedCount);

552 template

<

class

Item>

556

(*itView)->SLV_UpdateItems(vIndices);

560 template

<

class

Item>

564

(*itView)->SLV_UpdateRange(iStart, iEnd);

CSelListModelImpl provides a defult implementation of ISelListModel.

void x_ViewsUpdateItemRange(int iStart, int iEnd)

ISelListModel< Item >::TIndexVector TIndexVector

virtual TItem x_GetItem(TIndex index) const =0

bool DeleteItem(TIndex index, bool bUpdate=true)

void InsertItems(const TItemVector &v_items, const TIndexVector &v_indices, bool b_update)

void x_GetSelectedItems(TIndexVector &vIndices)

virtual void SLM_GetSelectedItems(TItemVector &items) const

vector< TItem > TItemVector

ISelListModel< TItem > TSelListModel

void DeleteItems(const TIndexVector &vIndices, bool b_update)

bool InsertItem(TIndex index, const TItem &item, bool b_update)

list< TSelListView * > TViewList

virtual void x_CompleteInsertion()=0

performs update after all items have been inserted

virtual void SLM_SelectItems(const TIndexVector &vIndeces, bool b_reset_others=false)

Select items with given indices.

virtual bool x_IsItemSelected(TIndex index) const =0

virtual TIndex SLM_GetItemsCount() const

vector< TItemEntry > TEntryVector

virtual TIndex SLM_GetSelectedCount() const

virtual void SLM_RemoveSLView(TSelListView *pView)

virtual void SLM_SelectAll(bool bSelect=true)

ISelListModel< Item >::TItem TItem

virtual bool SLM_IsItemSelected(TIndex index) const

virtual void SLM_GetSelectedIndices(TIndexVector &vIndices) const

virtual TIndex x_GetItemIndex(const TItem &item)=0

virtual void x_SelectItem(TIndex index, bool b_sel)=0

virtual void SLM_FocusItem(TIndex index)

virtual TIndex x_GetItemsCount() const =0

virtual void x_SetEntries(const TEntryVector &v_entries)=0

virtual void SLM_InvertSingleItem(TIndex index)

virtual void SLM_AddSLView(TSelListView *pView)

ISelListModel< Item >::TIndex TIndex

virtual void x_ClearItems()=0

virtual void x_EraseMarkedItems()=0

deletes all marked items in a single pass, performs neccessary updates

virtual TIndex SLM_GetFocusedItemIndex() const

void x_EraseItem(TIndex index)

TODO.

virtual void SLM_SelectTo(TIndex index)

virtual void SLM_SelectSingleItem(TIndex index)

virtual void x_InsertItem(TIndex index, const TItemEntry &entry)=0

inserts item, but does not updates all data structures

virtual void x_MarkItemForErase(TIndex index)=0

mark item for deletion

ISelListView< TItem > TSelListView

related interfaces

void x_ViewsUpdateItems(TIndexVector &vIndices)

void SetItems(const TItemVector &vItems, bool b_update, bool b_keep_selection=false)

map< TItem, int > TItemToIndexMap

CSelListModelImpl()

class CSelListModelImpl

virtual TItem SLM_GetItem(TIndex index) const

pair< TItem, bool > TItemEntry

vector< TIndex > TIndexVector

virtual void SLV_SetModel(TSelListModel *pModel)=0

Include a standard set of the NCBI C++ Toolkit most basic headers.

#define ITERATE(Type, Var, Cont)

ITERATE macro to sequence through container elements.

#define NON_CONST_ITERATE(Type, Var, Cont)

Non constant version of ITERATE macro.

#define END_NCBI_SCOPE

End previously defined NCBI scope.

#define BEGIN_NCBI_SCOPE

Define ncbi namespace.

unsigned int

A callback function used to compare two keys in a database.

const struct ncbi::grid::netcache::search::fields::SIZE size

The NCBI C++/STL use hints.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4