summaryrefslogtreecommitdiffstats
path: root/kdeui/kpanelextension.h
diff options
context:
space:
mode:
Diffstat (limited to 'kdeui/kpanelextension.h')
-rw-r--r--kdeui/kpanelextension.h345
1 files changed, 0 insertions, 345 deletions
diff --git a/kdeui/kpanelextension.h b/kdeui/kpanelextension.h
deleted file mode 100644
index d1131638d..000000000
--- a/kdeui/kpanelextension.h
+++ /dev/null
@@ -1,345 +0,0 @@
-/*****************************************************************
-
-Copyright (c) 2000 Matthias Elter
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************/
-
-#ifndef __kpanelextension_h__
-#define __kpanelextension_h__
-
-#include <tqframe.h>
-#include <kdelibs_export.h>
-
-class TQPopupMenu;
-class KConfig;
-class KPanelExtensionPrivate;
-
-/**
- * @short %KDE Panel Extension class
- *
- * Panel extensions
- * @li Are small applications living in the Window Manager dock managed by the panel.
- * @li Are implemented as DSOs (Dynamic Shared Objects).
- *
- * Note: For security and stability reasons the panel won't load
- * untrusted third party extensions directly into its namespace but via an
- * external wrapper process.
- *
- * The panel locates available extensions by searching for extension desktop
- * files in (ALL_KDEDIRS)/share/apps/kicker/extensions. Every panel extension should
- * install a desktop file there to be recognized by the panel.
- *
- * Besides standard keys like "Name", "Comment" and "Icon" there are
- * two panel extension specific keys:
- *
- * \b X-KDE-Library \n
- *
- * Used by the panel to locate the extension DSO (Dynamic Shared Object)
- * Example: X-KDE-Library=libexampleextension
- *
- * \b X-KDE-UniqueExtension \n
- *
- * Similar to KApplication and KUniqueApplication there are
- * two types of panel extensions. Use unique extensions when it makes no
- * sence to run more than one instance of an extension in the panel. A
- * good example for unique extensions is the taskbar extension. Use normal
- * extensions when you need instance specific configuration. An example
- * is a subpanel extension where you might want to run more than one instances.
- * X-KDE-UniqueExtension is a boolean key which defaults
- * to "false". Example: X-KDE-UniqueExtension=true
- *
- * Back to panel extension DSOs, the following conventions are used for KDE:
- * Name: lib<extensionname>extension.la
- * LDFLAGS: -module -no-undefined
- *
- * To implement a panel extension it is not enough to write a class
- * inheriting from KPanelExtension but you also have to provide a
- * factory function in your DSO. A sample factory function could look
- * like this:
- *
- * \code
- *
- * extern "C"
- * {
- * KPanelExtension* init(TQWidget *parent, const TQString& configFile)
- * {
- * KGlobal::locale()->insertCatalogue("exampleextension");
- * return new ExampleExtension(configFile, KPanelExtension::Normal,
- * KPanelExtension::About | KPanelExtension::Help | KPanelExtension::Preferences,
- * parent, "exampleextension");
- * }
- * }
- *
- * \endcode
- *
- * Note: Don't change the factory function signature or the panel will
- * fail to load your extension.
- *
- * @author Matthias Elter <[email protected]>
- **/
-class KDEUI_EXPORT KPanelExtension : public TQFrame
-{
- Q_OBJECT
-
-public:
-
- /// The type of the extension (TODO)
- enum Type { Normal = 0, Stretch };
- // KDE4: Merge these with KPanelApplet's enums
- /// An action to be taken sometime.
- enum Action { About = 1, Help = 2, Preferences = 4, ReportBug = 8 };
- enum Position { Left = 0, Right, Top, Bottom, Floating };
- enum Alignment { LeftTop = 0, Center, RightBottom };
- /// @since 3.1
- enum Size { SizeTiny = 0, SizeSmall, SizeNormal, SizeLarge, SizeCustom };
-
- /**
- * Constructs a KPanelExtension just like any other widget.
- *
- * @param configFile The configFile handed over in the factory function.
- * @param t The extension type().
- * @param actions Standard RMB menu actions supported by the extension (see action() ).
- * @param parent The pointer to the parent widget handed over in the factory function.
- * @param name A Qt object name for your extension.
- **/
- KPanelExtension(const TQString& configFile, Type t = Normal,
- int actions = 0, TQWidget *parent = 0, const char *name = 0);
-
- /**
- * Destructor.
- **/
- ~KPanelExtension();
-
- /**
- * Returns the preferred size for a given Position.
- *
- * Every extension should reimplement this function.
- *
- * Depending on the panel position the extensions can choose a preferred size for that
- * location in the Window Manager Dock. Please note that the size can not be larger than the
- * maxsize given by the handler.
- **/
- virtual TQSize tqsizeHint(Position /*p*/, TQSize maxsize) const { return maxsize; }
-
- /**
- * Always use this KConfig object to save/load your extensions configuration.
- *
- * For unique extensions this config object will write to a config file called
- * \<extensionname\>rc in the users local KDE directory.
- *
- * For normal extensions this config object will write to a instance specific config file
- * called \<extensionname\>\<instanceid\>rc in the users local KDE directory.
- **/
- KConfig* config() const { return _config; }
-
- /**
- * @return Type indicating the extensions type.
- * Type
- **/
- Type type() const { return _type; }
-
- /**
- * @return int indicating the supported RMB menu actions.
- * Action
- **/
- int actions() const { return _actions; }
-
- /**
- * Generic action dispatcher. Called when the user selects an item
- * from the extensions RMB menu.
- *
- * Reimplement this function to handle actions.
- *
- * For About, Help, Preferences and ReportBug use the convenience handlers
- * ref about(), help(), preferences(), reportBug()
- *
- **/
- virtual void action( Action a );
-
-
- /**
- * Reimplement this function to set a preferred dock position for your extension.
- * The extension manager will try to place new instances of this extension according
- * to this setting.
- * @return Position
- **/
- virtual Position preferedPosition() const { return Bottom; }
-
- /**
- * @internal
- **/
- void setPosition( Position p );
- /**
- * @internal
- **/
- void tqsetAlignment( Alignment a );
- /**
- * @internal
- * @since 3.1
- **/
- void setSize( Size size, int customSize );
-
- /**
- * @return the extension's size
- * @since 3.1
- **/
- Size sizeSetting() const;
-
- /**
- * @return the custom sizel setting in pixels
- * @since 3.1
- **/
- int customSize() const;
-
- /**
- * @return the extension's custom menu, usually the same as the context menu, or 0 if none
- * @see setCustomMenu(TQPopupMenu*)
- * @since 3.4
- */
- TQPopupMenu* customMenu() const;
-
- /**
- * @return whether or not to set a desktop geometry claiming strut for this panel
- * defaults to true
- * @see setReservetrut(bool)
- * @since 3.4
- */
- bool reserveStrut() const;
-
-signals:
- /**
- * Emit this signal to make the panel relayout all extensions in the dock, when you want
- * to change the extensions size.
- * The panel is going to relayout all extensions based on their preferred size.
- **/
- void updateLayout();
-
- /**
- * Emit this signal to make the panel maintain focus, e.g. don't autohide
- * @since 3.4
- **/
- void maintainFocus(bool);
-
-protected:
-
- /**
- * Is called when the user selects "About" from the extensions RMB menu.
- * Reimplement this function to launch a about dialog.
- *
- * Note that this is called only when your extension supports the About action.
- * See Action.
- **/
- virtual void about() {}
-
- /**
- * Is called when the user selects "Help" from the extensions RMB menu.
- * Reimplement this function to launch a manual or help page.
- *
- * Note that this is called only when your extension supports the Help action.
- * See Action.
- **/
- virtual void help() {}
-
- /**
- * Is called when the user selects "Preferences" from the extensions RMB menu.
- * Reimplement this function to launch a preferences dialog or kcontrol module.
- *
- * Note that this is called only when your extension supports the preferences action.
- * See Action.
- **/
- virtual void preferences() {}
-
- /**
- * Is called when the user selects "Report bug" from the applet's RMB menu.
- * Reimplement this function to launch a bug reporting dialog.
- *
- * Note that this is called only when your applet supports the ReportBug
- * action.
- * See Action.
- **/
- virtual void reportBug() {}
-
- /**
- * @return the extension's position. (left, right, top, bottom)
- **/
- Position position() const { return _position; }
-
- /**
- * @return the extension's tqalignment. (left/top, center, or right/bottom)
- **/
- Alignment tqalignment() const { return _tqalignment; }
-
- /**
- * @return the extensions orientation. (horizontal or vertical)
- **/
- Orientation orientation();
-
- /**
- * @return the appropriate size in pixels for the panel
- * @since 3.1
- */
- int sizeInPixels() const;
-
- /**
- * This extension has changed its position.
- * Reimplement this change handler in order to adjust the look of your
- * applet.
- **/
- virtual void positionChange( Position ) {}
-
- /**
- * This extension has changed its tqalignment.
- * Reimplement this change handler in order to adjust the look of your
- * applet.
- **/
- virtual void alignmentChange( Alignment ) {}
-
- /**
- * Use this method to set the custom menu for this extensions so that it can be shown
- * at the appropriate places/times that the extension many not itself
- * be aware of. The extension itself is still responsible for deleting and managing the
- * the menu.
- *
- * If the menu is deleted during the life of the extension, be sure to call this method again
- * with the new menu (or 0) to avoid crashes
- * @since 3.4
- */
- void setCustomMenu(TQPopupMenu*);
-
- /**
- * Use this method to set the return value for reserveStrut
- * @see reserveStrut
- * @since 3.4
- */
- void setReserveStrut(bool shouldUseStrut);
-
-private:
- Type _type;
- Position _position;
- Alignment _tqalignment;
- KConfig* _config;
- int _actions;
-protected:
- virtual void virtual_hook( int id, void* data );
-private:
- KPanelExtensionPrivate *d;
-};
-
-#endif