32 #include <yui/YTree.h>
33 #include <yui/YMenuItem.h>
34 #include "NCPadWidget.h"
35 #include <yui/ncurses/NCTreePad.h>
36 #include <yui/ncurses/NCTablePad.h>
41 class NCMenu :
public YTree,
public NCPadWidget
44 friend std::ostream & operator<<( std::ostream & str,
const NCMenu & obj );
51 void CreateTreeLine(NCTreePad* pad, YItem* item);
55 virtual NCTreePad * myPad()
const
57 return dynamic_cast<NCTreePad*
>( NCPadWidget::myPad() );
62 const NCMenuLine * getTreeLine(
unsigned idx )
const;
65 virtual const char * location()
const {
69 virtual NCPad * CreatePad();
70 virtual void DrawPad();
72 virtual void startMultipleChanges() {
75 virtual void doneMultipleChanges() {
79 virtual void activate() {}
83 NCMenu( YWidget * parent );
86 virtual int preferredWidth();
87 virtual int preferredHeight();
88 virtual void setSize(
int newWidth,
int newHeight );
90 bool HasHotkey(
int key);
91 NCursesEvent wHandleHotkey( wint_t key );
93 virtual void rebuildTree();
95 virtual YMenuItem * getCurrentItem()
const;
97 virtual YMenuItem * currentItem();
99 virtual void deselectAllItems();
101 virtual void selectItem( YItem *item,
bool selected );
102 virtual void selectItem(
int index );
104 virtual NCursesEvent wHandleInput( wint_t key );
106 virtual void setEnabled(
bool do_bv );
108 virtual bool setKeyboardFocus()
111 return YWidget::setKeyboardFocus();
116 void deleteAllItems();