X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FSlit.hh;fp=src%2FSlit.hh;h=0000000000000000000000000000000000000000;hb=db451d95bf97b8a8e995f031ac98da50606fd3a0;hp=798ccb24b22ac6f93efcd87e1fc0a2b4fcaf29d5;hpb=60b016b7fc54a01c19a3ab9a6d127b0509c38f11;p=chaz%2Fopenbox diff --git a/src/Slit.hh b/src/Slit.hh deleted file mode 100644 index 798ccb24..00000000 --- a/src/Slit.hh +++ /dev/null @@ -1,205 +0,0 @@ -// -*- mode: C++; indent-tabs-mode: nil; -*- -// Slit.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 __Slit_hh -#define __Slit_hh - -extern "C" { -#include -#include -} - -#include -#include - -#include "Screen.hh" -#include "Basemenu.hh" - -// forward declaration -class Slit; -class Slitmenu; - -class Slitmenu : public Basemenu { -private: - class Directionmenu : public Basemenu { - private: - Directionmenu(const Directionmenu&); - Directionmenu& operator=(const Directionmenu&); - Slit *slit; - - protected: - virtual void itemSelected(int button, unsigned int index); - virtual void setValues(void); - - public: - Directionmenu(Slitmenu *sm); - virtual void reconfigure(void); - }; - - class Placementmenu : public Basemenu { - private: - Placementmenu(const Placementmenu&); - Placementmenu& operator=(const Placementmenu&); - Slit *slit; - - protected: - virtual void itemSelected(int buton, unsigned int index); - virtual void setValues(void); - - public: - Placementmenu(Slitmenu *sm); - virtual void reconfigure(void); - }; - - Directionmenu *directionmenu; - Placementmenu *placementmenu; - - Slit *slit; - - friend class Directionmenu; - friend class Placementmenu; - friend class Slit; - - Slitmenu(const Slitmenu&); - Slitmenu& operator=(const Slitmenu&); - -protected: - virtual void itemSelected(int button, unsigned int index); - virtual void internal_hide(void); - -public: - Slitmenu(Slit *sl); - virtual ~Slitmenu(void); - - inline Basemenu *getDirectionmenu(void) { return directionmenu; } - inline Basemenu *getPlacementmenu(void) { return placementmenu; } - - void reconfigure(void); -}; - - -class Slit : public TimeoutHandler { -public: - struct SlitClient { - Window window, client_window, icon_window; - - Rect rect; - }; - -private: - typedef std::list SlitClientList; - - bool on_top, hidden, do_auto_hide; - int direction, placement; - std::string slitstr; - Display *display; - - Blackbox *blackbox; - BScreen *screen; - Configuration *config; - BTimer *timer; - Strut strut; - - SlitClientList clientList; - Slitmenu *slitmenu; - - struct SlitFrame { - Pixmap pixmap; - Window window; - - int x_hidden, y_hidden; - Rect rect; - } frame; - - void updateStrut(void); - - friend class Slitmenu; - friend class Slitmenu::Directionmenu; - friend class Slitmenu::Placementmenu; - - Slit(const Slit&); - Slit& operator=(const Slit&); - -public: - Slit(BScreen *scr); - virtual ~Slit(void); - - inline bool isOnTop(void) const { return on_top; } - inline bool isHidden(void) const { return hidden; } - inline bool doAutoHide(void) const { return do_auto_hide; } - inline int getPlacement(void) const { return placement; } - inline int getDirection(void) const { return direction; } - - void saveOnTop(bool); - void saveAutoHide(bool); - void savePlacement(int); - void saveDirection(int); - - inline Slitmenu *getMenu(void) { return slitmenu; } - - inline Window getWindowID(void) const { return frame.window; } - - inline int getX(void) const - { return ((hidden) ? frame.x_hidden : frame.rect.x()); } - inline int getY(void) const - { return ((hidden) ? frame.y_hidden : frame.rect.y()); } - - inline unsigned int getWidth(void) const { return frame.rect.width(); } - inline unsigned int getExposedWidth(void) const { - if (direction == Vertical && do_auto_hide) - return screen->getBevelWidth(); - return frame.rect.width(); - } - inline unsigned int getHeight(void) const { return frame.rect.height(); } - inline unsigned int getExposedHeight(void) const { - if (direction == Horizontal && do_auto_hide) - return screen->getBevelWidth(); - return frame.rect.height(); - } - - void addClient(Window w); - void removeClient(SlitClient *client, bool remap = True); - void removeClient(Window w, bool remap = True); - void load_rc(void); - void save_rc(void); - void reconfigure(void); - void updateSlit(void); - void reposition(void); - void shutdown(void); - void toggleAutoHide(void); - - void buttonPressEvent(const XButtonEvent *e); - void enterNotifyEvent(const XCrossingEvent * /*unused*/); - void leaveNotifyEvent(const XCrossingEvent * /*unused*/); - void configureRequestEvent(const XConfigureRequestEvent *e); - void unmapNotifyEvent(const XUnmapEvent *e); - - virtual void timeout(void); - - enum { Vertical = 1, Horizontal }; - enum { TopLeft = 1, CenterLeft, BottomLeft, TopCenter, BottomCenter, - TopRight, CenterRight, BottomRight }; -}; - - -#endif // __Slit_hh