aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfluxgen <fluxgen>2003-10-25 22:11:22 (GMT)
committerfluxgen <fluxgen>2003-10-25 22:11:22 (GMT)
commit9c35bbdd40ada59658feb9b98535f77a473bbaa5 (patch)
tree7e01708e15e011a4a45547f1e1552866498dafd8
parent4d161094576b29ca1a41e807fabb80d672fc1852 (diff)
downloadfluxbox-9c35bbdd40ada59658feb9b98535f77a473bbaa5.zip
fluxbox-9c35bbdd40ada59658feb9b98535f77a473bbaa5.tar.bz2
added resizeto and moveto commands
-rw-r--r--src/CurrentWindowCmd.cc20
-rw-r--r--src/CurrentWindowCmd.hh29
-rw-r--r--src/FbCommandFactory.cc16
3 files changed, 61 insertions, 4 deletions
diff --git a/src/CurrentWindowCmd.cc b/src/CurrentWindowCmd.cc
index 4f49362..37e4782 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.6 2003/09/10 14:07:48 fluxgen Exp $ 23// $Id: CurrentWindowCmd.cc,v 1.7 2003/10/25 22:11:22 fluxgen Exp $
24 24
25#include "CurrentWindowCmd.hh" 25#include "CurrentWindowCmd.hh"
26 26
@@ -80,3 +80,21 @@ void ResizeCmd::real_execute() {
80 fbwindow().width() + m_step_size_x * fbwindow().winClient().width_inc, 80 fbwindow().width() + m_step_size_x * fbwindow().winClient().width_inc,
81 fbwindow().height() + m_step_size_y * fbwindow().winClient().height_inc ); 81 fbwindow().height() + m_step_size_y * fbwindow().winClient().height_inc );
82} 82}
83
84MoveToCmd::MoveToCmd(const int step_size_x, const int step_size_y) :
85 m_step_size_x(step_size_x), m_step_size_y(step_size_y) { }
86
87void MoveToCmd::real_execute() {
88 fbwindow().move(
89 m_step_size_x,
90 m_step_size_y );
91}
92
93ResizeToCmd::ResizeToCmd(const int step_size_x, const int step_size_y) :
94 m_step_size_x(step_size_x), m_step_size_y(step_size_y) { }
95
96void ResizeToCmd::real_execute() {
97 fbwindow().resize(
98 m_step_size_x * fbwindow().winClient().width_inc,
99 m_step_size_y * fbwindow().winClient().height_inc );
100}
diff --git a/src/CurrentWindowCmd.hh b/src/CurrentWindowCmd.hh
index 18bcc45..c4c559b 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.5 2003/09/10 14:07:48 fluxgen Exp $ 23// $Id: CurrentWindowCmd.hh,v 1.6 2003/10/25 22:11:22 fluxgen Exp $
24 24
25#ifndef CURRENTWINDOWCMD_HH 25#ifndef CURRENTWINDOWCMD_HH
26#define CURRENTWINDOWCMD_HH 26#define CURRENTWINDOWCMD_HH
@@ -69,6 +69,7 @@ private:
69 const int m_workspace_num; 69 const int m_workspace_num;
70}; 70};
71 71
72// move cmd, relative position
72class MoveCmd: public WindowHelperCmd { 73class MoveCmd: public WindowHelperCmd {
73public: 74public:
74 explicit MoveCmd(const int step_size_x, const int step_size_y); 75 explicit MoveCmd(const int step_size_x, const int step_size_y);
@@ -80,7 +81,7 @@ private:
80 const int m_step_size_y; 81 const int m_step_size_y;
81}; 82};
82 83
83// resize cmd 84// resize cmd, relative size
84class ResizeCmd: public WindowHelperCmd{ 85class ResizeCmd: public WindowHelperCmd{
85public: 86public:
86 explicit ResizeCmd(int step_size_x, int step_size_y); 87 explicit ResizeCmd(int step_size_x, int step_size_y);
@@ -92,4 +93,28 @@ private:
92 const int m_step_size_x; 93 const int m_step_size_x;
93 const int m_step_size_y; 94 const int m_step_size_y;
94}; 95};
96
97class MoveToCmd: public WindowHelperCmd {
98public:
99 explicit MoveToCmd(const int step_size_x, const int step_size_y);
100protected:
101 void real_execute();
102
103private:
104 const int m_step_size_x;
105 const int m_step_size_y;
106};
107
108// resize cmd
109class ResizeToCmd: public WindowHelperCmd{
110public:
111 explicit ResizeToCmd(int step_size_x, int step_size_y);
112protected:
113 void real_execute();
114
115private:
116
117 const int m_step_size_x;
118 const int m_step_size_y;
119};
95#endif // CURRENTWINDOWCMD_HH 120#endif // CURRENTWINDOWCMD_HH
diff --git a/src/FbCommandFactory.cc b/src/FbCommandFactory.cc
index 8e0a1fd..b0b5976 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.18 2003/09/29 14:22:07 fluxgen Exp $ 23// $Id: FbCommandFactory.cc,v 1.19 2003/10/25 22:11:22 fluxgen Exp $
24 24
25#include "FbCommandFactory.hh" 25#include "FbCommandFactory.hh"
26 26
@@ -62,6 +62,7 @@ FbCommandFactory::FbCommandFactory() {
62 "maximizewindow", 62 "maximizewindow",
63 "minimize", 63 "minimize",
64 "minimizewindow", 64 "minimizewindow",
65 "moveto",
65 "move", 66 "move",
66 "movedown", 67 "movedown",
67 "moveleft", 68 "moveleft",
@@ -80,6 +81,7 @@ FbCommandFactory::FbCommandFactory() {
80 "quit", 81 "quit",
81 "raise", 82 "raise",
82 "reconfigure", 83 "reconfigure",
84 "resizeto",
83 "resize", 85 "resize",
84 "resizehorizontal", 86 "resizehorizontal",
85 "resizevertical", 87 "resizevertical",
@@ -144,10 +146,22 @@ FbTk::Command *FbCommandFactory::stringToCommand(const std::string &command,
144 is >> dx >> dy; 146 is >> dx >> dy;
145 return new ResizeCmd(dx, dy); 147 return new ResizeCmd(dx, dy);
146 } 148 }
149 else if (command == "resizeto") {
150 std::istringstream is(arguments);
151 int dx = 0, dy = 0;
152 is >> dx >> dy;
153 return new ResizeToCmd(dx, dy);
154 }
147 else if (command == "resizehorizontal") 155 else if (command == "resizehorizontal")
148 return new ResizeCmd(atoi(arguments.c_str()),0); 156 return new ResizeCmd(atoi(arguments.c_str()),0);
149 else if (command == "resizevertical") 157 else if (command == "resizevertical")
150 return new ResizeCmd(0,atoi(arguments.c_str())); 158 return new ResizeCmd(0,atoi(arguments.c_str()));
159 else if (command == "moveto") {
160 std::istringstream is(arguments);
161 int dx = 0, dy = 0;
162 is >> dx >> dy;
163 return new MoveToCmd(dx,dy);
164 }
151 else if (command == "move") { 165 else if (command == "move") {
152 std::istringstream is(arguments); 166 std::istringstream is(arguments);
153 int dx = 0, dy = 0; 167 int dx = 0, dy = 0;