all repos — openbox @ efc875f5f273f3a5f62ae5c2937a771167740442

openbox fork - make it a bit more like ryudo

src/openbox.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
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-

%module openbox

%{
#ifdef HAVE_CONFIG_H
#  include "../config.h"
#endif

#include "openbox.hh"
#include "screen.hh"
#include "client.hh"
%}

%include stl.i
//%include std_list.i
//%template(ClientList) std::list<OBClient*>;


%ignore ob::Openbox::instance;
%ignore ob::OBScreen::clients;

%import "../otk/eventdispatcher.hh"
%import "../otk/eventhandler.hh"
%import "widget.hh"

%include "openbox.hh"
%include "screen.hh"
%include "client.hh"

%inline %{
  ob::Openbox *Openbox_instance() { return ob::Openbox::instance; }
%};

%{
  #include <iterator>
%}
%extend ob::OBScreen {
  OBClient *client(int i) {
    ob::OBScreen::ClientList::iterator it = self->clients.begin();
    std::advance(it,i);
    return *it;
  }
  int clientCount() const {
    return (int) self->clients.size();
  }
};