-// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
-
-%module ob_client
-
-%{
-#include "config.h"
-#include "client.hh"
-%}
-
-%include "otk_size.i"
-%include "otk_ustring.i"
-%include "std_string.i"
-
-namespace ob {
-
-%immutable Client::frame;
-
-%ignore Client::event_mask;
-%ignore Client::no_propagate_mask;
-%ignore Client::ignore_unmaps;
-%ignore Client::Client(int, Window);
-%ignore Client::~Client();
-%ignore Client::icon(const otk::Size &) const;
-%ignore Client::pixmapIcon() const;
-%ignore Client::pixmapIconMask() const;
-%ignore Client::showhide();
-%ignore Client::focus();
-%ignore Client::unfocus() const;
-%ignore Client::validate() const;
-%ignore Client::installColormap(bool) const;
-%ignore Client::focusHandler(const XFocusChangeEvent &);
-%ignore Client::unfocusHandler(const XFocusChangeEvent &);
-%ignore Client::propertyHandler(const XPropertyEvent &);
-%ignore Client::clientMessageHandler(const XClientMessageEvent &);
-%ignore Client::configureRequestHandler(const XConfigureRequestEvent &);
-%ignore Client::unmapHandler(const XUnmapEvent &);
-%ignore Client::destroyHandler(const XDestroyWindowEvent &);
-%ignore Client::reparentHandler(const XReparentEvent &);
-%ignore Client::mapRequestHandler(const XMapRequestEvent &);
-%ignore Client::shapeHandler(const XShapeEvent &);
-
-
-%extend Client {
- void focus(bool unshade = false, bool raise = false) {
- Window root = otk::display->screenInfo(self->screen())->rootWindow();
- send_client_msg(root, otk::Property::atoms.openbox_active_window,
- self->window(), unshade ? 1 : 0, raise ? 1 : 0);
- }
-
- bool __cmp__(const Client *o) { return self->window() != o->window(); }
-
- void raiseWindow() {
- Window root = RootWindow(**otk::display, self->screen());
- send_client_msg(root, otk::Property::atoms.openbox_restack_window,
- self->window(), 0);
- }
- void lowerWindow() {
- Window root = RootWindow(**otk::display, self->screen());
- send_client_msg(root, otk::Property::atoms.openbox_restack_window,
- self->window(), 1);
- }
-
- void setDesktop(unsigned int desktop) {
- Window root = RootWindow(**otk::display, self->screen());
- send_client_msg(root, otk::Property::atoms.net_wm_desktop,
- self->window(), desktop);
- }
-
- void iconify(bool icon = true) {
- Window root = RootWindow(**otk::display, self->screen());
- send_client_msg(root, otk::Property::atoms.wm_change_state,
- self->window(), icon ? IconicState : NormalState);
- }
-
- void close() {
- Window root = RootWindow(**otk::display, self->screen());
- send_client_msg(root, otk::Property::atoms.net_close_window,
- self->window(), 0);
- }
-
- void shade(bool shade = true) {
- Window root = RootWindow(**otk::display, self->screen());
- send_client_msg(root, otk::Property::atoms.net_wm_state,
- self->window(),
- (shade ? otk::Property::atoms.net_wm_state_add :
- otk::Property::atoms.net_wm_state_remove),
- otk::Property::atoms.net_wm_state_shaded);
- }
-
- void maximize(bool max = true) {
- Window root = RootWindow(**otk::display, self->screen());
- send_client_msg(root, otk::Property::atoms.net_wm_state,
- self->window(),
- (max ? otk::Property::atoms.net_wm_state_add :
- otk::Property::atoms.net_wm_state_remove),
- otk::Property::atoms.net_wm_state_maximized_horz,
- otk::Property::atoms.net_wm_state_maximized_vert);
- }
-
- void maximizeHorizontal(bool max = true) {
- Window root = RootWindow(**otk::display, self->screen());
- send_client_msg(root, otk::Property::atoms.net_wm_state,
- self->window(),
- (max ? otk::Property::atoms.net_wm_state_add :
- otk::Property::atoms.net_wm_state_remove),
- otk::Property::atoms.net_wm_state_maximized_horz);
- }
-
- void maximizeVertical(bool max = true) {
- Window root = RootWindow(**otk::display, self->screen());
- send_client_msg(root, otk::Property::atoms.net_wm_state,
- self->window(),
- (max ? otk::Property::atoms.net_wm_state_add :
- otk::Property::atoms.net_wm_state_remove),
- otk::Property::atoms.net_wm_state_maximized_vert);
- }
-
- void setSkipTaskbar(bool skip = true) {
- Window root = RootWindow(**otk::display, self->screen());
- send_client_msg(root, otk::Property::atoms.net_wm_state,
- self->window(),
- (skip ? otk::Property::atoms.net_wm_state_add :
- otk::Property::atoms.net_wm_state_remove),
- otk::Property::atoms.net_wm_state_skip_taskbar);
- }
-
- void setSkipPager(bool skip = true) {
- Window root = RootWindow(**otk::display, self->screen());
- send_client_msg(root, otk::Property::atoms.net_wm_state,
- self->window(),
- (skip ? otk::Property::atoms.net_wm_state_add :
- otk::Property::atoms.net_wm_state_remove),
- otk::Property::atoms.net_wm_state_skip_pager);
- }
-
- void setAbove(bool above = true) {
- Window root = RootWindow(**otk::display, self->screen());
- send_client_msg(root, otk::Property::atoms.net_wm_state,
- self->window(),
- (above ? otk::Property::atoms.net_wm_state_add :
- otk::Property::atoms.net_wm_state_remove),
- otk::Property::atoms.net_wm_state_above);
- }
-
- void setBelow(bool below = true) {
- Window root = RootWindow(**otk::display, self->screen());
- send_client_msg(root, otk::Property::atoms.net_wm_state,
- self->window(),
- (below ? otk::Property::atoms.net_wm_state_add :
- otk::Property::atoms.net_wm_state_remove),
- otk::Property::atoms.net_wm_state_below);
- }
-};
-
-}
-
-%import "../otk/eventhandler.hh"
-%include "client.hh"