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
class QListBox;
00025
class QListBoxItem;
00026
class QKeyEvent;
00027
class QEvent;
00028
class QIconSet;
00029
00030
class KActionSelectorPrivate;
00031
00076 class KActionSelector :
public QWidget {
00077 Q_OBJECT
00078 Q_ENUMS(
ButtonIconSize InsertionPolicy )
00079 Q_PROPERTY(
bool moveOnDoubleClick READ moveOnDoubleClick WRITE setMoveOnDoubleClick )
00080 Q_PROPERTY(
bool keyboardEnabled READ keyboardEnabled WRITE setKeyboardEnabled )
00081 Q_PROPERTY(
QString availableLabel READ availableLabel WRITE setAvailableLabel )
00082 Q_PROPERTY(
QString selectedLabel READ selectedLabel WRITE setSelectedLabel )
00083 Q_PROPERTY( ButtonIconSize buttonIconSize READ buttonIconSize WRITE setButtonIconSize )
00084 Q_PROPERTY( InsertionPolicy availableInsertionPolicy READ availableInsertionPolicy WRITE setAvailableInsertionPolicy )
00085 Q_PROPERTY( InsertionPolicy selectedInsertionPolicy READ selectedInsertionPolicy WRITE setSelectedInsertionPolicy )
00086 Q_PROPERTY(
bool showUpDownButtons READ showUpDownButtons WRITE setShowUpDownButtons )
00087
00088
public:
00089
KActionSelector(
QWidget *parent=0,
const char *name=0 );
00090
~KActionSelector();
00091
00095
QListBox *
availableListBox();
00096
00100
QListBox *
selectedListBox();
00101
00105 enum MoveButton {
00106
ButtonAdd,
00107
ButtonRemove,
00108
ButtonUp,
00109
ButtonDown
00110 };
00111
00122 enum ButtonIconSize {
00123
SmallIcon,
00124
Small,
00125
Medium,
00126
Large,
00127
XLarge
00128 };
00129
00142 enum InsertionPolicy {
00143
BelowCurrent,
00144
Sorted,
00145
AtTop,
00146
AtBottom
00147 };
00148
00156
bool moveOnDoubleClick() const;
00157
00162
void setMoveOnDoubleClick(
bool enable );
00163
00182
bool keyboardEnabled() const;
00183
00188
void setKeyboardEnabled(
bool enable );
00189
00193
QString availableLabel() const;
00194
00201
void setAvailableLabel( const
QString & text );
00202
00206
QString selectedLabel() const;
00207
00214
void setSelectedLabel( const
QString & text );
00215
00219 ButtonIconSize buttonIconSize() const;
00220
00225
void setButtonIconSize( ButtonIconSize size );
00226
00232 InsertionPolicy availableInsertionPolicy();
00233
00238
void setAvailableInsertionPolicy( InsertionPolicy policy );
00239
00245 InsertionPolicy selectedInsertionPolicy();
00246
00251
void setSelectedInsertionPolicy( InsertionPolicy policy );
00252
00256
bool showUpDownButtons();
00257
00262
void setShowUpDownButtons(
bool show );
00263
00268
void setButtonIcon( const
QString &icon, MoveButton button );
00269
00276
void setButtonIconSet( const
QIconSet &iconset, MoveButton button );
00277
00281
void setButtonTooltip( const
QString &tip, MoveButton button );
00282
00286
void setButtonWhatsThis( const
QString &text, MoveButton button );
00287
00295
void setButtonsEnabled();
00296
00297 signals:
00301
void added(
QListBoxItem *item );
00302
00306
void removed(
QListBoxItem *item );
00307
00311
void movedUp(
QListBoxItem *item );
00312
00316
void movedDown(
QListBoxItem *item );
00317
00321
00322
00323 public slots:
00328
void polish();
00329
00330 protected:
00334
void keyPressEvent(
QKeyEvent * );
00335
00339
bool eventFilter(
QObject *,
QEvent * );
00340
00341 private slots:
00345
void buttonAddClicked();
00346
00350
void buttonRemoveClicked();
00351
00355
void buttonUpClicked();
00356
00360
void buttonDownClicked();
00361
00365
void itemDoubleClicked(
QListBoxItem *item );
00366
00370 void slotCurrentChanged(
QListBoxItem * ) {
setButtonsEnabled(); };
00371
00372
private:
00373
00377
void moveItem(
QListBoxItem *item );
00378
00382
void loadIcons();
00383
00391
int insertionIndex(
QListBox *lb, InsertionPolicy policy );
00392
00396 KActionSelectorPrivate *
d;
00397 };
00398
00399
#endif // _KACTION_SELECTOR_H_