2 #include <kuniqueapplication.h>
4 #include <kcmdlineargs.h>
5 #include <kaboutdata.h>
7 #include <kglobalaccel.h>
8 #include <qnamespace.h>
12 static KCmdLineOptions winGridOpts[] =
14 { "+hgap", I18N_NOOP("hgap"), 0 },
15 { "+vgap", I18N_NOOP("vgap"), 0 },
16 { "+hsplit", I18N_NOOP("hsplit"), 0 },
17 { "+vsplit", I18N_NOOP("vsplit"), 0 },
21 /* Die optimalen werte für hgap und vgap berechnen sich zu:
23 * gap = size % split + n * split
25 * für n = 0,1,2,... und size die Bildschirmgröße in der jeweiligen Richtung
28 int main(int argc, char **argv)
30 KAboutData * aboutdata = new KAboutData("kwingrid","KWinGrid","0.5",
31 I18N_NOOP("Window Grid"),
32 KAboutData::License_GPL,
33 "(C) 1999,2000,2002, Stefan Bund",
34 "", "http://home.t-online.de/home/Stefan.Bund/");
35 aboutdata->addAuthor("Stefan Bund",I18N_NOOP("Developer"),"asbund@gmx.de",
36 "http://home.t-online.de/home/Stefan.Bund");
38 KCmdLineArgs::init(argc, argv, aboutdata);
39 KCmdLineArgs::addCmdLineOptions(winGridOpts);
40 KUniqueApplication::addCmdLineOptions();
42 if (! KUniqueApplication::start()) {
43 kdError() << "KWinGrid is already running!" << endl;
47 KApplication * app = new KUniqueApplication;
48 KCmdLineArgs * args = KCmdLineArgs::parsedArgs();
50 if (args->count()!=4) {
51 kdError() << "Invalid arguments. Try --help\n";
55 int hgap = atoi(args->arg(0));
56 int vgap = atoi(args->arg(1));
57 int hsplit = atoi(args->arg(2));
58 int vsplit = atoi(args->arg(3));
62 KWinGrid * winGrid = new KWinGrid(hgap,vgap,hsplit,vsplit);
64 KGlobalAccel * accel = new KGlobalAccel(app);
66 accel->insert("move_TL",
67 I18N_NOOP("Move top-left"),
68 I18N_NOOP("Move active window top-left"),
69 Qt::ALT+Qt::SHIFT+Qt::Key_I, KKey::QtWIN+Qt::SHIFT+Qt::Key_I,
70 winGrid, SLOT ( move_TL() ));
71 accel->insert("move_TR",
72 I18N_NOOP("Move top-right"),
73 I18N_NOOP("Move active window top-right"),
74 Qt::ALT+Qt::SHIFT+Qt::Key_O, KKey::QtWIN+Qt::SHIFT+Qt::Key_O,
75 winGrid, SLOT ( move_TR() ));
76 accel->insert("move_BL",
77 I18N_NOOP("Move bottom-left"),
78 I18N_NOOP("Move active window bottom-left"),
79 Qt::ALT+Qt::SHIFT+Qt::Key_K, KKey::QtWIN+Qt::SHIFT+Qt::Key_K,
80 winGrid, SLOT ( move_BL() ));
81 accel->insert("move_BR",
82 I18N_NOOP("Move bottom-right"),
83 I18N_NOOP("Move active window bottom-right"),
84 Qt::ALT+Qt::SHIFT+Qt::Key_L, KKey::QtWIN+Qt::SHIFT+Qt::Key_L,
85 winGrid, SLOT ( move_BR() ));
87 accel->insert("resize_Q",
88 I18N_NOOP("Resize quarter"), I18N_NOOP("Resize quarter"),
89 Qt::ALT+Qt::CTRL+Qt::SHIFT+Qt::Key_I, KKey::QtWIN+Qt::CTRL+Qt::SHIFT+Qt::Key_I,
90 winGrid, SLOT ( resize_Q() ));
91 accel->insert("resize_H",
92 I18N_NOOP("Resize horizontal"), I18N_NOOP("Resize horizontal"),
93 Qt::ALT+Qt::CTRL+Qt::SHIFT+Qt::Key_O, KKey::QtWIN+Qt::CTRL+Qt::SHIFT+Qt::Key_O,
94 winGrid, SLOT ( resize_H() ));
95 accel->insert("resize_V",
96 I18N_NOOP("Resize vertical"), I18N_NOOP("Resize vertical"),
97 Qt::ALT+Qt::CTRL+Qt::SHIFT+Qt::Key_K, KKey::QtWIN+Qt::CTRL+Qt::SHIFT+Qt::Key_K,
98 winGrid, SLOT ( resize_V() ));
99 accel->insert("resize_F",
100 I18N_NOOP("Resize full"), I18N_NOOP("Resize full"),
101 Qt::ALT+Qt::CTRL+Qt::SHIFT+Qt::Key_L, KKey::QtWIN+Qt::CTRL+Qt::SHIFT+Qt::Key_L,
102 winGrid, SLOT ( resize_F() ));
104 accel->insert("move_L",
105 I18N_NOOP("Move left"), I18N_NOOP("Move left"),
106 Qt::ALT+Qt::SHIFT+Qt::Key_Left, KKey::QtWIN+Qt::SHIFT+Qt::Key_Left,
107 winGrid, SLOT ( move_L() ));
108 accel->insert("move_R",
109 I18N_NOOP("Move right"), I18N_NOOP("Move right"),
110 Qt::ALT+Qt::SHIFT+Qt::Key_Right, KKey::QtWIN+Qt::SHIFT+Qt::Key_Right,
111 winGrid, SLOT ( move_R() ));
112 accel->insert("move_U",
113 I18N_NOOP("Move up"), I18N_NOOP("Move up"),
114 Qt::ALT+Qt::SHIFT+Qt::Key_Up, KKey::QtWIN+Qt::SHIFT+Qt::Key_Up,
115 winGrid, SLOT ( move_U() ));
116 accel->insert("move_D",
117 I18N_NOOP("Move down"), I18N_NOOP("Move down"),
118 Qt::ALT+Qt::SHIFT+Qt::Key_Down, KKey::QtWIN+Qt::SHIFT+Qt::Key_Down,
119 winGrid, SLOT ( move_D() ));
121 accel->insert("resize_IH",
122 I18N_NOOP("Increase horizontal size"), I18N_NOOP("Increase horizontal size"),
123 Qt::ALT+Qt::CTRL+Qt::SHIFT+Qt::Key_Right,KKey::QtWIN+Qt::CTRL+Qt::SHIFT+Qt::Key_Right,
124 winGrid, SLOT ( resize_IH() ));
125 accel->insert("resize_IV",
126 I18N_NOOP("Increase vertical size"), I18N_NOOP("Increase vertical size"),
127 Qt::ALT+Qt::CTRL+Qt::SHIFT+Qt::Key_Down,KKey::QtWIN+Qt::CTRL+Qt::SHIFT+Qt::Key_Down,
128 winGrid, SLOT ( resize_IV() ));
129 accel->insert("resize_DH",
130 I18N_NOOP("Decrease horizontal size"), I18N_NOOP("Decrease horizontal size"),
131 Qt::ALT+Qt::CTRL+Qt::SHIFT+Qt::Key_Left,KKey::QtWIN+Qt::CTRL+Qt::SHIFT+Qt::Key_Left,
132 winGrid, SLOT ( resize_DH() ));
133 accel->insert("resize_DV",
134 I18N_NOOP("Decrease vertical size"), I18N_NOOP("Decrease vertical size"),
135 Qt::ALT+Qt::CTRL+Qt::SHIFT+Qt::Key_Up,KKey::QtWIN+Qt::CTRL+Qt::SHIFT+Qt::Key_Up,
136 winGrid, SLOT ( resize_DV() ));
139 accel->updateConnections();
142 int ret = app->exec();