|
| NCTable (YWidget *parent, YTableHeader *tableHeader, bool multiSelection=false) |
|
void | setHeader (const std::vector< std::string > &head) |
|
std::vector< std::string > | getHeader () const |
|
virtual void | addItems (const YItemCollection &itemCollection) |
|
virtual void | addItem (YItem *yitem) |
|
virtual void | addItem (YItem *yitem, NCTableLine::STATE state) |
|
virtual void | deleteAllItems () |
|
virtual int | getCurrentIndex () const |
|
virtual int | getCurrentItem () const |
|
YItem * | getCurrentItemPointer () |
|
virtual void | setCurrentItem (int index) |
|
virtual void | scrollToFirstItem () |
|
virtual void | selectItem (YItem *yitem, bool selected) |
|
void | selectCurrentItem () |
|
virtual void | deselectAllItems () |
|
virtual NCursesEvent | wHandleInput (wint_t key) |
|
virtual int | preferredWidth () |
|
virtual int | preferredHeight () |
|
virtual void | setSize (int newWidth, int newHeight) |
|
virtual void | setLabel (const std::string &nlabel) |
|
virtual void | setEnabled (bool do_bv) |
|
virtual bool | setKeyboardFocus () |
|
bool | setItemByKey (int key) |
|
void | SetSepChar (const chtype colSepchar) |
|
void | SetSepWidth (const unsigned sepwidth) |
|
void | SetHotCol (int hcol) |
|
bool | bigList () const |
|
void | setBigList (bool big) |
|
void | stripHotkeys () |
|
void | setSortStrategy (NCTableSortStrategyBase *newStrategy) |
|
NCTableSortStrategyBase * | sortStrategy () const |
|
| NCPadWidget (NCWidget *myparent=0) |
|
| NCPadWidget (YWidget *parent) |
|
size_t | Columns () |
|
void | setLabel (const NClabel &nlabel) |
|
void | grabSet (NCWidget *ngrab) |
|
void | grabRelease (NCWidget *ograb) |
|
| NCWidget (NCWidget *myparent) |
|
| NCWidget (YWidget *parent=0) |
|
bool | isValid () const |
|
bool | winExist () const |
|
virtual const NCstyle::Style & | wStyle () const |
|
const NCstyle::StWidget & | widgetStyle (bool nonactive=false) const |
|
const NCstyle::StWidget & | frameStyle () const |
|
const NCstyle::StList & | listStyle () const |
|
wsze | wGetDefsze () const |
|
wrect | wGetSize () const |
|
void | Update () |
|
void | Redraw (bool sub=false) |
|
void | Recoded () |
|
NC::WState | GetState () const |
|
void | SetState (const NC::WState newstate, bool force=false) |
|
virtual bool | HasHotkey (int key) |
|
virtual bool | HasFunctionHotkey (int key) const |
|
virtual NCursesEvent | wHandleHotkey (wint_t key) |
|
void | DumpOn (std::ostream &str, std::string prfx) const |
|
| tnode (NCWidget *v, self *p=0, bool behind=true) |
|
| tnode (NCWidget *v, self &p, bool behind=true) |
|
| tnode (NCWidget *v, self &p, self &s, bool behind=true) |
|
void | Disconnect () |
| Disconnect from the parent and siblings, but keep children.
|
|
bool | ReparentTo (self &p, bool behind=true) |
|
bool | ReparentTo (self &p, self &s, bool behind=true) |
|
NCWidget *& | Value () const |
|
NCWidget *& | operator() () const |
| Alias for Value.
|
|
self * | Parent () |
|
const self * | Parent () const |
|
self * | Psibling () |
| Previous sibling.
|
|
const self * | Psibling () const |
| Previous sibling.
|
|
self * | Nsibling () |
| Next sibling.
|
|
const self * | Nsibling () const |
| Next sibling.
|
|
self * | Fchild () |
| First child.
|
|
const self * | Fchild () const |
| First child.
|
|
self * | Lchild () |
| Last child.
|
|
const self * | Lchild () const |
| Last child.
|
|
bool | HasParent () const |
|
bool | HasSiblings () const |
|
bool | HasChildren () const |
|
bool | IsParentOf (const self &c) const |
|
bool | IsSiblingOf (const self &s) const |
|
bool | IsChildOf (const self &p) const |
|
unsigned | Depth () const |
| Depth: zero if no parent, otherwise 1 + parent's depth.
|
|
bool | IsDescendantOf (const self &n) const |
|
bool | IsDescendantOf (const self *n) const |
|
self & | Top () |
| Root of the tree.
|
|
const self & | Top () const |
|
self * | Next (bool restart=false) |
|
self * | Next (self *&c, bool restart=false) |
| Return Next and assign it to c.
|
|
const self * | Next (bool restart=false) const |
|
const self * | Next (const self *&c, bool restart=false) const |
|
self * | Prev (bool restart=false) |
|
self * | Prev (self *&c, bool restart=false) |
| Return Prev and assign it to c.
|
|
const self * | Prev (bool restart=false) const |
|
const self * | Prev (const self *&c, bool restart=false) const |
|
|
virtual const char * | location () const |
|
virtual NCPad * | CreatePad () |
|
virtual NCTablePad * | myPad () const |
|
virtual void | addItem (YItem *yitem, bool preventRedraw, NCTableLine::STATE state=NCTableLine::S_NORMAL) |
|
virtual void | addPadLine (NCTableLine *parentLine, YItem *yitem, bool preventRedraw, NCTableLine::STATE state=NCTableLine::S_NORMAL) |
|
void | rebuildPadLines () |
|
void | rebuildHeaderLine () |
|
NCstring | alignmentStr (int col) |
|
bool | hasNestedItems (const YItemCollection &itemCollection) const |
|
bool | hasNestedItems (YItemConstIterator begin, YItemConstIterator end) const |
|
virtual void | startMultipleChanges () |
|
virtual void | doneMultipleChanges () |
|
void | toggleCurrentItem () |
|
void | cellChanged (const YTableCell *cell) |
|
void | setCell (int index, int col, const std::string &newText) |
|
void | assignIndex (YItemConstIterator begin, YItemConstIterator end) |
|
void | assignIndex (YItem *item) |
|
void | interactiveSort () |
|
void | sortItems (int sortCol, bool reverse=false) |
|
void | sortYItems (YItemIterator begin, YItemIterator end) |
|
void | startMultidraw () |
|
void | stopMultidraw () |
|
bool | inMultidraw () const |
|
unsigned | labelWidth () const |
|
virtual void | wCreate (const wrect &newrect) |
|
virtual void | wDelete () |
|
virtual void | wRedraw () |
|
virtual void | wRecoded () |
|
wsze | defPadSze () const |
|
virtual void | DrawPad () |
|
void | InitPad () |
|
void | AdjustPad (wsze nsze) |
|
void | DelPad () |
|
virtual void | HScroll (unsigned total, unsigned visible, unsigned start) |
|
virtual void | VScroll (unsigned total, unsigned visible, unsigned start) |
|
virtual void | ScrollHead (NCursesWindow &w, unsigned ccol) |
|
virtual void | AdjustPadSize (wsze &minsze) |
|
virtual bool | handleInput (wint_t key) |
|
virtual void | PreDisconnect () |
|
virtual void | PostDisconnect () |
|
virtual void | PreReparent () |
|
virtual void | PostReparent () |
|
NCursesWindow * | ParentWin () |
|
bool | grabFocus () |
|
virtual void | grabNotify (NCWidget *) |
|
virtual bool | wantFocus (NCWidget &ngrab) |
|
void | wMoveChildTo (NCWidget &child, const wpos &newpos) |
|
void | wRelocate (const wrect &newrect) |
|
void | wRelocate (const wpos &newpos, const wsze &newsze) |
|
virtual void | wMoveTo (const wpos &newpos) |
|
virtual void | wUpdate (bool forced_br=false) |
|
wpos | ScreenPos () const |
|
| NCursesError (const char *msg="unknown error",...) |
|
| NCursesError (int val, const char *msg="unknown error",...) |
|
NCursesError & | NCError (const char *msg="unknown error",...) |
|
NCursesError & | NCError (int val, const char *msg="unknown error",...) |
|
void NCTable::addPadLine |
( |
NCTableLine * | parentLine, |
|
|
YItem * | yitem, |
|
|
bool | preventRedraw, |
|
|
NCTableLine::STATE | state = NCTableLine::S_NORMAL ) |
|
protectedvirtual |
Add a pad line (an NCTableLine) for 'yitem' and recurse into any of its children (and grandchildren etc.).
Make sure to update _nestedItems (by iterating over all the YItems) before the first one is added so they will reserve some screen space for the tree hierarchy line graphics (using the prefix placeholder).
This can realistically only be done when bulk-adding all YItems at once. If they are added one by one, the first few may not have any children, so their corresponding pad lines will not reserve screen space for the prefix, leading to ugly results.
If there is no item nesting at all, this does not matter, of course.
void NCTable::assignIndex |
( |
YItemConstIterator | begin, |
|
|
YItemConstIterator | end ) |
|
protected |
Recursively iterate over items and assign each one a unique item index.
As long as the items don't have any child items, each one simply gets its initial position in the item collection. When there are children, however, there will be gaps between the index of one toplevel item and the next.
It is generally unsafe to make assumptions about the indices except that they are unique within one table, and an item will keep its initial index, no matter how the table is sorted.
The indices restart from 0 after the table has been cleared, i.e. after deleteAllItems() or at the start of setItems().
Keyboard input handler.
This is the starting point for handling key events. From here, key events are propagated to the pad and to the items.
Implemented from NCWidget.
NCurses widget keyboard handler.
This is the starting point for handling key events. From here, key events are propagated to the pad and to the items.
Reimplemented from NCWidget.
Reimplemented in NCDirectoryTable, and NCFileTable.