kcalc
kcalc_button.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _KCALC_BUTTON_H
00025 #define _KCALC_BUTTON_H
00026
00027 #include <QMap>
00028 #include <kpushbutton.h>
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 enum ButtonModeFlags {ModeNormal = 0, ModeInverse = 1, ModeHyperbolic = 2};
00039
00040
00041
00042
00043 class ButtonMode
00044 {
00045 public:
00046 ButtonMode(void) {}
00047 ButtonMode(const QString &label,
00048 const QString &tooltip,
00049 const KIcon &icon)
00050 : label(label), tooltip(tooltip), icon(icon) { }
00051
00052 QString label;
00053 QString tooltip;
00054 KIcon icon;
00055 };
00056
00057
00058 class KCalcButton : public KPushButton
00059 {
00060 Q_OBJECT
00061
00062 public:
00063 KCalcButton(QWidget *parent);
00064 KCalcButton(const QString &label, QWidget *parent,
00065 const QString &tooltip = QString());
00066
00067 void addMode(ButtonModeFlags mode, const QString &label,
00068 const QString &tooltip, const KIcon &icon = KIcon());
00069
00070 virtual QSize sizeHint() const;
00071
00072 void setText(const QString &text);
00073 void setToolTip(const QString &tip);
00074
00075 public slots:
00076 void slotSetMode(ButtonModeFlags mode, bool flag);
00077 void slotSetAccelDisplayMode(bool flag);
00078
00079 protected:
00080 virtual void paintEvent(QPaintEvent *e);
00081
00082 private:
00083 bool _show_shortcut_mode;
00084 ButtonModeFlags _mode_flags;
00085 QMap<ButtonModeFlags, ButtonMode> _mode;
00086 };
00087
00088 #endif // _KCALC_BUTTON_H