aboutsummaryrefslogtreecommitdiff
path: root/src/FbCommands.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/FbCommands.hh')
-rw-r--r--src/FbCommands.hh162
1 files changed, 162 insertions, 0 deletions
diff --git a/src/FbCommands.hh b/src/FbCommands.hh
new file mode 100644
index 0000000..bc67610
--- /dev/null
+++ b/src/FbCommands.hh
@@ -0,0 +1,162 @@
1// FbCommands.hh for Fluxbox
2// Copyright (c) 2003 Henrik Kinnunen (fluxgen at users.sourceforge.net)
3//
4// Permission is hereby granted, free of charge, to any person obtaining a
5// copy of this software and associated documentation files (the "Software"),
6// to deal in the Software without restriction, including without limitation
7// the rights to use, copy, modify, merge, publish, distribute, sublicense,
8// and/or sell copies of the Software, and to permit persons to whom the
9// Software is furnished to do so, subject to the following conditions:
10//
11// The above copyright notice and this permission notice shall be included in
12// all copies or substantial portions of the Software.
13//
14// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20// DEALINGS IN THE SOFTWARE.
21
22// $Id: FbCommands.hh,v 1.19 2004/04/22 21:12:33 fluxgen Exp $
23
24// \file contains basic commands to restart, reconfigure, execute command and exit fluxbox
25
26#ifndef FBCOMMANDS_HH
27#define FBCOMMANDS_HH
28
29#include "Command.hh"
30
31#include <string>
32
33namespace FbCommands {
34
35/// executes a system command
36class ExecuteCmd: public FbTk::Command {
37public:
38 ExecuteCmd(const std::string &cmd, int screen_num = -1);
39 void execute();
40private:
41 std::string m_cmd;
42 const int m_screen_num;
43};
44
45/// exit fluxbox
46class ExitFluxboxCmd: public FbTk::Command {
47public:
48 void execute();
49};
50
51/// saves resources
52class SaveResources: public FbTk::Command {
53public:
54 void execute();
55};
56
57/// restarts fluxbox
58class RestartFluxboxCmd: public FbTk::Command {
59public:
60 RestartFluxboxCmd(const std::string &cmd);
61 void execute();
62private:
63 std::string m_cmd;
64};
65
66/// reconfigures fluxbox
67class ReconfigureFluxboxCmd: public FbTk::Command {
68public:
69 void execute();
70};
71
72class ReloadStyleCmd: public FbTk::Command {
73public:
74 void execute();
75};
76
77class SetStyleCmd: public FbTk::Command {
78public:
79 explicit SetStyleCmd(const std::string &filename);
80 void execute();
81private:
82 std::string m_filename;
83};
84
85class ShowRootMenuCmd: public FbTk::Command {
86public:
87 void execute();
88};
89
90class ShowWorkspaceMenuCmd: public FbTk::Command {
91public:
92 void execute();
93};
94
95class SetWorkspaceNameCmd: public FbTk::Command {
96public:
97 SetWorkspaceNameCmd(const std::string &name, int spaceid = -1);
98 void execute();
99private:
100 std::string m_name;
101 int m_workspace;
102};
103
104class WorkspaceNameDialogCmd: public FbTk::Command {
105public:
106 void execute();
107};
108
109class CommandDialogCmd: public FbTk::Command {
110public:
111 void execute();
112};
113
114} // end namespace FbCommands
115
116class SetResourceValueCmd: public FbTk::Command {
117public:
118 SetResourceValueCmd(const std::string &resourcename, const std::string &value);
119 void execute();
120private:
121 const std::string m_resname;
122 const std::string m_value;
123};
124
125class SetResourceValueDialogCmd: public FbTk::Command {
126public:
127 void execute();
128};
129
130class BindKeyCmd: public FbTk::Command {
131public:
132 BindKeyCmd(const std::string &keybind);
133 void execute();
134private:
135 const std::string m_keybind;
136};
137
138/// deiconifies iconified windows
139class DeiconifyCmd: public FbTk::Command {
140public:
141 enum Mode {
142 LAST,
143 LASTWORKSPACE,
144 ALL,
145 ALLWORKSPACE
146 };
147
148 enum Destination {
149 CURRENT, /// deiconification on current workspace
150 ORIGIN, /// deiconification on origin workspace, change to that ws
151 ORIGINQUIET /// deiconification on origin workspace, dont change ws
152 };
153
154 DeiconifyCmd(const Mode mode= LASTWORKSPACE,
155 const Destination dest= CURRENT);
156 void execute();
157private:
158 Mode m_mode;
159 Destination m_dest;
160};
161
162#endif // FBCOMMANDS_HH