summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Screen.hh50
1 files changed, 16 insertions, 34 deletions
diff --git a/src/Screen.hh b/src/Screen.hh
index 1e010ab..8dbefeb 100644
--- a/src/Screen.hh
+++ b/src/Screen.hh
@@ -22,17 +22,14 @@
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.83 2003/04/25 09:07:08 rathnor Exp $ 25// $Id: Screen.hh,v 1.84 2003/04/25 11:02:57 fluxgen Exp $
26 26
27#ifndef SCREEN_HH 27#ifndef SCREEN_HH
28#define SCREEN_HH 28#define SCREEN_HH
29 29
30#include "Theme.hh"
31#include "BaseDisplay.hh" 30#include "BaseDisplay.hh"
32#include "Workspace.hh"
33#include "Resource.hh" 31#include "Resource.hh"
34#include "Subject.hh" 32#include "Subject.hh"
35#include "FbWinFrameTheme.hh"
36#include "MultLayers.hh" 33#include "MultLayers.hh"
37#include "XLayerItem.hh" 34#include "XLayerItem.hh"
38#include "ToolbarHandler.hh" 35#include "ToolbarHandler.hh"
@@ -48,15 +45,12 @@
48#include <fstream> 45#include <fstream>
49#include <memory> 46#include <memory>
50 47
51#ifdef HAVE_CONFIG_H
52#include "config.h"
53#endif // HAVE_CONFIG_H
54
55class Netizen; 48class Netizen;
56class Toolbar; 49class Toolbar;
57class FbWinFrameTheme; 50class FbWinFrameTheme;
58class RootTheme; 51class RootTheme;
59class WinClient; 52class WinClient;
53class Workspace;
60 54
61namespace FbTk { 55namespace FbTk {
62class MenuTheme; 56class MenuTheme;
@@ -64,7 +58,7 @@ class Menu;
64class ImageControl; 58class ImageControl;
65}; 59};
66 60
67/// Handles screen connection and screen clients 61/// Handles screen connection, screen clients and workspaces
68/** 62/**
69 Create a toolbar and workspaces, handles switching between workspaces and windows 63 Create a toolbar and workspaces, handles switching between workspaces and windows
70 */ 64 */
@@ -97,9 +91,7 @@ public:
97 inline bool doFocusLast() const { return *resource.focus_last; } 91 inline bool doFocusLast() const { return *resource.focus_last; }
98 inline bool doShowWindowPos() const { return *resource.show_window_pos; } 92 inline bool doShowWindowPos() const { return *resource.show_window_pos; }
99 bool antialias() const { return *resource.antialias; } 93 bool antialias() const { return *resource.antialias; }
100 inline GC getOpGC() const { return theme->getOpGC(); } 94
101
102 inline const FbTk::Color *getBorderColor() const { return &theme->getBorderColor(); }
103 inline FbTk::ImageControl *getImageControl() { return image_control; } 95 inline FbTk::ImageControl *getImageControl() { return image_control; }
104 const FbTk::Menu * const getRootmenu() const { return m_rootmenu.get(); } 96 const FbTk::Menu * const getRootmenu() const { return m_rootmenu.get(); }
105 FbTk::Menu * const getRootmenu() { return m_rootmenu.get(); } 97 FbTk::Menu * const getRootmenu() { return m_rootmenu.get(); }
@@ -111,10 +103,10 @@ public:
111 103
112 inline bool &doSlitAutoHide() { return *resource.slit_auto_hide; } 104 inline bool &doSlitAutoHide() { return *resource.slit_auto_hide; }
113 inline const bool &doSlitAutoHide() const { return *resource.slit_auto_hide; } 105 inline const bool &doSlitAutoHide() const { return *resource.slit_auto_hide; }
114#ifdef SLIT 106
115 inline Slit *getSlit() { return m_slit.get(); } 107 inline Slit *getSlit() { return m_slit.get(); }
116 inline const Slit *getSlit() const { return m_slit.get(); } 108 inline const Slit *getSlit() const { return m_slit.get(); }
117#endif // SLIT 109
118 inline Slit::Placement getSlitPlacement() const { return *resource.slit_placement; } 110 inline Slit::Placement getSlitPlacement() const { return *resource.slit_placement; }
119 inline Slit::Direction getSlitDirection() const { return *resource.slit_direction; } 111 inline Slit::Direction getSlitDirection() const { return *resource.slit_direction; }
120 inline void saveSlitPlacement(Slit::Placement p) { resource.slit_placement = p; } 112 inline void saveSlitPlacement(Slit::Placement p) { resource.slit_placement = p; }
@@ -136,13 +128,7 @@ public:
136 const FbTk::Menu *getWorkspacemenu() const { return workspacemenu.get(); } 128 const FbTk::Menu *getWorkspacemenu() const { return workspacemenu.get(); }
137 FbTk::Menu *getWorkspacemenu() { return workspacemenu.get(); } 129 FbTk::Menu *getWorkspacemenu() { return workspacemenu.get(); }
138 130
139 inline unsigned int getHandleWidth() const { return theme->getHandleWidth(); } 131 inline unsigned int getCurrentWorkspaceID() const;
140 inline unsigned int getBevelWidth() const { return theme->getBevelWidth(); }
141 inline unsigned int getFrameWidth() const { return theme->getFrameWidth(); }
142 inline unsigned int getBorderWidth() const { return theme->getBorderWidth(); }
143 inline unsigned int getBorderWidth2x() const { return theme->getBorderWidth()*2; }
144 inline unsigned int getCurrentWorkspaceID() const { return current_workspace->workspaceID(); }
145
146 Pixmap rootPixmap() const { return m_root_pm; } 132 Pixmap rootPixmap() const { return m_root_pm; }
147 /* 133 /*
148 maximum screen surface 134 maximum screen surface
@@ -234,14 +220,12 @@ public:
234 inline bool isClock24Hour() { return resource.clock24hour; } 220 inline bool isClock24Hour() { return resource.clock24hour; }
235 inline void saveClock24Hour(bool c) { resource.clock24hour = c; } 221 inline void saveClock24Hour(bool c) { resource.clock24hour = c; }
236 222
237 inline Theme::WindowStyle *getWindowStyle() { return &theme->getWindowStyle(); } 223 inline FbWinFrameTheme &winFrameTheme() { return *m_windowtheme.get(); }
238 inline const Theme::WindowStyle *getWindowStyle() const { return &theme->getWindowStyle(); } 224 inline const FbWinFrameTheme &winFrameTheme() const { return *m_windowtheme.get(); }
239 inline FbWinFrameTheme &winFrameTheme() { return m_windowtheme; }
240 inline const FbWinFrameTheme &winFrameTheme() const { return m_windowtheme; }
241 inline FbTk::MenuTheme *menuTheme() { return m_menutheme.get(); } 225 inline FbTk::MenuTheme *menuTheme() { return m_menutheme.get(); }
242 inline const FbTk::MenuTheme *menuTheme() const { return m_menutheme.get(); } 226 inline const FbTk::MenuTheme *menuTheme() const { return m_menutheme.get(); }
227 inline const RootTheme &rootTheme() const { return *m_root_theme.get(); }
243 228
244 const Theme *getTheme() const { return theme; }
245 FluxboxWindow *getIcon(unsigned int index); 229 FluxboxWindow *getIcon(unsigned int index);
246 FbTk::MultLayers &layerManager() { return m_layermanager; } 230 FbTk::MultLayers &layerManager() { return m_layermanager; }
247 const FbTk::MultLayers &layerManager() const { return m_layermanager; } 231 const FbTk::MultLayers &layerManager() const { return m_layermanager; }
@@ -270,8 +254,10 @@ public:
270 254
271 std::string getNameOfWorkspace(unsigned int workspace) const; 255 std::string getNameOfWorkspace(unsigned int workspace) const;
272 void changeWorkspaceID(unsigned int); 256 void changeWorkspaceID(unsigned int);
273 void sendToWorkspace(unsigned int workspace, FluxboxWindow *win=0, bool changeworkspace=true); 257 void sendToWorkspace(unsigned int workspace, FluxboxWindow *win=0,
274 void reassociateWindow(FluxboxWindow *window, unsigned int workspace_id, bool ignore_sticky); 258 bool changeworkspace=true);
259 void reassociateWindow(FluxboxWindow *window, unsigned int workspace_id,
260 bool ignore_sticky);
275 void prevFocus() { prevFocus(0); } 261 void prevFocus() { prevFocus(0); }
276 void nextFocus() { nextFocus(0); } 262 void nextFocus() { nextFocus(0); }
277 void prevFocus(int options); 263 void prevFocus(int options);
@@ -372,9 +358,7 @@ private:
372 FocusedWindows focused_list; 358 FocusedWindows focused_list;
373 FocusedWindows::iterator cycling_window; 359 FocusedWindows::iterator cycling_window;
374 360
375#ifdef SLIT
376 std::auto_ptr<Slit> m_slit; 361 std::auto_ptr<Slit> m_slit;
377#endif // SLIT
378 362
379 Workspace *current_workspace; 363 Workspace *current_workspace;
380 std::auto_ptr<FbTk::Menu> workspacemenu; 364 std::auto_ptr<FbTk::Menu> workspacemenu;
@@ -386,11 +370,8 @@ private:
386 Workspaces workspacesList; 370 Workspaces workspacesList;
387 371
388 Window auto_group_window; 372 Window auto_group_window;
389
390 //!!
391 Theme *theme; ///< obsolete
392 373
393 FbWinFrameTheme m_windowtheme; 374 std::auto_ptr<FbWinFrameTheme> m_windowtheme;
394 std::auto_ptr<FbTk::MenuTheme> m_menutheme; 375 std::auto_ptr<FbTk::MenuTheme> m_menutheme;
395 376
396 struct ScreenResource { 377 struct ScreenResource {
@@ -432,6 +413,7 @@ private:
432 std::auto_ptr<RootTheme> m_root_theme; 413 std::auto_ptr<RootTheme> m_root_theme;
433 ToolbarHandler *m_toolbarhandler; 414 ToolbarHandler *m_toolbarhandler;
434 Pixmap m_root_pm; 415 Pixmap m_root_pm;
416
435}; 417};
436 418
437 419