-
- enum { WindowNoSnap = 0, WindowSnap, WindowResistance };
- enum { RowSmartPlacement = 1, ColSmartPlacement, CascadePlacement,
- UnderMousePlacement, ClickMousePlacement, LeftRight, RightLeft,
- TopBottom, BottomTop, IgnoreShaded, IgnoreMaximized };
- enum { Restart = 1, RestartOther, Exit, Shutdown, Execute, Reconfigure,
- WindowShade, WindowIconify, WindowMaximize, WindowClose, WindowRaise,
- WindowLower, WindowStick, WindowKill, SetStyle };
- enum FocusModel { SloppyFocus, ClickToFocus };
- enum RootScrollDirection { NoScroll = 0, NormalScroll, ReverseScroll };
-
- BScreen(Blackbox *bb, unsigned int scrn);
- ~BScreen(void);
-
- void LoadStyle(void);
-
- inline bool isSloppyFocus(void) const { return resource.sloppy_focus; }
- inline bool isRootColormapInstalled(void) const
- { return root_colormap_installed; }
- inline bool doAutoRaise(void) const { return resource.auto_raise; }
- inline bool doClickRaise(void) const { return resource.click_raise; }
- inline bool isScreenManaged(void) const { return managed; }
- inline bool doShadowFonts(void) const { return resource.shadow_fonts; }
- inline bool doAAFonts(void) const { return resource.aa_fonts; }
- inline bool doImageDither(void) const { return image_control->doDither(); }
- inline bool doOrderedDither(void) const { return resource.ordered_dither; }
- inline bool doOpaqueMove(void) const { return resource.opaque_move; }
- inline bool doFullMax(void) const { return resource.full_max; }
- inline bool doFocusNew(void) const { return resource.focus_new; }
- inline bool doFocusLast(void) const { return resource.focus_last; }
- inline int getWindowToWindowSnap(void) const
- { return resource.snap_to_windows; }
- inline int getWindowToEdgeSnap(void) const
- { return resource.snap_to_edges; }
- inline bool getWindowCornerSnap(void) const
- { return resource.window_corner_snap; }
- inline bool allowScrollLock(void) const { return resource.allow_scroll_lock; }
- inline bool doWorkspaceWarping(void) const
- { return resource.workspace_warping; }
- inline int rootScrollDirection(void) const { return resource.root_scroll; }
-
- inline const GC &getOpGC(void) const { return opGC; }
-
- inline Blackbox *getBlackbox(void) { return blackbox; }
- inline otk::BColor *getBorderColor(void) {
- return &resource.wstyle.border_color;
- }
- inline otk::BImageControl *getImageControl(void) { return image_control; }
-
- Workspace *getWorkspace(unsigned int index) const;
-
- inline Workspace *getCurrentWorkspace(void) { return current_workspace; }
-
- inline unsigned int getResizeZones(void) const
- { return resource.resize_zones; }
- inline bool getPlaceIgnoreShaded(void) const
- { return resource.ignore_shaded; }
- inline bool getPlaceIgnoreMaximized(void) const
- { return resource.ignore_maximized; }
-
- inline unsigned int getCurrentWorkspaceID(void) const
- { return current_workspace->getID(); }
- inline unsigned int getWorkspaceCount(void) const
- { return workspacesList.size(); }
- inline unsigned int getIconCount(void) const { return iconList.size(); }
- inline unsigned int getNumberOfWorkspaces(void) const
- { return resource.workspaces; }
- inline int getPlacementPolicy(void) const
- { return resource.placement_policy; }
- inline int getSnapOffset(void) const
- { return resource.snap_offset; }
- inline int getSnapThreshold(void) const
- { return resource.snap_threshold; }
- inline int getResistanceSize(void) const
- { return resource.resistance_size; }
- inline int getRowPlacementDirection(void) const
- { return resource.row_direction; }
- inline int getColPlacementDirection(void) const
- { return resource.col_direction; }
-
- void changeWorkspaceCount(unsigned int new_count);
+ //! The Image Control used for rendering on the screen
+ otk::BImageControl *_image_control;
+
+ //! The style with which to render on the screen
+ otk::Style _style;
+
+ //! Is the root colormap currently installed?
+ bool _root_cmap_installed;
+
+ //! All managed clients on the screen
+ ClientList _clients;
+
+ //! Area usable for placement etc (total - struts)
+ otk::Rect _area;
+
+ //! Areas of the screen reserved by applications
+ StrutList _struts;
+
+
+ //! Calculate the OBScreen::_area member
+ void calcArea();
+ //! Set the client list on the root window
+ /*!
+ Sets the _NET_CLIENT_LIST root window property.<br>
+ Also calls OBScreen::updateStackingList.
+ */
+ void setClientList();
+ //! Set the client stacking list on the root window
+ /*!
+ Set the _NET_CLIENT_LIST_STACKING root window property.
+ */
+ void setStackingList();
+ //! Set the work area hint on the root window
+ /*!
+ Set the _NET_WORKAREA root window property.
+ */
+ void setWorkArea();