00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
#ifndef _KACTION_SELECTOR_H_
00020
#define _KACTION_SELECTOR_H_
00021
00022
#include <qwidget.h>
00023
00024
#include <kdelibs_export.h>
00025
00026
class QListBox;
00027
class QListBoxItem;
00028
class QKeyEvent;
00029
class QEvent;
00030
class QIconSet;
00031
00032
class KActionSelectorPrivate;
00033
00079 class KDEUI_EXPORT KActionSelector :
public QWidget {
00080 Q_OBJECT
00081 Q_ENUMS( ButtonIconSize InsertionPolicy )
00082 Q_PROPERTY(
bool moveOnDoubleClick READ moveOnDoubleClick WRITE setMoveOnDoubleClick )
00083 Q_PROPERTY(
bool keyboardEnabled READ keyboardEnabled WRITE setKeyboardEnabled )
00084 Q_PROPERTY(
QString availableLabel READ availableLabel WRITE setAvailableLabel )
00085 Q_PROPERTY(
QString selectedLabel READ selectedLabel WRITE setSelectedLabel )
00086 Q_PROPERTY( ButtonIconSize buttonIconSize READ buttonIconSize WRITE setButtonIconSize )
00087 Q_PROPERTY( InsertionPolicy availableInsertionPolicy READ availableInsertionPolicy WRITE setAvailableInsertionPolicy )
00088 Q_PROPERTY( InsertionPolicy selectedInsertionPolicy READ selectedInsertionPolicy WRITE setSelectedInsertionPolicy )
00089 Q_PROPERTY(
bool showUpDownButtons READ showUpDownButtons WRITE setShowUpDownButtons )
00090
00091
public:
00092 KActionSelector(
QWidget *parent=0,
const char *name=0 );
00093 ~KActionSelector();
00094
00098
QListBox *availableListBox()
const;
00099
00103
QListBox *selectedListBox()
const;
00104
00108 enum MoveButton {
00109 ButtonAdd,
00110 ButtonRemove,
00111 ButtonUp,
00112 ButtonDown
00113 };
00114
00125 enum ButtonIconSize {
00126 SmallIcon,
00127 Small,
00128 Medium,
00129 Large,
00130 XLarge
00131 };
00132
00145 enum InsertionPolicy {
00146 BelowCurrent,
00147 Sorted,
00148 AtTop,
00149 AtBottom
00150 };
00151
00159
bool moveOnDoubleClick() const;
00160
00165
void setMoveOnDoubleClick(
bool enable );
00166
00185
bool keyboardEnabled() const;
00186
00191
void setKeyboardEnabled(
bool enable );
00192
00196
QString availableLabel() const;
00197
00204
void setAvailableLabel( const
QString & text );
00205
00209
QString selectedLabel() const;
00210
00217
void setSelectedLabel( const
QString & text );
00218
00222 ButtonIconSize buttonIconSize() const;
00223
00228
void setButtonIconSize( ButtonIconSize size );
00229
00235 InsertionPolicy availableInsertionPolicy() const;
00236
00241
void setAvailableInsertionPolicy( InsertionPolicy policy );
00242
00248 InsertionPolicy selectedInsertionPolicy() const;
00249
00254
void setSelectedInsertionPolicy( InsertionPolicy policy );
00255
00259
bool showUpDownButtons() const;
00260
00265
void setShowUpDownButtons(
bool show );
00266
00271
void setButtonIcon( const
QString &icon, MoveButton button );
00272
00279
void setButtonIconSet( const
QIconSet &iconset, MoveButton button );
00280
00284
void setButtonTooltip( const
QString &tip, MoveButton button );
00285
00289
void setButtonWhatsThis( const
QString &text, MoveButton button );
00290
00298
void setButtonsEnabled();
00299
00300 signals:
00304
void added(
QListBoxItem *item );
00305
00309
void removed(
QListBoxItem *item );
00310
00314
void movedUp(
QListBoxItem *item );
00315
00319
void movedDown(
QListBoxItem *item );
00320
00324
00325
00326 public slots:
00331
void polish();
00332
00333 protected:
00337
void keyPressEvent(
QKeyEvent * );
00338
00342
bool eventFilter(
QObject *,
QEvent * );
00343
00344 private slots:
00348
void buttonAddClicked();
00349
00353
void buttonRemoveClicked();
00354
00358
void buttonUpClicked();
00359
00363
void buttonDownClicked();
00364
00368
void itemDoubleClicked(
QListBoxItem *item );
00369
00373
void slotCurrentChanged(
QListBoxItem * ) { setButtonsEnabled(); };
00374
00375
private:
00376
00380
void moveItem(
QListBoxItem *item );
00381
00385
void loadIcons();
00386
00394
int insertionIndex(
QListBox *lb, InsertionPolicy policy );
00395
00399 KActionSelectorPrivate *d;
00400 };
00401
00402
#endif // _KACTION_SELECTOR_H_