summaryrefslogtreecommitdiffstats
path: root/kicker/taskmanager
diff options
context:
space:
mode:
Diffstat (limited to 'kicker/taskmanager')
-rw-r--r--kicker/taskmanager/taskmanager.cpp12
-rw-r--r--kicker/taskmanager/taskmanager.h16
-rw-r--r--kicker/taskmanager/taskrmbmenu.cpp41
-rw-r--r--kicker/taskmanager/taskrmbmenu.h5
4 files changed, 63 insertions, 11 deletions
diff --git a/kicker/taskmanager/taskmanager.cpp b/kicker/taskmanager/taskmanager.cpp
index 54bf6d919..014cf5f1c 100644
--- a/kicker/taskmanager/taskmanager.cpp
+++ b/kicker/taskmanager/taskmanager.cpp
@@ -26,6 +26,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <tqimage.h>
#include <tqtimer.h>
+#include <tdeapplication.h>
#include <tdeconfig.h>
#include <kdebug.h>
#include <tdeglobal.h>
@@ -36,6 +37,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <twinmodule.h>
#include <kxerrorhandler.h>
#include <netwm.h>
+#include "dcopclient.h"
#include "taskmanager.h"
#include "taskmanager.moc"
@@ -57,7 +59,7 @@ TaskManager::TaskManager()
: TQObject(),
_active(0),
_startup_info(0),
- m_winModule(new KWinModule()),
+ m_winModule(new TWinModule()),
m_trackGeometry(false)
{
TDEGlobal::locale()->insertCatalogue("libtaskmanager");
@@ -1452,6 +1454,14 @@ void Task::updateWindowPixmap()
#endif // THUMBNAILING_POSSIBLE
}
+void Task::tileTo(int position)
+{
+ TQByteArray params;
+ TQDataStream stream(params, IO_WriteOnly);
+ stream << _win << position;
+ tdeApp->dcopClient()->send("twin", "KWinInterface", "tileWindowToBorder(unsigned long int, int)", params);
+}
+
Startup::Startup(const TDEStartupInfoId& id, const TDEStartupInfoData& data,
TQObject * parent, const char *name)
: TQObject(parent, name), _id(id), _data(data)
diff --git a/kicker/taskmanager/taskmanager.h b/kicker/taskmanager/taskmanager.h
index 289c6af55..2b517c5de 100644
--- a/kicker/taskmanager/taskmanager.h
+++ b/kicker/taskmanager/taskmanager.h
@@ -57,7 +57,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#endif
#endif
-class KWinModule;
+class TWinModule;
class TaskManager;
typedef TQValueList<WId> WindowList;
@@ -66,7 +66,7 @@ typedef TQValueList<WId> WindowList;
* A dynamic interface to a task (main window).
*
* @see TaskManager
- * @see KWinModule
+ * @see TWinModule
*/
class TDE_EXPORT Task: public TQObject, public TDEShared
{
@@ -423,6 +423,12 @@ public slots:
*/
void updateThumbnail();
+ /**
+ * Tile the task's window to the specified position. The position is one of the
+ * valid value for ActiveBorder enum
+ */
+ void tileTo(int);
+
signals:
/**
* Indicates that this task has changed in some way.
@@ -563,7 +569,7 @@ private:
*
* @see Task
* @see Startup
- * @see KWinModule
+ * @see TWinModule
*/
class TDE_EXPORT TaskManager : public TQObject
{
@@ -628,7 +634,7 @@ public:
*/
static bool isOnScreen( int screen, const WId wid );
- KWinModule* winModule() const { return m_winModule; }
+ TWinModule* winModule() const { return m_winModule; }
void setXCompositeEnabled(bool state);
static bool xCompositeEnabled() { return m_xCompositeEnabled != 0; }
@@ -701,7 +707,7 @@ private:
WindowList _skiptaskbar_windows;
Startup::List _startups;
TDEStartupInfo* _startup_info;
- KWinModule* m_winModule;
+ TWinModule* m_winModule;
bool m_trackGeometry;
static TaskManager* m_self;
diff --git a/kicker/taskmanager/taskrmbmenu.cpp b/kicker/taskmanager/taskrmbmenu.cpp
index 943160d26..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));
@@ -109,7 +117,7 @@ void TaskRMBMenu::fillMenu(Task::Ptr t)
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();
@@ -201,7 +209,7 @@ void TaskRMBMenu::fillMenu()
enable = false;
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();
@@ -280,6 +288,33 @@ TQPopupMenu* TaskRMBMenu::makeDesktopsMenu()
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();
diff --git a/kicker/taskmanager/taskrmbmenu.h b/kicker/taskmanager/taskrmbmenu.h
index b82d0338d..5dd66b98f 100644
--- a/kicker/taskmanager/taskrmbmenu.h
+++ b/kicker/taskmanager/taskrmbmenu.h
@@ -38,9 +38,10 @@ public:
private:
void fillMenu(Task::Ptr);
void fillMenu();
- TQPopupMenu* makeAdvancedMenu(Task::Ptr);
+ TQPopupMenu* makeAdvancedMenu(Task::Ptr);
TQPopupMenu* makeDesktopsMenu(Task::Ptr);
TQPopupMenu* makeDesktopsMenu();
+ TQPopupMenu* makeTileMenu(Task::Ptr);
private slots:
void slotMinimizeAll();
@@ -48,7 +49,7 @@ private slots:
void slotRestoreAll();
void slotShadeAll();
void slotCloseAll();
- void slotAllToDesktop( int desktop );
+ void slotAllToDesktop(int desktop);
void slotAllToCurrentDesktop();
private: