kpanelapplet.cpp
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 #include "kpanelapplet.h"
00025 #include "kpanelapplet.moc"
00026 #include <kapplication.h>
00027 #include <kconfig.h>
00028 
00029 class KPanelApplet::KPanelAppletPrivate
00030 {
00031 public:
00032   KPanelAppletPrivate() : customMenu(0) {}
00033 
00034   const QPopupMenu* customMenu;
00035   KSharedConfig::Ptr sharedConfig;
00036 };
00037 
00038 KPanelApplet::KPanelApplet(const QString& configFile, Type type,
00039                            int actions, QWidget *parent, const char *name, WFlags f)
00040   : QFrame(parent, name, f)
00041   , _type(type)
00042   , _position( pBottom )
00043   , _alignment( LeftTop )
00044   , _config(0)
00045   , _actions(actions)
00046   , d(new KPanelApplet::KPanelAppletPrivate())
00047 {
00048   setFrameStyle(NoFrame);
00049   QPalette pal(palette());
00050   if(pal.active().mid() != pal.inactive().mid()){
00051     pal.setInactive(pal.active());
00052     setPalette(pal);
00053   }
00054   setBackgroundOrigin( AncestorOrigin );
00055 
00056   d->sharedConfig = KSharedConfig::openConfig(configFile, kapp && kapp->config()->isImmutable());
00057   _config = d->sharedConfig;
00058 }
00059 
00060 KPanelApplet::~KPanelApplet()
00061 {
00062   delete d;
00063 }
00064 
00065 void KPanelApplet::setPosition( Position p )
00066 {
00067   if( _position == p ) return;
00068   _position = p;
00069   positionChange( p );
00070 }
00071 
00072 void KPanelApplet::setAlignment( Alignment a )
00073 {
00074   if( _alignment == a ) return;
00075   _alignment = a;
00076   alignmentChange( a );
00077 }
00078 
00079 
00080 void KPanelApplet::positionChange( Position )
00081 {
00082   orientationChange( orientation() );
00083   QResizeEvent e( size(), size() );
00084   resizeEvent( &e );
00085   popupDirectionChange( popupDirection() );
00086 }
00087 
00088 Qt::Orientation KPanelApplet::orientation() const
00089 {
00090   if( _position == pTop || _position == pBottom ) {
00091     return Horizontal;
00092   } else {
00093     return Vertical;
00094   }
00095 }
00096 
00097 
00098 KPanelApplet::Direction KPanelApplet::popupDirection()
00099 {
00100     switch( _position ) {
00101     case pTop:     return Down;
00102     case pRight:   return Left;
00103     case pLeft:    return Right;
00104     default:
00105     case pBottom:  return Up;
00106     }
00107 }
00108 
00109 void KPanelApplet::action( Action a )
00110 {
00111     if ( (a & About) != 0 )
00112     about();
00113     if ( (a & Help) != 0 )
00114     help();
00115     if ( (a & Preferences) != 0 )
00116     preferences();
00117     if ( (a & ReportBug) != 0 )
00118     reportBug();
00119 }
00120 
00121 const QPopupMenu* KPanelApplet::customMenu() const
00122 {
00123     return d->customMenu;
00124 }
00125 
00126 void KPanelApplet::setCustomMenu(const QPopupMenu* menu)
00127 {
00128     d->customMenu = menu;
00129 }
00130 
00131 KSharedConfig::Ptr KPanelApplet::sharedConfig() const
00132 {
00133     return d->sharedConfig;
00134 }
00135 
00136 void KPanelApplet::virtual_hook( int, void* )
00137 {  }
00138 
 
This file is part of the documentation for kdeui Library Version 3.2.0.