summaryrefslogtreecommitdiff
path: root/src/client.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/client.hh
parenta36c7543d4eedaa9e10bfd9f4d9b81279b1bb7e6 (diff)
rm the old code including the .pys and the c++ shit
Diffstat (limited to 'src/client.hh')
-rw-r--r--src/client.hh759
1 files changed, 0 insertions, 759 deletions
diff --git a/src/client.hh b/src/client.hh
deleted file mode 100644
index 382ab1df..00000000
--- a/src/client.hh
+++ /dev/null
@@ -1,759 +0,0 @@
-// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
-#ifndef __client_hh
-#define __client_hh
-
-/*! @file client.hh
- @brief The Client class maintains the state of a client window by handling
- property changes on the window and some client messages
-*/
-
-#include "screen.hh"
-#include "otk/strut.hh"
-#include "otk/rect.hh"
-#include "otk/eventhandler.hh"
-#include "otk/ustring.hh"
-
-extern "C" {
-#include <X11/Xlib.h>
-
-#ifdef SHAPE
-#include <X11/extensions/shape.h>
-#endif // SHAPE
-}
-
-#include <string>
-#include <list>
-
-namespace ob {
-
-class Frame;
-class Screen;
-
-struct Icon {
- unsigned long w, h;
- unsigned long *data;
-};
-
-//! The MWM Hints as retrieved from the window property
-/*!
- This structure only contains 3 elements, even though the Motif 2.0
- structure contains 5. We only use the first 3, so that is all gets defined.
-*/
-struct MwmHints {
- unsigned long flags; //!< A bitmask of Client::MwmFlags values
- unsigned long functions; //!< A bitmask of Client::MwmFunctions values
- unsigned long decorations;//!< A bitmask of Client::MwmDecorations values
- //! The number of elements in the Client::MwmHints struct
- static const unsigned int elements = 3;
-};
-
-//! Maintains the state of a client window.
-/*!
- Client maintains the state of a client window. The state consists of the
- hints that the application sets on the window, such as the title, or window
- gravity.
- <p>
- Client also manages client messages for the client window. When the
- application (or any application) requests something to be changed for the
- client, it will call the ActionHandler (for client messages) or update the
- class' member variables and call whatever is nessary to complete the
- change (such as causing a redraw of the titlebar after the title is changed).
-*/
-class Client : public otk::EventHandler {
-public:
-
- //! The frame window which decorates around the client window
- /*!
- NOTE: This should NEVER be used inside the client class's constructor!
- */
- Frame *frame;
-
- //! Holds a list of Clients
- typedef std::list<Client*> List;
-
- //! The possible stacking layers a client window can be a part of
- enum StackLayer {
- Layer_Icon, //!< 0 - iconified windows, in any order at all
- Layer_Desktop, //!< 1 - desktop windows
- Layer_Below, //!< 2 - normal windows w/ below
- Layer_Normal, //!< 3 - normal windows
- Layer_Above, //!< 4 - normal windows w/ above
- Layer_Top, //!< 5 - always-on-top-windows (docks?)
- Layer_Fullscreen, //!< 6 - fullscreeen windows
- Layer_Internal, //!< 7 - openbox windows/menus
- NUM_LAYERS
- };
-
- //! Corners of the client window, used for anchor positions
- enum Corner { TopLeft,
- TopRight,
- BottomLeft,
- BottomRight };
-
- //! Possible window types
- enum WindowType { Type_Desktop, //!< A desktop (bottom-most window)
- Type_Dock, //!< A dock bar/panel window
- Type_Toolbar, //!< A toolbar window, pulled off an app
- Type_Menu, //!< An unpinned menu from an app
- Type_Utility, //!< A small utility window such as a palette
- Type_Splash, //!< A splash screen window
- Type_Dialog, //!< A dialog window
- Type_Normal //!< A normal application window
- };
-
- //! Possible flags for MWM Hints (defined by Motif 2.0)
- enum MwmFlags { MwmFlag_Functions = 1 << 0, //!< The MMW Hints define funcs
- MwmFlag_Decorations = 1 << 1 //!< The MWM Hints define decor
- };
-
- //! Possible functions for MWM Hints (defined by Motif 2.0)
- enum MwmFunctions { MwmFunc_All = 1 << 0, //!< All functions
- MwmFunc_Resize = 1 << 1, //!< Allow resizing
- MwmFunc_Move = 1 << 2, //!< Allow moving
- MwmFunc_Iconify = 1 << 3, //!< Allow to be iconfied
- MwmFunc_Maximize = 1 << 4 //!< Allow to be maximized
- //MwmFunc_Close = 1 << 5 //!< Allow to be closed
- };
-
- //! Possible decorations for MWM Hints (defined by Motif 2.0)
- enum MemDecorations { MwmDecor_All = 1 << 0, //!< All decorations
- MwmDecor_Border = 1 << 1, //!< Show a border
- MwmDecor_Handle = 1 << 2, //!< Show a handle (bottom)
- MwmDecor_Title = 1 << 3, //!< Show a titlebar
- //MwmDecor_Menu = 1 << 4, //!< Show a menu
- MwmDecor_Iconify = 1 << 5, //!< Show an iconify button
- MwmDecor_Maximize = 1 << 6 //!< Show a maximize button
- };
-
- //! The things the user can do to the client window
- enum Function { Func_Resize = 1 << 0, //!< Allow resizing
- Func_Move = 1 << 1, //!< Allow moving
- Func_Iconify = 1 << 2, //!< Allow to be iconified
- Func_Maximize = 1 << 3, //!< Allow to be maximized
- Func_Shade = 1 << 4, //!< Allow to be shaded
- Func_Fullscreen = 1 << 5, //!< Allow to be made fullscreen
- Func_Close = 1 << 6 //!< Allow to be closed
- };
- //! Holds a bitmask of Client::Function values
- typedef unsigned char FunctionFlags;
-
- //! The decorations the client window wants to be displayed on it
- enum Decoration { Decor_Titlebar = 1 << 0, //!< Display a titlebar
- Decor_Handle = 1 << 1, //!< Display a handle (bottom)
- Decor_Border = 1 << 2, //!< Display a border
- Decor_Icon = 1 << 3, //!< Display the window's icon
- Decor_Iconify = 1 << 4, //!< Display an iconify button
- Decor_Maximize = 1 << 5, //!< Display a maximize button
- //! Display a button to toggle the window's placement on
- //! all desktops
- Decor_AllDesktops = 1 << 6,
- Decor_Close = 1 << 7 //!< Display a close button
- };
- //! Holds a bitmask of Client::Decoration values
- typedef unsigned char DecorationFlags;
-
- //! The event mask to grab on client windows
- static const long event_mask = PropertyChangeMask | FocusChangeMask |
- StructureNotifyMask;
-
- //! The mask of events to not let propogate past the client
- /*!
- This makes things like xprop work on the client window, but means we have
- to explicitly grab clicks that we want.
- */
- static const long no_propagate_mask = ButtonPressMask | ButtonReleaseMask |
- ButtonMotionMask;
-
- //! The number of unmap events to ignore on the window
- int ignore_unmaps;
-
-private:
- //! The screen number on which the client resides
- int _screen;
-
- //! The actual window that this class is wrapping up
- Window _window;
-
- //! The id of the group the window belongs to
- Window _group;
-
- //! The client which this client is a transient (child) for
- Client *_transient_for;
-
- //! The clients which are transients (children) of this client
- Client::List _transients;
-
- //! The desktop on which the window resides (0xffffffff for all desktops)
- unsigned int _desktop;
-
- //! Normal window title
- otk::ustring _title;
- //! Window title when iconifiged
- otk::ustring _icon_title;
-
- //! The application that created the window
- std::string _app_name;
- //! The class of the window, can used for grouping
- std::string _app_class;
- //! The specified role of the window, used for identification
- std::string _role;
-
- //! The type of window (what its function is)
- WindowType _type;
-
- //! Position and size of the window
- /*!
- This will not always be the actual position of the window on screen, it is
- rather, the position requested by the client, to which the window's gravity
- is applied.
- */
- otk::Rect _area;
-
- //! The window's strut
- /*!
- The strut defines areas of the screen that are marked off-bounds for window
- placement. In theory, where this window exists.
- */
- otk::Strut _strut;
-
- //! The logical size of the window
- /*!
- The "logical" size of the window is refers to the user's perception of the
- size of the window, and is the value that should be displayed to the user.
- For example, with xterms, this value it the number of characters being
- displayed in the terminal, instead of the number of pixels.
- */
- otk::Size _logical_size;
-
- //! Width of the border on the window.
- /*!
- The window manager will set this to 0 while the window is being managed,
- but needs to restore it afterwards, so it is saved here.
- */
- int _border_width;
-
- //! The minimum aspect ratio the client window can be sized to.
- /*!
- A value of 0 means this is ignored.
- */
- float _min_ratio;
- //! The maximum aspect ratio the client window can be sized to.
- /*!
- A value of 0 means this is ignored.
- */
- float _max_ratio;
-
- //! The minimum size of the client window
- /*!
- If the min is > the max, then the window is not resizable
- */
- otk::Size _min_size;
- //! The maximum size of the client window
- /*!
- If the min is > the max, then the window is not resizable
- */
- otk::Size _max_size;
- //! The size of increments to resize the client window by
- otk::Size _size_inc;
- //! The base size of the client window
- /*!
- This value should be subtracted from the window's actual size when
- displaying its size to the user, or working with its min/max size
- */
- otk::Size _base_size;
-
- //! Window decoration and functionality hints
- MwmHints _mwmhints;
-
- //! Where to place the decorated window in relation to the undecorated window
- int _gravity;
-
- //! The state of the window, one of WithdrawnState, IconicState, or
- //! NormalState
- long _wmstate;
-
- //! True if the client supports the delete_window protocol
- bool _delete_window;
-
- //! Was the window's position requested by the application? if not, we should
- //! place the window ourselves when it first appears
- bool _positioned;
-
- //! Can the window receive input focus?
- bool _can_focus;
- //! Urgency flag
- bool _urgent;
- //! Notify the window when it receives focus?
- bool _focus_notify;
- //! Does the client window have the input focus?
- bool _focused;
-
- //! The window uses shape extension to be non-rectangular?
- bool _shaped;
-
- //! The window is modal, so it must be processed before any windows it is
- //! related to can be focused
- bool _modal;
- //! Only the window's titlebar is displayed
- bool _shaded;
- //! The window is iconified
- bool _iconic;
- //! The window is maximized to fill the screen vertically
- bool _max_vert;
- //! The window is maximized to fill the screen horizontally
- bool _max_horz;
- //! The window should not be displayed by pagers
- bool _skip_pager;
- //! The window should not be displayed by taskbars
- bool _skip_taskbar;
- //! The window is a 'fullscreen' window, and should be on top of all others
- bool _fullscreen;
- //! The window should be on top of other windows of the same type
- bool _above;
- //! The window should be underneath other windows of the same type
- bool _below;
-
- //! The layer in which the window will be stacked, windows in lower layers
- //! are always below windows in higher layers.
- StackLayer _layer;
-
- //! A bitmask of values in the Client::Decoration enum
- /*!
- The values in the variable are the decorations that the client wants to be
- displayed around it.
- */
- DecorationFlags _decorations;
-
- //! A bitmask of values in the Client::Decoration enum.
- /*!
- Specifies the decorations that should NOT be displayed on the client.
- */
- DecorationFlags _disabled_decorations;
-
- //! A bitmask of values in the Client::Function enum
- /*!
- The values in the variable specify the ways in which the user is allowed to
- modify this window.
- */
- FunctionFlags _functions;
-
- //! Icons for the client as specified on the client window
- Icon *_icons;
- //! The number of icons in _icons
- int _nicons;
-
- Pixmap _pixmap_icon;
- Pixmap _pixmap_icon_mask;
-
- //! Retrieves the window's initial gravity
- void getGravity();
- //! Retrieves the desktop hint's value and sets Client::_desktop
- void getDesktop();
- //! Retrieves the window's type and sets Client::_type
- void getType();
- //! Gets the MWM Hints and adjusts Client::_functions and
- //! Client::_decorations
- void getMwmHints();
- //! Gets the position and size of the window and sets Client::_area
- void getArea();
- //! Gets the net_state hint and sets the boolean flags for any states set in
- //! the hint
- void getState();
- //! Determines if the window uses the Shape extension and sets
- //! Client::_shaped
- void getShaped();
-
- //! Set up what decor should be shown on the window and what functions should
- //! be allowed (Client::_decorations and Client::_functions).
- /*!
- This also updates the NET_WM_ALLOWED_ACTIONS hint.
- */
- void setupDecorAndFunctions();
-
- //! Sets the wm_state to the specified value
- void setWMState(long state);
- //! Adjusts the window's net_state
- /*!
- This should not be called as part of the window mapping process! It is for
- use when updating the state post-mapping.<br>
- Client::applyStartupState is used to do the same things during the mapping
- process.
- */
- void setState(Atom action, long data1, long data2);
-
- //! Sends the window to the specified desktop
- void setDesktop(unsigned int desktop);
-
- //! Calculates the stacking layer for the client window
- void calcLayer();
-
- //! Update the protocols that the window supports and adjusts things if they
- //! change
- void updateProtocols();
- //! Updates the WMNormalHints and adjusts things if they change
- void updateNormalHints();
- //! Updates the WMHints and adjusts things if they change
- /*!
- @param initstate Whether to read the initial_state property from the
- WMHints. This should only be used during the mapping
- process.
- */
- void updateWMHints(bool initstate = false);
- //! Updates the window's title
- void updateTitle();
- //! Updates the window's icon title
- void updateIconTitle();
- //! Updates the window's application name and class
- void updateClass();
- //! Updates the strut for the client
- void updateStrut();
- //! Updates the window's transient status, and any parents of it
- void updateTransientFor();
- //! Updates the window's icons
- void updateIcons();
- //! Updates the window's kwm icon
- void updateKwmIcon();
-
- //! Change the client's state hints to match the class' data
- void changeState();
- //! Change the allowed actions set on the client
- void changeAllowedActions();
-
- //! Request the client to close its window.
- void close();
-
- //! Shades or unshades the client window
- /*!
- @param shade true if the window should be shaded; false if it should be
- unshaded.
- */
- void shade(bool shade);
-
- //! Recursively searches the client 'tree' for a modal client, always skips
- //! the topmost node (the window you're starting with).
- Client *Client::searchModalTree(Client *node, Client *skip);
-
- //! Recursively searches the client 'tree' for a focused client, always skips
- //! the topmost node (the window you're starting with).
- Client *Client::searchFocusTree(Client *node, Client *skip);
-
- //! Fires the urgent callbacks which lets the user do what they want with
- //! urgent windows
- void fireUrgent();
-
- //! Fullscreen's or unfullscreen's the client window
- /*!
- @param fs true if the window should be made fullscreen; false if it should
- be returned to normal state.
- @param savearea true to have the client's current size and position saved;
- otherwise, they are not. You should not save when mapping a
- new window that is set to fullscreen. This has no effect
- when restoring a window from fullscreen.
- */
- void fullscreen(bool fs, bool savearea = true);
-
- //! Iconifies or uniconifies the client window
- /*!
- @param iconic true if the window should be iconified; false if it should be
- restored.
- @param curdesk If iconic is false, then this determines if the window will
- be uniconified to the current viewable desktop (true) or to
- its previous desktop (false)
- */
- void iconify(bool iconic, bool curdesk = true);
-
- //! Maximize or unmaximize the client window
- /*!
- @param max true if the window should be maximized; false if it should be
- returned to normal size.
- @param dir 0 to set both horz and vert, 1 to set horz, 2 to set vert.
- @param savearea true to have the client's current size and position saved;
- otherwise, they are not. You should not save when mapping a
- new window that is set to fullscreen. This has no effect
- when unmaximizing a window.
- */
- void maximize(bool max, int dir, bool savearea = true);
-
- //! Internal version of the Client::move function
- /*!
- @param x The X coordinate to move to.
- @param y The Y coordinate to move to.
- @param final true if this is the final move, false if there are more move
- events coming. The client is not notified of the move when
- final is false.
- */
- void internal_move(int x, int y, bool final = true);
- //! Internal version of the Client::resize function
- /*!
- This also maintains things like the client's minsize, and size increments.
- @param anchor The corner to keep in the same position when resizing.
- @param w The width component of the new size for the client.
- @param h The height component of the new size for the client.
- @param user Specifies whether this is a user-requested change or a
- program requested change.
- @param x An optional X coordinate to which the window will be moved
- after resizing.
- @param y An optional Y coordinate to which the window will be moved
- after resizing.
- The x and y coordinates must both be sepcified together, or they will have
- no effect. When they are specified, the anchor is ignored.
- */
- void internal_resize(Corner anchor, int w, int h,
- bool user = true, int x = INT_MIN, int y = INT_MIN);
-
- //! Removes or reapplies the client's border to its window
- /*!
- Used when managing and unmanaging a window.
- @param addborder true if adding the border to the client; false if removing
- from the client
- */
- void toggleClientBorder(bool addborder);
-
- //! Applies the states requested when the window mapped
- /*!
- This should be called only once, during the window mapping process. It
- applies things like maximized, and fullscreen.
- */
- void applyStartupState();
-
-public:
- //! Constructs a new Client object around a specified window id
- /*!
- @param window The window id that the Client class should handle
- @param screen The screen on which the window resides
- */
- Client(int screen, Window window);
- //! Destroys the Client object
- virtual ~Client();
-
- //! Returns the screen on which the clien resides
- inline int screen() const { return _screen; }
-
- //! Returns the window id that the Client object is handling
- inline Window window() const { return _window; }
-
- //! Returns the type of the window, one of the Client::WindowType values
- inline WindowType type() const { return _type; }
- //! Returns if the window should be treated as a normal window.
- /*!
- Some windows (desktops, docks, splash screens) have special rules applied
- to them in a number of places regarding focus or user interaction.
- */
- inline bool normal() const {
- return ! (_type == Type_Desktop || _type == Type_Dock ||
- _type == Type_Splash);
- }
-
- //! Returns the desktop on which the window resides
- /*!
- This value is a 0-based index.<br>
- A value of 0xffffffff indicates that the window exists on all desktops.
- */
- inline unsigned int desktop() const { return _desktop; }
- //! Returns the window's title
- inline const otk::ustring &title() const { return _title; }
- //! Returns the window's title when it is iconified
- inline const otk::ustring &iconTitle() const { return _title; }
- //! Returns the application's name to whom the window belongs
- inline const std::string &appName() const { return _app_name; }
- //! Returns the class of the window
- inline const std::string &appClass() const { return _app_class; }
- //! Returns the program-specified role of the window
- inline const std::string &role() const { return _role; }
- //! Returns if the window can be focused
- /*!
- @return true if the window can receive focus; otherwise, false
- */
- inline bool canFocus() const { return _can_focus; }
- //! Returns if the window has indicated that it needs urgent attention
- inline bool urgent() const { return _urgent; }
- //! Returns if the window wants to be notified when it receives focus
- inline bool focusNotify() const { return _focus_notify; }
- //! Returns if the window is the focused window
- inline bool focused() const { return _focused; }
- //! Returns if the window uses the Shape extension
- inline bool shaped() const { return _shaped; }
- //! Returns the window's gravity
- /*!
- This value determines where to place the decorated window in relation to
- its position without decorations.<br>
- One of: NorthWestGravity, SouthWestGravity, EastGravity, ...,
- SouthGravity, StaticGravity, ForgetGravity
- */
- inline int gravity() const { return _gravity; }
- //! Returns if the application requested the initial position for the window
- /*!
- If the application did not request a position (this function returns false)
- then the window should be placed intelligently by the window manager
- initially
- */
- inline bool positionRequested() const { return _positioned; }
- //! Returns the decorations that the client window wishes to be displayed on
- //! it
- inline DecorationFlags decorations() const { return _decorations; }
- //! Returns the decorations that the user has requested to be disabled on the
- //! client
- inline DecorationFlags disabledDecorations() const
- { return _disabled_decorations; }
- //! Returns the functions that the user can perform on the window
- inline FunctionFlags functions() const { return _functions; }
-
- //! Return the client this window is transient for
- inline Client *transientFor() const { return _transient_for; }
-
- //! Returns if the window is modal
- /*!
- If the window is modal, then no other windows that it is related to can get
- focus while it exists/remains modal.
- */
- inline bool modal() const { return _modal; }
- //! The window should not be displayed by pagers
- inline bool skipPager() const { return _skip_pager; }
- //! The window should not be displayed by taskbars
- inline bool skipTaskbar() const { return _skip_taskbar; }
- //! Returns if the window is shaded
- /*!
- When the window is shaded, only its titlebar is visible.
- */
- inline bool shaded() const { return _shaded; }
- //! Returns if the window is in fullscreen mode
- inline bool fullscreen() const { return _fullscreen; }
- //! Returns if the window is iconified
- /*!
- When the window is iconified, it is not visible at all (except in iconbars/
- panels/etc that want to show lists of iconified windows
- */
- inline bool iconic() const { return _iconic; }
- //! Returns if the window is maximized vertically
- inline bool maxVert() const { return _max_vert; }
- //! Returns if the window is maximized horizontally
- inline bool maxHorz() const { return _max_horz; }
- //! Returns the window's stacking layer
- inline StackLayer layer() const { return _layer; }
-
- //! Returns the logical size of the window
- /*!
- The "logical" size of the window is refers to the user's perception of the
- size of the window, and is the value that should be displayed to the user.
- For example, with xterms, this value it the number of characters being
- displayed in the terminal, instead of the number of pixels.
- */
- const otk::Size &logicalSize() const { return _logical_size; }
-
- //! Returns the position and size of the client relative to the root window
- /*!
- Note that this value is *not* the size and position of the window's
- frame, though the position will often line up.<br>
- If you want the frame's area, use Frame::area() instead.
- */
- inline const otk::Rect &area() const { return _area; }
-
- //! Returns the client's strut definition
- inline const otk::Strut &strut() const { return _strut; }
-
- //! Returns an icon for the window
- /*!
- The icon chosen will be the smallest icon available that is still bigger or
- equal to the specified Size.<br>
- If none that meet the requirements is found, the largest icon that is
- smaller than the specified size will be returned.
- */
- const Icon *icon(const otk::Size &s) const;
-
- //! Returns the pixmap for the pixmap icon specified on the window (or None)
- /*!
- The icon given by Client::icon should take precedence over this icon/mask.
- */
- Pixmap pixmapIcon() const { return _pixmap_icon; }
- //! Returns the mask for the pixmap icon specified on the window (or None)
- /*!
- The icon given by Client::icon should take precedence over this icon/mask.
- */
- Pixmap pixmapIconMask() const { return _pixmap_icon_mask; }
-
- //! Move the window (actually, its frame) to a position.
- /*!
- This moves the window so that the top-left corner of its frame will be at
- the position specified.
- @param x The X coordinate to move to.
- @param y The Y coordinate to move to.
- @param final true if this is the final move, false if there are more move
- events coming. The client is not notified of the move when
- final is false.
- */
- void move(int x, int y, bool final = true);
-
- //! Resizes the client window, anchoring it in a given corner
- /*!
- This also maintains things like the client's minsize, and size increments.
- @param anchor The corner to keep in the same position when resizing.
- @param w The width component of the new size for the client.
- @param h The height component of the new size for the client.
- */
- void resize(Corner anchor, int w, int h);
-
- //! Reapplies the maximized state to the window
- /*!
- Use this to make the window readjust its maximized size to new
- surroundings (struts, etc).
- */
- void remaximize();
-
- //! Shows the window if it should be shown, or hides it
- /*!
- Used when changing desktops, the window's state, etc.
- */
- void showhide();
-
- //! Choose a mask of decorations to not display on the client
- /*!
- Pass a value of 0 to the function to turn all decorations back on. Note
- that you cannot add decorations to a window with this, you can only remove
- decorations that would otherwise have been displayed.
- @param flags The mask of values from Client::Decoration to specify which
- decorations should not be displayed.
- */
- void disableDecorations(DecorationFlags flags);
-
- //! Return a modal child of the client window
- /*!
- @return A modal child of the client window, or 0 if none was found.
- */
- Client *findModalChild();
-
- //! Attempt to focus the client window
- bool focus();
-
- //! Remove focus from the client window
- void unfocus() const;
-
- //! Validate client, by making sure no Destroy or Unmap events exist in
- //! the event queue for the window.
- /*!
- @return true if the client is valid; false if the client has already
- been unmapped/destroyed, and so is invalid.
- */
- bool validate() const;
-
- void installColormap(bool install) const;
-
- virtual void focusHandler(const XFocusChangeEvent &e);
- virtual void unfocusHandler(const XFocusChangeEvent &e);
- virtual void propertyHandler(const XPropertyEvent &e);
- virtual void clientMessageHandler(const XClientMessageEvent &e);
- virtual void configureRequestHandler(const XConfigureRequestEvent &e);
- virtual void unmapHandler(const XUnmapEvent &e);
- virtual void destroyHandler(const XDestroyWindowEvent &e);
- virtual void reparentHandler(const XReparentEvent &e);
- virtual void mapRequestHandler(const XMapRequestEvent &e);
-#if defined(SHAPE)
- virtual void shapeHandler(const XShapeEvent &e);
-#endif // SHAPE
-
- friend void Screen::manageWindow(Window);
- friend void Screen::unmanageWindow(Client *);
-};
-
-}
-
-#endif // __client_hh