diff options
author | fluxgen <fluxgen> | 2003-09-10 14:07:48 (GMT) |
---|---|---|
committer | fluxgen <fluxgen> | 2003-09-10 14:07:48 (GMT) |
commit | b78edef5b6e39822142dd91331a53ab38b147f05 (patch) | |
tree | a2842f409b3032f0aa041e14a0558718af023270 /src | |
parent | 90eb966c41af507c2995804213ec33ba833529cc (diff) | |
download | fluxbox-b78edef5b6e39822142dd91331a53ab38b147f05.zip fluxbox-b78edef5b6e39822142dd91331a53ab38b147f05.tar.bz2 |
added move command, thanks Mathias Gumz
Diffstat (limited to 'src')
-rw-r--r-- | src/CurrentWindowCmd.cc | 27 | ||||
-rw-r--r-- | src/CurrentWindowCmd.hh | 44 | ||||
-rw-r--r-- | src/FbCommandFactory.cc | 27 |
3 files changed, 31 insertions, 67 deletions
diff --git a/src/CurrentWindowCmd.cc b/src/CurrentWindowCmd.cc index 894eaa3..4f49362 100644 --- a/src/CurrentWindowCmd.cc +++ b/src/CurrentWindowCmd.cc | |||
@@ -20,7 +20,7 @@ | |||
20 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 20 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
21 | // DEALINGS IN THE SOFTWARE. | 21 | // DEALINGS IN THE SOFTWARE. |
22 | 22 | ||
23 | // $Id: CurrentWindowCmd.cc,v 1.5 2003/09/06 15:43:27 fluxgen Exp $ | 23 | // $Id: CurrentWindowCmd.cc,v 1.6 2003/09/10 14:07:48 fluxgen Exp $ |
24 | 24 | ||
25 | #include "CurrentWindowCmd.hh" | 25 | #include "CurrentWindowCmd.hh" |
26 | 26 | ||
@@ -63,26 +63,13 @@ FluxboxWindow &WindowHelperCmd::fbwindow() { | |||
63 | return *Fluxbox::instance()->getFocusedWindow()->fbwindow(); | 63 | return *Fluxbox::instance()->getFocusedWindow()->fbwindow(); |
64 | } | 64 | } |
65 | 65 | ||
66 | MoveLeftCmd::MoveLeftCmd(int step_size):MoveHelper(step_size) { } | 66 | MoveCmd::MoveCmd(const int step_size_x, const int step_size_y) : |
67 | void MoveLeftCmd::real_execute() { | 67 | m_step_size_x(step_size_x), m_step_size_y(step_size_y) { } |
68 | fbwindow().move(fbwindow().x() - stepSize(), | ||
69 | fbwindow().y()); | ||
70 | } | ||
71 | |||
72 | MoveRightCmd::MoveRightCmd(int step_size):MoveHelper(step_size) { } | ||
73 | void MoveRightCmd::real_execute() { | ||
74 | fbwindow().move(fbwindow().x() + stepSize(), | ||
75 | fbwindow().y()); | ||
76 | } | ||
77 | |||
78 | MoveDownCmd::MoveDownCmd(int step_size):MoveHelper(step_size) { } | ||
79 | void MoveDownCmd::real_execute() { | ||
80 | fbwindow().move(fbwindow().x(), fbwindow().y() + stepSize()); | ||
81 | } | ||
82 | 68 | ||
83 | MoveUpCmd::MoveUpCmd(int step_size):MoveHelper(step_size) { } | 69 | void MoveCmd::real_execute() { |
84 | void MoveUpCmd::real_execute() { | 70 | fbwindow().move( |
85 | fbwindow().move(fbwindow().x(), fbwindow().y() - stepSize()); | 71 | fbwindow().x() + m_step_size_x, |
72 | fbwindow().y() + m_step_size_y ); | ||
86 | } | 73 | } |
87 | 74 | ||
88 | ResizeCmd::ResizeCmd(const int step_size_x, const int step_size_y) : | 75 | ResizeCmd::ResizeCmd(const int step_size_x, const int step_size_y) : |
diff --git a/src/CurrentWindowCmd.hh b/src/CurrentWindowCmd.hh index 05015a0..18bcc45 100644 --- a/src/CurrentWindowCmd.hh +++ b/src/CurrentWindowCmd.hh | |||
@@ -20,7 +20,7 @@ | |||
20 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 20 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
21 | // DEALINGS IN THE SOFTWARE. | 21 | // DEALINGS IN THE SOFTWARE. |
22 | 22 | ||
23 | // $Id: CurrentWindowCmd.hh,v 1.4 2003/09/06 15:43:27 fluxgen Exp $ | 23 | // $Id: CurrentWindowCmd.hh,v 1.5 2003/09/10 14:07:48 fluxgen Exp $ |
24 | 24 | ||
25 | #ifndef CURRENTWINDOWCMD_HH | 25 | #ifndef CURRENTWINDOWCMD_HH |
26 | #define CURRENTWINDOWCMD_HH | 26 | #define CURRENTWINDOWCMD_HH |
@@ -69,48 +69,18 @@ private: | |||
69 | const int m_workspace_num; | 69 | const int m_workspace_num; |
70 | }; | 70 | }; |
71 | 71 | ||
72 | class MoveHelper: public WindowHelperCmd { | 72 | class MoveCmd: public WindowHelperCmd { |
73 | public: | 73 | public: |
74 | explicit MoveHelper(int step_size):m_step_size(step_size) { } | 74 | explicit MoveCmd(const int step_size_x, const int step_size_y); |
75 | protected: | ||
76 | int stepSize() const { return m_step_size; } | ||
77 | |||
78 | private: | ||
79 | const int m_step_size; | ||
80 | }; | ||
81 | /// move window to left | ||
82 | class MoveLeftCmd: public MoveHelper { | ||
83 | public: | ||
84 | explicit MoveLeftCmd(int step_size); | ||
85 | protected: | ||
86 | void real_execute(); | ||
87 | }; | ||
88 | |||
89 | /// move window to right | ||
90 | class MoveRightCmd: public MoveHelper { | ||
91 | public: | ||
92 | explicit MoveRightCmd(int step_size); | ||
93 | protected: | 75 | protected: |
94 | void real_execute(); | 76 | void real_execute(); |
95 | }; | ||
96 | |||
97 | /// move window up | ||
98 | class MoveUpCmd: public MoveHelper { | ||
99 | public: | ||
100 | explicit MoveUpCmd(int step_size); | ||
101 | protected: | ||
102 | void real_execute(); | ||
103 | }; | ||
104 | 77 | ||
105 | /// move window down | 78 | private: |
106 | class MoveDownCmd: public MoveHelper { | 79 | const int m_step_size_x; |
107 | public: | 80 | const int m_step_size_y; |
108 | explicit MoveDownCmd(int step_size); | ||
109 | protected: | ||
110 | void real_execute(); | ||
111 | }; | 81 | }; |
112 | 82 | ||
113 | // resize horizontal | 83 | // resize cmd |
114 | class ResizeCmd: public WindowHelperCmd{ | 84 | class ResizeCmd: public WindowHelperCmd{ |
115 | public: | 85 | public: |
116 | explicit ResizeCmd(int step_size_x, int step_size_y); | 86 | explicit ResizeCmd(int step_size_x, int step_size_y); |
diff --git a/src/FbCommandFactory.cc b/src/FbCommandFactory.cc index f9e22ce..d7bea89 100644 --- a/src/FbCommandFactory.cc +++ b/src/FbCommandFactory.cc | |||
@@ -20,7 +20,7 @@ | |||
20 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 20 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
21 | // DEALINGS IN THE SOFTWARE. | 21 | // DEALINGS IN THE SOFTWARE. |
22 | 22 | ||
23 | // $Id: FbCommandFactory.cc,v 1.15 2003/09/06 15:43:27 fluxgen Exp $ | 23 | // $Id: FbCommandFactory.cc,v 1.16 2003/09/10 14:06:37 fluxgen Exp $ |
24 | 24 | ||
25 | #include "FbCommandFactory.hh" | 25 | #include "FbCommandFactory.hh" |
26 | 26 | ||
@@ -40,7 +40,7 @@ FbCommandFactory FbCommandFactory::s_autoreg; | |||
40 | 40 | ||
41 | FbCommandFactory::FbCommandFactory() { | 41 | FbCommandFactory::FbCommandFactory() { |
42 | // setup commands that we can handle | 42 | // setup commands that we can handle |
43 | const char commands[][33] = { | 43 | const char commands[][52] = { |
44 | "arrangewindows", | 44 | "arrangewindows", |
45 | "close", | 45 | "close", |
46 | "detachclient", | 46 | "detachclient", |
@@ -57,6 +57,7 @@ FbCommandFactory::FbCommandFactory() { | |||
57 | "maximizewindow", | 57 | "maximizewindow", |
58 | "minimize", | 58 | "minimize", |
59 | "minimizewindow", | 59 | "minimizewindow", |
60 | "move", | ||
60 | "movedown", | 61 | "movedown", |
61 | "moveleft", | 62 | "moveleft", |
62 | "moveright", | 63 | "moveright", |
@@ -133,23 +134,29 @@ FbTk::Command *FbCommandFactory::stringToCommand(const std::string &command, | |||
133 | else if (command == "maximizehorizontal") | 134 | else if (command == "maximizehorizontal") |
134 | return new CurrentWindowCmd(&FluxboxWindow::maximizeHorizontal); | 135 | return new CurrentWindowCmd(&FluxboxWindow::maximizeHorizontal); |
135 | else if (command == "resize") { | 136 | else if (command == "resize") { |
136 | std::istringstream is(arguments); | 137 | std::istringstream is(arguments); |
137 | int dx = 0, dy = 0; | 138 | int dx = 0, dy = 0; |
138 | is >> dx >> dy; | 139 | is >> dx >> dy; |
139 | return new ResizeCmd(dx, dy); | 140 | return new ResizeCmd(dx, dy); |
140 | } | 141 | } |
141 | else if (command == "resizehorizontal") | 142 | else if (command == "resizehorizontal") |
142 | return new ResizeCmd(atoi(arguments.c_str()),0); | 143 | return new ResizeCmd(atoi(arguments.c_str()),0); |
143 | else if (command == "resizevertical") | 144 | else if (command == "resizevertical") |
144 | return new ResizeCmd(0,atoi(arguments.c_str())); | 145 | return new ResizeCmd(0,atoi(arguments.c_str())); |
146 | else if (command == "move") { | ||
147 | std::istringstream is(arguments); | ||
148 | int dx = 0, dy = 0; | ||
149 | is >> dx >> dy; | ||
150 | return new MoveCmd(dx, dy); | ||
151 | } | ||
145 | else if (command == "moveright") | 152 | else if (command == "moveright") |
146 | return new MoveRightCmd(atoi(arguments.c_str())); | 153 | return new MoveCmd(atoi(arguments.c_str()),0); |
147 | else if (command == "moveleft") | 154 | else if (command == "moveleft") |
148 | return new MoveLeftCmd(atoi(arguments.c_str())); | 155 | return new MoveCmd(-atoi(arguments.c_str()),0); |
149 | else if (command == "moveup") | 156 | else if (command == "moveup") |
150 | return new MoveUpCmd(atoi(arguments.c_str())); | 157 | return new MoveCmd(0,-atoi(arguments.c_str())); |
151 | else if (command == "movedown") | 158 | else if (command == "movedown") |
152 | return new MoveDownCmd(atoi(arguments.c_str())); | 159 | return new MoveCmd(0,atoi(arguments.c_str())); |
153 | else if (command == "raise") | 160 | else if (command == "raise") |
154 | return new CurrentWindowCmd(&FluxboxWindow::raise); | 161 | return new CurrentWindowCmd(&FluxboxWindow::raise); |
155 | else if (command == "lower") | 162 | else if (command == "lower") |