summaryrefslogtreecommitdiff
path: root/src/screen.hh
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-03-21 18:42:39 +0000
committerDana Jansens <danakj@orodu.net>2003-03-21 18:42:39 +0000
commita52a6d96d701c993896f276e4198003317632aaf (patch)
treebe2f51e6a433d1fdf9a7c8248b343cb3f6297212 /src/screen.hh
parenta36c7543d4eedaa9e10bfd9f4d9b81279b1bb7e6 (diff)
rm the old code including the .pys and the c++ shit
Diffstat (limited to 'src/screen.hh')
-rw-r--r--src/screen.hh230
1 files changed, 0 insertions, 230 deletions
diff --git a/src/screen.hh b/src/screen.hh
deleted file mode 100644
index 20ba0a63..00000000
--- a/src/screen.hh
+++ /dev/null
@@ -1,230 +0,0 @@
-// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
-#ifndef __screen_hh
-#define __screen_hh
-
-/*! @file screen.hh
- @brief Screen manages a single screen
-*/
-
-extern "C" {
-#include <X11/Xlib.h>
-}
-
-#include "otk/strut.hh"
-#include "otk/rect.hh"
-#include "otk/screeninfo.hh"
-#include "otk/eventhandler.hh"
-#include "otk/property.hh"
-#include "otk/ustring.hh"
-
-#include <string>
-#include <list>
-
-namespace ob {
-
-class Client;
-
-struct DesktopLayout {
- enum Corner { TopLeft, TopRight, BottomRight, BottomLeft };
- enum Direction { Horizontal, Vertical };
-
- Direction orientation;
- Corner start_corner;
- unsigned int rows;
- unsigned int columns;
-};
-
-//! Manages a single screen
-/*!
-*/
-class Screen : public otk::EventHandler {
-public:
- //! Holds a list of otk::Strut objects
- typedef std::vector<otk::Strut> StrutList;
- //! Holds a list of otk::Rect objects
- typedef std::vector<otk::Rect> RectList;
-
- static const unsigned long event_mask = ColormapChangeMask |
- EnterWindowMask |
- LeaveWindowMask |
- PropertyChangeMask |
- SubstructureNotifyMask |
- SubstructureRedirectMask |
- ButtonPressMask |
- ButtonReleaseMask;
-
- //! All managed clients on the screen (in order of being mapped)
- std::list<Client*> clients;
-
-private:
- //! Was %Openbox able to manage the screen?
- bool _managed;
-
- //! The number of the screen on the X server
- int _number;
-
- //! Information about this screen
- const otk::ScreenInfo *_info;
-
- //! Area usable for placement etc (total - struts), one per desktop,
- //! plus one extra for windows on all desktops
- RectList _area;
-
- //! Combined strut from all of the clients' struts, one per desktop,
- //! plus one extra for windows on all desktops
- StrutList _struts;
-
- //! An offscreen window which gets focus when nothing else has it
- Window _focuswindow;
-
- //! An offscreen window which shows that a NETWM compliant window manager is
- //! running
- Window _supportwindow;
-
- //! A list of all managed clients on the screen, in their stacking order
- std::list<Client*> _stacking;
-
- //! The desktop currently being displayed
- unsigned int _desktop;
-
- //! The number of desktops
- unsigned int _num_desktops;
-
- //! The names of all desktops
- otk::Property::StringVect _desktop_names;
-
- //! The layout of the desktops as specified by an EWMH compliant pager
- DesktopLayout _layout;
-
- //! True when the window manager is in 'showing desktop' mode
- bool _showing_desktop;
-
- //! Calculate the Screen::_area member
- void calcArea();
- //! Set the list of supported NETWM atoms on the root window
- void changeSupportedAtoms();
- //! Set the client list on the root window
- /*!
- Sets the _NET_CLIENT_LIST root window property.<br>
- Also calls Screen::updateStackingList.
- */
- void changeClientList();
- //! Set the client stacking list on the root window
- /*!
- Set the _NET_CLIENT_LIST_STACKING root window property.
- */
- void changeStackingList();
- //! Set the work area hint on the root window
- /*!
- Set the _NET_WORKAREA root window property.
- */
- void changeWorkArea();
-
- //! Get desktop names from the root window property
- void updateDesktopNames();
-
- //! Gets the layout of the desktops from the root window property
- void updateDesktopLayout();
-
- //! Changes to the specified desktop, displaying windows on it and hiding
- //! windows on the others.
- /*!
- @param desktop The number of the desktop to switch to (starts from 0).
- If the desktop is out of valid range, it is ignored.
- */
- void changeDesktop(unsigned int desktop);
-
- //! Changes the number of desktops.
- /*!
- @param num The number of desktops that should exist. This value must be
- greater than 0 or it will be ignored.
- */
- void changeNumDesktops(unsigned int num);
-
-public:
- //! Constructs a new Screen object
- Screen(int screen);
- //! Destroys the Screen object
- virtual ~Screen();
-
- inline int number() const { return _number; }
-
- //! Returns if the screen was successfully managed
- /*!
- If this is false, then the screen should be deleted and should NOT be
- used.
- */
- inline bool managed() const { return _managed; }
-
- //! An offscreen window which gets focus when nothing else has it
- inline Window focuswindow() const { return _focuswindow; }
- //! Returns the desktop being displayed
- inline unsigned int desktop() const { return _desktop; }
- //! Returns the number of desktops
- inline unsigned int numDesktops() const { return _num_desktops; }
- //! When true, the desktop is being shown and all clients are hidden
- inline bool showingDesktop() const { return _showing_desktop; }
-
- //! Returns the area of the screen not reserved by applications' Struts
- /*!
- @param desktop The desktop number of the area to retrieve for. A value of
- 0xffffffff will return an area that combines all struts
- on all desktops.
- */
- const otk::Rect& area(unsigned int desktop) const;
-
- //! Gives the layout of how the desktops are being displayed, the number of
- //! rows and columns etc.
- const DesktopLayout& desktopLayout() const { return _layout; }
-
- //! Shows and focuses the desktop and hides all the client windows, or
- //! returns to the normal state, showing client windows.
- void showDesktop(bool show);
-
- //! Update's the screen's combined strut of all the clients.
- /*!
- Clients should call this whenever they change their strut.
- */
- void updateStruts();
-
- //! Manage any pre-existing windows on the screen
- void manageExisting();
- //! Manage a client window
- /*!
- This gives the window a frame, reparents it, selects events on it, etc.
- */
- void manageWindow(Window window);
- //! Unmanage a client
- /*!
- This removes the window's frame, reparents it to root, unselects events on
- it, etc.
- @param client The client to unmanage
- */
- void unmanageWindow(Client *client);
-
- //! Raises a client window above all others in its stacking layer
- /*!
- raiseWindow has a couple of constraints that lowerWindow does not.<br>
- 1) raiseWindow can be called after changing a Client's stack layer, and
- the list will be reorganized properly.<br>
- 2) raiseWindow guarantees that XRestackWindows() will <i>always</i> be
- called for the specified client.
- */
- void raiseWindow(Client *client);
-
- //! Lowers a client window below all others in its stacking layer
- void lowerWindow(Client *client);
-
- const otk::Property::StringVect& desktopNames() const
- { return _desktop_names; }
-
- void installColormap(bool install) const;
-
- virtual void propertyHandler(const XPropertyEvent &e);
- virtual void clientMessageHandler(const XClientMessageEvent &e);
- virtual void mapRequestHandler(const XMapRequestEvent &e);
-};
-
-}
-
-#endif// __screen_hh