Added KWinGrid
[kwingrid.git] / old / main.cc
1 #include <stdlib.h>
2 #include <kuniqueapplication.h>
3 #include <klocale.h>
4 #include <kcmdlineargs.h>
5 #include <kaboutdata.h>
6 #include <kdebug.h>
7 #include <kglobalaccel.h>
8 #include <qnamespace.h>
9
10 #include "kwingrid.h"
11
12 static KCmdLineOptions winGridOpts[] =
13 {
14     { "+hgap", I18N_NOOP("hgap"), 0 },
15     { "+vgap", I18N_NOOP("vgap"), 0 },
16     { "+hsplit", I18N_NOOP("hsplit"), 0 },
17     { "+vsplit", I18N_NOOP("vsplit"), 0 },
18     { 0,0,0 }
19 };
20
21 /* Die optimalen werte für hgap und vgap berechnen sich zu:
22  *
23  * gap = size % split + n * split
24  *
25  * für n = 0,1,2,... und size die Bildschirmgröße in der jeweiligen Richtung
26  */
27
28 int main(int argc, char **argv)
29 {
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");
37   
38     KCmdLineArgs::init(argc, argv, aboutdata);
39     KCmdLineArgs::addCmdLineOptions(winGridOpts);
40     KUniqueApplication::addCmdLineOptions();
41
42     if (! KUniqueApplication::start()) {
43         kdError() << "KWinGrid is already running!" << endl;
44         return 0;
45     }
46
47     KApplication * app = new KUniqueApplication;
48     KCmdLineArgs * args = KCmdLineArgs::parsedArgs();
49
50     if (args->count()!=4) {
51         kdError() << "Invalid arguments. Try --help\n";
52         return 0;
53     }
54   
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));
59
60     args->clear();
61
62     KWinGrid * winGrid = new KWinGrid(hgap,vgap,hsplit,vsplit);
63
64     KGlobalAccel * accel = new KGlobalAccel(app);
65
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() ));
86
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() ));
103
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() ));
120
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() ));
137     
138     
139     accel->updateConnections();
140
141
142     int ret = app->exec();
143
144     delete app;
145     return ret;
146 }
147