-rw-r--r-- | library/menubutton.cpp | 41 | ||||
-rw-r--r-- | library/menubutton.h | 6 |
2 files changed, 45 insertions, 2 deletions
diff --git a/library/menubutton.cpp b/library/menubutton.cpp index 007761f..4357460 100644 --- a/library/menubutton.cpp +++ b/library/menubutton.cpp @@ -64,12 +64,13 @@ standard \a parent an \a name arguments are passed to the base class. */ MenuButton::MenuButton( const QStringList& items, QWidget* parent, const char* name) : QPushButton(parent,name) { + useLabel = true; init(); insertItems(items); } /*! Constructs an empty MenuButton. @@ -124,25 +125,25 @@ void MenuButton::insertItems( const QStringList& items ) \sa insertItems() */ void MenuButton::insertItem( const QIconSet& icon, const QString& text ) { pop->insertItem(icon, text, nitems++); - if ( nitems==1 ) select(0); +// if ( nitems==1 ) select(0); } /*! \overload Inserts a menu item with the label \a text into the menu. \sa insertItems() */ void MenuButton::insertItem( const QString& text ) { pop->insertItem(text, nitems++); - if ( nitems==1 ) select(0); +// if ( nitems==1 ) select(0); } /*! Inserts a separator into the menu. \sa insertItems() @@ -205,12 +206,48 @@ void MenuButton::setLabel(const QString& label) lab = label; updateLabel(); } void MenuButton::updateLabel() { + if(useLabel) + { QString t = pop->text(cur); if ( !lab.isEmpty() ) t = lab.arg(t); setText(t); } +} + + +/*! + remove item at id + */ +void MenuButton::remove(int id) +{ + pop->removeItem(id); + nitems--; +} + +/*! + return count of items in menu + */ +int MenuButton::count() +{ + return nitems; +} +/*! + returns text of item id + */ +QString MenuButton::text(int id) +{ + return pop->text(id); +} + +/*! + sets true or false the use of label + */ +void MenuButton::setUseLabel(bool b) +{ + useLabel = b; +} diff --git a/library/menubutton.h b/library/menubutton.h index 6582b1e..ee5dcf1 100644 --- a/library/menubutton.h +++ b/library/menubutton.h @@ -28,31 +28,37 @@ class MenuButton : public QPushButton { public: MenuButton( QWidget* parent, const char* name=0); MenuButton( const QStringList& items, QWidget* parent, const char* name=0); void clear(); + int currentItem() const; QString currentText() const; void insertItems( const QStringList& items ); void insertItem( const QIconSet& icon, const QString& text=QString::null ); void insertItem( const QString& text ); void insertSeparator(); void setLabel(const QString& label); + int count(); + void remove(int id); + QString text(int id); + void setUseLabel(bool b); signals: void selected(int); void selected(const QString&); public slots: void select(int); void select(const QString&); private: + bool useLabel; void init(); QStringList txts; QPopupMenu* pop; int nitems; int cur; QString lab; |