diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | ce4a32fe52ef09d8f5ff1dd22c001110902b60a2 (patch) | |
tree | 5ac38a06f3dde268dc7927dc155896926aaf7012 /kdeui/klanguagebutton.h | |
download | tdelibs-ce4a32fe52ef09d8f5ff1dd22c001110902b60a2.tar.gz tdelibs-ce4a32fe52ef09d8f5ff1dd22c001110902b60a2.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kdeui/klanguagebutton.h')
-rw-r--r-- | kdeui/klanguagebutton.h | 182 |
1 files changed, 182 insertions, 0 deletions
diff --git a/kdeui/klanguagebutton.h b/kdeui/klanguagebutton.h new file mode 100644 index 000000000..d354b4b77 --- /dev/null +++ b/kdeui/klanguagebutton.h @@ -0,0 +1,182 @@ +/* + * klangbutton.h - Button with language selection drop down menu. + * Derived from the KLangCombo class by Hans Petter Bieker. + * + * Copyright (c) 1999-2003 Hans Petter Bieker <bieker@kde.org> + * (c) 2001 Martijn Klingens <klingens@kde.org> + * + * Requires the Qt widget libraries, available at no cost at + * http://www.troll.no/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + + +#ifndef __KLANGBUTTON_H__ +#define __KLANGBUTTON_H__ + +#include <qwidget.h> + +#include <kdelibs_export.h> + +class KLanguageButtonPrivate; +class QIconSet; +class QPopupMenu; + +/** + * KLanguageButton provides a combobox with a 2-D dataset. It also supports icons. + * It is also possible to construct a non combobox version. + * + * All items are identified using strings, not integers. + * + * Combined version of KTagCombo and KLanguageCombo but using a QPushButton + * instead. + */ +class KDEUI_EXPORT KLanguageButton : public QWidget +{ + Q_OBJECT + +public: + /** + * Constructs a combobox widget with parent parent called name. + * + * @param parent The parent of the combo box + * @param name The name of the combo box + */ + KLanguageButton(QWidget * parent = 0, const char * name = 0); + + /** + * Constructs a version with static text. The parent parent is called name. + * + * @param text The text of the button + * @param parent The parent of the button + * @param name The name of the button + */ + KLanguageButton(const QString & text, QWidget * parent = 0, const char * name = 0); + + /** + * Deconstructor + */ + virtual ~KLanguageButton(); + + /** + * Inserts an item into the combo box. A negative index will append the item. + * + * @param icon The icon used used when displaying the item. + * @param text The text string used when displaying the item. + * @param id The text string used to identify the item. + * @param submenu The place where the item should be placed. + * @param index The visual position in the submenu. + */ + void insertItem( const QIconSet& icon, const QString &text, + const QString & id, const QString &submenu = QString::null, + int index = -1 ); + /** + * Inserts an item into the combo box. A negative index will append the item. + * + * @param text The text string used when displaying the item. + * @param id The text string used to identify the item. + * @param submenu The place where the item should be placed. + * @param index The visual position in the submenu. + */ + void insertItem( const QString &text, const QString & id, + const QString &submenu = QString::null, int index = -1 ); + /** + * Inserts a seperator item into the combo box. A negative index will append the item. + * + * @param submenu The place where the item should be placed. + * @param index The visual position in the submenu. + */ + void insertSeparator( const QString &submenu = QString::null, + int index = -1 ); + /** + * Inserts a submenu into the combo box. A negative index will append the item. + * + * @param icon The icon used used when displaying the item. + * @param text The text string used when displaying the item. + * @param id The text string used to identify the item. + * @param submenu The place where the item should be placed. + * @param index The visual position in the submenu. + */ + void insertSubmenu( const QIconSet & icon, const QString &text, + const QString & id, const QString &submenu = QString::null, + int index = -1); + /** + * Inserts a submenu into the combo box. A negative index will append the item. + * + * @param text The text string used when displaying the item. + * @param id The text string used to identify the item. + * @param submenu The place where the item should be placed. + * @param index The visual position in the submenu. + */ + void insertSubmenu( const QString &text, const QString & id, + const QString &submenu = QString::null, int index = -1); + + + void insertLanguage( const QString& path, const QString& name, + const QString& sub = QString::null, + const QString &submenu = QString::null, int index = -1); + + + int count() const; + /** + * Removes all combobox items. + */ + void clear(); + /** + * Changes the current text item of the combobox, and makes the text static. + */ + void setText(const QString & text); + /** + * Returns the id of the combobox's current item. + */ + QString current() const; + /** + * Returns TRUE if the combobox contains id. + */ + bool contains( const QString & id ) const; + /** + * Sets id as current item. + */ + void setCurrentItem( const QString & id ); + + QString id( int i ) const; + +signals: + /** + * This signal is emitted when a new item is activated. The id is + * the identificator of the selected item. + */ + void activated( const QString & id ); + void highlighted( const QString & id ); + +private slots: + void slotActivated( int ); + void slotHighlighted( int ); + +private: + int currentItem() const; + void setCurrentItem( int ); + void init(const char * name); + + // work space for the new class + QStringList *m_ids; + QPopupMenu *m_popup, *m_oldPopup; + int m_current; + + KLanguageButtonPrivate * d; +}; + +#endif |