summaryrefslogtreecommitdiffstats
path: root/kicker/taskmanager/taskrmbmenu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kicker/taskmanager/taskrmbmenu.cpp')
-rw-r--r--kicker/taskmanager/taskrmbmenu.cpp146
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();