diff options
-rw-r--r-- | src/Screen.hh | 50 |
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 | |||
55 | class Netizen; | 48 | class Netizen; |
56 | class Toolbar; | 49 | class Toolbar; |
57 | class FbWinFrameTheme; | 50 | class FbWinFrameTheme; |
58 | class RootTheme; | 51 | class RootTheme; |
59 | class WinClient; | 52 | class WinClient; |
53 | class Workspace; | ||
60 | 54 | ||
61 | namespace FbTk { | 55 | namespace FbTk { |
62 | class MenuTheme; | 56 | class MenuTheme; |
@@ -64,7 +58,7 @@ class Menu; | |||
64 | class ImageControl; | 58 | class 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 | ||