diff options
Diffstat (limited to 'src/Screen.hh')
-rw-r--r-- | src/Screen.hh | 82 |
1 files changed, 41 insertions, 41 deletions
diff --git a/src/Screen.hh b/src/Screen.hh index 689150c..8f5129a 100644 --- a/src/Screen.hh +++ b/src/Screen.hh | |||
@@ -24,8 +24,8 @@ | |||
24 | 24 | ||
25 | // $Id$ | 25 | // $Id$ |
26 | 26 | ||
27 | #ifndef SCREEN_HH | 27 | #ifndef SCREEN_HH |
28 | #define SCREEN_HH | 28 | #define SCREEN_HH |
29 | 29 | ||
30 | #include "FbWinFrame.hh" | 30 | #include "FbWinFrame.hh" |
31 | #include "FbRootWindow.hh" | 31 | #include "FbRootWindow.hh" |
@@ -83,11 +83,11 @@ class BScreen: public FbTk::EventHandler, public FbTk::Observer, | |||
83 | private FbTk::NotCopyable { | 83 | private FbTk::NotCopyable { |
84 | public: | 84 | public: |
85 | /// a window becomes active / focussed on a different workspace | 85 | /// a window becomes active / focussed on a different workspace |
86 | enum FollowModel { | 86 | enum FollowModel { |
87 | IGNORE_OTHER_WORKSPACES = 0, ///< who cares? | 87 | IGNORE_OTHER_WORKSPACES = 0, ///< who cares? |
88 | FOLLOW_ACTIVE_WINDOW, ///< go to that workspace | 88 | FOLLOW_ACTIVE_WINDOW, ///< go to that workspace |
89 | SEMIFOLLOW_ACTIVE_WINDOW, ///< fetch iconified windows, else follow | 89 | SEMIFOLLOW_ACTIVE_WINDOW, ///< fetch iconified windows, else follow |
90 | FETCH_ACTIVE_WINDOW ///< put that window to the current workspace | 90 | FETCH_ACTIVE_WINDOW ///< put that window to the current workspace |
91 | }; | 91 | }; |
92 | 92 | ||
93 | 93 | ||
@@ -129,41 +129,41 @@ public: | |||
129 | FbTk::Menu &windowMenu() { return *m_windowmenu.get(); } | 129 | FbTk::Menu &windowMenu() { return *m_windowmenu.get(); } |
130 | ExtraMenus &extraWindowMenus() { return m_extramenus; } | 130 | ExtraMenus &extraWindowMenus() { return m_extramenus; } |
131 | const ExtraMenus &extraWindowMenus() const { return m_extramenus; } | 131 | const ExtraMenus &extraWindowMenus() const { return m_extramenus; } |
132 | 132 | ||
133 | FbWinFrame::TabPlacement getTabPlacement() const { return *resource.tab_placement; } | 133 | FbWinFrame::TabPlacement getTabPlacement() const { return *resource.tab_placement; } |
134 | 134 | ||
135 | inline unsigned int noFocusWhileTypingDelay() const { return *resource.typing_delay; } | 135 | unsigned int noFocusWhileTypingDelay() const { return *resource.typing_delay; } |
136 | inline FollowModel getFollowModel() const { return *resource.follow_model; } | 136 | FollowModel getFollowModel() const { return *resource.follow_model; } |
137 | inline FollowModel getUserFollowModel() const { return *resource.user_follow_model; } | 137 | FollowModel getUserFollowModel() const { return *resource.user_follow_model; } |
138 | 138 | ||
139 | inline const std::string &getScrollAction() const { return *resource.scroll_action; } | 139 | const std::string &getScrollAction() const { return *resource.scroll_action; } |
140 | inline const bool getScrollReverse() const { return *resource.scroll_reverse; } | 140 | const bool getScrollReverse() const { return *resource.scroll_reverse; } |
141 | inline const bool allowRemoteActions() const { return *resource.allow_remote_actions; } | 141 | const bool allowRemoteActions() const { return *resource.allow_remote_actions; } |
142 | inline const bool clientMenuUsePixmap() const { return *resource.clientmenu_use_pixmap; } | 142 | const bool clientMenuUsePixmap() const { return *resource.clientmenu_use_pixmap; } |
143 | inline const bool getDefaultInternalTabs() const { return *resource.default_internal_tabs; } | 143 | const bool getDefaultInternalTabs() const { return *resource.default_internal_tabs; } |
144 | inline const bool getTabsUsePixmap() const { return *resource.tabs_use_pixmap; } | 144 | const bool getTabsUsePixmap() const { return *resource.tabs_use_pixmap; } |
145 | inline const bool getMaxOverTabs() const { return *resource.max_over_tabs; } | 145 | const bool getMaxOverTabs() const { return *resource.max_over_tabs; } |
146 | 146 | ||
147 | inline unsigned int getTabWidth() const { return *resource.tab_width; } | 147 | unsigned int getTabWidth() const { return *resource.tab_width; } |
148 | /// @return the slit, @see Slit | 148 | /// @return the slit, @see Slit |
149 | inline Slit *slit() { return m_slit.get(); } | 149 | Slit *slit() { return m_slit.get(); } |
150 | /// @return the slit, @see Slit | 150 | /// @return the slit, @see Slit |
151 | inline const Slit *slit() const { return m_slit.get(); } | 151 | const Slit *slit() const { return m_slit.get(); } |
152 | /** | 152 | /** |
153 | * @param w the workspace number | 153 | * @param w the workspace number |
154 | * @return workspace for the given workspace number | 154 | * @return workspace for the given workspace number |
155 | */ | 155 | */ |
156 | inline Workspace *getWorkspace(unsigned int w) { return ( w < m_workspaces_list.size() ? m_workspaces_list[w] : 0); } | 156 | Workspace *getWorkspace(unsigned int w) { return ( w < m_workspaces_list.size() ? m_workspaces_list[w] : 0); } |
157 | /** | 157 | /** |
158 | * @param w the workspace number | 158 | * @param w the workspace number |
159 | * @return workspace for the given workspace number | 159 | * @return workspace for the given workspace number |
160 | */ | 160 | */ |
161 | inline const Workspace *getWorkspace(unsigned int w) const { | 161 | const Workspace *getWorkspace(unsigned int w) const { |
162 | return (w < m_workspaces_list.size() ? m_workspaces_list[w] : 0); | 162 | return (w < m_workspaces_list.size() ? m_workspaces_list[w] : 0); |
163 | } | 163 | } |
164 | /// @return the current workspace | 164 | /// @return the current workspace |
165 | inline Workspace *currentWorkspace() { return m_current_workspace; } | 165 | Workspace *currentWorkspace() { return m_current_workspace; } |
166 | inline const Workspace *currentWorkspace() const { return m_current_workspace; } | 166 | const Workspace *currentWorkspace() const { return m_current_workspace; } |
167 | /// @return the workspace menu | 167 | /// @return the workspace menu |
168 | const FbTk::Menu &workspaceMenu() const { return *m_workspacemenu.get(); } | 168 | const FbTk::Menu &workspaceMenu() const { return *m_workspacemenu.get(); } |
169 | /// @return the workspace menu | 169 | /// @return the workspace menu |
@@ -211,12 +211,12 @@ public: | |||
211 | */ | 211 | */ |
212 | //@{ | 212 | //@{ |
213 | /// client list signal | 213 | /// client list signal |
214 | FbTk::Subject &clientListSig() { return m_clientlist_sig; } | 214 | FbTk::Subject &clientListSig() { return m_clientlist_sig; } |
215 | /// icon list sig | 215 | /// icon list sig |
216 | FbTk::Subject &iconListSig() { return m_iconlist_sig; } | 216 | FbTk::Subject &iconListSig() { return m_iconlist_sig; } |
217 | /// workspace count signal | 217 | /// workspace count signal |
218 | FbTk::Subject &workspaceCountSig() { return m_workspacecount_sig; } | 218 | FbTk::Subject &workspaceCountSig() { return m_workspacecount_sig; } |
219 | /// workspace names signal | 219 | /// workspace names signal |
220 | FbTk::Subject &workspaceNamesSig() { return m_workspacenames_sig; } | 220 | FbTk::Subject &workspaceNamesSig() { return m_workspacenames_sig; } |
221 | /// workspace area signal | 221 | /// workspace area signal |
222 | FbTk::Subject &workspaceAreaSig() { return m_workspace_area_sig; } | 222 | FbTk::Subject &workspaceAreaSig() { return m_workspace_area_sig; } |
@@ -260,14 +260,14 @@ public: | |||
260 | */ | 260 | */ |
261 | FbTk::Menu *createToggleMenu(const std::string &label); | 261 | FbTk::Menu *createToggleMenu(const std::string &label); |
262 | 262 | ||
263 | /** | 263 | /** |
264 | * For extras to add menus. | 264 | * For extras to add menus. |
265 | * These menus will be marked internal, | 265 | * These menus will be marked internal, |
266 | * and deleted when the window dies (as opposed to Screen | 266 | * and deleted when the window dies (as opposed to Screen |
267 | */ | 267 | */ |
268 | void addExtraWindowMenu(const FbTk::FbString &label, FbTk::Menu *menu); | 268 | void addExtraWindowMenu(const FbTk::FbString &label, FbTk::Menu *menu); |
269 | 269 | ||
270 | inline int getEdgeSnapThreshold() const { return *resource.edge_snap_threshold; } | 270 | int getEdgeSnapThreshold() const { return *resource.edge_snap_threshold; } |
271 | 271 | ||
272 | void setRootColormapInstalled(bool r) { root_colormap_installed = r; } | 272 | void setRootColormapInstalled(bool r) { root_colormap_installed = r; } |
273 | 273 | ||
@@ -302,7 +302,7 @@ public: | |||
302 | 302 | ||
303 | ScreenPlacement &placementStrategy() { return *m_placement_strategy; } | 303 | ScreenPlacement &placementStrategy() { return *m_placement_strategy; } |
304 | const ScreenPlacement &placementStrategy() const { return *m_placement_strategy; } | 304 | const ScreenPlacement &placementStrategy() const { return *m_placement_strategy; } |
305 | 305 | ||
306 | int addWorkspace(); | 306 | int addWorkspace(); |
307 | int removeLastWorkspace(); | 307 | int removeLastWorkspace(); |
308 | // scroll workspaces | 308 | // scroll workspaces |
@@ -333,7 +333,7 @@ public: | |||
333 | 333 | ||
334 | /// update workspace name for given workspace | 334 | /// update workspace name for given workspace |
335 | void updateWorkspaceName(unsigned int w); | 335 | void updateWorkspaceName(unsigned int w); |
336 | /// remove all workspace names | 336 | /// remove all workspace names |
337 | void removeWorkspaceNames(); | 337 | void removeWorkspaceNames(); |
338 | /// update the workspace name atom | 338 | /// update the workspace name atom |
339 | void updateWorkspaceNamesAtom(); | 339 | void updateWorkspaceNamesAtom(); |
@@ -361,7 +361,7 @@ public: | |||
361 | * @param win the window to send | 361 | * @param win the window to send |
362 | * @param changeworkspace whether current workspace should change | 362 | * @param changeworkspace whether current workspace should change |
363 | */ | 363 | */ |
364 | void sendToWorkspace(unsigned int workspace, FluxboxWindow *win=0, | 364 | void sendToWorkspace(unsigned int workspace, FluxboxWindow *win=0, |
365 | bool changeworkspace=true); | 365 | bool changeworkspace=true); |
366 | /** | 366 | /** |
367 | * Reassociate a window to another workspace | 367 | * Reassociate a window to another workspace |
@@ -369,12 +369,12 @@ public: | |||
369 | * @param workspace_id id of the workspace | 369 | * @param workspace_id id of the workspace |
370 | * @param ignore_sticky ignores any sticky windows | 370 | * @param ignore_sticky ignores any sticky windows |
371 | */ | 371 | */ |
372 | void reassociateWindow(FluxboxWindow *window, unsigned int workspace_id, | 372 | void reassociateWindow(FluxboxWindow *window, unsigned int workspace_id, |
373 | bool ignore_sticky); | 373 | bool ignore_sticky); |
374 | 374 | ||
375 | 375 | ||
376 | void reconfigure(); | 376 | void reconfigure(); |
377 | void reconfigureTabs(); | 377 | void reconfigureTabs(); |
378 | void rereadMenu(); | 378 | void rereadMenu(); |
379 | void shutdown(); | 379 | void shutdown(); |
380 | /// show position window centered on the screen with "X x Y" text | 380 | /// show position window centered on the screen with "X x Y" text |
@@ -383,11 +383,11 @@ public: | |||
383 | /// show geomentry with "width x height"-text, not size of window | 383 | /// show geomentry with "width x height"-text, not size of window |
384 | void showGeometry(int width, int height); | 384 | void showGeometry(int width, int height); |
385 | void hideGeometry(); | 385 | void hideGeometry(); |
386 | 386 | ||
387 | void setLayer(FbTk::XLayerItem &item, int layernum); | 387 | void setLayer(FbTk::XLayerItem &item, int layernum); |
388 | // remove? no, items are never removed from their layer until they die | 388 | // remove? no, items are never removed from their layer until they die |
389 | 389 | ||
390 | /// updates root window size and resizes/reconfigures screen clients | 390 | /// updates root window size and resizes/reconfigures screen clients |
391 | /// that depends on screen size (slit) | 391 | /// that depends on screen size (slit) |
392 | /// (and maximized windows?) | 392 | /// (and maximized windows?) |
393 | void updateSize(); | 393 | void updateSize(); |
@@ -428,7 +428,7 @@ public: | |||
428 | template <typename OnHeadObject> | 428 | template <typename OnHeadObject> |
429 | int getOnHead(OnHeadObject &obj) const; | 429 | int getOnHead(OnHeadObject &obj) const; |
430 | 430 | ||
431 | // grouping - we want ordering, so we can either search for a | 431 | // grouping - we want ordering, so we can either search for a |
432 | // group to the left, or to the right (they'll be different if | 432 | // group to the left, or to the right (they'll be different if |
433 | // they exist). | 433 | // they exist). |
434 | WinClient *findGroupLeft(WinClient &winclient); | 434 | WinClient *findGroupLeft(WinClient &winclient); |
@@ -441,7 +441,7 @@ public: | |||
441 | /// request workspace space, i.e "don't maximize over this area" | 441 | /// request workspace space, i.e "don't maximize over this area" |
442 | Strut *requestStrut(int head, int left, int right, int top, int bottom); | 442 | Strut *requestStrut(int head, int left, int right, int top, int bottom); |
443 | /// remove requested space and destroy strut | 443 | /// remove requested space and destroy strut |
444 | void clearStrut(Strut *strut); | 444 | void clearStrut(Strut *strut); |
445 | /// updates max avaible area for the workspace | 445 | /// updates max avaible area for the workspace |
446 | void updateAvailableWorkspaceArea(); | 446 | void updateAvailableWorkspaceArea(); |
447 | 447 | ||
@@ -477,20 +477,20 @@ private: | |||
477 | 477 | ||
478 | const Strut* availableWorkspaceArea(int head) const; | 478 | const Strut* availableWorkspaceArea(int head) const; |
479 | 479 | ||
480 | ScreenSubject | 480 | ScreenSubject |
481 | m_clientlist_sig, ///< client signal | 481 | m_clientlist_sig, ///< client signal |
482 | m_iconlist_sig, ///< notify if a window gets iconified/deiconified | 482 | m_iconlist_sig, ///< notify if a window gets iconified/deiconified |
483 | m_workspacecount_sig, ///< workspace count signal | 483 | m_workspacecount_sig, ///< workspace count signal |
484 | m_workspacenames_sig, ///< workspace names signal | 484 | m_workspacenames_sig, ///< workspace names signal |
485 | m_workspace_area_sig, ///< workspace area changed signal | 485 | m_workspace_area_sig, ///< workspace area changed signal |
486 | m_currentworkspace_sig, ///< current workspace signal | 486 | m_currentworkspace_sig, ///< current workspace signal |
487 | m_focusedwindow_sig, ///< focused window signal | 487 | m_focusedwindow_sig, ///< focused window signal |
488 | m_reconfigure_sig, ///< reconfigure signal | 488 | m_reconfigure_sig, ///< reconfigure signal |
489 | m_resize_sig, ///< resize signal | 489 | m_resize_sig, ///< resize signal |
490 | m_bg_change_sig; ///< background change signal | 490 | m_bg_change_sig; ///< background change signal |
491 | 491 | ||
492 | FbTk::MultLayers m_layermanager; | 492 | FbTk::MultLayers m_layermanager; |
493 | 493 | ||
494 | bool root_colormap_installed, managed, geom_visible, pos_visible; | 494 | bool root_colormap_installed, managed, geom_visible, pos_visible; |
495 | 495 | ||
496 | GC opGC; | 496 | GC opGC; |
@@ -585,7 +585,7 @@ private: | |||
585 | HeadArea *m_head_areas; | 585 | HeadArea *m_head_areas; |
586 | 586 | ||
587 | struct XineramaHeadInfo { | 587 | struct XineramaHeadInfo { |
588 | int x, y, width, height; | 588 | int x, y, width, height; |
589 | } *m_xinerama_headinfo; | 589 | } *m_xinerama_headinfo; |
590 | 590 | ||
591 | bool m_restart, m_shutdown; | 591 | bool m_restart, m_shutdown; |