diff options
Diffstat (limited to 'kicker/applets/systemtray')
-rw-r--r-- | kicker/applets/systemtray/systemtrayapplet.cpp | 186 | ||||
-rw-r--r-- | kicker/applets/systemtray/systemtrayapplet.h | 10 |
2 files changed, 106 insertions, 90 deletions
diff --git a/kicker/applets/systemtray/systemtrayapplet.cpp b/kicker/applets/systemtray/systemtrayapplet.cpp index 97b71d1b2..175e037e5 100644 --- a/kicker/applets/systemtray/systemtrayapplet.cpp +++ b/kicker/applets/systemtray/systemtrayapplet.cpp @@ -28,6 +28,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include <tqcursor.h> #include <tqpopupmenu.h> +#include <tqspinbox.h> +#include <tqcheckbox.h> #include <tqtimer.h> #include <tqpixmap.h> #include <tqevent.h> @@ -35,6 +37,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include <tqgrid.h> #include <tqpainter.h> #include <tqimage.h> +#include <tqlayout.h> #include <dcopclient.h> #include <tdeapplication.h> @@ -58,12 +61,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include <X11/Xlib.h> -#define ICON_MARGIN 1 #define ICON_END_MARGIN KickerSettings::showDeepButtons()?4:0 extern "C" { - KDE_EXPORT KPanelApplet* init(TQWidget *parent, const TQString& configFile) + TDE_EXPORT KPanelApplet* init(TQWidget *parent, const TQString& configFile) { TDEGlobal::locale()->insertCatalogue("ksystemtrayapplet"); return new SystemTrayApplet(configFile, KPanelApplet::Normal, @@ -74,20 +76,22 @@ extern "C" SystemTrayApplet::SystemTrayApplet(const TQString& configFile, Type type, int actions, TQWidget *parent, const char *name) : KPanelApplet(configFile, type, actions, parent, name), - m_showFrame(KickerSettings::showDeepButtons()?true:false), + m_showFrame(KickerSettings::showDeepButtons()), m_showHidden(false), - m_expandButton(0), - m_leftSpacer(0), - m_rightSpacer(0), - m_clockApplet(0), - m_settingsDialog(0), + m_expandButton(nullptr), + m_leftSpacer(nullptr), + m_rightSpacer(nullptr), + m_clockApplet(nullptr), + m_settingsDialog(nullptr), m_iconSelector(0), - m_autoRetractTimer(0), + m_autoRetractTimer(nullptr), m_autoRetract(false), m_iconSize(24), m_showClockInTray(false), - m_showClockSettingCB(0), - m_layout(0) + m_showClockSettingCB(nullptr), + m_iconMargin(1), + m_iconMarginSB(nullptr), + m_layout(nullptr) { DCOPObject::setObjId("SystemTrayApplet"); loadSettings(); @@ -99,19 +103,19 @@ SystemTrayApplet::SystemTrayApplet(const TQString& configFile, Type type, int ac m_clockApplet = new ClockApplet(configFile, KPanelApplet::Normal, KPanelApplet::Preferences, this, "clockapplet"); updateClockGeometry(); - connect(m_clockApplet, TQT_SIGNAL(clockReconfigured()), this, TQT_SLOT(updateClockGeometry())); - connect(m_clockApplet, TQT_SIGNAL(updateLayout()), this, TQT_SLOT(updateClockGeometry())); + connect(m_clockApplet, TQ_SIGNAL(clockReconfigured()), this, TQ_SLOT(updateClockGeometry())); + connect(m_clockApplet, TQ_SIGNAL(updateLayout()), this, TQ_SLOT(updateClockGeometry())); setBackgroundOrigin(AncestorOrigin); - twin_module = new KWinModule(TQT_TQOBJECT(this)); + twin_module = new KWinModule(this); - // kApplication notifies us of settings changes. added to support + // tdeApp notifies us of settings changes. added to support // disabling of frame effect on mouse hover - kapp->dcopClient()->setNotifications(true); + tdeApp->dcopClient()->setNotifications(true); connectDCOPSignal("kicker", "kicker", "configurationChanged()", "loadSettings()", false); - TQTimer::singleShot(0, this, TQT_SLOT(initialize())); + TQTimer::singleShot(0, this, TQ_SLOT(initialize())); } void SystemTrayApplet::updateClockGeometry() @@ -119,14 +123,14 @@ void SystemTrayApplet::updateClockGeometry() if (m_clockApplet) { m_clockApplet->setPosition(position()); - if (orientation() == Qt::Horizontal) - { - m_clockApplet->setFixedSize(m_clockApplet->widthForHeight(height()),height()); - } - else - { - m_clockApplet->setFixedSize(width(),m_clockApplet->heightForWidth(width())); - } + if (orientation() == TQt::Horizontal) + { + m_clockApplet->setFixedSize(m_clockApplet->widthForHeight(height()),height()); + } + else + { + m_clockApplet->setFixedSize(width(),m_clockApplet->heightForWidth(width())); + } } } @@ -151,10 +155,10 @@ void SystemTrayApplet::initialize() } // the KWinModule notifies us when tray windows are added or removed - connect( twin_module, TQT_SIGNAL( systemTrayWindowAdded(WId) ), - this, TQT_SLOT( systemTrayWindowAdded(WId) ) ); - connect( twin_module, TQT_SIGNAL( systemTrayWindowRemoved(WId) ), - this, TQT_SLOT( updateTrayWindows() ) ); + connect( twin_module, TQ_SIGNAL( systemTrayWindowAdded(WId) ), + this, TQ_SLOT( systemTrayWindowAdded(WId) ) ); + connect( twin_module, TQ_SIGNAL( systemTrayWindowRemoved(WId) ), + this, TQ_SLOT( updateTrayWindows() ) ); TQCString screenstr; screenstr.setNum(tqt_xscreen()); @@ -190,7 +194,7 @@ void SystemTrayApplet::initialize() XSendEvent (display, root, False, StructureNotifyMask, (XEvent *)&xev); } - + setBackground(); } @@ -249,11 +253,11 @@ void SystemTrayApplet::preferences() KDialogBase::Ok | KDialogBase::Apply | KDialogBase::Cancel, KDialogBase::Ok, true); m_settingsDialog->resize(450, 400); - connect(m_settingsDialog, TQT_SIGNAL(applyClicked()), this, TQT_SLOT(applySettings())); - connect(m_settingsDialog, TQT_SIGNAL(okClicked()), this, TQT_SLOT(applySettings())); - connect(m_settingsDialog, TQT_SIGNAL(finished()), this, TQT_SLOT(settingsDialogFinished())); + connect(m_settingsDialog, TQ_SIGNAL(applyClicked()), this, TQ_SLOT(applySettings())); + connect(m_settingsDialog, TQ_SIGNAL(okClicked()), this, TQ_SLOT(applySettings())); + connect(m_settingsDialog, TQ_SIGNAL(finished()), this, TQ_SLOT(settingsDialogFinished())); - TQGrid *settingsGrid = m_settingsDialog->makeGridMainWidget( 2, Qt::Vertical); + TQGrid *settingsGrid = m_settingsDialog->makeGridMainWidget( 3, TQt::Vertical); m_showClockSettingCB = new TQCheckBox(i18n("Show Clock in Tray"), settingsGrid); m_showClockSettingCB->setChecked(m_showClockInTray); @@ -289,6 +293,13 @@ void SystemTrayApplet::preferences() } } + TQHBox *hbox = new TQHBox(settingsGrid); + hbox->setSizePolicy(TQSizePolicy::Maximum, TQSizePolicy::Maximum); + TQLabel *iconMarginL = new TQLabel(i18n("Icon margin: "), hbox); + m_iconMarginSB = new TQSpinBox(0, 20, 1, hbox); + m_iconMarginSB->setSuffix(i18n(" px")); + m_iconMarginSB->setValue(m_iconMargin); + m_settingsDialog->show(); } @@ -307,6 +318,7 @@ void SystemTrayApplet::applySettings() } m_showClockInTray = m_showClockSettingCB->isChecked(); + m_iconMargin = m_iconMarginSB->value(); TDEConfig *conf = config(); @@ -356,6 +368,7 @@ void SystemTrayApplet::applySettings() conf->setGroup("System Tray"); conf->writeEntry("ShowClockInTray", m_showClockInTray); + conf->writeEntry("IconMargin", m_iconMargin); conf->sync(); @@ -432,11 +445,11 @@ void SystemTrayApplet::showExpandButton(bool show) { if (!m_expandButton) { - m_expandButton = new SimpleArrowButton(this, Qt::UpArrow, 0, KickerSettings::showDeepButtons()); + m_expandButton = new SimpleArrowButton(this, TQt::UpArrow, 0, KickerSettings::showDeepButtons()); m_expandButton->installEventFilter(this); refreshExpandButton(); - if (orientation() == Qt::Vertical) + if (orientation() == TQt::Vertical) { m_expandButton->setFixedSize(width() - 4, m_expandButton->sizeHint() @@ -448,12 +461,12 @@ void SystemTrayApplet::showExpandButton(bool show) .width(), height() - 4); } - connect(m_expandButton, TQT_SIGNAL(clicked()), - this, TQT_SLOT(toggleExpanded())); + connect(m_expandButton, TQ_SIGNAL(clicked()), + this, TQ_SLOT(toggleExpanded())); m_autoRetractTimer = new TQTimer(this, "m_autoRetractTimer"); - connect(m_autoRetractTimer, TQT_SIGNAL(timeout()), - this, TQT_SLOT(checkAutoRetract())); + connect(m_autoRetractTimer, TQ_SIGNAL(timeout()), + this, TQ_SLOT(checkAutoRetract())); } else { @@ -483,7 +496,7 @@ void SystemTrayApplet::iconSizeChanged() { (*emb)->setFixedSize(m_iconSize, m_iconSize); ++emb; } - + emb = m_hiddenWins.begin(); while (emb != m_hiddenWins.end()) { (*emb)->setFixedSize(m_iconSize, m_iconSize); @@ -516,6 +529,7 @@ void SystemTrayApplet::loadSettings() conf->setGroup("System Tray"); m_iconSize = conf->readNumEntry("systrayIconWidth", 22); m_showClockInTray = conf->readNumEntry("ShowClockInTray", false); + m_iconMargin = conf->readNumEntry("IconMargin", 1); } void SystemTrayApplet::systemTrayWindowAdded( WId w ) @@ -559,7 +573,7 @@ void SystemTrayApplet::embedWindow( WId w, bool kde_tray ) return; } - connect(emb, TQT_SIGNAL(embeddedWindowDestroyed()), TQT_SLOT(updateTrayWindows())); + connect(emb, TQ_SIGNAL(embeddedWindowDestroyed()), TQ_SLOT(updateTrayWindows())); emb->setFixedSize(m_iconSize, m_iconSize); if (shouldHide(w)) @@ -627,7 +641,7 @@ void SystemTrayApplet::updateVisibleWins() (*emb)->hide(); } } - + TQMap< QXEmbed*, TQString > names; // cache window names and classes TQMap< QXEmbed*, TQString > classes; for( TrayEmbedList::const_iterator it = m_shownWins.begin(); @@ -677,13 +691,13 @@ void SystemTrayApplet::refreshExpandButton() return; } - Qt::ArrowType a; + TQt::ArrowType a; - if (orientation() == Qt::Vertical) - a = m_showHidden ? Qt::DownArrow : Qt::UpArrow; + if (orientation() == TQt::Vertical) + a = m_showHidden ? TQt::DownArrow : TQt::UpArrow; else - a = (m_showHidden ^ kapp->reverseLayout()) ? Qt::RightArrow : Qt::LeftArrow; - + a = (m_showHidden ^ tdeApp->reverseLayout()) ? TQt::RightArrow : TQt::LeftArrow; + m_expandButton->setArrowType(a); } @@ -833,17 +847,17 @@ int SystemTrayApplet::maxIconHeight() const bool SystemTrayApplet::eventFilter(TQObject* watched, TQEvent* e) { - if (TQT_BASE_OBJECT(watched) == TQT_BASE_OBJECT(m_expandButton)) + if (watched == m_expandButton) { TQPoint p; if (e->type() == TQEvent::ContextMenu) { - p = TQT_TQCONTEXTMENUEVENT(e)->globalPos(); + p = static_cast<TQContextMenuEvent*>(e)->globalPos(); } else if (e->type() == TQEvent::MouseButtonPress) { - TQMouseEvent* me = TQT_TQMOUSEEVENT(e); - if (me->button() == Qt::RightButton) + TQMouseEvent* me = static_cast<TQMouseEvent*>(e); + if (me->button() == TQt::RightButton) { p = me->globalPos(); } @@ -853,9 +867,9 @@ bool SystemTrayApplet::eventFilter(TQObject* watched, TQEvent* e) { TQPopupMenu* contextMenu = new TQPopupMenu(this); contextMenu->insertItem(SmallIcon("configure"), i18n("Configure System Tray..."), - this, TQT_SLOT(configure())); + this, TQ_SLOT(configure())); - contextMenu->exec(TQT_TQCONTEXTMENUEVENT(e)->globalPos()); + contextMenu->exec(static_cast<TQContextMenuEvent*>(e)->globalPos()); delete contextMenu; return true; @@ -867,7 +881,7 @@ bool SystemTrayApplet::eventFilter(TQObject* watched, TQEvent* e) int SystemTrayApplet::widthForHeight(int h) const { - if (orientation() == Qt::Vertical) + if (orientation() == TQt::Vertical) { return width(); } @@ -881,12 +895,12 @@ int SystemTrayApplet::widthForHeight(int h) const me->setFixedHeight(h); } - return sizeHint().width(); + return sizeHint().width(); } int SystemTrayApplet::heightForWidth(int w) const { - if (orientation() == Qt::Horizontal) + if (orientation() == TQt::Horizontal) { return height(); } @@ -900,7 +914,7 @@ int SystemTrayApplet::heightForWidth(int w) const me->setFixedWidth(w); } - return sizeHint().height(); + return sizeHint().height(); } void SystemTrayApplet::moveEvent( TQMoveEvent* ) @@ -913,7 +927,7 @@ void SystemTrayApplet::resizeEvent( TQResizeEvent* ) { layoutTray(); // we need to give ourselves a chance to adjust our size before calling this - TQTimer::singleShot(0, this, TQT_SIGNAL(updateLayout())); + TQTimer::singleShot(0, this, TQ_SIGNAL(updateLayout())); } void SystemTrayApplet::layoutTray() @@ -933,11 +947,11 @@ void SystemTrayApplet::layoutTray() int i = 0, line, nbrOfLines, heightWidth; bool showExpandButton = m_expandButton && m_expandButton->isVisibleTo(this); delete m_layout; - m_layout = new TQGridLayout(this, 1, 1, ICON_MARGIN, ICON_MARGIN); + m_layout = new TQGridLayout(this, 1, 1, 0, m_iconMargin); if (m_expandButton) { - if (orientation() == Qt::Vertical) + if (orientation() == TQt::Vertical) { m_expandButton->setFixedSize(width() - 4, m_expandButton->sizeHint().height()); } @@ -951,20 +965,20 @@ void SystemTrayApplet::layoutTray() // the opposite direction of line int col = 0; - // + // // The margin and spacing specified in the layout implies that: - // [-- ICON_MARGIN pixels --] [-- first icon --] [-- ICON_MARGIN pixels --] ... [-- ICON_MARGIN pixels --] [-- last icon --] [-- ICON_MARGIN pixels --] + // [-- m_iconMargin pixels --] [-- first icon --] [-- m_iconMargin pixels --] ... [-- m_iconMargin pixels --] [-- last icon --] [-- m_iconMargin pixels --] // - // So, if we say that iconWidth is the icon width plus the ICON_MARGIN pixels spacing, then the available width for the icons - // is the widget width minus ICON_MARGIN pixels margin. Forgetting these ICON_MARGIN pixels broke the layout algorithm in KDE <= 3.5.9. + // So, if we say that iconWidth is the icon width plus the m_iconMargin pixels spacing, then the available width for the icons + // is the widget width minus m_iconMargin pixels margin. Forgetting these m_iconMargin pixels broke the layout algorithm in KDE <= 3.5.9. // // This fix makes the workarounds in the heightForWidth() and widthForHeight() methods unneeded. // - if (orientation() == Qt::Vertical) + if (orientation() == TQt::Vertical) { - int iconWidth = maxIconWidth() + ICON_MARGIN; // +2 for the margins that implied by the layout - heightWidth = width() - ICON_MARGIN; + int iconWidth = maxIconWidth() + m_iconMargin * 2; // +2 for the margins that implied by the layout + heightWidth = width() - m_iconMargin * 2; // to avoid nbrOfLines=0 we ensure heightWidth >= iconWidth! heightWidth = heightWidth < iconWidth ? iconWidth : heightWidth; nbrOfLines = heightWidth / iconWidth; @@ -972,7 +986,7 @@ void SystemTrayApplet::layoutTray() m_layout->addMultiCellWidget(m_leftSpacer, 0, 0, 0, nbrOfLines - 1, - Qt::AlignHCenter | Qt::AlignVCenter); + TQt::AlignHCenter | TQt::AlignVCenter); col = 1; if (showExpandButton) @@ -980,7 +994,7 @@ void SystemTrayApplet::layoutTray() m_layout->addMultiCellWidget(m_expandButton, 1, 1, 0, nbrOfLines - 1, - Qt::AlignHCenter | Qt::AlignVCenter); + TQt::AlignHCenter | TQt::AlignVCenter); col = 2; } @@ -993,7 +1007,7 @@ void SystemTrayApplet::layoutTray() line = i % nbrOfLines; (*emb)->show(); m_layout->addWidget((*emb), col, line, - Qt::AlignHCenter | Qt::AlignVCenter); + TQt::AlignHCenter | TQt::AlignVCenter); if ((line + 1) == nbrOfLines) { @@ -1011,7 +1025,7 @@ void SystemTrayApplet::layoutTray() line = i % nbrOfLines; (*emb)->show(); m_layout->addWidget((*emb), col, line, - Qt::AlignHCenter | Qt::AlignVCenter); + TQt::AlignHCenter | TQt::AlignVCenter); if ((line + 1) == nbrOfLines) { @@ -1024,7 +1038,7 @@ void SystemTrayApplet::layoutTray() m_layout->addMultiCellWidget(m_rightSpacer, col, col, 0, nbrOfLines - 1, - Qt::AlignHCenter | Qt::AlignVCenter); + TQt::AlignHCenter | TQt::AlignVCenter); if (m_clockApplet) { if (m_showClockInTray) @@ -1035,20 +1049,20 @@ void SystemTrayApplet::layoutTray() m_layout->addMultiCellWidget(m_clockApplet, col+1, col+1, 0, nbrOfLines - 1, - Qt::AlignHCenter | Qt::AlignVCenter); + TQt::AlignHCenter | TQt::AlignVCenter); } } else // horizontal { - int iconHeight = maxIconHeight() + ICON_MARGIN; // +2 for the margins that implied by the layout - heightWidth = height() - ICON_MARGIN; + int iconHeight = maxIconHeight() + m_iconMargin * 2; // +2 for the margins that implied by the layout + heightWidth = height() - m_iconMargin * 2; heightWidth = heightWidth < iconHeight ? iconHeight : heightWidth; // to avoid nbrOfLines=0 nbrOfLines = heightWidth / iconHeight; m_layout->addMultiCellWidget(m_leftSpacer, 0, nbrOfLines - 1, 0, 0, - Qt::AlignHCenter | Qt::AlignVCenter); + TQt::AlignHCenter | TQt::AlignVCenter); col = 1; if (showExpandButton) @@ -1056,7 +1070,7 @@ void SystemTrayApplet::layoutTray() m_layout->addMultiCellWidget(m_expandButton, 0, nbrOfLines - 1, 1, 1, - Qt::AlignHCenter | Qt::AlignVCenter); + TQt::AlignHCenter | TQt::AlignVCenter); col = 2; } @@ -1068,7 +1082,7 @@ void SystemTrayApplet::layoutTray() line = i % nbrOfLines; (*emb)->show(); m_layout->addWidget((*emb), line, col, - Qt::AlignHCenter | Qt::AlignVCenter); + TQt::AlignHCenter | TQt::AlignVCenter); if ((line + 1) == nbrOfLines) { @@ -1086,7 +1100,7 @@ void SystemTrayApplet::layoutTray() line = i % nbrOfLines; (*emb)->show(); m_layout->addWidget((*emb), line, col, - Qt::AlignHCenter | Qt::AlignVCenter); + TQt::AlignHCenter | TQt::AlignVCenter); if ((line + 1) == nbrOfLines) { @@ -1099,7 +1113,7 @@ void SystemTrayApplet::layoutTray() m_layout->addMultiCellWidget(m_rightSpacer, 0, nbrOfLines - 1, col, col, - Qt::AlignHCenter | Qt::AlignVCenter); + TQt::AlignHCenter | TQt::AlignVCenter); if (m_clockApplet) { if (m_showClockInTray) @@ -1110,7 +1124,7 @@ void SystemTrayApplet::layoutTray() m_layout->addMultiCellWidget(m_clockApplet, 0, nbrOfLines - 1, col+1, col+1, - Qt::AlignHCenter | Qt::AlignVCenter); + TQt::AlignHCenter | TQt::AlignVCenter); } } @@ -1129,11 +1143,11 @@ void SystemTrayApplet::paletteChange(const TQPalette & /* oldPalette */) void SystemTrayApplet::setBackground() { TrayEmbedList::const_iterator lastEmb; - + lastEmb = m_shownWins.end(); for (TrayEmbedList::const_iterator emb = m_shownWins.begin(); emb != lastEmb; ++emb) (*emb)->setBackground(); - + lastEmb = m_hiddenWins.end(); for (TrayEmbedList::const_iterator emb = m_hiddenWins.begin(); emb != lastEmb; ++emb) (*emb)->setBackground(); @@ -1188,7 +1202,7 @@ void TrayEmbed::ensureBackgroundSet() // Get the RGB background image bg.fill(parentWidget(), pos()); TQImage bgImage = bg.convertToImage(); - + // Create the ARGB pixmap Pixmap argbpixmap = XCreatePixmap(x11Display(), embeddedWinId(), width(), height(), 32); GC gc; @@ -1207,7 +1221,7 @@ void TrayEmbed::ensureBackgroundSet() XDrawPoint(x11Display(), argbpixmap, gc, x, y); } } - XFlush(x11Display()); + XFlush(x11Display()); XSetWindowBackgroundPixmap(x11Display(), embeddedWinId(), argbpixmap); XFreePixmap(x11Display(), argbpixmap); XFreeGC(x11Display(), gc); diff --git a/kicker/applets/systemtray/systemtrayapplet.h b/kicker/applets/systemtray/systemtrayapplet.h index e311a1bdd..d06d42b72 100644 --- a/kicker/applets/systemtray/systemtrayapplet.h +++ b/kicker/applets/systemtray/systemtrayapplet.h @@ -27,8 +27,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include <tqvaluevector.h> #include <tqstringlist.h> #include <tqevent.h> -#include <tqlayout.h> -#include <tqcheckbox.h> #include <qxembed.h> #include <dcopobject.h> @@ -40,6 +38,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "simplebutton.h" class TQGridLayout; +class TQSpinBox; +class TQCheckBox; class TQTimer; class KWinModule; class TrayEmbed; @@ -48,7 +48,7 @@ class TDEActionSelector; class SystemTrayApplet : public KPanelApplet, public DCOPObject { - Q_OBJECT + TQ_OBJECT K_DCOP typedef TQValueVector<TrayEmbed*> TrayEmbedList; @@ -120,12 +120,14 @@ private: int m_iconSize; bool m_showClockInTray; TQCheckBox *m_showClockSettingCB; + uint m_iconMargin; + TQSpinBox *m_iconMarginSB; TQGridLayout* m_layout; }; class TrayEmbed : public QXEmbed { - Q_OBJECT + TQ_OBJECT public: TrayEmbed( bool kdeTray, TQWidget* parent = NULL ); ~TrayEmbed(); |