00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
#ifndef _KPOPUP_H
00019
#define _KPOPUP_H "$Id: kpopupmenu.h,v 1.29 2004/06/16 13:41:00 rodda Exp $"
00020
00021
#define INCLUDE_MENUITEM_DEF
00022
00023
#include <qpopupmenu.h>
00024
#include <kpixmapeffect.h>
00025
#include <kpixmap.h>
00026
#include <kdemacros.h>
00027
00038 class KPopupTitle :
public QWidget
00039 {
00040 Q_OBJECT
00041
00042
public:
00047
KPopupTitle(
QWidget *parent=0,
const char *name=0);
00052
KPopupTitle(KPixmapEffect::GradientType gradient,
const QColor &color,
00053
const QColor &textColor,
QWidget *parent=0,
00054
const char *name=0) KDE_DEPRECATED;
00059
KPopupTitle(
const KPixmap &background,
const QColor &color,
00060
const QColor &textColor,
QWidget *parent=0,
00061
const char *name=0) KDE_DEPRECATED;
00067
void setTitle(
const QString &text,
const QPixmap *
icon=NULL);
00071 QString title()
const {
return(titleStr); }
00075 QPixmap icon()
const {
return(miniicon); }
00076
00077
QSize sizeHint() const;
00078
00079 public slots:
00081
void setText( const
QString &text );
00083
void setIcon( const
QPixmap &pix );
00084
00085 protected:
00086
void calcSize();
00087
void paintEvent(
QPaintEvent *ev);
00088
00089
00090
KPixmapEffect::GradientType grType;
00091
QString titleStr;
00092
00093
KPixmap fill;
00094
QPixmap miniicon;
00095
QColor fgColor, bgColor, grHigh, grLow;
00096
bool useGradient;
00097
00098 protected:
00099 virtual
void virtual_hook(
int id,
void* data );
00100 private:
00101 class KPopupTitlePrivate;
00102 KPopupTitlePrivate *d;
00103 };
00104
00122 class
KPopupMenu : public
QPopupMenu {
00123 Q_OBJECT
00124
public:
00128
KPopupMenu(
QWidget *parent=0,
const char *name=0);
00129
00133 ~
KPopupMenu();
00134
00138
int insertTitle(
const QString &text,
int id=-1,
int index=-1);
00142
int insertTitle(
const QPixmap &icon,
const QString &text,
int id=-1,
00143
int index=-1);
00148
void changeTitle(
int id,
const QString &text);
00152
void changeTitle(
int id,
const QPixmap &icon,
const QString &text);
00158
QString title(
int id=-1)
const;
00162
QPixmap titlePixmap(
int id)
const;
00163
00178
void setKeyboardShortcutsEnabled(
bool enable);
00179
00185
void setKeyboardShortcutsExecute(
bool enable);
00186
00192
KPopupMenu(
const QString &title,
QWidget *parent=0,
const char *name=0) KDE_DEPRECATED;
00193
00199
void setTitle(
const QString &title) KDE_DEPRECATED;
00200
00205 QPopupMenu* contextMenu();
00206
00211
const QPopupMenu* contextMenu()
const;
00212
00217
void hideContextMenu();
00218
00223
static KPopupMenu* contextMenuFocus();
00224
00229
static int contextMenuFocusItem();
00230
00231 signals:
00239
void aboutToShowContextMenu(
KPopupMenu* menu,
int menuItem, QPopupMenu* ctxMenu);
00240
00241
protected:
00242
virtual void closeEvent(
QCloseEvent *);
00243
virtual void keyPressEvent(
QKeyEvent* e);
00244
virtual void mousePressEvent(
QMouseEvent* e);
00245
virtual bool focusNextPrevChild(
bool next );
00246
virtual void contextMenuEvent(
QContextMenuEvent *e);
00247
virtual void hideEvent(
QHideEvent*);
00248
00249
virtual void virtual_hook(
int id,
void* data );
00250
00251
protected slots:
00253
QString underlineText(
const QString& text, uint length);
00255
void resetKeyboardVars(
bool noMatches =
false);
00256
void itemHighlighted(
int whichItem);
00257
void showCtxMenu(
QPoint pos);
00258
void ctxMenuHiding();
00259
void ctxMenuHideShowingMenu();
00260
00261
private:
00262
class KPopupMenuPrivate;
00263 KPopupMenuPrivate *d;
00264 };
00265
00266
#endif