1
/*****************************************************************
3
Copyright (c) 1996-2003 the kicker authors. See file AUTHORS.
5
Permission is hereby granted, free of charge, to any person obtaining a copy
6
of this software and associated documentation files (the "Software"), to deal
7
in the Software without restriction, including without limitation the rights
8
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
copies of the Software, and to permit persons to whom the Software is
10
furnished to do so, subject to the following conditions:
12
The above copyright notice and this permission notice shall be included in
13
all copies or substantial portions of the Software.
15
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
19
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
******************************************************************/
24
#ifndef __container_button_h__
25
#define __container_button_h__
31
#include "container_base.h"
41
class ButtonContainer : public BaseContainer
46
ButtonContainer(QMenu* opMenu, QWidget* parent = 0);
48
virtual bool isValid() const;
49
virtual bool isAMenu() const { return false; }
51
virtual int widthForHeight(int height) const;
52
virtual int heightForWidth(int width) const;
54
bool eventFilter (QObject *, QEvent *);
55
virtual void completeMoveOperation();
57
PanelButton* button() const { return _button; }
60
void setPopupDirection(Plasma::Position d);
61
void setOrientation(Qt::Orientation o);
64
void slotMenuClosed();
65
void removeRequested();
66
void hideRequested(bool);
67
void dragButton(const KUrl::List urls, const QPixmap icon);
68
void dragButton(const QPixmap icon);
71
virtual void doSaveConfiguration( KConfigGroup&, bool layoutOnly ) const;
72
void embedButton(PanelButton* p);
73
QMenu* createOpMenu();
74
void checkImmutability(const KConfigGroup&);
82
class KMenuButtonContainer : public ButtonContainer
85
KMenuButtonContainer(const KConfigGroup& config, QMenu* opMenu, QWidget* parent = 0);
86
KMenuButtonContainer(QMenu* opMenu, QWidget* parent = 0);
87
virtual QString appletType() const { return "KMenuButton"; }
88
virtual QString icon() const { return "kmenu"; }
89
virtual QString visibleName() const { return i18n("K Menu"); }
91
virtual int heightForWidth( int width ) const;
92
bool isAMenu() const { return true; }
95
class DesktopButtonContainer : public ButtonContainer
98
DesktopButtonContainer(const KConfigGroup& config, QMenu* opMenu, QWidget* parent = 0);
99
DesktopButtonContainer(QMenu* opMenu, QWidget* parent = 0);
100
QString appletType() const { return "DesktopButton"; }
101
virtual QString icon() const { return "desktop"; }
102
virtual QString visibleName() const { return i18n("Desktop Access"); }
105
class ServiceButtonContainer : public ButtonContainer
108
ServiceButtonContainer(const KConfigGroup& config, QMenu* opMenu, QWidget* parent = 0);
109
ServiceButtonContainer(const KService::Ptr & service, QMenu* opMenu,QWidget* parent = 0);
110
ServiceButtonContainer(const QString& desktopFile, QMenu* opMenu,QWidget* parent = 0);
111
QString appletType() const { return "ServiceButton"; }
112
virtual QString icon() const;
113
virtual QString visibleName() const;
116
class URLButtonContainer : public ButtonContainer
119
URLButtonContainer(const KConfigGroup& config, QMenu* opMenu, QWidget* parent = 0);
120
URLButtonContainer(const QString& url, QMenu* opMenu, QWidget* parent = 0);
121
QString appletType() const { return "URLButton"; }
122
virtual QString icon() const;
123
virtual QString visibleName() const;
126
class BrowserButtonContainer : public ButtonContainer
129
BrowserButtonContainer(const KConfigGroup& config, QMenu* opMenu, QWidget* parent = 0);
130
BrowserButtonContainer(const QString& startDir, QMenu* opMenu, const QString& icon = "kdisknav", QWidget* parent = 0);
131
QString appletType() const { return "BrowserButton"; }
132
virtual QString icon() const { return "kdisknav"; }
133
virtual QString visibleName() const { return i18n("Quick Browser"); }
134
bool isAMenu() const { return true; }
137
class ServiceMenuButtonContainer : public ButtonContainer
140
ServiceMenuButtonContainer(const KConfigGroup& config, QMenu* opMenu, QWidget* parent = 0);
141
ServiceMenuButtonContainer(const QString& relPath, QMenu* opMenu, QWidget* parent = 0);
142
QString appletType() const { return "ServiceMenuButton"; }
143
virtual QString icon() const;
144
virtual QString visibleName() const;
145
bool isAMenu() const { return true; }
148
class WindowListButtonContainer : public ButtonContainer
151
WindowListButtonContainer(const KConfigGroup& config, QMenu* opMenu, QWidget* parent = 0);
152
WindowListButtonContainer(QMenu* opMenu, QWidget* parent = 0);
153
QString appletType() const { return "WindowListButton"; }
154
virtual QString icon() const { return "window_list"; }
155
virtual QString visibleName() const { return i18n("Windowlist"); }
156
bool isAMenu() const { return true; }
159
class BookmarksButtonContainer : public ButtonContainer
162
BookmarksButtonContainer(const KConfigGroup& config, QMenu* opMenu, QWidget* parent = 0);
163
BookmarksButtonContainer(QMenu* opMenu, QWidget* parent = 0);
164
QString appletType() const { return "BookmarksButton"; }
165
virtual QString icon() const { return "bookmark"; }
166
virtual QString visibleName() const { return i18n("Bookmarks"); }
167
bool isAMenu() const { return true; }
170
class NonKDEAppButtonContainer : public ButtonContainer
173
NonKDEAppButtonContainer(const KConfigGroup& config, QMenu* opMenu, QWidget *parent=0);
174
NonKDEAppButtonContainer(const QString &name, const QString &description,
175
const QString &filePath, const QString &icon,
176
const QString &cmdLine, bool inTerm,
177
QMenu* opMenu, QWidget* parent = 0);
178
QString appletType() const { return "ExecButton"; }
179
virtual QString icon() const { return "exec"; }
180
virtual QString visibleName() const { return i18n("Non-KDE Application"); }
183
class ExtensionButtonContainer : public ButtonContainer
186
ExtensionButtonContainer(const KConfigGroup& config, QMenu* opMenu, QWidget *parent=0);
187
ExtensionButtonContainer(const QString& desktopFile, QMenu* opMenu, QWidget *parent= 0);
188
QString appletType() const { return "ExtensionButton"; }
189
virtual QString icon() const;
190
virtual QString visibleName() const;
191
bool isAMenu() const { return true; }