diff options
Diffstat (limited to 'kicker/taskmanager/taskrmbmenu.cpp')
-rw-r--r-- | kicker/taskmanager/taskrmbmenu.cpp | 146 |
1 files changed, 94 insertions, 52 deletions
diff --git a/kicker/taskmanager/taskrmbmenu.cpp b/kicker/taskmanager/taskrmbmenu.cpp index 58682196b..31c48d61c 100644 --- a/kicker/taskmanager/taskrmbmenu.cpp +++ b/kicker/taskmanager/taskrmbmenu.cpp @@ -24,6 +24,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include <assert.h> +#include <tdeglobal.h> #include <kiconloader.h> #include <tdelocale.h> @@ -44,6 +45,8 @@ TaskRMBMenu::TaskRMBMenu(const Task::List& theTasks, bool show, TQPopupMenu* mov , showAll( show ) , taskMoveMenu( moveMenu ) { + TDEGlobal::iconLoader()->addAppDir("twin"); + assert(tasks.count() > 0); if (tasks.count() == 1) { @@ -68,9 +71,14 @@ void TaskRMBMenu::fillMenu(Task::Ptr t) int id; setCheckable(true); - insertItem(i18n("Ad&vanced"), makeAdvancedMenu(t)); bool checkActions = KWin::allowedActionsSupported(); + insertItem(i18n("Ad&vanced"), makeAdvancedMenu(t)); + + id = insertItem(i18n("T&ile"), makeTileMenu(t)); + setItemEnabled(id, !checkActions || + (t->info().actionSupported(NET::ActionMove) && t->info().actionSupported(NET::ActionResize))); + if (TaskManager::the()->numberOfDesktops() > 1) { id = insertItem(i18n("To &Desktop"), makeDesktopsMenu(t)); @@ -78,7 +86,7 @@ void TaskRMBMenu::fillMenu(Task::Ptr t) if (showAll) { id = insertItem(i18n("&To Current Desktop"), - t, TQT_SLOT(toCurrentDesktop())); + t, TQ_SLOT(toCurrentDesktop())); setItemEnabled( id, !t->isOnCurrentDesktop() ); } @@ -88,55 +96,55 @@ void TaskRMBMenu::fillMenu(Task::Ptr t) } } - id = insertItem(SmallIconSet("move"), i18n("&Move"), t, TQT_SLOT(move())); + id = insertItem(SmallIconSet("move"), i18n("&Move"), t, TQ_SLOT(move())); setItemEnabled(id, !checkActions || t->info().actionSupported(NET::ActionMove)); - id = insertItem(i18n("Re&size"), t, TQT_SLOT(resize())); + id = insertItem(i18n("Re&size"), t, TQ_SLOT(resize())); setItemEnabled(id, !checkActions || t->info().actionSupported(NET::ActionResize)); - id = insertItem(i18n("Mi&nimize"), t, TQT_SLOT(toggleIconified())); + id = insertItem(i18n("Mi&nimize"), t, TQ_SLOT(toggleIconified())); setItemChecked(id, t->isIconified()); setItemEnabled(id, !checkActions || t->info().actionSupported(NET::ActionMinimize)); - id = insertItem(i18n("Ma&ximize"), t, TQT_SLOT(toggleMaximized())); + id = insertItem(i18n("Ma&ximize"), t, TQ_SLOT(toggleMaximized())); setItemChecked(id, t->isMaximized()); setItemEnabled(id, !checkActions || t->info().actionSupported(NET::ActionMax)); - id = insertItem(i18n("&Shade"), t, TQT_SLOT(toggleShaded())); + id = insertItem(i18n("&Shade"), t, TQ_SLOT(toggleShaded())); setItemChecked(id, t->isShaded()); setItemEnabled(id, !checkActions || t->info().actionSupported(NET::ActionShade)); insertSeparator(); if (taskMoveMenu) { - taskMoveMenu->reparent(this, taskMoveMenu->getWFlags(), taskMoveMenu->geometry().topLeft(), FALSE); + taskMoveMenu->reparent(this, taskMoveMenu->getWFlags(), taskMoveMenu->geometry().topLeft(), false); insertItem(i18n("Move Task Button"), taskMoveMenu); insertSeparator(); } - id = insertItem(SmallIcon("window-close"), i18n("&Close"), t, TQT_SLOT(close())); + id = insertItem(SmallIcon("window-close"), i18n("&Close"), t, TQ_SLOT(close())); setItemEnabled(id, !checkActions || t->info().actionSupported(NET::ActionClose)); } void TaskRMBMenu::fillMenu() { - int id; - setCheckable( true ); + int id; + setCheckable( true ); Task::List::iterator itEnd = tasks.end(); for (Task::List::iterator it = tasks.begin(); it != itEnd; ++it) { - Task::Ptr t = (*it); + Task::Ptr t = (*it); - id = insertItem( TQIconSet( t->pixmap() ), - t->visibleNameWithState(), - new TaskRMBMenu(t, this) ); - setItemChecked( id, t->isActive() ); - connectItem( id, t, TQT_SLOT( activateRaiseOrIconify() ) ); - } + id = insertItem( TQIconSet( t->pixmap() ), + t->visibleNameWithState(), + new TaskRMBMenu(t, this) ); + setItemChecked( id, t->isActive() ); + connectItem( id, t, TQ_SLOT( activateRaiseOrIconify() ) ); + } - insertSeparator(); + insertSeparator(); bool enable = false; @@ -144,7 +152,7 @@ void TaskRMBMenu::fillMenu() { id = insertItem(i18n("All to &Desktop"), makeDesktopsMenu()); - id = insertItem(i18n("All &to Current Desktop"), this, TQT_SLOT(slotAllToCurrentDesktop())); + id = insertItem(i18n("All &to Current Desktop"), this, TQ_SLOT(slotAllToCurrentDesktop())); Task::List::iterator itEnd = tasks.end(); for (Task::List::iterator it = tasks.begin(); it != itEnd; ++it) { @@ -159,48 +167,55 @@ void TaskRMBMenu::fillMenu() enable = false; - id = insertItem( i18n( "Mi&nimize All" ), this, TQT_SLOT( slotMinimizeAll() ) ); + id = insertItem( i18n( "Mi&nimize All" ), this, TQ_SLOT( slotMinimizeAll() ) ); itEnd = tasks.end(); for (Task::List::iterator it = tasks.begin(); it != itEnd; ++it) { - if( !(*it)->isIconified() ) { - enable = true; - break; - } - } - setItemEnabled( id, enable ); + if( !(*it)->isIconified() ) { + enable = true; + break; + } + } + setItemEnabled( id, enable ); - enable = false; + enable = false; - id = insertItem( i18n( "Ma&ximize All" ), this, TQT_SLOT( slotMaximizeAll() ) ); + id = insertItem( i18n( "Ma&ximize All" ), this, TQ_SLOT( slotMaximizeAll() ) ); itEnd = tasks.end(); for (Task::List::iterator it = tasks.begin(); it != itEnd; ++it) { if( !(*it)->isMaximized() ) { - enable = true; - break; - } - } - setItemEnabled( id, enable ); + enable = true; + break; + } + } + setItemEnabled( id, enable ); - enable = false; + enable = false; - id = insertItem( i18n( "&Restore All" ), this, TQT_SLOT( slotRestoreAll() ) ); + id = insertItem( i18n( "&Restore All" ), this, TQ_SLOT( slotRestoreAll() ) ); itEnd = tasks.end(); for (Task::List::iterator it = tasks.begin(); it != itEnd; ++it) { - if( (*it)->isIconified() || (*it)->isMaximized() ) { - enable = true; - break; - } - } - setItemEnabled( id, enable ); + if( (*it)->isIconified() || (*it)->isMaximized() ) { + enable = true; + break; + } + } + setItemEnabled( id, enable ); - insertSeparator(); + insertSeparator(); - enable = false; + enable = false; - insertItem( SmallIcon( "remove" ), i18n( "&Close All" ), this, TQT_SLOT( slotCloseAll() ) ); + if (taskMoveMenu) { + taskMoveMenu->reparent(this, taskMoveMenu->getWFlags(), taskMoveMenu->geometry().topLeft(), false); + insertItem(i18n("Move Task Button"), taskMoveMenu); + + insertSeparator(); + } + + insertItem( SmallIcon( "window-close" ), i18n( "&Close All" ), this, TQ_SLOT( slotCloseAll() ) ); } TQPopupMenu* TaskRMBMenu::makeAdvancedMenu(Task::Ptr t) @@ -212,17 +227,17 @@ TQPopupMenu* TaskRMBMenu::makeAdvancedMenu(Task::Ptr t) id = menu->insertItem(SmallIconSet("go-up"), i18n("Keep &Above Others"), - t, TQT_SLOT(toggleAlwaysOnTop())); + t, TQ_SLOT(toggleAlwaysOnTop())); menu->setItemChecked(id, t->isAlwaysOnTop()); id = menu->insertItem(SmallIconSet("go-down"), i18n("Keep &Below Others"), - t, TQT_SLOT(toggleKeptBelowOthers())); + t, TQ_SLOT(toggleKeptBelowOthers())); menu->setItemChecked(id, t->isKeptBelowOthers()); id = menu->insertItem(SmallIconSet("view-fullscreen"), i18n("&Fullscreen"), - t, TQT_SLOT(toggleFullScreen())); + t, TQ_SLOT(toggleFullScreen())); menu->setItemChecked(id, t->isFullScreen()); if (KWin::allowedActionsSupported()) @@ -238,7 +253,7 @@ TQPopupMenu* TaskRMBMenu::makeDesktopsMenu(Task::Ptr t) TQPopupMenu* m = new TQPopupMenu( this ); m->setCheckable( true ); - int id = m->insertItem( i18n("&All Desktops"), t, TQT_SLOT( toDesktop(int) ) ); + int id = m->insertItem( i18n("&All Desktops"), t, TQ_SLOT( toDesktop(int) ) ); m->setItemParameter( id, 0 ); // 0 means all desktops m->setItemChecked( id, t->isOnAllDesktops() ); @@ -246,7 +261,7 @@ TQPopupMenu* TaskRMBMenu::makeDesktopsMenu(Task::Ptr t) for (int i = 1; i <= TaskManager::the()->numberOfDesktops(); i++) { TQString name = TQString("&%1 %2").arg(i).arg(TaskManager::the()->desktopName(i).replace('&', "&&")); - id = m->insertItem( name, t, TQT_SLOT( toDesktop(int) ) ); + id = m->insertItem( name, t, TQ_SLOT( toDesktop(int) ) ); m->setItemParameter( id, i ); m->setItemChecked( id, !t->isOnAllDesktops() && t->desktop() == i ); } @@ -259,20 +274,47 @@ TQPopupMenu* TaskRMBMenu::makeDesktopsMenu() TQPopupMenu* m = new TQPopupMenu( this ); m->setCheckable( true ); - int id = m->insertItem( i18n("&All Desktops"), this, TQT_SLOT( slotAllToDesktop(int) ) ); + int id = m->insertItem( i18n("&All Desktops"), this, TQ_SLOT( slotAllToDesktop(int) ) ); m->setItemParameter( id, 0 ); // 0 means all desktops m->insertSeparator(); for (int i = 1; i <= TaskManager::the()->numberOfDesktops(); i++) { TQString name = TQString("&%1 %2").arg(i).arg(TaskManager::the()->desktopName(i).replace('&', "&&")); - id = m->insertItem( name, this, TQT_SLOT( slotAllToDesktop(int) ) ); + id = m->insertItem( name, this, TQ_SLOT( slotAllToDesktop(int) ) ); m->setItemParameter( id, i ); } return m; } +TQPopupMenu* TaskRMBMenu::makeTileMenu(Task::Ptr t) +{ + TQPopupMenu *m = new TQPopupMenu( this ); + + // Tile to side (the menu id matched the ActiveBorder index used for tiling) + int id = m->insertItem( UserIconSet("tile_left"), i18n("&Left"), t, TQ_SLOT( tileTo(int) ) ); + m->setItemParameter( id, 6 ); + id = m->insertItem( UserIconSet("tile_right"), i18n("&Right"), t, TQ_SLOT( tileTo(int) ) ); + m->setItemParameter( id, 2 ); + id = m->insertItem( UserIconSet("tile_top"), i18n("&Top"), t, TQ_SLOT( tileTo(int) ) ); + m->setItemParameter( id, 0 ); + id = m->insertItem( UserIconSet("tile_bottom"), i18n("&Bottom"), t, TQ_SLOT( tileTo(int) ) ); + m->setItemParameter( id, 4 ); + + // Tile to corner (the menu id matched the ActiveBorder index used for tiling) + id = m->insertItem( UserIconSet("tile_topleft"), i18n("Top &Left"), t, TQ_SLOT( tileTo(int) ) ); + m->setItemParameter( id, 7 ); + id = m->insertItem( UserIconSet("tile_topright"), i18n("Top &Right"), t, TQ_SLOT( tileTo(int) ) ); + m->setItemParameter( id, 1 ); + id = m->insertItem( UserIconSet("tile_bottomleft"), i18n("Bottom L&eft"), t, TQ_SLOT( tileTo(int) ) ); + m->setItemParameter( id, 5 ); + id = m->insertItem( UserIconSet("tile_bottomright"), i18n("&Bottom R&ight"), t, TQ_SLOT( tileTo(int) ) ); + m->setItemParameter( id, 3 ); + + return m; +} + void TaskRMBMenu::slotMinimizeAll() { Task::List::iterator itEnd = tasks.end(); |