summaryrefslogtreecommitdiffstats
path: root/src/tastymenu.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/tastymenu.h')
-rw-r--r--src/tastymenu.h165
1 files changed, 165 insertions, 0 deletions
diff --git a/src/tastymenu.h b/src/tastymenu.h
new file mode 100644
index 0000000..66900fe
--- /dev/null
+++ b/src/tastymenu.h
@@ -0,0 +1,165 @@
+/***************************************************************************
+ * Copyright (C) 2006 by Marco Martin *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the Lesser 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., *
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ ***************************************************************************/
+
+
+#ifndef TASTYMENU_H
+#define TASTYMENU_H
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <kpanelapplet.h>
+#include <kiconloader.h>
+#include <qstring.h>
+#include <kconfig.h>
+#include <qpopupmenu.h>
+#include <kconfigskeleton.h>
+#include <kglobalaccel.h>
+#include <qpainter.h>
+
+#include "menuhandler.h"
+#include "prefs.h"
+#include "tastytooltip.h"
+#include "tastybutton.h"
+
+class TastyMenu : public KPanelApplet
+{
+ Q_OBJECT
+
+public:
+ /**
+ * Construct a @ref KPanelApplet just like any other widget.
+ *
+ * @param configFile The configFile handed over in the factory function.
+ * @param Type The applet @ref type().
+ * @param actions Standard RMB menu actions supported by the applet (see @ref action() ).
+ * @param parent The pointer to the parent widget handed over in the factory function.
+ * @param name A Qt object name for your applet.
+ **/
+ TastyMenu(const QString& configFile, Type t = Normal, int actions = 0,
+ QWidget *parent = 0, const char *name = 0);
+ /** destructor */
+ ~TastyMenu();
+
+ /**
+ * Retrieve a suggested width for a given height.
+ *
+ * Every applet should reimplement this function.
+ *
+ * Depending on the panel orientation the height (horizontal panel) or the
+ * width (vertical panel) of the applets is fixed.
+ * The exact values of the fixed size component depend on the panel size.
+ *
+ * On a horizontal panel the applet height is fixed, the panel will
+ * call @ref widthForHeight(int height) with @p height
+ * equal to 'the fixed applet height'
+ * when laying out the applets.
+ *
+ * The applet can now choose the other size component (width)
+ * based on the given height.
+ *
+ * The width you return is granted.
+ **/
+ virtual int widthForHeight(int height) const;
+ /**
+ * @return A suggested height for a given width.
+ *
+ * Every applet should reimplement this function.
+ *
+ * Depending on the panel orientation the height (horizontal panel) or the
+ * width (vertical panel) of the applets is fixed.
+ * The exact values of the fixed size component depend on the panel size.
+ *
+ * On a vertical panel the applet width is fixed, the panel will
+ * call @ref heightForWidth(int width) with @p width
+ * equal to 'the fixed applet width'
+ * when laying out the applets.
+ *
+ * The applet can now choose the other size component (height)
+ * based on the given width.
+ *
+ * The height you return is granted.
+ **/
+ virtual int heightForWidth(int width) const;
+ /**
+ * Is called when the user selects "About" from the applets RMB menu.
+ * Reimplement this function to launch a about dialog.
+ *
+ * Note that this is called only when your applet supports the About action.
+ * See @ref Action and @ref KPanelApplet().
+ **/
+ virtual void about();
+ /**
+ * Is called when the user selects "Help" from the applets RMB menu.
+ * Reimplement this function to launch a manual or help page.
+ *
+ * Note that this is called only when your applet supports the Help action.
+ * See @ref Action and @ref KPanelApplet().
+ **/
+ virtual void help();
+ /**
+ * Is called when the user selects "Preferences" from the applets RMB menu.
+ * Reimplement this function to launch a preferences dialog or kcontrol module.
+ *
+ * Note that this is called only when your applet supports the preferences action.
+ * See @ref Action and @ref KPanelApplet().
+ **/
+ virtual void preferences();
+
+protected:
+ virtual void resizeEvent(QResizeEvent *);
+ virtual void mousePressEvent(QMouseEvent *e);
+ virtual void enterEvent( QEvent * e );
+ virtual void leaveEvent( QEvent * e );
+
+private:
+ KSharedConfig *kConfig;
+ Prefs *prefSkel;
+ KConfig *kickerConf;
+ MenuHandler *menuHandler;
+ TastyButton *button;
+ TastyToolTip *menuTip;
+ QPoint menupos(QWidget *widget);
+ KGlobalAccel *globalAccel;
+ KIconLoader *iconLoader;
+ int numNewApplications;
+
+
+ QString _menuButtonLabel;
+ QString _menuButtonIcon;
+ QString _toolTipTitle;
+ bool _newAppsNotification;
+ int _iconsize;
+ bool _showBigToolTip;
+
+ void setGlobalAccel( bool global );
+ void loadMenuButtonIcon();
+
+private slots:
+
+ void clickSlot();
+ void updateConfiguration();
+ void setNewApplicationsMessage( int number );
+ void setButtonUp(){ button->setDown(false); }
+};
+
+#endif