~ubuntu-branches/ubuntu/gutsy/kdebase-workspace/gutsy-backports

« back to all changes in this revision

Viewing changes to kicker/kicker/core/container_button.h

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Riddell
  • Date: 2007-10-31 19:16:54 UTC
  • Revision ID: james.westby@ubuntu.com-20071031191654-xuof6e1jg6uxqaze
Tags: 3.95.0-0ubuntu1~gutsy1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*****************************************************************
2
 
 
3
 
Copyright (c) 1996-2003 the kicker authors. See file AUTHORS.
4
 
 
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:
11
 
 
12
 
The above copyright notice and this permission notice shall be included in
13
 
all copies or substantial portions of the Software.
14
 
 
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.
21
 
 
22
 
******************************************************************/
23
 
 
24
 
#ifndef __container_button_h__
25
 
#define __container_button_h__
26
 
 
27
 
#include <klocale.h>
28
 
#include <kservice.h>
29
 
#include <kurl.h>
30
 
 
31
 
#include "container_base.h"
32
 
//Added by qt3to4:
33
 
#include <QPixmap>
34
 
#include <QEvent>
35
 
#include <QMenu>
36
 
 
37
 
class QLayout;
38
 
class PanelButton;
39
 
class KConfigGroup;
40
 
 
41
 
class ButtonContainer : public BaseContainer
42
 
{
43
 
    Q_OBJECT
44
 
 
45
 
public:
46
 
    ButtonContainer(QMenu* opMenu, QWidget* parent = 0);
47
 
 
48
 
    virtual bool isValid() const;
49
 
    virtual bool isAMenu() const { return false; }
50
 
 
51
 
    virtual int widthForHeight(int height) const;
52
 
    virtual int heightForWidth(int width)  const;
53
 
 
54
 
    bool eventFilter (QObject *, QEvent *);
55
 
    virtual void completeMoveOperation();
56
 
 
57
 
    PanelButton* button() const { return _button; }
58
 
 
59
 
public Q_SLOTS:
60
 
    void setPopupDirection(Plasma::Position d);
61
 
    void setOrientation(Qt::Orientation o);
62
 
 
63
 
protected Q_SLOTS:
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);
69
 
 
70
 
protected:
71
 
    virtual void doSaveConfiguration( KConfigGroup&, bool layoutOnly ) const;
72
 
    void embedButton(PanelButton* p);
73
 
    QMenu* createOpMenu();
74
 
    void checkImmutability(const KConfigGroup&);
75
 
 
76
 
protected:
77
 
    PanelButton  *_button;
78
 
    QLayout      *_layout;
79
 
    QPoint        _oldpos;
80
 
};
81
 
 
82
 
class KMenuButtonContainer : public ButtonContainer
83
 
{
84
 
public:
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"); }
90
 
 
91
 
    virtual int heightForWidth( int width )  const;
92
 
    bool isAMenu() const { return true; }
93
 
};
94
 
 
95
 
class DesktopButtonContainer : public ButtonContainer
96
 
{
97
 
public:
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"); }
103
 
};
104
 
 
105
 
class ServiceButtonContainer : public ButtonContainer
106
 
{
107
 
public:
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;
114
 
};
115
 
 
116
 
class URLButtonContainer : public ButtonContainer
117
 
{
118
 
public:
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;
124
 
};
125
 
 
126
 
class BrowserButtonContainer : public ButtonContainer
127
 
{
128
 
public:
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; }
135
 
};
136
 
 
137
 
class ServiceMenuButtonContainer : public ButtonContainer
138
 
{
139
 
public:
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; }
146
 
};
147
 
 
148
 
class WindowListButtonContainer : public ButtonContainer
149
 
{
150
 
public:
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; }
157
 
};
158
 
 
159
 
class BookmarksButtonContainer : public ButtonContainer
160
 
{
161
 
public:
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; }
168
 
};
169
 
 
170
 
class NonKDEAppButtonContainer : public ButtonContainer
171
 
{
172
 
public:
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"); }
181
 
};
182
 
 
183
 
class ExtensionButtonContainer : public ButtonContainer
184
 
{
185
 
public:
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; }
192
 
};
193
 
 
194
 
#endif
195