aboutsummaryrefslogtreecommitdiff
path: root/src/Screen.hh
diff options
context:
space:
mode:
authorrathnor <rathnor>2003-04-15 00:50:25 (GMT)
committerrathnor <rathnor>2003-04-15 00:50:25 (GMT)
commit58e19dc91eba51739d4b8ed2dfdbb49e28d96379 (patch)
tree1fbb529d593c1b1b1fabb76832a97783649cab23 /src/Screen.hh
parent1aa5ede1b70dfba6519eeaa38101948bbdfea8a2 (diff)
downloadfluxbox_pavel-58e19dc91eba51739d4b8ed2dfdbb49e28d96379.zip
fluxbox_pavel-58e19dc91eba51739d4b8ed2dfdbb49e28d96379.tar.bz2
add most recently used window cycling (Simon)
It is now the default cycling action
Diffstat (limited to 'src/Screen.hh')
-rw-r--r--src/Screen.hh25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/Screen.hh b/src/Screen.hh
index b4adcbf..8be5d42 100644
--- a/src/Screen.hh
+++ b/src/Screen.hh
@@ -22,7 +22,7 @@
22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23// DEALINGS IN THE SOFTWARE. 23// DEALINGS IN THE SOFTWARE.
24 24
25// $Id: Screen.hh,v 1.74 2003/04/14 12:13:36 fluxgen Exp $ 25// $Id: Screen.hh,v 1.75 2003/04/15 00:50:24 rathnor Exp $
26 26
27#ifndef SCREEN_HH 27#ifndef SCREEN_HH
28#define SCREEN_HH 28#define SCREEN_HH
@@ -151,6 +151,7 @@ public:
151 unsigned int getMaxBottom() const; 151 unsigned int getMaxBottom() const;
152 152
153 typedef std::vector<FluxboxWindow *> Icons; 153 typedef std::vector<FluxboxWindow *> Icons;
154 typedef std::list<WinClient *> FocusedWindows;
154 155
155 /// @return number of workspaces 156 /// @return number of workspaces
156 inline unsigned int getCount() const { return workspacesList.size(); } 157 inline unsigned int getCount() const { return workspacesList.size(); }
@@ -158,6 +159,8 @@ public:
158 inline unsigned int getIconCount() const { return iconList.size(); } 159 inline unsigned int getIconCount() const { return iconList.size(); }
159 inline const Icons &getIconList() const { return iconList; } 160 inline const Icons &getIconList() const { return iconList; }
160 inline Icons &getIconList() { return iconList; } 161 inline Icons &getIconList() { return iconList; }
162 inline const FocusedWindows &getFocusedList() const { return focused_list; }
163 inline FocusedWindows &getFocusedList() { return focused_list; }
161 const Workspaces &getWorkspacesList() const { return workspacesList; } 164 const Workspaces &getWorkspacesList() const { return workspacesList; }
162 const WorkspaceNames &getWorkspaceNames() const { return workspaceNames; } 165 const WorkspaceNames &getWorkspaceNames() const { return workspaceNames; }
163 /** 166 /**
@@ -258,6 +261,7 @@ public:
258 void removeIcon(FluxboxWindow *win); 261 void removeIcon(FluxboxWindow *win);
259 // remove window 262 // remove window
260 void removeWindow(FluxboxWindow *win); 263 void removeWindow(FluxboxWindow *win);
264 void removeClient(WinClient &client);
261 265
262 std::string getNameOfWorkspace(unsigned int workspace) const; 266 std::string getNameOfWorkspace(unsigned int workspace) const;
263 void changeWorkspaceID(unsigned int); 267 void changeWorkspaceID(unsigned int);
@@ -269,6 +273,8 @@ public:
269 void prevFocus(int options); 273 void prevFocus(int options);
270 void nextFocus(int options); 274 void nextFocus(int options);
271 void raiseFocus(); 275 void raiseFocus();
276 void setFocusedWindow(WinClient &winclient);
277
272 void reconfigure(); 278 void reconfigure();
273 void rereadMenu(); 279 void rereadMenu();
274 void shutdown(); 280 void shutdown();
@@ -276,6 +282,8 @@ public:
276 void showGeometry(unsigned int, unsigned int); 282 void showGeometry(unsigned int, unsigned int);
277 void hideGeometry(); 283 void hideGeometry();
278 284
285 void notifyReleasedKeys(XKeyEvent &ke);
286
279 void setLayer(FbTk::XLayerItem &item, int layernum); 287 void setLayer(FbTk::XLayerItem &item, int layernum);
280 // remove? no, items are never removed from their layer until they die 288 // remove? no, items are never removed from their layer until they die
281 289
@@ -306,7 +314,7 @@ public:
306 WINDOWLOWER, WINDOWSTICK, WINDOWKILL, SETSTYLE, WINDOWTAB}; 314 WINDOWLOWER, WINDOWSTICK, WINDOWKILL, SETSTYLE, WINDOWTAB};
307 // prevFocus/nextFocus option bits 315 // prevFocus/nextFocus option bits
308 enum { CYCLESKIPLOWERTABS = 0x01, CYCLESKIPSTUCK = 0x02, CYCLESKIPSHADED = 0x04, 316 enum { CYCLESKIPLOWERTABS = 0x01, CYCLESKIPSTUCK = 0x02, CYCLESKIPSHADED = 0x04,
309 CYCLEDEFAULT = 0x00 }; 317 CYCLELINEAR = 0x08, CYCLEDEFAULT = 0x00 };
310 318
311 class ScreenSubject:public FbTk::Subject { 319 class ScreenSubject:public FbTk::Subject {
312 public: 320 public:
@@ -334,10 +342,8 @@ private:
334 m_currentworkspace_sig; ///< current workspace signal 342 m_currentworkspace_sig; ///< current workspace signal
335 343
336 FbTk::MultLayers m_layermanager; 344 FbTk::MultLayers m_layermanager;
337 //!!
338 Theme *theme; ///< obsolete
339 345
340 Bool root_colormap_installed, managed, geom_visible; 346 Bool root_colormap_installed, managed, geom_visible, cycling_focus;
341 GC opGC; 347 GC opGC;
342 Pixmap geom_pixmap; 348 Pixmap geom_pixmap;
343 FbTk::FbWindow geom_window; 349 FbTk::FbWindow geom_window;
@@ -353,6 +359,12 @@ private:
353 Rootmenus rootmenuList; 359 Rootmenus rootmenuList;
354 Netizens netizenList; 360 Netizens netizenList;
355 Icons iconList; 361 Icons iconList;
362
363 // This list keeps the order of window focusing for this screen
364 // Screen global so it works for sticky windows too.
365 FocusedWindows focused_list;
366 FocusedWindows::iterator cycling_window;
367
356#ifdef SLIT 368#ifdef SLIT
357 std::auto_ptr<Slit> m_slit; 369 std::auto_ptr<Slit> m_slit;
358#endif // SLIT 370#endif // SLIT
@@ -368,6 +380,9 @@ private:
368 380
369 Window auto_group_window; 381 Window auto_group_window;
370 382
383 //!!
384 Theme *theme; ///< obsolete
385
371 FbWinFrameTheme m_windowtheme; 386 FbWinFrameTheme m_windowtheme;
372 std::auto_ptr<FbTk::MenuTheme> m_menutheme; 387 std::auto_ptr<FbTk::MenuTheme> m_menutheme;
373 388