00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#ifndef __kpanelextension_h__
00025
#define __kpanelextension_h__
00026
00027
class KConfig;
00028
class KPanelExtensionPrivate;
00029
00030
#include <qframe.h>
00031
00096 class KPanelExtension :
public QFrame
00097 {
00098 Q_OBJECT
00099
00100
public:
00101
00103 enum Type { Normal = 0, Stretch };
00104
enum Action { About = 1, Help = 2, Preferences = 4, ReportBug = 8 };
00105
enum Position { Left = 0, Right, Top, Bottom };
00106
enum Alignment { LeftTop = 0, Center, RightBottom };
00108 enum Size { SizeTiny = 0, SizeSmall, SizeNormal, SizeLarge, SizeCustom };
00109
00119
KPanelExtension(
const QString& configFile, Type t = Normal,
00120
int actions = 0,
QWidget *parent = 0,
const char *name = 0);
00121
00125
~KPanelExtension();
00126
00136 virtual QSize sizeHint(Position ,
QSize maxsize)
const {
return maxsize; }
00137
00147 KConfig*
config()
const {
return _config; }
00148
00153 Type type()
const {
return _type; }
00154
00159 int actions()
const {
return _actions; }
00160
00171
virtual void action( Action a );
00172
00173
00180 virtual Position
preferedPosition()
const {
return Bottom; }
00181
00185
void setPosition( Position p );
00189
void setAlignment( Alignment a );
00194
void setSize( Size size,
int customSize );
00195
00200 Size
sizeSetting() const;
00201
00206
int customSize() const;
00207
00208
00209 signals:
00215
void updateLayout();
00216
00217 protected:
00218
00226 virtual
void about() {}
00227
00235 virtual void help() {}
00236
00244 virtual void preferences() {}
00245
00254 virtual void reportBug() {}
00255
00259 Position
position()
const {
return _position; }
00260
00264 Alignment
alignment()
const {
return _alignment; }
00265
00269 Orientation
orientation();
00270
00275
int sizeInPixels() const;
00276
00282 virtual
void positionChange( Position ) {};
00283
00289 virtual void alignmentChange( Alignment ) {};
00290
00291
private:
00292 Type _type;
00293 Position _position;
00294 Alignment _alignment;
00295
KConfig* _config;
00296
int _actions;
00297
protected:
00298
virtual void virtual_hook(
int id,
void* data );
00299
private:
00300 KPanelExtensionPrivate *d;
00301 };
00302
00303
#endif