diff options
Diffstat (limited to 'src/Slit.hh')
-rw-r--r-- | src/Slit.hh | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/Slit.hh b/src/Slit.hh index 75111d0..61a7d33 100644 --- a/src/Slit.hh +++ b/src/Slit.hh | |||
@@ -35,6 +35,7 @@ class Slitmenu; | |||
35 | #include "Basemenu.hh" | 35 | #include "Basemenu.hh" |
36 | 36 | ||
37 | #include <list> | 37 | #include <list> |
38 | #include <string> | ||
38 | 39 | ||
39 | class Slitmenu : public Basemenu { | 40 | class Slitmenu : public Basemenu { |
40 | public: | 41 | public: |
@@ -130,6 +131,7 @@ public: | |||
130 | void reconfigure(void); | 131 | void reconfigure(void); |
131 | void reposition(void); | 132 | void reposition(void); |
132 | void shutdown(void); | 133 | void shutdown(void); |
134 | void saveClientList(void); | ||
133 | 135 | ||
134 | void buttonPressEvent(XButtonEvent *); | 136 | void buttonPressEvent(XButtonEvent *); |
135 | void enterNotifyEvent(XCrossingEvent *); | 137 | void enterNotifyEvent(XCrossingEvent *); |
@@ -145,13 +147,27 @@ public: | |||
145 | private: | 147 | private: |
146 | class SlitClient { | 148 | class SlitClient { |
147 | public: | 149 | public: |
150 | SlitClient(BScreen *, Window); // For adding an actual window | ||
151 | SlitClient(const char *); // For adding a placeholder | ||
152 | |||
153 | // Now we pre-initialize a list of slit clients with names for | ||
154 | // comparison with incoming client windows. This allows the slit | ||
155 | // to maintain a sorted order based on a saved window name list. | ||
156 | // Incoming windows not found in the list are appended. Matching | ||
157 | // duplicates are inserted after the last found instance of the | ||
158 | // matching name. | ||
159 | std::string match_name; | ||
160 | |||
148 | Window window, client_window, icon_window; | 161 | Window window, client_window, icon_window; |
149 | 162 | ||
150 | int x, y; | 163 | int x, y; |
151 | unsigned int width, height; | 164 | unsigned int width, height; |
165 | |||
166 | void initialize(BScreen * = NULL, Window = None); | ||
152 | }; | 167 | }; |
153 | 168 | ||
154 | void removeClient(SlitClient *, bool = true); | 169 | void removeClient(SlitClient *, bool, bool); |
170 | void loadClientList(void); | ||
155 | 171 | ||
156 | Bool on_top, hidden, do_auto_hide; | 172 | Bool on_top, hidden, do_auto_hide; |
157 | Display *display; | 173 | Display *display; |
@@ -164,6 +180,7 @@ private: | |||
164 | 180 | ||
165 | SlitClients clientList; | 181 | SlitClients clientList; |
166 | Slitmenu slitmenu; | 182 | Slitmenu slitmenu; |
183 | std::string clientListPath; | ||
167 | 184 | ||
168 | struct frame { | 185 | struct frame { |
169 | Pixmap pixmap; | 186 | Pixmap pixmap; |