X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FScreen.hh;h=32440d7b6d9c1315b42d1371de573bafa2d34b83;hb=c2afc72a41a4093f1fdfdf3245d5d70ef8bf9ad2;hp=2fbf20fd1414406c7bfc34450a5bff2ea4dcf2b6;hpb=d86284c07b29817b93db1875fa1430d221b94a63;p=chaz%2Fopenbox diff --git a/src/Screen.hh b/src/Screen.hh index 2fbf20fd..32440d7b 100644 --- a/src/Screen.hh +++ b/src/Screen.hh @@ -61,12 +61,22 @@ struct Strut; enum TextJustify { LeftJustify = 1, RightJustify, CenterJustify }; +#ifdef BITMAPBUTTONS +struct PixmapMask { + Pixmap mask; + unsigned int w, h; +}; +#endif // BITMAPBUTTONS + struct WindowStyle { - BColor f_focus, f_unfocus, l_text_focus, l_text_unfocus, b_pic_focus, + BColor l_text_focus, l_text_unfocus, b_pic_focus, b_pic_unfocus; - BTexture t_focus, t_unfocus, l_focus, l_unfocus, h_focus, h_unfocus, - b_focus, b_unfocus, b_pressed, g_focus, g_unfocus; + BTexture f_focus, f_unfocus, t_focus, t_unfocus, l_focus, l_unfocus, + h_focus, h_unfocus, b_focus, b_unfocus, b_pressed, g_focus, g_unfocus; +#ifdef BITMAPBUTTONS + PixmapMask close_button, max_button, icon_button, stick_button; +#endif // BITMAPBUTTONS BFont *font; TextJustify justify; @@ -79,6 +89,10 @@ struct ToolbarStyle { BColor l_text, w_text, c_text, b_pic; BTexture toolbar, label, window, button, pressed, clock; +#ifdef BITMAPBUTTONS + PixmapMask left_button, right_button; +#endif // BITMAPBUTTONS + BFont *font; TextJustify justify; @@ -90,7 +104,11 @@ struct ToolbarStyle { struct MenuStyle { BColor t_text, f_text, h_text, d_text; BTexture title, frame, hilite; - + +#ifdef BITMAPBUTTONS + PixmapMask bullet_image, tick_image; +#endif // BITMAPBUTTONS + BFont *t_font, *f_font; TextJustify t_justify, f_justify; @@ -120,7 +138,7 @@ private: BlackboxWindowList iconList, windowList; typedef std::vector WindowList; - WindowList desktopWindowList, systrayWindowList; + WindowList specialWindowList, desktopWindowList, systrayWindowList; Slit *slit; Toolbar *toolbar; @@ -147,18 +165,24 @@ private: bool sloppy_focus, auto_raise, auto_edge_balance, ordered_dither, opaque_move, full_max, focus_new, focus_last, click_raise, - allow_scroll_lock, hide_toolbar, window_to_window_snap, - window_corner_snap, aa_fonts, ignore_shaded, ignore_maximized, - workspace_warping; + allow_scroll_lock, hide_toolbar, window_corner_snap, aa_fonts, + ignore_shaded, ignore_maximized, workspace_warping, shadow_fonts; + + int snap_to_windows, snap_to_edges; + unsigned int snap_offset; + BColor border_color; unsigned int workspaces; int toolbar_placement, toolbar_width_percent, placement_policy, - edge_snap_threshold, row_direction, col_direction, root_scroll; + snap_threshold, row_direction, col_direction, root_scroll, + resistance_size; unsigned int handle_width, bevel_width, frame_width, border_width, resize_zones; + unsigned int root_menu_button, workspace_menu_button; + #ifdef HAVE_STRFTIME std::string strftime_format; #else // !HAVE_STRFTIME @@ -174,6 +198,12 @@ private: bool parseMenuFile(FILE *file, Rootmenu *menu); +#ifdef BITMAPBUTTONS + void readDatabaseMask(const std::string &rname, + PixmapMask &pixmapMask, + const Configuration &style); +#endif // BITMAPBUTTONS + BTexture readDatabaseTexture(const std::string &rname, const std::string &default_color, const Configuration &style); @@ -188,6 +218,7 @@ private: void updateWorkArea(void); public: + enum { WindowNoSnap = 0, WindowSnap, WindowResistance }; enum { RowSmartPlacement = 1, ColSmartPlacement, CascadePlacement, UnderMousePlacement, ClickMousePlacement, LeftRight, RightLeft, TopBottom, BottomTop, IgnoreShaded, IgnoreMaximized }; @@ -196,7 +227,7 @@ public: WindowShade, WindowIconify, WindowMaximize, WindowClose, WindowRaise, WindowLower, WindowStick, WindowKill, SetStyle }; enum FocusModel { SloppyFocus, ClickToFocus }; - enum RootScrollDirection { NoScroll, NormalScroll, ReverseScroll }; + enum RootScrollDirection { NoScroll = 0, NormalScroll, ReverseScroll }; BScreen(Blackbox *bb, unsigned int scrn); ~BScreen(void); @@ -207,6 +238,7 @@ public: 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; } @@ -215,14 +247,20 @@ public: inline bool doFocusNew(void) const { return resource.focus_new; } inline bool doFocusLast(void) const { return resource.focus_last; } inline bool doHideToolbar(void) const { return resource.hide_toolbar; } - inline bool getWindowToWindowSnap(void) const - { return resource.window_to_window_snap; } + 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 unsigned int rootMenuButton(void) const + { return resource.root_menu_button; } + inline unsigned int workspaceMenuButton(void) const + { return resource.workspace_menu_button; } inline const GC &getOpGC(void) const { return opGC; } @@ -264,8 +302,12 @@ public: { return resource.workspaces; } inline int getPlacementPolicy(void) const { return resource.placement_policy; } - inline int getEdgeSnapThreshold(void) const - { return resource.edge_snap_threshold; } + 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 @@ -281,15 +323,19 @@ public: void savePlacementPolicy(int p); void saveRowPlacementDirection(int d); void saveColPlacementDirection(int d); - void saveEdgeSnapThreshold(int t); + void saveSnapThreshold(int t); + void saveSnapOffset(int o); + void saveResistanceSize(int s); void saveImageDither(bool d); + void saveShadowFonts(bool f); void saveAAFonts(bool f); void saveOpaqueMove(bool o); void saveFullMax(bool f); void saveFocusNew(bool f); void saveFocusLast(bool f); void saveHideToolbar(bool h); - void saveWindowToWindowSnap(bool s); + void saveWindowToEdgeSnap(int s); + void saveWindowToWindowSnap(int s); void saveWindowCornerSnap(bool s); void saveResizeZones(unsigned int z); void savePlaceIgnoreShaded(bool i); @@ -297,6 +343,8 @@ public: void saveAllowScrollLock(bool a); void saveWorkspaceWarping(bool w); void saveRootScrollDirection(int d); + void saveRootMenuButton(unsigned int b); + void saveWorkspaceMenuButton(unsigned int b); inline void iconUpdate(void) { iconmenu->update(); } #ifdef HAVE_STRFTIME @@ -362,6 +410,9 @@ public: void showGeometry(unsigned int gx, unsigned int gy); void hideGeometry(void); + void showWorkspaceMenu(int x, int y); + void showRootMenu(int x, int y); + void buttonPressEvent(const XButtonEvent *xbutton); void propertyNotifyEvent(const XPropertyEvent *pe);