wrap/ob.i (raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- %module ob %{ #include <X11/Xlib.h> #include "otk/display.hh" void send_client_msg(Window target, Atom type, Window about, long data=0, long data1=0, long data2=0, long data3=0, long data4=0) { XEvent e; e.xclient.type = ClientMessage; e.xclient.format = 32; e.xclient.message_type = type; e.xclient.window = about; e.xclient.data.l[0] = data; e.xclient.data.l[1] = data1; e.xclient.data.l[2] = data2; e.xclient.data.l[3] = data3; e.xclient.data.l[4] = data4; XSendEvent(**otk::display, target, false, SubstructureRedirectMask | SubstructureNotifyMask, &e); } %} %include "ob_openbox.i" %include "ob_screen.i" %include "ob_client.i" %include "ob_frame.i" %include "ob_python.i" %include "ob_callback.i" // for Window etc %import "X11/X.h" %inline %{ #include <string> #include "bindings.hh" #include "otk/display.hh" #include "otk/screeninfo.hh" #include "otk/util.hh" void set_reset_key(const std::string &key) { ob::openbox->bindings()->setResetKey(key); } void execute(const std::string &bin, int screen=0) { if (screen >= ScreenCount(**otk::display)) screen = 0; otk::bexec(bin, otk::display->screenInfo(screen)->displayString()); } %}; // globals %pythoncode %{ openbox = cvar.openbox; %} |