aboutsummaryrefslogtreecommitdiff
path: root/src/Screen.hh
diff options
context:
space:
mode:
authormarkt <markt>2007-10-13 21:51:37 (GMT)
committermarkt <markt>2007-10-13 21:51:37 (GMT)
commita59428d67a95a9df16554962f0a6257d6378328a (patch)
treef856ed9300c34f7a17d499f22d895610cfbc08e5 /src/Screen.hh
parent41b5c6dadb1f474675660cef18b812d4c2338ed2 (diff)
downloadfluxbox-a59428d67a95a9df16554962f0a6257d6378328a.zip
fluxbox-a59428d67a95a9df16554962f0a6257d6378328a.tar.bz2
merged changes from pre-devel
Diffstat (limited to 'src/Screen.hh')
-rw-r--r--src/Screen.hh54
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 @@
58class ClientPattern; 58class ClientPattern;
59class Focusable; 59class Focusable;
60class FluxboxWindow; 60class FluxboxWindow;
61class Netizen;
62class FbWinFrameTheme; 61class FbWinFrameTheme;
63class RootTheme; 62class RootTheme;
64class WinButtonTheme; 63class 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