diff options
author | markt <markt> | 2007-10-13 21:51:37 (GMT) |
---|---|---|
committer | markt <markt> | 2007-10-13 21:51:37 (GMT) |
commit | a59428d67a95a9df16554962f0a6257d6378328a (patch) | |
tree | f856ed9300c34f7a17d499f22d895610cfbc08e5 /src/Screen.hh | |
parent | 41b5c6dadb1f474675660cef18b812d4c2338ed2 (diff) | |
download | fluxbox-a59428d67a95a9df16554962f0a6257d6378328a.zip fluxbox-a59428d67a95a9df16554962f0a6257d6378328a.tar.bz2 |
merged changes from pre-devel
Diffstat (limited to 'src/Screen.hh')
-rw-r--r-- | src/Screen.hh | 54 |
1 files changed, 24 insertions, 30 deletions
diff --git a/src/Screen.hh b/src/Screen.hh index 8ab3fc5..a094bac 100644 --- a/src/Screen.hh +++ b/src/Screen.hh | |||
@@ -58,7 +58,6 @@ | |||
58 | class ClientPattern; | 58 | class ClientPattern; |
59 | class Focusable; | 59 | class Focusable; |
60 | class FluxboxWindow; | 60 | class FluxboxWindow; |
61 | class Netizen; | ||
62 | class FbWinFrameTheme; | 61 | class FbWinFrameTheme; |
63 | class RootTheme; | 62 | class RootTheme; |
64 | class WinButtonTheme; | 63 | class WinButtonTheme; |
@@ -88,17 +87,17 @@ public: | |||
88 | /// a window becomes active / focussed on a different workspace | 87 | /// a window becomes active / focussed on a different workspace |
89 | enum FollowModel { | 88 | enum FollowModel { |
90 | IGNORE_OTHER_WORKSPACES = 0, ///< who cares? | 89 | IGNORE_OTHER_WORKSPACES = 0, ///< who cares? |
91 | FOLLOW_ACTIVE_WINDOW, ///< go to that workspace | 90 | FOLLOW_ACTIVE_WINDOW, ///< go to that workspace |
92 | SEMIFOLLOW_ACTIVE_WINDOW, ///< fetch iconified windows, else follow | 91 | SEMIFOLLOW_ACTIVE_WINDOW, ///< fetch iconified windows, else follow |
93 | FETCH_ACTIVE_WINDOW ///< put that window to the current workspace | 92 | FETCH_ACTIVE_WINDOW ///< put that window to the current workspace |
94 | }; | 93 | }; |
95 | 94 | ||
96 | /// Different resize modes when resizing a window | 95 | /// Different resize modes when resizing a window |
97 | enum ResizeModel { | 96 | enum ResizeModel { |
98 | BOTTOMRESIZE = 0, //< resizes from the bottom right corner | 97 | BOTTOMRESIZE = 0, ///< resizes from the bottom right corner |
99 | QUADRANTRESIZE, //< resizes from one quadrant | 98 | QUADRANTRESIZE, ///< resizes from one quadrant |
100 | CENTERRESIZE, //< resizes from center | 99 | CENTERRESIZE, ///< resizes from center |
101 | DEFAULTRESIZE = BOTTOMRESIZE //< default resize mode is bottom | 100 | DEFAULTRESIZE = BOTTOMRESIZE ///< default resize mode is bottom |
102 | }; | 101 | }; |
103 | 102 | ||
104 | 103 | ||
@@ -119,12 +118,13 @@ public: | |||
119 | bool isRootColormapInstalled() const { return root_colormap_installed; } | 118 | bool isRootColormapInstalled() const { return root_colormap_installed; } |
120 | bool isScreenManaged() const { return managed; } | 119 | bool isScreenManaged() const { return managed; } |
121 | bool isWorkspaceWarping() const { return *resource.workspace_warping; } | 120 | bool isWorkspaceWarping() const { return *resource.workspace_warping; } |
122 | bool isDesktopWheeling() const { return *resource.desktop_wheeling; } | ||
123 | bool isReverseWheeling() const { return *resource.reverse_wheeling; } | ||
124 | bool doAutoRaise() const { return *resource.auto_raise; } | 121 | bool doAutoRaise() const { return *resource.auto_raise; } |
125 | bool clickRaises() const { return *resource.click_raises; } | 122 | bool clickRaises() const { return *resource.click_raises; } |
126 | bool doOpaqueMove() const { return *resource.opaque_move; } | 123 | bool doOpaqueMove() const { return *resource.opaque_move; } |
127 | bool doFullMax() const { return *resource.full_max; } | 124 | bool doFullMax() const { return *resource.full_max; } |
125 | bool getMaxIgnoreIncrement() const { return *resource.max_ignore_inc; } | ||
126 | bool getMaxDisableMove() const { return *resource.max_disable_move; } | ||
127 | bool getMaxDisableResize() const { return *resource.max_disable_resize; } | ||
128 | bool doShowWindowPos() const { return *resource.show_window_pos; } | 128 | bool doShowWindowPos() const { return *resource.show_window_pos; } |
129 | bool decorateTransient() const { return *resource.decorate_transient; } | 129 | bool decorateTransient() const { return *resource.decorate_transient; } |
130 | const std::string &defaultDeco() const { return *resource.default_deco; } | 130 | const std::string &defaultDeco() const { return *resource.default_deco; } |
@@ -144,13 +144,16 @@ public: | |||
144 | 144 | ||
145 | ResizeModel getResizeModel() const { return *resource.resize_model; } | 145 | ResizeModel getResizeModel() const { return *resource.resize_model; } |
146 | 146 | ||
147 | inline unsigned int noFocusWhileTypingDelay() const { return *resource.typing_delay; } | ||
147 | inline FollowModel getFollowModel() const { return *resource.follow_model; } | 148 | inline FollowModel getFollowModel() const { return *resource.follow_model; } |
148 | inline FollowModel getUserFollowModel() const { return *resource.user_follow_model; } | 149 | inline FollowModel getUserFollowModel() const { return *resource.user_follow_model; } |
149 | 150 | ||
150 | inline const std::string &getScrollAction() const { return *resource.scroll_action; } | 151 | inline const std::string &getScrollAction() const { return *resource.scroll_action; } |
151 | inline const bool getScrollReverse() const { return *resource.scroll_reverse; } | 152 | inline const bool getScrollReverse() const { return *resource.scroll_reverse; } |
152 | inline const bool allowRemoteActions() const { return *resource.allow_remote_actions; } | 153 | inline const bool allowRemoteActions() const { return *resource.allow_remote_actions; } |
154 | inline const bool clientMenuUsePixmap() const { return *resource.clientmenu_use_pixmap; } | ||
153 | inline const bool getDefaultInternalTabs() const { return *resource.default_internal_tabs; } | 155 | inline const bool getDefaultInternalTabs() const { return *resource.default_internal_tabs; } |
156 | inline const bool getTabsUsePixmap() const { return *resource.tabs_use_pixmap; } | ||
154 | inline const bool getMaxOverTabs() const { return *resource.max_over_tabs; } | 157 | inline const bool getMaxOverTabs() const { return *resource.max_over_tabs; } |
155 | 158 | ||
156 | inline unsigned int getTabWidth() const { return *resource.tab_width; } | 159 | inline unsigned int getTabWidth() const { return *resource.tab_width; } |
@@ -256,9 +259,10 @@ public: | |||
256 | /** | 259 | /** |
257 | * Cycles focus of windows | 260 | * Cycles focus of windows |
258 | * @param opts focus options | 261 | * @param opts focus options |
262 | * @param pat specific pattern to match windows with | ||
259 | * @param reverse the order of cycling | 263 | * @param reverse the order of cycling |
260 | */ | 264 | */ |
261 | void cycleFocus(int opts = 0, bool reverse = false); | 265 | void cycleFocus(int opts = 0, const ClientPattern *pat = 0, bool reverse = false); |
262 | 266 | ||
263 | /** | 267 | /** |
264 | * Creates an empty menu with specified label | 268 | * Creates an empty menu with specified label |
@@ -307,6 +311,9 @@ public: | |||
307 | FbRootWindow &rootWindow() { return m_root_window; } | 311 | FbRootWindow &rootWindow() { return m_root_window; } |
308 | const FbRootWindow &rootWindow() const { return m_root_window; } | 312 | const FbRootWindow &rootWindow() const { return m_root_window; } |
309 | 313 | ||
314 | FbTk::FbWindow &dummyWindow() { return m_dummy_window; } | ||
315 | const FbTk::FbWindow &dummyWindow() const { return m_dummy_window; } | ||
316 | |||
310 | FbTk::MultLayers &layerManager() { return m_layermanager; } | 317 | FbTk::MultLayers &layerManager() { return m_layermanager; } |
311 | const FbTk::MultLayers &layerManager() const { return m_layermanager; } | 318 | const FbTk::MultLayers &layerManager() const { return m_layermanager; } |
312 | FbTk::ResourceManager &resourceManager() { return m_resource_manager; } | 319 | FbTk::ResourceManager &resourceManager() { return m_resource_manager; } |
@@ -355,10 +362,6 @@ public: | |||
355 | void updateWorkspaceNamesAtom(); | 362 | void updateWorkspaceNamesAtom(); |
356 | /// add a workspace name to the end of the workspace name list | 363 | /// add a workspace name to the end of the workspace name list |
357 | void addWorkspaceName(const char *name); | 364 | void addWorkspaceName(const char *name); |
358 | /// add a Netizen window | ||
359 | void addNetizen(Window win); | ||
360 | /// remove a netizen | ||
361 | void removeNetizen(Window win); | ||
362 | /// add a window to the icon list | 365 | /// add a window to the icon list |
363 | void addIcon(FluxboxWindow *win); | 366 | void addIcon(FluxboxWindow *win); |
364 | /// remove a window from the icon list | 367 | /// remove a window from the icon list |
@@ -457,16 +460,6 @@ public: | |||
457 | WinClient *findGroupLeft(WinClient &winclient); | 460 | WinClient *findGroupLeft(WinClient &winclient); |
458 | WinClient *findGroupRight(WinClient &winclient); | 461 | WinClient *findGroupRight(WinClient &winclient); |
459 | 462 | ||
460 | // notify netizens | ||
461 | void updateNetizenCurrentWorkspace(); | ||
462 | void updateNetizenWorkspaceCount(); | ||
463 | void updateNetizenWindowFocus(); | ||
464 | void updateNetizenWindowAdd(Window, unsigned long); | ||
465 | void updateNetizenWindowDel(Window); | ||
466 | void updateNetizenConfigNotify(XEvent &ev); | ||
467 | void updateNetizenWindowRaise(Window); | ||
468 | void updateNetizenWindowLower(Window); | ||
469 | |||
470 | /// create window frame for client window and attach it | 463 | /// create window frame for client window and attach it |
471 | FluxboxWindow *createWindow(Window clientwin); | 464 | FluxboxWindow *createWindow(Window clientwin); |
472 | /// creates a window frame for a winclient. The client is attached to the window | 465 | /// creates a window frame for a winclient. The client is attached to the window |
@@ -536,12 +529,10 @@ private: | |||
536 | ExtraMenus m_extramenus; | 529 | ExtraMenus m_extramenus; |
537 | 530 | ||
538 | typedef std::list<FbTk::Menu *> Rootmenus; | 531 | typedef std::list<FbTk::Menu *> Rootmenus; |
539 | typedef std::list<Netizen *> Netizens; | ||
540 | typedef std::list<std::pair<FbTk::FbString, FbTk::Menu *> > Configmenus; | 532 | typedef std::list<std::pair<FbTk::FbString, FbTk::Menu *> > Configmenus; |
541 | 533 | ||
542 | 534 | ||
543 | Rootmenus m_rootmenu_list; | 535 | Rootmenus m_rootmenu_list; |
544 | Netizens m_netizen_list; | ||
545 | Configmenus m_configmenu_list; | 536 | Configmenus m_configmenu_list; |
546 | Icons m_icon_list; | 537 | Icons m_icon_list; |
547 | 538 | ||
@@ -558,21 +549,22 @@ private: | |||
558 | std::auto_ptr<RootTheme> m_root_theme; | 549 | std::auto_ptr<RootTheme> m_root_theme; |
559 | 550 | ||
560 | FbRootWindow m_root_window; | 551 | FbRootWindow m_root_window; |
561 | FbTk::FbWindow m_geom_window, m_pos_window; | 552 | FbTk::FbWindow m_geom_window, m_pos_window, m_dummy_window; |
562 | 553 | ||
563 | struct ScreenResource { | 554 | struct ScreenResource { |
564 | ScreenResource(FbTk::ResourceManager &rm, const std::string &scrname, | 555 | ScreenResource(FbTk::ResourceManager &rm, const std::string &scrname, |
565 | const std::string &altscrname); | 556 | const std::string &altscrname); |
566 | 557 | ||
567 | FbTk::Resource<bool> image_dither, opaque_move, full_max, | 558 | FbTk::Resource<bool> image_dither, opaque_move, full_max, |
568 | workspace_warping, | 559 | max_ignore_inc, max_disable_move, max_disable_resize, |
569 | desktop_wheeling, reverse_wheeling, show_window_pos, | 560 | workspace_warping, show_window_pos, auto_raise, click_raises, |
570 | auto_raise, click_raises, decorate_transient; | 561 | decorate_transient; |
571 | FbTk::Resource<std::string> default_deco; | 562 | FbTk::Resource<std::string> default_deco; |
572 | FbTk::Resource<std::string> rootcommand; | 563 | FbTk::Resource<std::string> rootcommand; |
573 | FbTk::Resource<ResizeModel> resize_model; | 564 | FbTk::Resource<ResizeModel> resize_model; |
574 | FbTk::Resource<FbWinFrame::TabPlacement> tab_placement; | 565 | FbTk::Resource<FbWinFrame::TabPlacement> tab_placement; |
575 | FbTk::Resource<std::string> windowmenufile; | 566 | FbTk::Resource<std::string> windowmenufile; |
567 | FbTk::Resource<unsigned int> typing_delay; | ||
576 | FbTk::Resource<FollowModel> follow_model, user_follow_model; | 568 | FbTk::Resource<FollowModel> follow_model, user_follow_model; |
577 | bool ordered_dither; | 569 | bool ordered_dither; |
578 | FbTk::Resource<int> workspaces, edge_snap_threshold, focused_alpha, | 570 | FbTk::Resource<int> workspaces, edge_snap_threshold, focused_alpha, |
@@ -586,6 +578,8 @@ private: | |||
586 | FbTk::Resource<std::string> scroll_action; | 578 | FbTk::Resource<std::string> scroll_action; |
587 | FbTk::Resource<bool> scroll_reverse; | 579 | FbTk::Resource<bool> scroll_reverse; |
588 | FbTk::Resource<bool> allow_remote_actions; | 580 | FbTk::Resource<bool> allow_remote_actions; |
581 | FbTk::Resource<bool> clientmenu_use_pixmap; | ||
582 | FbTk::Resource<bool> tabs_use_pixmap; | ||
589 | FbTk::Resource<bool> max_over_tabs; | 583 | FbTk::Resource<bool> max_over_tabs; |
590 | FbTk::Resource<bool> default_internal_tabs; | 584 | FbTk::Resource<bool> default_internal_tabs; |
591 | 585 | ||