X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fscreen.hh;h=d818a68481aca24d3ba9325481ddf93bdce3c378;hb=0eff3cc41539cada7fdd471ddbdcb51a214f13d3;hp=53fdffdd2c21e79938d32b6a4591428554267a35;hpb=db451d95bf97b8a8e995f031ac98da50606fd3a0;p=chaz%2Fopenbox diff --git a/src/screen.hh b/src/screen.hh index 53fdffdd..d818a684 100644 --- a/src/screen.hh +++ b/src/screen.hh @@ -1,26 +1,4 @@ // -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- -// Screen.hh for Blackbox - an X11 Window manager -// Copyright (c) 2001 - 2002 Sean 'Shaleh' Perry -// Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net) -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. - #ifndef __Screen_hh #define __Screen_hh @@ -45,13 +23,8 @@ extern "C" { #include "color.hh" #include "texture.hh" #include "image.hh" -#include "configmenu.hh" -#include "iconmenu.hh" -#include "netizen.hh" -#include "rootmenu.hh" #include "timer.hh" #include "workspace.hh" -#include "workspacemenu.hh" #include "blackbox.hh" class Slit; // forward reference @@ -61,12 +34,10 @@ struct Strut; enum TextJustify { LeftJustify = 1, RightJustify, CenterJustify }; -#ifdef BITMAPBUTTONS struct PixmapMask { Pixmap mask; unsigned int w, h; }; -#endif // BITMAPBUTTONS struct WindowStyle { BColor l_text_focus, l_text_unfocus, b_pic_focus, @@ -75,25 +46,7 @@ struct WindowStyle { h_focus, h_unfocus, b_focus, b_unfocus, b_pressed, b_pressed_focus, b_pressed_unfocus, g_focus, g_unfocus; -#ifdef BITMAPBUTTONS PixmapMask close_button, max_button, icon_button, stick_button; -#endif // BITMAPBUTTONS - BFont *font; - - TextJustify justify; - - void doJustify(const std::string &text, int &start_pos, - unsigned int max_length, unsigned int modifier) const; -}; - -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; @@ -102,20 +55,6 @@ struct ToolbarStyle { unsigned int max_length, unsigned int modifier) const; }; -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; - int bullet, bullet_pos; -}; - class BScreen : public ScreenInfo { private: bool root_colormap_installed, managed, geom_visible; @@ -125,26 +64,15 @@ private: Blackbox *blackbox; BImageControl *image_control; - Configmenu *configmenu; - Iconmenu *iconmenu; - Rootmenu *rootmenu; Configuration *config; XAtom *xatom; - typedef std::list RootmenuList; - RootmenuList rootmenuList; - - typedef std::list NetizenList; - NetizenList netizenList; BlackboxWindowList iconList, windowList; typedef std::vector WindowList; WindowList specialWindowList, desktopWindowList, systrayWindowList; - Slit *slit; - Toolbar *toolbar; Workspace *current_workspace; - Workspacemenu *workspacemenu; unsigned int geom_w, geom_h; unsigned long event_mask; @@ -161,12 +89,10 @@ private: struct screen_resource { WindowStyle wstyle; - ToolbarStyle tstyle; - MenuStyle mstyle; 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_corner_snap, aa_fonts, + allow_scroll_lock, window_corner_snap, aa_fonts, ignore_shaded, ignore_maximized, workspace_warping, shadow_fonts; int snap_to_windows, snap_to_edges; @@ -175,21 +101,14 @@ private: BColor border_color; unsigned int workspaces; - int toolbar_placement, toolbar_width_percent, placement_policy, + int placement_policy, 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 - bool clock24hour; - int date_format; -#endif // HAVE_STRFTIME } resource; std::string screenstr; @@ -197,13 +116,9 @@ private: BScreen(const BScreen&); BScreen& operator=(const BScreen&); - 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, @@ -215,11 +130,16 @@ private: BFont *readDatabaseFont(const std::string &rbasename, const Configuration &style); - void InitMenu(void); void LoadStyle(void); void updateWorkArea(void); + public: + // XXX: temporary + void updateNetizenWorkspaceCount(); + void updateNetizenWindowFocus(); + + enum { WindowNoSnap = 0, WindowSnap, WindowResistance }; enum { RowSmartPlacement = 1, ColSmartPlacement, CascadePlacement, UnderMousePlacement, ClickMousePlacement, LeftRight, RightLeft, @@ -248,7 +168,6 @@ public: 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 bool doHideToolbar(void) const { return resource.hide_toolbar; } inline int getWindowToWindowSnap(void) const { return resource.snap_to_windows; } inline int getWindowToEdgeSnap(void) const @@ -259,27 +178,17 @@ public: 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; } inline Blackbox *getBlackbox(void) { return blackbox; } inline BColor *getBorderColor(void) { return &resource.border_color; } inline BImageControl *getImageControl(void) { return image_control; } - inline Rootmenu *getRootmenu(void) { return rootmenu; } - - inline Slit *getSlit(void) { return slit; } - inline Toolbar *getToolbar(void) { return toolbar; } Workspace *getWorkspace(unsigned int index) const; inline Workspace *getCurrentWorkspace(void) { return current_workspace; } - inline Workspacemenu *getWorkspacemenu(void) { return workspacemenu; } - inline unsigned int getHandleWidth(void) const { return resource.handle_width; } inline unsigned int getBevelWidth(void) const @@ -335,7 +244,6 @@ public: void saveFullMax(bool f); void saveFocusNew(bool f); void saveFocusLast(bool f); - void saveHideToolbar(bool h); void saveWindowToEdgeSnap(int s); void saveWindowToWindowSnap(int s); void saveWindowCornerSnap(bool s); @@ -345,24 +253,12 @@ 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 inline const char *getStrftimeFormat(void) { return resource.strftime_format.c_str(); } void saveStrftimeFormat(const std::string& format); -#else // !HAVE_STRFTIME - inline int getDateFormat(void) { return resource.date_format; } - inline void saveDateFormat(int f); - inline bool isClock24Hour(void) { return resource.clock24hour; } - inline void saveClock24Hour(bool c); -#endif // HAVE_STRFTIME inline WindowStyle *getWindowStyle(void) { return &resource.wstyle; } - inline MenuStyle *getMenuStyle(void) { return &resource.mstyle; } - inline ToolbarStyle *getToolbarStyle(void) { return &resource.tstyle; } BlackboxWindow *getIcon(unsigned int index); @@ -381,9 +277,6 @@ public: void changeWorkspaceID(unsigned int id); void saveWorkspaceNames(void); - void addNetizen(Netizen *n); - void removeNetizen(Window w); - void addSystrayWindow(Window window); void removeSystrayWindow(Window window); @@ -406,26 +299,13 @@ public: void save_rc(void); void reconfigure(void); void toggleFocusModel(FocusModel model); - void rereadMenu(void); void shutdown(void); void showPosition(int x, int y); 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); - - void updateNetizenCurrentWorkspace(void); - void updateNetizenWorkspaceCount(void); - void updateNetizenWindowFocus(void); - void updateNetizenWindowAdd(Window w, unsigned long p); - void updateNetizenWindowDel(Window w); - void updateNetizenConfigNotify(XEvent *e); - void updateNetizenWindowRaise(Window w); - void updateNetizenWindowLower(Window w); };