/*************************************************************************** * Copyright (C) 2005 by Lorenzo Bettini * * http://www.lorenzobettini.it * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the 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 KLCDDIMMER_H #define KLCDDIMMER_H #ifdef HAVE_CONFIG_H #include #endif #include #include #include class TDEPopupMenu; class BrightnessChooserImpl; class TDEPopupFrame; class KlcdDimmerApplet; class klcddimmer : 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 TQt object name for your applet. **/ klcddimmer(const TQString& configFile, Type t = Normal, int actions = 0, TQWidget *parent = 0, const char *name = 0); /** destructor */ ~klcddimmer(); /** * 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(). **/ public slots: 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(); /** * It is called when the brightness value has been updated. */ virtual void valueUpdate(); protected: void resizeEvent(TQResizeEvent *); void mousePressEvent(TQMouseEvent *e); private: TDEConfig *ksConfig; TQWidget *mainView; TDEPopupMenu *mContextMenu; TDEPopupFrame *mBrightnessChooserFrame; BrightnessChooserImpl *chooser; KlcdDimmerApplet *klcddimmerView; private: // Private methods /** * Initializes the context menu */ void initContextMenu(); }; #endif