// -*- 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"