X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fblackbox.hh;h=42ddeabbd2778d9129d319c498aa0c63bddfc624;hb=143d2df034e1304c1d9672226bd71f01533a1a63;hp=52e0e653c923bd26da35f11fe4f30f7e94c2ceb8;hpb=db451d95bf97b8a8e995f031ac98da50606fd3a0;p=chaz%2Fopenbox diff --git a/src/blackbox.hh b/src/blackbox.hh index 52e0e653..42ddeabb 100644 --- a/src/blackbox.hh +++ b/src/blackbox.hh @@ -1,26 +1,4 @@ // -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- -// blackbox.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 __blackbox_hh #define __blackbox_hh @@ -47,10 +25,11 @@ extern "C" { #include #include -#include "basedisplay.hh" -#include "configuration.hh" +#include "otk/timer.hh" +#include "otk/property.hh" +#include "openbox.hh" +#include "otk/configuration.hh" #include "timer.hh" -#include "xatom.hh" #define AttribShaded (1l << 0) #define AttribMaxHoriz (1l << 1) @@ -69,6 +48,8 @@ extern "C" { #define DecorTiny (2) #define DecorTool (3) +namespace ob { + struct BlackboxHints { unsigned long flags, attrib, workspace, stack, decoration; }; @@ -88,24 +69,14 @@ class BScreen; class Blackbox; class BlackboxWindow; class BWindowGroup; -class Basemenu; -class Toolbar; -class Slit; - -extern I18n i18n; -class Blackbox : public BaseDisplay, public TimeoutHandler { +class Blackbox : public Openbox { private: struct BCursor { Cursor session, move, ll_angle, lr_angle, ul_angle, ur_angle; }; BCursor cursor; - struct MenuTimestamp { - std::string filename; - time_t timestamp; - }; - struct BResource { Time double_click_interval; @@ -134,57 +105,38 @@ private: typedef GroupLookup::value_type GroupLookupPair; GroupLookup groupSearchList; - typedef std::map MenuLookup; - typedef MenuLookup::value_type MenuLookupPair; - MenuLookup menuSearchList; - - typedef std::map ToolbarLookup; - typedef ToolbarLookup::value_type ToolbarLookupPair; - ToolbarLookup toolbarSearchList; - - typedef std::map SlitLookup; - typedef SlitLookup::value_type SlitLookupPair; - SlitLookup slitSearchList; - - typedef std::list MenuTimestampList; - MenuTimestampList menuTimestamps; - typedef std::list ScreenList; ScreenList screenList; BScreen *active_screen; BlackboxWindow *focused_window, *changing_window; - BTimer *timer; - Configuration config; - XAtom *xatom; + otk::OBTimer *timer; + otk::Configuration config; + otk::OBProperty *xatom; - bool no_focus, reconfigure_wait, reread_menu_wait; + bool no_focus, reconfigure_wait; Time last_time; char **argv; - std::string menu_file, rc_file; + std::string rc_file; Blackbox(const Blackbox&); Blackbox& operator=(const Blackbox&); void load_rc(void); void save_rc(void); - void real_rereadMenu(void); void real_reconfigure(void); virtual void process_event(XEvent *); public: - Blackbox(char **m_argv, char *dpy_name = 0, char *rc = 0, char *menu = 0); + Blackbox(int argc, char **m_argv, char *rc = 0); virtual ~Blackbox(void); - Basemenu *searchMenu(Window window); BWindowGroup *searchGroup(Window window); BScreen *searchSystrayWindow(Window window); BlackboxWindow *searchWindow(Window window); BScreen *searchScreen(Window window); - Toolbar *searchToolbar(Window); - Slit *searchSlit(Window); #ifdef XINERAMA inline bool doXineramaPlacement(void) const @@ -199,33 +151,25 @@ public: void saveXineramaSnapping(bool x); #endif // XINERAMA - void saveMenuSearch(Window window, Basemenu *data); void saveSystrayWindowSearch(Window window, BScreen *screen); void saveWindowSearch(Window window, BlackboxWindow *data); void saveGroupSearch(Window window, BWindowGroup *data); - void saveToolbarSearch(Window window, Toolbar *data); - void saveSlitSearch(Window window, Slit *data); - void removeMenuSearch(Window window); void removeSystrayWindowSearch(Window window); void removeWindowSearch(Window window); void removeGroupSearch(Window window); - void removeToolbarSearch(Window window); - void removeSlitSearch(Window window); - inline XAtom *getXAtom(void) { return xatom; } + inline otk::OBProperty *getXAtom(void) { return xatom; } inline BlackboxWindow *getFocusedWindow(void) { return focused_window; } inline BlackboxWindow *getChangingWindow(void) { return changing_window; } - inline Configuration *getConfig() { return &config; } + inline otk::Configuration *getConfig() { return &config; } inline const Time &getDoubleClickInterval(void) const { return resource.double_click_interval; } inline const Time &getLastTime(void) const { return last_time; } inline const char *getStyleFilename(void) const { return resource.style_file.c_str(); } - inline const char *getMenuFilename(void) const - { return menu_file.c_str(); } inline int getColorsPerChannel(void) const { return resource.colors_per_channel; } @@ -263,22 +207,18 @@ public: void setChangingWindow(BlackboxWindow *win); void shutdown(void); void saveStyleFilename(const std::string& filename); - void addMenuTimestamp(const std::string& filename); void restart(const char *prog = 0); void reconfigure(void); - void rereadMenu(void); - void checkMenu(void); bool validateWindow(Window window); virtual bool handleSignal(int sig); - virtual void timeout(void); + static void timeout(Blackbox *t); -#ifndef HAVE_STRFTIME enum { B_AmericanDate = 1, B_EuropeanDate }; -#endif // HAVE_STRFTIME }; +} #endif // __blackbox_hh