kpanelextension.h
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
 
This file is part of the documentation for kdeui Library Version 3.2.0.