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 { "split <width>", I18N_NOOP("split"), 0 },
15 { "+hgap", I18N_NOOP("hgap"), 0 },
16 { "+vgap", I18N_NOOP("vgap"), 0 },
17 { "+hsplit", I18N_NOOP("hsplit"), 0 },
18 { "+vsplit", I18N_NOOP("vsplit"), 0 },
22 /* Die optimalen werte für hgap und vgap berechnen sich zu:
24 * gap = size%split + n*split
26 * für n = 0,1,2,... und size die Bildschirmgröße in der jeweiligen Richtung
29 int main(int argc, char **argv)
31 KAboutData * aboutdata = new KAboutData("kwingrid","KWinGrid","0.5",
32 I18N_NOOP("Window Grid"),
33 KAboutData::License_GPL,
34 "(C) 1999,2000,2002,2004 Stefan Bund",
35 "", "http://www.j32.de/");
36 aboutdata->addAuthor("Stefan Bund",I18N_NOOP("Developer"),"stefab@j32.de",
39 KCmdLineArgs::init(argc, argv, aboutdata);
40 KCmdLineArgs::addCmdLineOptions(winGridOpts);
41 KUniqueApplication::addCmdLineOptions();
43 if (! KUniqueApplication::start()) {
44 kdError() << "KWinGrid is already running!" << endl;
48 KApplication * app = new KUniqueApplication;
49 KCmdLineArgs * args = KCmdLineArgs::parsedArgs();
51 if (args->count()!=4) {
52 kdError() << "Invalid arguments. Try --help\n";
57 if (args->isSet("split"))
58 split=args->getOption("split").toInt();
60 int hgap = atoi(args->arg(0));
61 int vgap = atoi(args->arg(1));
62 int hsplit = atoi(args->arg(2));
63 int vsplit = atoi(args->arg(3));
67 KWinGrid * winGrid = new KWinGrid(hgap,vgap,hsplit,vsplit,split);
69 KGlobalAccel * accel = new KGlobalAccel(app);
71 accel->insert("move_TL",
72 I18N_NOOP("Move top-left"),
73 I18N_NOOP("Move active window top-left"),
74 Qt::ALT+Qt::SHIFT+Qt::Key_I, KKey::QtWIN+Qt::SHIFT+Qt::Key_I,
75 winGrid, SLOT ( move_TL() ));
76 accel->insert("move_TR",
77 I18N_NOOP("Move top-right"),
78 I18N_NOOP("Move active window top-right"),
79 Qt::ALT+Qt::SHIFT+Qt::Key_O, KKey::QtWIN+Qt::SHIFT+Qt::Key_O,
80 winGrid, SLOT ( move_TR() ));
81 accel->insert("move_BL",
82 I18N_NOOP("Move bottom-left"),
83 I18N_NOOP("Move active window bottom-left"),
84 Qt::ALT+Qt::SHIFT+Qt::Key_K, KKey::QtWIN+Qt::SHIFT+Qt::Key_K,
85 winGrid, SLOT ( move_BL() ));
86 accel->insert("move_BR",
87 I18N_NOOP("Move bottom-right"),
88 I18N_NOOP("Move active window bottom-right"),
89 Qt::ALT+Qt::SHIFT+Qt::Key_L, KKey::QtWIN+Qt::SHIFT+Qt::Key_L,
90 winGrid, SLOT ( move_BR() ));
92 accel->insert("resize_Q",
93 I18N_NOOP("Resize quarter"), I18N_NOOP("Resize quarter"),
94 Qt::ALT+Qt::CTRL+Qt::SHIFT+Qt::Key_I, KKey::QtWIN+Qt::CTRL+Qt::SHIFT+Qt::Key_I,
95 winGrid, SLOT ( resize_Q() ));
96 accel->insert("resize_H",
97 I18N_NOOP("Resize horizontal"), I18N_NOOP("Resize horizontal"),
98 Qt::ALT+Qt::CTRL+Qt::SHIFT+Qt::Key_O, KKey::QtWIN+Qt::CTRL+Qt::SHIFT+Qt::Key_O,
99 winGrid, SLOT ( resize_H() ));
100 accel->insert("resize_V",
101 I18N_NOOP("Resize vertical"), I18N_NOOP("Resize vertical"),
102 Qt::ALT+Qt::CTRL+Qt::SHIFT+Qt::Key_K, KKey::QtWIN+Qt::CTRL+Qt::SHIFT+Qt::Key_K,
103 winGrid, SLOT ( resize_V() ));
104 accel->insert("resize_F",
105 I18N_NOOP("Resize full"), I18N_NOOP("Resize full"),
106 Qt::ALT+Qt::CTRL+Qt::SHIFT+Qt::Key_L, KKey::QtWIN+Qt::CTRL+Qt::SHIFT+Qt::Key_L,
107 winGrid, SLOT ( resize_F() ));
109 accel->insert("move_L",
110 I18N_NOOP("Move left"), I18N_NOOP("Move left"),
111 Qt::ALT+Qt::SHIFT+Qt::Key_Left, KKey::QtWIN+Qt::SHIFT+Qt::Key_Left,
112 winGrid, SLOT ( move_L() ));
113 accel->insert("move_R",
114 I18N_NOOP("Move right"), I18N_NOOP("Move right"),
115 Qt::ALT+Qt::SHIFT+Qt::Key_Right, KKey::QtWIN+Qt::SHIFT+Qt::Key_Right,
116 winGrid, SLOT ( move_R() ));
117 accel->insert("move_U",
118 I18N_NOOP("Move up"), I18N_NOOP("Move up"),
119 Qt::ALT+Qt::SHIFT+Qt::Key_Up, KKey::QtWIN+Qt::SHIFT+Qt::Key_Up,
120 winGrid, SLOT ( move_U() ));
121 accel->insert("move_D",
122 I18N_NOOP("Move down"), I18N_NOOP("Move down"),
123 Qt::ALT+Qt::SHIFT+Qt::Key_Down, KKey::QtWIN+Qt::SHIFT+Qt::Key_Down,
124 winGrid, SLOT ( move_D() ));
126 accel->insert("resize_IH",
127 I18N_NOOP("Increase horizontal size"), I18N_NOOP("Increase horizontal size"),
128 Qt::ALT+Qt::CTRL+Qt::SHIFT+Qt::Key_Right,KKey::QtWIN+Qt::CTRL+Qt::SHIFT+Qt::Key_Right,
129 winGrid, SLOT ( resize_IH() ));
130 accel->insert("resize_IV",
131 I18N_NOOP("Increase vertical size"), I18N_NOOP("Increase vertical size"),
132 Qt::ALT+Qt::CTRL+Qt::SHIFT+Qt::Key_Down,KKey::QtWIN+Qt::CTRL+Qt::SHIFT+Qt::Key_Down,
133 winGrid, SLOT ( resize_IV() ));
134 accel->insert("resize_DH",
135 I18N_NOOP("Decrease horizontal size"), I18N_NOOP("Decrease horizontal size"),
136 Qt::ALT+Qt::CTRL+Qt::SHIFT+Qt::Key_Left,KKey::QtWIN+Qt::CTRL+Qt::SHIFT+Qt::Key_Left,
137 winGrid, SLOT ( resize_DH() ));
138 accel->insert("resize_DV",
139 I18N_NOOP("Decrease vertical size"), I18N_NOOP("Decrease vertical size"),
140 Qt::ALT+Qt::CTRL+Qt::SHIFT+Qt::Key_Up,KKey::QtWIN+Qt::CTRL+Qt::SHIFT+Qt::Key_Up,
141 winGrid, SLOT ( resize_DV() ));
144 accel->updateConnections();
147 int ret = app->exec();