kpanelextension.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <qpopupmenu.h>
00025
00026 #include <kconfig.h>
00027
00028 #include "kpanelextension.h"
00029 #include "kpanelextension.moc"
00030
00031 class KPanelExtensionPrivate
00032 {
00033 public:
00034 KPanelExtensionPrivate()
00035 : _size(KPanelExtension::SizeNormal),
00036 _customMenu(0),
00037 _customSize(58),
00038 _reserveStrut(true)
00039 {}
00040
00041 KPanelExtension::Size _size;
00042 QPopupMenu* _customMenu;
00043 int _customSize;
00044 bool _reserveStrut;
00045 };
00046
00047 KPanelExtension::KPanelExtension(const QString& configFile, Type type,
00048 int actions, QWidget *parent, const char *name)
00049 : QFrame(parent, name)
00050 , _type(type)
00051 , _position( Top )
00052 , _alignment( LeftTop )
00053 , _config(0)
00054 , _actions(actions)
00055 {
00056 d = new KPanelExtensionPrivate;
00057 setFrameStyle(NoFrame);
00058 _config = new KConfig(configFile);
00059 }
00060
00061 KPanelExtension::~KPanelExtension()
00062 {
00063 delete _config;
00064 delete d;
00065 }
00066
00067 void KPanelExtension::setPosition( Position p )
00068 {
00069 if( _position == p ) return;
00070 _position = p;
00071 positionChange( p );
00072 }
00073
00074 void KPanelExtension::setAlignment( Alignment a )
00075 {
00076 if( _alignment == a ) return;
00077 _alignment = a;
00078 alignmentChange( a );
00079 }
00080
00081 void KPanelExtension::setSize( Size size, int customSize )
00082 {
00083 if ( d->_size == size && d->_customSize == customSize ) return;
00084 d->_size = size;
00085 d->_customSize = customSize;
00086 emit updateLayout();
00087 }
00088
00089 void KPanelExtension::action( Action a )
00090 {
00091 if ( (a & About) )
00092 about();
00093 if ( (a & Help) )
00094 help();
00095 if ( (a & Preferences) )
00096 preferences();
00097 if ( (a & ReportBug) )
00098 reportBug();
00099 }
00100
00101 Qt::Orientation KPanelExtension::orientation()
00102 {
00103 if (_position == Left || _position == Right)
00104 return Vertical;
00105 else
00106 return Horizontal;
00107 }
00108
00109 KPanelExtension::Size KPanelExtension::sizeSetting() const
00110 {
00111 return d->_size;
00112 }
00113
00114 int KPanelExtension::customSize() const
00115 {
00116 return d->_customSize;
00117 }
00118
00119 int KPanelExtension::sizeInPixels() const
00120 {
00121 if (d->_size == SizeTiny)
00122 {
00123 return 24;
00124 }
00125 else if (d->_size == SizeSmall)
00126 {
00127 return 30;
00128 }
00129 else if (d->_size == SizeNormal)
00130 {
00131 return 46;
00132 }
00133 else if (d->_size == SizeLarge)
00134 {
00135 return 58;
00136 }
00137
00138 return d->_customSize;
00139 }
00140
00141 QPopupMenu* KPanelExtension::customMenu() const
00142 {
00143 return d->_customMenu;
00144 }
00145
00146 void KPanelExtension::setCustomMenu(QPopupMenu* menu)
00147 {
00148 d->_customMenu = menu;
00149 }
00150
00151 bool KPanelExtension::reserveStrut() const
00152 {
00153 return position() == Floating || d->_reserveStrut;
00154 }
00155
00156 void KPanelExtension::setReserveStrut(bool reserve)
00157 {
00158 d->_reserveStrut = reserve;
00159 }
00160
00161 void KPanelExtension::virtual_hook( int, void* )
00162 { }
00163
|