removing all prefixes completed
This commit is contained in:
parent
f1b9e2168d
commit
77ab46d1e3
25 changed files with 2216 additions and 2483 deletions
|
@ -17,9 +17,9 @@
|
||||||
|
|
||||||
namespace ob {
|
namespace ob {
|
||||||
|
|
||||||
const int OBActions::BUTTONS;
|
const int Actions::BUTTONS;
|
||||||
|
|
||||||
OBActions::OBActions()
|
Actions::Actions()
|
||||||
: _button(0)
|
: _button(0)
|
||||||
{
|
{
|
||||||
for (int i=0; i<BUTTONS; ++i)
|
for (int i=0; i<BUTTONS; ++i)
|
||||||
|
@ -27,14 +27,14 @@ OBActions::OBActions()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
OBActions::~OBActions()
|
Actions::~Actions()
|
||||||
{
|
{
|
||||||
for (int i=0; i<BUTTONS; ++i)
|
for (int i=0; i<BUTTONS; ++i)
|
||||||
delete _posqueue[i];
|
delete _posqueue[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBActions::insertPress(const XButtonEvent &e)
|
void Actions::insertPress(const XButtonEvent &e)
|
||||||
{
|
{
|
||||||
ButtonPressAction *a = _posqueue[BUTTONS - 1];
|
ButtonPressAction *a = _posqueue[BUTTONS - 1];
|
||||||
// rm'd the last one, shift them all down one
|
// rm'd the last one, shift them all down one
|
||||||
|
@ -45,11 +45,11 @@ void OBActions::insertPress(const XButtonEvent &e)
|
||||||
a->button = e.button;
|
a->button = e.button;
|
||||||
a->pos.setPoint(e.x_root, e.y_root);
|
a->pos.setPoint(e.x_root, e.y_root);
|
||||||
|
|
||||||
OBClient *c = Openbox::instance->findClient(e.window);
|
Client *c = Openbox::instance->findClient(e.window);
|
||||||
if (c) a->clientarea = c->area();
|
if (c) a->clientarea = c->area();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBActions::removePress(const XButtonEvent &e)
|
void Actions::removePress(const XButtonEvent &e)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
ButtonPressAction *a = 0;
|
ButtonPressAction *a = 0;
|
||||||
|
@ -66,13 +66,13 @@ void OBActions::removePress(const XButtonEvent &e)
|
||||||
_posqueue[BUTTONS-1]->button = 0;
|
_posqueue[BUTTONS-1]->button = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBActions::buttonPressHandler(const XButtonEvent &e)
|
void Actions::buttonPressHandler(const XButtonEvent &e)
|
||||||
{
|
{
|
||||||
OtkEventHandler::buttonPressHandler(e);
|
otk::EventHandler::buttonPressHandler(e);
|
||||||
insertPress(e);
|
insertPress(e);
|
||||||
|
|
||||||
// run the PRESS python hook
|
// run the PRESS python hook
|
||||||
OBWidget *w = dynamic_cast<OBWidget*>
|
WidgetBase *w = dynamic_cast<WidgetBase*>
|
||||||
(Openbox::instance->findHandler(e.window));
|
(Openbox::instance->findHandler(e.window));
|
||||||
assert(w); // everything should be a widget
|
assert(w); // everything should be a widget
|
||||||
|
|
||||||
|
@ -80,11 +80,11 @@ void OBActions::buttonPressHandler(const XButtonEvent &e)
|
||||||
unsigned int state = e.state & (ControlMask | ShiftMask | Mod1Mask |
|
unsigned int state = e.state & (ControlMask | ShiftMask | Mod1Mask |
|
||||||
Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask);
|
Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask);
|
||||||
int screen;
|
int screen;
|
||||||
OBClient *c = Openbox::instance->findClient(e.window);
|
Client *c = Openbox::instance->findClient(e.window);
|
||||||
if (c)
|
if (c)
|
||||||
screen = c->screen();
|
screen = c->screen();
|
||||||
else
|
else
|
||||||
screen = otk::OBDisplay::findScreen(e.root)->screen();
|
screen = otk::Display::findScreen(e.root)->screen();
|
||||||
MouseData data(screen, c, e.time, state, e.button, w->mcontext(),
|
MouseData data(screen, c, e.time, state, e.button, w->mcontext(),
|
||||||
MousePress);
|
MousePress);
|
||||||
Openbox::instance->bindings()->fireButton(&data);
|
Openbox::instance->bindings()->fireButton(&data);
|
||||||
|
@ -106,12 +106,12 @@ void OBActions::buttonPressHandler(const XButtonEvent &e)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBActions::buttonReleaseHandler(const XButtonEvent &e)
|
void Actions::buttonReleaseHandler(const XButtonEvent &e)
|
||||||
{
|
{
|
||||||
OtkEventHandler::buttonReleaseHandler(e);
|
otk::EventHandler::buttonReleaseHandler(e);
|
||||||
removePress(e);
|
removePress(e);
|
||||||
|
|
||||||
OBWidget *w = dynamic_cast<OBWidget*>
|
WidgetBase *w = dynamic_cast<WidgetBase*>
|
||||||
(Openbox::instance->findHandler(e.window));
|
(Openbox::instance->findHandler(e.window));
|
||||||
assert(w); // everything should be a widget
|
assert(w); // everything should be a widget
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ void OBActions::buttonReleaseHandler(const XButtonEvent &e)
|
||||||
|
|
||||||
// find the area of the window
|
// find the area of the window
|
||||||
XWindowAttributes attr;
|
XWindowAttributes attr;
|
||||||
if (!XGetWindowAttributes(otk::OBDisplay::display, e.window, &attr)) return;
|
if (!XGetWindowAttributes(otk::Display::display, e.window, &attr)) return;
|
||||||
|
|
||||||
// if not on the window any more, it isnt a CLICK
|
// if not on the window any more, it isnt a CLICK
|
||||||
if (!(e.same_screen && e.x >= 0 && e.y >= 0 &&
|
if (!(e.same_screen && e.x >= 0 && e.y >= 0 &&
|
||||||
|
@ -134,11 +134,11 @@ void OBActions::buttonReleaseHandler(const XButtonEvent &e)
|
||||||
unsigned int state = e.state & (ControlMask | ShiftMask | Mod1Mask |
|
unsigned int state = e.state & (ControlMask | ShiftMask | Mod1Mask |
|
||||||
Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask);
|
Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask);
|
||||||
int screen;
|
int screen;
|
||||||
OBClient *c = Openbox::instance->findClient(e.window);
|
Client *c = Openbox::instance->findClient(e.window);
|
||||||
if (c)
|
if (c)
|
||||||
screen = c->screen();
|
screen = c->screen();
|
||||||
else
|
else
|
||||||
screen = otk::OBDisplay::findScreen(e.root)->screen();
|
screen = otk::Display::findScreen(e.root)->screen();
|
||||||
MouseData data(screen, c, e.time, state, e.button, w->mcontext(),
|
MouseData data(screen, c, e.time, state, e.button, w->mcontext(),
|
||||||
MouseClick);
|
MouseClick);
|
||||||
Openbox::instance->bindings()->fireButton(&data);
|
Openbox::instance->bindings()->fireButton(&data);
|
||||||
|
@ -169,54 +169,54 @@ void OBActions::buttonReleaseHandler(const XButtonEvent &e)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBActions::enterHandler(const XCrossingEvent &e)
|
void Actions::enterHandler(const XCrossingEvent &e)
|
||||||
{
|
{
|
||||||
OtkEventHandler::enterHandler(e);
|
otk::EventHandler::enterHandler(e);
|
||||||
|
|
||||||
// run the ENTER python hook
|
// run the ENTER python hook
|
||||||
int screen;
|
int screen;
|
||||||
OBClient *c = Openbox::instance->findClient(e.window);
|
Client *c = Openbox::instance->findClient(e.window);
|
||||||
if (c)
|
if (c)
|
||||||
screen = c->screen();
|
screen = c->screen();
|
||||||
else
|
else
|
||||||
screen = otk::OBDisplay::findScreen(e.root)->screen();
|
screen = otk::Display::findScreen(e.root)->screen();
|
||||||
EventData data(screen, c, EventEnterWindow, e.state);
|
EventData data(screen, c, EventEnterWindow, e.state);
|
||||||
Openbox::instance->bindings()->fireEvent(&data);
|
Openbox::instance->bindings()->fireEvent(&data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBActions::leaveHandler(const XCrossingEvent &e)
|
void Actions::leaveHandler(const XCrossingEvent &e)
|
||||||
{
|
{
|
||||||
OtkEventHandler::leaveHandler(e);
|
otk::EventHandler::leaveHandler(e);
|
||||||
|
|
||||||
// run the LEAVE python hook
|
// run the LEAVE python hook
|
||||||
int screen;
|
int screen;
|
||||||
OBClient *c = Openbox::instance->findClient(e.window);
|
Client *c = Openbox::instance->findClient(e.window);
|
||||||
if (c)
|
if (c)
|
||||||
screen = c->screen();
|
screen = c->screen();
|
||||||
else
|
else
|
||||||
screen = otk::OBDisplay::findScreen(e.root)->screen();
|
screen = otk::Display::findScreen(e.root)->screen();
|
||||||
EventData data(screen, c, EventLeaveWindow, e.state);
|
EventData data(screen, c, EventLeaveWindow, e.state);
|
||||||
Openbox::instance->bindings()->fireEvent(&data);
|
Openbox::instance->bindings()->fireEvent(&data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBActions::keyPressHandler(const XKeyEvent &e)
|
void Actions::keyPressHandler(const XKeyEvent &e)
|
||||||
{
|
{
|
||||||
OtkEventHandler::keyPressHandler(e);
|
otk::EventHandler::keyPressHandler(e);
|
||||||
|
|
||||||
// kill off the Button1Mask etc, only want the modifiers
|
// kill off the Button1Mask etc, only want the modifiers
|
||||||
unsigned int state = e.state & (ControlMask | ShiftMask | Mod1Mask |
|
unsigned int state = e.state & (ControlMask | ShiftMask | Mod1Mask |
|
||||||
Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask);
|
Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask);
|
||||||
Openbox::instance->bindings()->
|
Openbox::instance->bindings()->
|
||||||
fireKey(otk::OBDisplay::findScreen(e.root)->screen(),
|
fireKey(otk::Display::findScreen(e.root)->screen(),
|
||||||
state, e.keycode, e.time);
|
state, e.keycode, e.time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBActions::motionHandler(const XMotionEvent &e)
|
void Actions::motionHandler(const XMotionEvent &e)
|
||||||
{
|
{
|
||||||
OtkEventHandler::motionHandler(e);
|
otk::EventHandler::motionHandler(e);
|
||||||
|
|
||||||
if (!e.same_screen) return; // this just gets stupid
|
if (!e.same_screen) return; // this just gets stupid
|
||||||
|
|
||||||
|
@ -224,9 +224,9 @@ void OBActions::motionHandler(const XMotionEvent &e)
|
||||||
|
|
||||||
// compress changes to a window into a single change
|
// compress changes to a window into a single change
|
||||||
XEvent ce;
|
XEvent ce;
|
||||||
while (XCheckTypedEvent(otk::OBDisplay::display, e.type, &ce)) {
|
while (XCheckTypedEvent(otk::Display::display, e.type, &ce)) {
|
||||||
if (ce.xmotion.window != e.window) {
|
if (ce.xmotion.window != e.window) {
|
||||||
XPutBackEvent(otk::OBDisplay::display, &ce);
|
XPutBackEvent(otk::Display::display, &ce);
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
x_root = e.x_root;
|
x_root = e.x_root;
|
||||||
|
@ -234,7 +234,7 @@ void OBActions::motionHandler(const XMotionEvent &e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
OBWidget *w = dynamic_cast<OBWidget*>
|
WidgetBase *w = dynamic_cast<WidgetBase*>
|
||||||
(Openbox::instance->findHandler(e.window));
|
(Openbox::instance->findHandler(e.window));
|
||||||
assert(w); // everything should be a widget
|
assert(w); // everything should be a widget
|
||||||
|
|
||||||
|
@ -244,46 +244,46 @@ void OBActions::motionHandler(const XMotionEvent &e)
|
||||||
Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask);
|
Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask);
|
||||||
unsigned int button = _posqueue[0]->button;
|
unsigned int button = _posqueue[0]->button;
|
||||||
int screen;
|
int screen;
|
||||||
OBClient *c = Openbox::instance->findClient(e.window);
|
Client *c = Openbox::instance->findClient(e.window);
|
||||||
if (c)
|
if (c)
|
||||||
screen = c->screen();
|
screen = c->screen();
|
||||||
else
|
else
|
||||||
screen = otk::OBDisplay::findScreen(e.root)->screen();
|
screen = otk::Display::findScreen(e.root)->screen();
|
||||||
MouseData data(screen, c, e.time, state, button, w->mcontext(), MouseMotion,
|
MouseData data(screen, c, e.time, state, button, w->mcontext(), MouseMotion,
|
||||||
x_root, y_root, _posqueue[0]->pos, _posqueue[0]->clientarea);
|
x_root, y_root, _posqueue[0]->pos, _posqueue[0]->clientarea);
|
||||||
Openbox::instance->bindings()->fireButton(&data);
|
Openbox::instance->bindings()->fireButton(&data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBActions::mapRequestHandler(const XMapRequestEvent &e)
|
void Actions::mapRequestHandler(const XMapRequestEvent &e)
|
||||||
{
|
{
|
||||||
OtkEventHandler::mapRequestHandler(e);
|
otk::EventHandler::mapRequestHandler(e);
|
||||||
// do this in OBScreen::manageWindow
|
// do this in Screen::manageWindow
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBActions::unmapHandler(const XUnmapEvent &e)
|
void Actions::unmapHandler(const XUnmapEvent &e)
|
||||||
{
|
{
|
||||||
OtkEventHandler::unmapHandler(e);
|
otk::EventHandler::unmapHandler(e);
|
||||||
// do this in OBScreen::unmanageWindow
|
// do this in Screen::unmanageWindow
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBActions::destroyHandler(const XDestroyWindowEvent &e)
|
void Actions::destroyHandler(const XDestroyWindowEvent &e)
|
||||||
{
|
{
|
||||||
OtkEventHandler::destroyHandler(e);
|
otk::EventHandler::destroyHandler(e);
|
||||||
// do this in OBScreen::unmanageWindow
|
// do this in Screen::unmanageWindow
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef XKB
|
#ifdef XKB
|
||||||
void OBActions::xkbHandler(const XkbEvent &e)
|
void Actions::xkbHandler(const XkbEvent &e)
|
||||||
{
|
{
|
||||||
Window w;
|
Window w;
|
||||||
int screen;
|
int screen;
|
||||||
|
|
||||||
OtkEventHandler::xkbHandler(e);
|
otk::EventHandler::xkbHandler(e);
|
||||||
|
|
||||||
switch (((XkbAnyEvent*)&e)->xkb_type) {
|
switch (((XkbAnyEvent*)&e)->xkb_type) {
|
||||||
case XkbBellNotify:
|
case XkbBellNotify:
|
||||||
w = ((XkbBellNotifyEvent*)&e)->window;
|
w = ((XkbBellNotifyEvent*)&e)->window;
|
||||||
OBClient *c = Openbox::instance->findClient(w);
|
Client *c = Openbox::instance->findClient(w);
|
||||||
if (c)
|
if (c)
|
||||||
screen = c->screen();
|
screen = c->screen();
|
||||||
else
|
else
|
||||||
|
|
|
@ -25,7 +25,7 @@ namespace ob {
|
||||||
When these actions are fired, hooks to the guile engine are fired so that
|
When these actions are fired, hooks to the guile engine are fired so that
|
||||||
guile code is run.
|
guile code is run.
|
||||||
*/
|
*/
|
||||||
class OBActions : public otk::OtkEventHandler {
|
class Actions : public otk::EventHandler {
|
||||||
public:
|
public:
|
||||||
#ifndef SWIG // get rid of a swig warning
|
#ifndef SWIG // get rid of a swig warning
|
||||||
struct ButtonReleaseAction {
|
struct ButtonReleaseAction {
|
||||||
|
@ -61,10 +61,10 @@ private:
|
||||||
void removePress(const XButtonEvent &e);
|
void removePress(const XButtonEvent &e);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//! Constructs an OBActions object
|
//! Constructs an Actions object
|
||||||
OBActions();
|
Actions();
|
||||||
//! Destroys the OBActions object
|
//! Destroys the Actions object
|
||||||
virtual ~OBActions();
|
virtual ~Actions();
|
||||||
|
|
||||||
virtual void buttonPressHandler(const XButtonEvent &e);
|
virtual void buttonPressHandler(const XButtonEvent &e);
|
||||||
virtual void buttonReleaseHandler(const XButtonEvent &e);
|
virtual void buttonReleaseHandler(const XButtonEvent &e);
|
||||||
|
|
|
@ -8,20 +8,20 @@
|
||||||
|
|
||||||
namespace ob {
|
namespace ob {
|
||||||
|
|
||||||
OBBackgroundWidget::OBBackgroundWidget(otk::OtkWidget *parent,
|
BackgroundWidget::BackgroundWidget(otk::Widget *parent,
|
||||||
OBWidget::WidgetType type)
|
WidgetBase::WidgetType type)
|
||||||
: otk::OtkWidget(parent),
|
: otk::Widget(parent),
|
||||||
OBWidget(type)
|
WidgetBase(type)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
OBBackgroundWidget::~OBBackgroundWidget()
|
BackgroundWidget::~BackgroundWidget()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBBackgroundWidget::setTextures()
|
void BackgroundWidget::setTextures()
|
||||||
{
|
{
|
||||||
switch (type()) {
|
switch (type()) {
|
||||||
case Type_Titlebar:
|
case Type_Titlebar:
|
||||||
|
@ -48,9 +48,9 @@ void OBBackgroundWidget::setTextures()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBBackgroundWidget::setStyle(otk::Style *style)
|
void BackgroundWidget::setStyle(otk::Style *style)
|
||||||
{
|
{
|
||||||
OtkWidget::setStyle(style);
|
Widget::setStyle(style);
|
||||||
setTextures();
|
setTextures();
|
||||||
switch (type()) {
|
switch (type()) {
|
||||||
case Type_Titlebar:
|
case Type_Titlebar:
|
||||||
|
@ -65,23 +65,23 @@ void OBBackgroundWidget::setStyle(otk::Style *style)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBBackgroundWidget::focus()
|
void BackgroundWidget::focus()
|
||||||
{
|
{
|
||||||
otk::OtkWidget::focus();
|
otk::Widget::focus();
|
||||||
setTextures();
|
setTextures();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBBackgroundWidget::unfocus()
|
void BackgroundWidget::unfocus()
|
||||||
{
|
{
|
||||||
otk::OtkWidget::unfocus();
|
otk::Widget::unfocus();
|
||||||
setTextures();
|
setTextures();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBBackgroundWidget::adjust()
|
void BackgroundWidget::adjust()
|
||||||
{
|
{
|
||||||
// nothing to adjust here. its done in OBFrame::adjustSize
|
// nothing to adjust here. its done in Frame::adjustSize
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +1,20 @@
|
||||||
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
|
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
|
||||||
#ifndef __obbackgroundwidget_hh
|
#ifndef __backgroundwidget_hh
|
||||||
#define __obbackgroundwidget_hh
|
#define __backgroundwidget_hh
|
||||||
|
|
||||||
#include "otk/widget.hh"
|
#include "otk/widget.hh"
|
||||||
#include "widgetbase.hh"
|
#include "widgetbase.hh"
|
||||||
|
|
||||||
namespace ob {
|
namespace ob {
|
||||||
|
|
||||||
class OBBackgroundWidget : public otk::OtkWidget, public OBWidget
|
class BackgroundWidget : public otk::Widget, public WidgetBase
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
void setTextures();
|
void setTextures();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
OBBackgroundWidget(otk::OtkWidget *parent, OBWidget::WidgetType type);
|
BackgroundWidget(otk::Widget *parent, WidgetBase::WidgetType type);
|
||||||
virtual ~OBBackgroundWidget();
|
virtual ~BackgroundWidget();
|
||||||
|
|
||||||
virtual void setStyle(otk::Style *style);
|
virtual void setStyle(otk::Style *style);
|
||||||
|
|
||||||
|
@ -26,4 +26,4 @@ public:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // __obbackgroundwidget_hh
|
#endif // __backgroundwidget_hh
|
||||||
|
|
100
src/bindings.cc
100
src/bindings.cc
|
@ -68,7 +68,7 @@ static bool modvalue(const std::string &mod, unsigned int *val)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool OBBindings::translate(const std::string &str, Binding &b,bool askey) const
|
bool Bindings::translate(const std::string &str, Binding &b,bool askey) const
|
||||||
{
|
{
|
||||||
// parse out the base key name
|
// parse out the base key name
|
||||||
std::string::size_type keybegin = str.find_last_of('-');
|
std::string::size_type keybegin = str.find_last_of('-');
|
||||||
|
@ -98,7 +98,7 @@ bool OBBindings::translate(const std::string &str, Binding &b,bool askey) const
|
||||||
printf(_("Invalid Key name in key binding: %s\n"), key.c_str());
|
printf(_("Invalid Key name in key binding: %s\n"), key.c_str());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!(b.key = XKeysymToKeycode(otk::OBDisplay::display, sym)))
|
if (!(b.key = XKeysymToKeycode(otk::Display::display, sym)))
|
||||||
printf(_("No valid keycode for Key in key binding: %s\n"), key.c_str());
|
printf(_("No valid keycode for Key in key binding: %s\n"), key.c_str());
|
||||||
return b.key != 0;
|
return b.key != 0;
|
||||||
} else {
|
} else {
|
||||||
|
@ -115,7 +115,7 @@ static void destroytree(KeyBindingTree *tree)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
KeyBindingTree *OBBindings::buildtree(const StringVect &keylist,
|
KeyBindingTree *Bindings::buildtree(const StringVect &keylist,
|
||||||
PyObject *callback) const
|
PyObject *callback) const
|
||||||
{
|
{
|
||||||
if (keylist.empty()) return 0; // nothing in the list.. return 0
|
if (keylist.empty()) return 0; // nothing in the list.. return 0
|
||||||
|
@ -142,11 +142,11 @@ KeyBindingTree *OBBindings::buildtree(const StringVect &keylist,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
OBBindings::OBBindings()
|
Bindings::Bindings()
|
||||||
: _curpos(&_keytree),
|
: _curpos(&_keytree),
|
||||||
_resetkey(0,0),
|
_resetkey(0,0),
|
||||||
_timer(Openbox::instance->timerManager(),
|
_timer(Openbox::instance->timerManager(),
|
||||||
(otk::OBTimeoutHandler)resetChains, this)
|
(otk::TimeoutHandler)resetChains, this)
|
||||||
{
|
{
|
||||||
_timer.setTimeout(5000); // chains reset after 5 seconds
|
_timer.setTimeout(5000); // chains reset after 5 seconds
|
||||||
|
|
||||||
|
@ -154,7 +154,7 @@ OBBindings::OBBindings()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
OBBindings::~OBBindings()
|
Bindings::~Bindings()
|
||||||
{
|
{
|
||||||
grabKeys(false);
|
grabKeys(false);
|
||||||
removeAllKeys();
|
removeAllKeys();
|
||||||
|
@ -163,7 +163,7 @@ OBBindings::~OBBindings()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBBindings::assimilate(KeyBindingTree *node)
|
void Bindings::assimilate(KeyBindingTree *node)
|
||||||
{
|
{
|
||||||
KeyBindingTree *a, *b, *tmp, *last;
|
KeyBindingTree *a, *b, *tmp, *last;
|
||||||
|
|
||||||
|
@ -195,7 +195,7 @@ void OBBindings::assimilate(KeyBindingTree *node)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
KeyBindingTree *OBBindings::find(KeyBindingTree *search,
|
KeyBindingTree *Bindings::find(KeyBindingTree *search,
|
||||||
bool *conflict) const {
|
bool *conflict) const {
|
||||||
*conflict = false;
|
*conflict = false;
|
||||||
KeyBindingTree *a, *b;
|
KeyBindingTree *a, *b;
|
||||||
|
@ -222,7 +222,7 @@ KeyBindingTree *OBBindings::find(KeyBindingTree *search,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool OBBindings::addKey(const StringVect &keylist, PyObject *callback)
|
bool Bindings::addKey(const StringVect &keylist, PyObject *callback)
|
||||||
{
|
{
|
||||||
KeyBindingTree *tree, *t;
|
KeyBindingTree *tree, *t;
|
||||||
bool conflict;
|
bool conflict;
|
||||||
|
@ -244,14 +244,14 @@ bool OBBindings::addKey(const StringVect &keylist, PyObject *callback)
|
||||||
destroytree(tree);
|
destroytree(tree);
|
||||||
} else {
|
} else {
|
||||||
// grab the server here to make sure no key pressed go missed
|
// grab the server here to make sure no key pressed go missed
|
||||||
otk::OBDisplay::grab();
|
otk::Display::grab();
|
||||||
grabKeys(false);
|
grabKeys(false);
|
||||||
|
|
||||||
// assimilate this built tree into the main tree
|
// assimilate this built tree into the main tree
|
||||||
assimilate(tree); // assimilation destroys/uses the tree
|
assimilate(tree); // assimilation destroys/uses the tree
|
||||||
|
|
||||||
grabKeys(true);
|
grabKeys(true);
|
||||||
otk::OBDisplay::ungrab();
|
otk::Display::ungrab();
|
||||||
}
|
}
|
||||||
|
|
||||||
Py_INCREF(callback);
|
Py_INCREF(callback);
|
||||||
|
@ -260,7 +260,7 @@ bool OBBindings::addKey(const StringVect &keylist, PyObject *callback)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool OBBindings::removeKey(const StringVect &keylist, PyObject *callback)
|
bool Bindings::removeKey(const StringVect &keylist, PyObject *callback)
|
||||||
{
|
{
|
||||||
assert(false); // XXX: function not implemented yet
|
assert(false); // XXX: function not implemented yet
|
||||||
|
|
||||||
|
@ -277,7 +277,7 @@ bool OBBindings::removeKey(const StringVect &keylist, PyObject *callback)
|
||||||
callback);
|
callback);
|
||||||
if (it != t->callbacks.end()) {
|
if (it != t->callbacks.end()) {
|
||||||
// grab the server here to make sure no key pressed go missed
|
// grab the server here to make sure no key pressed go missed
|
||||||
otk::OBDisplay::grab();
|
otk::Display::grab();
|
||||||
grabKeys(false);
|
grabKeys(false);
|
||||||
|
|
||||||
_curpos = &_keytree;
|
_curpos = &_keytree;
|
||||||
|
@ -286,7 +286,7 @@ bool OBBindings::removeKey(const StringVect &keylist, PyObject *callback)
|
||||||
Py_XDECREF(*it);
|
Py_XDECREF(*it);
|
||||||
|
|
||||||
grabKeys(true);
|
grabKeys(true);
|
||||||
otk::OBDisplay::ungrab();
|
otk::Display::ungrab();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -295,17 +295,17 @@ bool OBBindings::removeKey(const StringVect &keylist, PyObject *callback)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBBindings::setResetKey(const std::string &key)
|
void Bindings::setResetKey(const std::string &key)
|
||||||
{
|
{
|
||||||
Binding b(0, 0);
|
Binding b(0, 0);
|
||||||
if (translate(key, b)) {
|
if (translate(key, b)) {
|
||||||
// grab the server here to make sure no key pressed go missed
|
// grab the server here to make sure no key pressed go missed
|
||||||
otk::OBDisplay::grab();
|
otk::Display::grab();
|
||||||
grabKeys(false);
|
grabKeys(false);
|
||||||
_resetkey.key = b.key;
|
_resetkey.key = b.key;
|
||||||
_resetkey.modifiers = b.modifiers;
|
_resetkey.modifiers = b.modifiers;
|
||||||
grabKeys(true);
|
grabKeys(true);
|
||||||
otk::OBDisplay::ungrab();
|
otk::Display::ungrab();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -328,7 +328,7 @@ static void remove_branch(KeyBindingTree *first)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBBindings::removeAllKeys()
|
void Bindings::removeAllKeys()
|
||||||
{
|
{
|
||||||
grabKeys(false);
|
grabKeys(false);
|
||||||
if (_keytree.first_child) {
|
if (_keytree.first_child) {
|
||||||
|
@ -339,37 +339,37 @@ void OBBindings::removeAllKeys()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBBindings::grabKeys(bool grab)
|
void Bindings::grabKeys(bool grab)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < Openbox::instance->screenCount(); ++i) {
|
for (int i = 0; i < Openbox::instance->screenCount(); ++i) {
|
||||||
Window root = otk::OBDisplay::screenInfo(i)->rootWindow();
|
Window root = otk::Display::screenInfo(i)->rootWindow();
|
||||||
|
|
||||||
KeyBindingTree *p = _curpos->first_child;
|
KeyBindingTree *p = _curpos->first_child;
|
||||||
while (p) {
|
while (p) {
|
||||||
if (grab) {
|
if (grab) {
|
||||||
otk::OBDisplay::grabKey(p->binding.key, p->binding.modifiers,
|
otk::Display::grabKey(p->binding.key, p->binding.modifiers,
|
||||||
root, false, GrabModeAsync, GrabModeAsync,
|
root, false, GrabModeAsync, GrabModeAsync,
|
||||||
false);
|
false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
otk::OBDisplay::ungrabKey(p->binding.key, p->binding.modifiers,
|
otk::Display::ungrabKey(p->binding.key, p->binding.modifiers,
|
||||||
root);
|
root);
|
||||||
p = p->next_sibling;
|
p = p->next_sibling;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_resetkey.key)
|
if (_resetkey.key)
|
||||||
if (grab)
|
if (grab)
|
||||||
otk::OBDisplay::grabKey(_resetkey.key, _resetkey.modifiers,
|
otk::Display::grabKey(_resetkey.key, _resetkey.modifiers,
|
||||||
root, false, GrabModeAsync, GrabModeAsync,
|
root, false, GrabModeAsync, GrabModeAsync,
|
||||||
false);
|
false);
|
||||||
else
|
else
|
||||||
otk::OBDisplay::ungrabKey(_resetkey.key, _resetkey.modifiers,
|
otk::Display::ungrabKey(_resetkey.key, _resetkey.modifiers,
|
||||||
root);
|
root);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBBindings::fireKey(int screen, unsigned int modifiers, unsigned int key,
|
void Bindings::fireKey(int screen, unsigned int modifiers, unsigned int key,
|
||||||
Time time)
|
Time time)
|
||||||
{
|
{
|
||||||
if (key == _resetkey.key && modifiers == _resetkey.modifiers) {
|
if (key == _resetkey.key && modifiers == _resetkey.modifiers) {
|
||||||
|
@ -381,13 +381,13 @@ void OBBindings::fireKey(int screen, unsigned int modifiers, unsigned int key,
|
||||||
if (p->chain) {
|
if (p->chain) {
|
||||||
_timer.start(); // start/restart the timer
|
_timer.start(); // start/restart the timer
|
||||||
// grab the server here to make sure no key pressed go missed
|
// grab the server here to make sure no key pressed go missed
|
||||||
otk::OBDisplay::grab();
|
otk::Display::grab();
|
||||||
grabKeys(false);
|
grabKeys(false);
|
||||||
_curpos = p;
|
_curpos = p;
|
||||||
grabKeys(true);
|
grabKeys(true);
|
||||||
otk::OBDisplay::ungrab();
|
otk::Display::ungrab();
|
||||||
} else {
|
} else {
|
||||||
OBClient *c = Openbox::instance->focusedClient();
|
Client *c = Openbox::instance->focusedClient();
|
||||||
KeyData data(screen, c, time, modifiers, key);
|
KeyData data(screen, c, time, modifiers, key);
|
||||||
CallbackList::iterator it, end = p->callbacks.end();
|
CallbackList::iterator it, end = p->callbacks.end();
|
||||||
for (it = p->callbacks.begin(); it != end; ++it)
|
for (it = p->callbacks.begin(); it != end; ++it)
|
||||||
|
@ -401,19 +401,19 @@ void OBBindings::fireKey(int screen, unsigned int modifiers, unsigned int key,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBBindings::resetChains(OBBindings *self)
|
void Bindings::resetChains(Bindings *self)
|
||||||
{
|
{
|
||||||
self->_timer.stop();
|
self->_timer.stop();
|
||||||
// grab the server here to make sure no key pressed go missed
|
// grab the server here to make sure no key pressed go missed
|
||||||
otk::OBDisplay::grab();
|
otk::Display::grab();
|
||||||
self->grabKeys(false);
|
self->grabKeys(false);
|
||||||
self->_curpos = &self->_keytree;
|
self->_curpos = &self->_keytree;
|
||||||
self->grabKeys(true);
|
self->grabKeys(true);
|
||||||
otk::OBDisplay::ungrab();
|
otk::Display::ungrab();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool OBBindings::addButton(const std::string &but, MouseContext context,
|
bool Bindings::addButton(const std::string &but, MouseContext context,
|
||||||
MouseAction action, PyObject *callback)
|
MouseAction action, PyObject *callback)
|
||||||
{
|
{
|
||||||
assert(context >= 0 && context < NUM_MOUSE_CONTEXT);
|
assert(context >= 0 && context < NUM_MOUSE_CONTEXT);
|
||||||
|
@ -441,8 +441,8 @@ bool OBBindings::addButton(const std::string &but, MouseContext context,
|
||||||
_buttons[context].push_back(bind);
|
_buttons[context].push_back(bind);
|
||||||
// grab the button on all clients
|
// grab the button on all clients
|
||||||
for (int sn = 0; sn < Openbox::instance->screenCount(); ++sn) {
|
for (int sn = 0; sn < Openbox::instance->screenCount(); ++sn) {
|
||||||
OBScreen *s = Openbox::instance->screen(sn);
|
Screen *s = Openbox::instance->screen(sn);
|
||||||
OBClient::List::iterator c_it, c_end = s->clients.end();
|
Client::List::iterator c_it, c_end = s->clients.end();
|
||||||
for (c_it = s->clients.begin(); c_it != c_end; ++c_it) {
|
for (c_it = s->clients.begin(); c_it != c_end; ++c_it) {
|
||||||
grabButton(true, bind->binding, context, *c_it);
|
grabButton(true, bind->binding, context, *c_it);
|
||||||
}
|
}
|
||||||
|
@ -454,7 +454,7 @@ bool OBBindings::addButton(const std::string &but, MouseContext context,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBBindings::removeAllButtons()
|
void Bindings::removeAllButtons()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < NUM_MOUSE_CONTEXT; ++i) {
|
for (int i = 0; i < NUM_MOUSE_CONTEXT; ++i) {
|
||||||
ButtonBindingList::iterator it, end = _buttons[i].end();
|
ButtonBindingList::iterator it, end = _buttons[i].end();
|
||||||
|
@ -467,8 +467,8 @@ void OBBindings::removeAllButtons()
|
||||||
}
|
}
|
||||||
// ungrab the button on all clients
|
// ungrab the button on all clients
|
||||||
for (int sn = 0; sn < Openbox::instance->screenCount(); ++sn) {
|
for (int sn = 0; sn < Openbox::instance->screenCount(); ++sn) {
|
||||||
OBScreen *s = Openbox::instance->screen(sn);
|
Screen *s = Openbox::instance->screen(sn);
|
||||||
OBClient::List::iterator c_it, c_end = s->clients.end();
|
Client::List::iterator c_it, c_end = s->clients.end();
|
||||||
for (c_it = s->clients.begin(); c_it != c_end; ++c_it) {
|
for (c_it = s->clients.begin(); c_it != c_end; ++c_it) {
|
||||||
grabButton(false, (*it)->binding, (MouseContext)i, *c_it);
|
grabButton(false, (*it)->binding, (MouseContext)i, *c_it);
|
||||||
}
|
}
|
||||||
|
@ -477,8 +477,8 @@ void OBBindings::removeAllButtons()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBBindings::grabButton(bool grab, const Binding &b, MouseContext context,
|
void Bindings::grabButton(bool grab, const Binding &b, MouseContext context,
|
||||||
OBClient *client)
|
Client *client)
|
||||||
{
|
{
|
||||||
Window win;
|
Window win;
|
||||||
int mode = GrabModeAsync;
|
int mode = GrabModeAsync;
|
||||||
|
@ -500,13 +500,13 @@ void OBBindings::grabButton(bool grab, const Binding &b, MouseContext context,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (grab)
|
if (grab)
|
||||||
otk::OBDisplay::grabButton(b.key, b.modifiers, win, false, mask, mode,
|
otk::Display::grabButton(b.key, b.modifiers, win, false, mask, mode,
|
||||||
GrabModeAsync, None, None, false);
|
GrabModeAsync, None, None, false);
|
||||||
else
|
else
|
||||||
otk::OBDisplay::ungrabButton(b.key, b.modifiers, win);
|
otk::Display::ungrabButton(b.key, b.modifiers, win);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBBindings::grabButtons(bool grab, OBClient *client)
|
void Bindings::grabButtons(bool grab, Client *client)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < NUM_MOUSE_CONTEXT; ++i) {
|
for (int i = 0; i < NUM_MOUSE_CONTEXT; ++i) {
|
||||||
ButtonBindingList::iterator it, end = _buttons[i].end();
|
ButtonBindingList::iterator it, end = _buttons[i].end();
|
||||||
|
@ -515,11 +515,11 @@ void OBBindings::grabButtons(bool grab, OBClient *client)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBBindings::fireButton(MouseData *data)
|
void Bindings::fireButton(MouseData *data)
|
||||||
{
|
{
|
||||||
if (data->context == MC_Window) {
|
if (data->context == MC_Window) {
|
||||||
// Replay the event, so it goes to the client, and ungrab the device.
|
// Replay the event, so it goes to the client, and ungrab the device.
|
||||||
XAllowEvents(otk::OBDisplay::display, ReplayPointer, data->time);
|
XAllowEvents(otk::Display::display, ReplayPointer, data->time);
|
||||||
}
|
}
|
||||||
|
|
||||||
ButtonBindingList::iterator it, end = _buttons[data->context].end();
|
ButtonBindingList::iterator it, end = _buttons[data->context].end();
|
||||||
|
@ -534,14 +534,14 @@ void OBBindings::fireButton(MouseData *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool OBBindings::addEvent(EventAction action, PyObject *callback)
|
bool Bindings::addEvent(EventAction action, PyObject *callback)
|
||||||
{
|
{
|
||||||
if (action < 0 || action >= NUM_EVENTS) {
|
if (action < 0 || action >= NUM_EVENTS) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#ifdef XKB
|
#ifdef XKB
|
||||||
if (action == EventBell && _eventlist[action].empty())
|
if (action == EventBell && _eventlist[action].empty())
|
||||||
XkbSelectEvents(otk::OBDisplay::display, XkbUseCoreKbd,
|
XkbSelectEvents(otk::Display::display, XkbUseCoreKbd,
|
||||||
XkbBellNotifyMask, XkbBellNotifyMask);
|
XkbBellNotifyMask, XkbBellNotifyMask);
|
||||||
#endif // XKB
|
#endif // XKB
|
||||||
_eventlist[action].push_back(callback);
|
_eventlist[action].push_back(callback);
|
||||||
|
@ -549,7 +549,7 @@ bool OBBindings::addEvent(EventAction action, PyObject *callback)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool OBBindings::removeEvent(EventAction action, PyObject *callback)
|
bool Bindings::removeEvent(EventAction action, PyObject *callback)
|
||||||
{
|
{
|
||||||
if (action < 0 || action >= NUM_EVENTS) {
|
if (action < 0 || action >= NUM_EVENTS) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -563,7 +563,7 @@ bool OBBindings::removeEvent(EventAction action, PyObject *callback)
|
||||||
_eventlist[action].erase(it);
|
_eventlist[action].erase(it);
|
||||||
#ifdef XKB
|
#ifdef XKB
|
||||||
if (action == EventBell && _eventlist[action].empty())
|
if (action == EventBell && _eventlist[action].empty())
|
||||||
XkbSelectEvents(otk::OBDisplay::display, XkbUseCoreKbd,
|
XkbSelectEvents(otk::Display::display, XkbUseCoreKbd,
|
||||||
XkbBellNotifyMask, 0);
|
XkbBellNotifyMask, 0);
|
||||||
#endif // XKB
|
#endif // XKB
|
||||||
return true;
|
return true;
|
||||||
|
@ -571,7 +571,7 @@ bool OBBindings::removeEvent(EventAction action, PyObject *callback)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBBindings::removeAllEvents()
|
void Bindings::removeAllEvents()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < NUM_EVENTS; ++i) {
|
for (int i = 0; i < NUM_EVENTS; ++i) {
|
||||||
while (!_eventlist[i].empty()) {
|
while (!_eventlist[i].empty()) {
|
||||||
|
@ -581,7 +581,7 @@ void OBBindings::removeAllEvents()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBBindings::fireEvent(EventData *data)
|
void Bindings::fireEvent(EventData *data)
|
||||||
{
|
{
|
||||||
CallbackList::iterator c_it, c_end = _eventlist[data->action].end();
|
CallbackList::iterator c_it, c_end = _eventlist[data->action].end();
|
||||||
for (c_it = _eventlist[data->action].begin(); c_it != c_end; ++c_it)
|
for (c_it = _eventlist[data->action].begin(); c_it != c_end; ++c_it)
|
||||||
|
|
|
@ -20,7 +20,7 @@ extern "C" {
|
||||||
|
|
||||||
namespace ob {
|
namespace ob {
|
||||||
|
|
||||||
class OBClient;
|
class Client;
|
||||||
|
|
||||||
typedef std::list<PyObject *> CallbackList;
|
typedef std::list<PyObject *> CallbackList;
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ typedef struct ButtonBinding {
|
||||||
ButtonBinding() : binding(0, 0) {}
|
ButtonBinding() : binding(0, 0) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
class OBBindings {
|
class Bindings {
|
||||||
public:
|
public:
|
||||||
//! A list of strings
|
//! A list of strings
|
||||||
typedef std::vector<std::string> StringVect;
|
typedef std::vector<std::string> StringVect;
|
||||||
|
@ -67,28 +67,28 @@ private:
|
||||||
|
|
||||||
Binding _resetkey; // the key which resets the key chain status
|
Binding _resetkey; // the key which resets the key chain status
|
||||||
|
|
||||||
otk::OBTimer _timer;
|
otk::Timer _timer;
|
||||||
|
|
||||||
KeyBindingTree *find(KeyBindingTree *search, bool *conflict) const;
|
KeyBindingTree *find(KeyBindingTree *search, bool *conflict) const;
|
||||||
KeyBindingTree *buildtree(const StringVect &keylist,
|
KeyBindingTree *buildtree(const StringVect &keylist,
|
||||||
PyObject *callback) const;
|
PyObject *callback) const;
|
||||||
void assimilate(KeyBindingTree *node);
|
void assimilate(KeyBindingTree *node);
|
||||||
|
|
||||||
static void resetChains(OBBindings *self); // the timer's timeout function
|
static void resetChains(Bindings *self); // the timer's timeout function
|
||||||
|
|
||||||
typedef std::list <ButtonBinding*> ButtonBindingList;
|
typedef std::list <ButtonBinding*> ButtonBindingList;
|
||||||
ButtonBindingList _buttons[NUM_MOUSE_CONTEXT];
|
ButtonBindingList _buttons[NUM_MOUSE_CONTEXT];
|
||||||
|
|
||||||
void grabButton(bool grab, const Binding &b, MouseContext context,
|
void grabButton(bool grab, const Binding &b, MouseContext context,
|
||||||
OBClient *client);
|
Client *client);
|
||||||
|
|
||||||
CallbackList _eventlist[NUM_EVENTS];
|
CallbackList _eventlist[NUM_EVENTS];
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//! Initializes an OBBindings object
|
//! Initializes an Bindings object
|
||||||
OBBindings();
|
Bindings();
|
||||||
//! Destroys the OBBindings object
|
//! Destroys the Bindings object
|
||||||
virtual ~OBBindings();
|
virtual ~Bindings();
|
||||||
|
|
||||||
//! Translates a binding string into the actual Binding
|
//! Translates a binding string into the actual Binding
|
||||||
bool translate(const std::string &str, Binding &b, bool askey = true) const;
|
bool translate(const std::string &str, Binding &b, bool askey = true) const;
|
||||||
|
@ -120,7 +120,7 @@ public:
|
||||||
bool addButton(const std::string &but, MouseContext context,
|
bool addButton(const std::string &but, MouseContext context,
|
||||||
MouseAction action, PyObject *callback);
|
MouseAction action, PyObject *callback);
|
||||||
|
|
||||||
void grabButtons(bool grab, OBClient *client);
|
void grabButtons(bool grab, Client *client);
|
||||||
|
|
||||||
//! Removes all button bindings
|
//! Removes all button bindings
|
||||||
void removeAllButtons();
|
void removeAllButtons();
|
||||||
|
|
|
@ -9,22 +9,22 @@
|
||||||
|
|
||||||
namespace ob {
|
namespace ob {
|
||||||
|
|
||||||
OBButtonWidget::OBButtonWidget(otk::OtkWidget *parent,
|
ButtonWidget::ButtonWidget(otk::Widget *parent,
|
||||||
OBWidget::WidgetType type)
|
WidgetBase::WidgetType type)
|
||||||
: otk::OtkWidget(parent),
|
: otk::Widget(parent),
|
||||||
OBWidget(type),
|
WidgetBase(type),
|
||||||
_pressed(false),
|
_pressed(false),
|
||||||
_button(0)
|
_button(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
OBButtonWidget::~OBButtonWidget()
|
ButtonWidget::~ButtonWidget()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBButtonWidget::setTextures()
|
void ButtonWidget::setTextures()
|
||||||
{
|
{
|
||||||
switch (type()) {
|
switch (type()) {
|
||||||
case Type_LeftGrip:
|
case Type_LeftGrip:
|
||||||
|
@ -56,9 +56,9 @@ void OBButtonWidget::setTextures()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBButtonWidget::setStyle(otk::Style *style)
|
void ButtonWidget::setStyle(otk::Style *style)
|
||||||
{
|
{
|
||||||
otk::OtkWidget::setStyle(style);
|
otk::Widget::setStyle(style);
|
||||||
setTextures();
|
setTextures();
|
||||||
|
|
||||||
switch (type()) {
|
switch (type()) {
|
||||||
|
@ -77,13 +77,13 @@ void OBButtonWidget::setStyle(otk::Style *style)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBButtonWidget::update()
|
void ButtonWidget::update()
|
||||||
{
|
{
|
||||||
otk::PixmapMask *pm;
|
otk::PixmapMask *pm;
|
||||||
int width;
|
int width;
|
||||||
bool draw = _dirty;
|
bool draw = _dirty;
|
||||||
|
|
||||||
otk::OtkWidget::update();
|
otk::Widget::update();
|
||||||
|
|
||||||
if (draw) {
|
if (draw) {
|
||||||
switch (type()) {
|
switch (type()) {
|
||||||
|
@ -110,49 +110,49 @@ void OBButtonWidget::update()
|
||||||
|
|
||||||
width = _rect.width();
|
width = _rect.width();
|
||||||
|
|
||||||
otk::BPen pen(_focused ? *_style->getButtonPicFocus() :
|
otk::Pen pen(_focused ? *_style->getButtonPicFocus() :
|
||||||
*_style->getButtonPicUnfocus());
|
*_style->getButtonPicUnfocus());
|
||||||
|
|
||||||
// set the clip region
|
// set the clip region
|
||||||
XSetClipMask(otk::OBDisplay::display, pen.gc(), pm->mask);
|
XSetClipMask(otk::Display::display, pen.gc(), pm->mask);
|
||||||
XSetClipOrigin(otk::OBDisplay::display, pen.gc(),
|
XSetClipOrigin(otk::Display::display, pen.gc(),
|
||||||
(width - pm->w)/2, (width - pm->h)/2);
|
(width - pm->w)/2, (width - pm->h)/2);
|
||||||
|
|
||||||
// fill in the clipped region
|
// fill in the clipped region
|
||||||
XFillRectangle(otk::OBDisplay::display, _window, pen.gc(),
|
XFillRectangle(otk::Display::display, _window, pen.gc(),
|
||||||
(width - pm->w)/2, (width - pm->h)/2,
|
(width - pm->w)/2, (width - pm->h)/2,
|
||||||
(width + pm->w)/2, (width + pm->h)/2);
|
(width + pm->w)/2, (width + pm->h)/2);
|
||||||
|
|
||||||
// unset the clip region
|
// unset the clip region
|
||||||
XSetClipMask(otk::OBDisplay::display, pen.gc(), None);
|
XSetClipMask(otk::Display::display, pen.gc(), None);
|
||||||
XSetClipOrigin(otk::OBDisplay::display, pen.gc(), 0, 0);
|
XSetClipOrigin(otk::Display::display, pen.gc(), 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBButtonWidget::adjust()
|
void ButtonWidget::adjust()
|
||||||
{
|
{
|
||||||
// nothing to adjust. no children.
|
// nothing to adjust. no children.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBButtonWidget::focus()
|
void ButtonWidget::focus()
|
||||||
{
|
{
|
||||||
otk::OtkWidget::focus();
|
otk::Widget::focus();
|
||||||
setTextures();
|
setTextures();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBButtonWidget::unfocus()
|
void ButtonWidget::unfocus()
|
||||||
{
|
{
|
||||||
otk::OtkWidget::unfocus();
|
otk::Widget::unfocus();
|
||||||
setTextures();
|
setTextures();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBButtonWidget::buttonPressHandler(const XButtonEvent &e)
|
void ButtonWidget::buttonPressHandler(const XButtonEvent &e)
|
||||||
{
|
{
|
||||||
OtkWidget::buttonPressHandler(e);
|
otk::Widget::buttonPressHandler(e);
|
||||||
if (_button) return;
|
if (_button) return;
|
||||||
_button = e.button;
|
_button = e.button;
|
||||||
_pressed = true;
|
_pressed = true;
|
||||||
|
@ -161,9 +161,9 @@ void OBButtonWidget::buttonPressHandler(const XButtonEvent &e)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBButtonWidget::buttonReleaseHandler(const XButtonEvent &e)
|
void ButtonWidget::buttonReleaseHandler(const XButtonEvent &e)
|
||||||
{
|
{
|
||||||
OtkWidget::buttonPressHandler(e);
|
otk::Widget::buttonPressHandler(e);
|
||||||
if (e.button != _button) return;
|
if (e.button != _button) return;
|
||||||
_button = 0;
|
_button = 0;
|
||||||
_pressed = false;
|
_pressed = false;
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
|
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
|
||||||
#ifndef __obbuttonwidget_hh
|
#ifndef __buttonwidget_hh
|
||||||
#define __obbuttonwidget_hh
|
#define __buttonwidget_hh
|
||||||
|
|
||||||
#include "widgetbase.hh"
|
#include "widgetbase.hh"
|
||||||
#include "otk/widget.hh"
|
#include "otk/widget.hh"
|
||||||
|
|
||||||
namespace ob {
|
namespace ob {
|
||||||
|
|
||||||
class OBButtonWidget : public otk::OtkWidget, public OBWidget
|
class ButtonWidget : public otk::Widget, public WidgetBase
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
void setTextures();
|
void setTextures();
|
||||||
|
@ -15,8 +15,8 @@ private:
|
||||||
unsigned int _button;
|
unsigned int _button;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
OBButtonWidget(otk::OtkWidget *parent, OBWidget::WidgetType type);
|
ButtonWidget(otk::Widget *parent, WidgetBase::WidgetType type);
|
||||||
virtual ~OBButtonWidget();
|
virtual ~ButtonWidget();
|
||||||
|
|
||||||
virtual void setStyle(otk::Style *style);
|
virtual void setStyle(otk::Style *style);
|
||||||
|
|
||||||
|
@ -33,4 +33,4 @@ public:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // __obbuttonwidget_hh
|
#endif // __buttonwidget_hh
|
||||||
|
|
392
src/client.cc
392
src/client.cc
File diff suppressed because it is too large
Load diff
|
@ -3,7 +3,7 @@
|
||||||
#define __client_hh
|
#define __client_hh
|
||||||
|
|
||||||
/*! @file client.hh
|
/*! @file client.hh
|
||||||
@brief The OBClient class maintains the state of a client window by handling
|
@brief The Client class maintains the state of a client window by handling
|
||||||
property changes on the window and some client messages
|
property changes on the window and some client messages
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ extern "C" {
|
||||||
|
|
||||||
namespace ob {
|
namespace ob {
|
||||||
|
|
||||||
class OBFrame;
|
class Frame;
|
||||||
|
|
||||||
//! The MWM Hints as retrieved from the window property
|
//! The MWM Hints as retrieved from the window property
|
||||||
/*!
|
/*!
|
||||||
|
@ -34,36 +34,36 @@ class OBFrame;
|
||||||
structure contains 5. We only use the first 3, so that is all gets defined.
|
structure contains 5. We only use the first 3, so that is all gets defined.
|
||||||
*/
|
*/
|
||||||
struct MwmHints {
|
struct MwmHints {
|
||||||
unsigned long flags; //!< A bitmask of OBClient::MwmFlags values
|
unsigned long flags; //!< A bitmask of Client::MwmFlags values
|
||||||
unsigned long functions; //!< A bitmask of OBClient::MwmFunctions values
|
unsigned long functions; //!< A bitmask of Client::MwmFunctions values
|
||||||
unsigned long decorations;//!< A bitmask of OBClient::MwmDecorations values
|
unsigned long decorations;//!< A bitmask of Client::MwmDecorations values
|
||||||
//! The number of elements in the OBClient::MwmHints struct
|
//! The number of elements in the Client::MwmHints struct
|
||||||
static const unsigned int elements = 3;
|
static const unsigned int elements = 3;
|
||||||
};
|
};
|
||||||
|
|
||||||
//! Maintains the state of a client window.
|
//! Maintains the state of a client window.
|
||||||
/*!
|
/*!
|
||||||
OBClient maintains the state of a client window. The state consists of the
|
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
|
hints that the application sets on the window, such as the title, or window
|
||||||
gravity.
|
gravity.
|
||||||
<p>
|
<p>
|
||||||
OBClient also manages client messages for the client window. When the
|
Client also manages client messages for the client window. When the
|
||||||
application (or any application) requests something to be changed for the
|
application (or any application) requests something to be changed for the
|
||||||
client, it will call the ActionHandler (for client messages) or update the
|
client, it will call the ActionHandler (for client messages) or update the
|
||||||
class' member variables and call whatever is nessary to complete 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).
|
change (such as causing a redraw of the titlebar after the title is changed).
|
||||||
*/
|
*/
|
||||||
class OBClient : public otk::OtkEventHandler, public OBWidget {
|
class Client : public otk::EventHandler, public WidgetBase {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
//! The frame window which decorates around the client window
|
//! The frame window which decorates around the client window
|
||||||
/*!
|
/*!
|
||||||
NOTE: This should NEVER be used inside the client class's constructor!
|
NOTE: This should NEVER be used inside the client class's constructor!
|
||||||
*/
|
*/
|
||||||
OBFrame *frame;
|
Frame *frame;
|
||||||
|
|
||||||
//! Holds a list of OBClients
|
//! Holds a list of Clients
|
||||||
typedef std::list<OBClient*> List;
|
typedef std::list<Client*> List;
|
||||||
|
|
||||||
//! The possible stacking layers a client window can be a part of
|
//! The possible stacking layers a client window can be a part of
|
||||||
enum StackLayer {
|
enum StackLayer {
|
||||||
|
@ -126,7 +126,7 @@ public:
|
||||||
Func_Maximize = 1 << 3, //!< Allow to be maximized
|
Func_Maximize = 1 << 3, //!< Allow to be maximized
|
||||||
Func_Close = 1 << 4 //!< Allow to be closed
|
Func_Close = 1 << 4 //!< Allow to be closed
|
||||||
};
|
};
|
||||||
//! Holds a bitmask of OBClient::Function values
|
//! Holds a bitmask of Client::Function values
|
||||||
typedef unsigned char FunctionFlags;
|
typedef unsigned char FunctionFlags;
|
||||||
|
|
||||||
//! The decorations the client window wants to be displayed on it
|
//! The decorations the client window wants to be displayed on it
|
||||||
|
@ -138,7 +138,7 @@ public:
|
||||||
Decor_Sticky = 1 << 5, //!< Display a sticky button
|
Decor_Sticky = 1 << 5, //!< Display a sticky button
|
||||||
Decor_Close = 1 << 6 //!< Display a close button
|
Decor_Close = 1 << 6 //!< Display a close button
|
||||||
};
|
};
|
||||||
//! Holds a bitmask of OBClient::Decoration values
|
//! Holds a bitmask of Client::Decoration values
|
||||||
typedef unsigned char DecorationFlags;
|
typedef unsigned char DecorationFlags;
|
||||||
|
|
||||||
//! Possible actions that can be made with the _NET_WM_STATE client message
|
//! Possible actions that can be made with the _NET_WM_STATE client message
|
||||||
|
@ -173,10 +173,10 @@ private:
|
||||||
Window _group;
|
Window _group;
|
||||||
|
|
||||||
//! The client which this client is a transient (child) for
|
//! The client which this client is a transient (child) for
|
||||||
OBClient *_transient_for;
|
Client *_transient_for;
|
||||||
|
|
||||||
//! The clients which are transients (children) of this client
|
//! The clients which are transients (children) of this client
|
||||||
OBClient::List _transients;
|
Client::List _transients;
|
||||||
|
|
||||||
//! The desktop on which the window resides (0xffffffff for all desktops)
|
//! The desktop on which the window resides (0xffffffff for all desktops)
|
||||||
long _desktop;
|
long _desktop;
|
||||||
|
@ -296,38 +296,38 @@ private:
|
||||||
|
|
||||||
StackLayer _layer;
|
StackLayer _layer;
|
||||||
|
|
||||||
//! A bitmask of values in the OBClient::Decoration enum
|
//! A bitmask of values in the Client::Decoration enum
|
||||||
/*!
|
/*!
|
||||||
The values in the variable are the decorations that the client wants to be
|
The values in the variable are the decorations that the client wants to be
|
||||||
displayed around it.
|
displayed around it.
|
||||||
*/
|
*/
|
||||||
DecorationFlags _decorations;
|
DecorationFlags _decorations;
|
||||||
|
|
||||||
//! A bitmask of values in the OBClient::Function enum
|
//! A bitmask of values in the Client::Function enum
|
||||||
/*!
|
/*!
|
||||||
The values in the variable specify the ways in which the user is allowed to
|
The values in the variable specify the ways in which the user is allowed to
|
||||||
modify this window.
|
modify this window.
|
||||||
*/
|
*/
|
||||||
FunctionFlags _functions;
|
FunctionFlags _functions;
|
||||||
|
|
||||||
//! Retrieves the desktop hint's value and sets OBClient::_desktop
|
//! Retrieves the desktop hint's value and sets Client::_desktop
|
||||||
void getDesktop();
|
void getDesktop();
|
||||||
//! Retrieves the window's type and sets OBClient::_type
|
//! Retrieves the window's type and sets Client::_type
|
||||||
void getType();
|
void getType();
|
||||||
//! Gets the MWM Hints and adjusts OBClient::_functions and
|
//! Gets the MWM Hints and adjusts Client::_functions and
|
||||||
//! OBClient::_decorations
|
//! Client::_decorations
|
||||||
void getMwmHints();
|
void getMwmHints();
|
||||||
//! Gets the position and size of the window and sets OBClient::_area
|
//! Gets the position and size of the window and sets Client::_area
|
||||||
void getArea();
|
void getArea();
|
||||||
//! Gets the net_state hint and sets the boolean flags for any states set in
|
//! Gets the net_state hint and sets the boolean flags for any states set in
|
||||||
//! the hint
|
//! the hint
|
||||||
void getState();
|
void getState();
|
||||||
//! Determines if the window uses the Shape extension and sets
|
//! Determines if the window uses the Shape extension and sets
|
||||||
//! OBClient::_shaped
|
//! Client::_shaped
|
||||||
void getShaped();
|
void getShaped();
|
||||||
|
|
||||||
//! Set up what decor should be shown on the window and what functions should
|
//! Set up what decor should be shown on the window and what functions should
|
||||||
//! be allowed (OBClient::_decorations and OBClient::_functions).
|
//! be allowed (Client::_decorations and Client::_functions).
|
||||||
/*!
|
/*!
|
||||||
This also updates the NET_WM_ALLOWED_ACTIONS hint.
|
This also updates the NET_WM_ALLOWED_ACTIONS hint.
|
||||||
*/
|
*/
|
||||||
|
@ -377,23 +377,23 @@ private:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
#ifndef SWIG
|
#ifndef SWIG
|
||||||
//! Constructs a new OBClient object around a specified window id
|
//! Constructs a new Client object around a specified window id
|
||||||
/*!
|
/*!
|
||||||
BB @param window The window id that the OBClient class should handle
|
BB @param window The window id that the Client class should handle
|
||||||
@param screen The screen on which the window resides
|
@param screen The screen on which the window resides
|
||||||
*/
|
*/
|
||||||
OBClient(int screen, Window window);
|
Client(int screen, Window window);
|
||||||
//! Destroys the OBClient object
|
//! Destroys the Client object
|
||||||
virtual ~OBClient();
|
virtual ~Client();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//! Returns the screen on which the clien resides
|
//! Returns the screen on which the clien resides
|
||||||
inline int screen() const { return _screen; }
|
inline int screen() const { return _screen; }
|
||||||
|
|
||||||
//! Returns the window id that the OBClient object is handling
|
//! Returns the window id that the Client object is handling
|
||||||
inline Window window() const { return _window; }
|
inline Window window() const { return _window; }
|
||||||
|
|
||||||
//! Returns the type of the window, one of the OBClient::WindowType values
|
//! Returns the type of the window, one of the Client::WindowType values
|
||||||
inline WindowType type() const { return _type; }
|
inline WindowType type() const { return _type; }
|
||||||
//! Returns if the window should be treated as a normal window.
|
//! Returns if the window should be treated as a normal window.
|
||||||
/*!
|
/*!
|
||||||
|
@ -454,7 +454,7 @@ BB @param window The window id that the OBClient class should handle
|
||||||
inline FunctionFlags funtions() const { return _functions; }
|
inline FunctionFlags funtions() const { return _functions; }
|
||||||
|
|
||||||
//! Return the client this window is transient for
|
//! Return the client this window is transient for
|
||||||
inline OBClient *transientFor() const { return _transient_for; }
|
inline Client *transientFor() const { return _transient_for; }
|
||||||
|
|
||||||
//! Returns if the window is modal
|
//! Returns if the window is modal
|
||||||
/*!
|
/*!
|
||||||
|
|
118
src/frame.cc
118
src/frame.cc
|
@ -21,29 +21,29 @@ extern "C" {
|
||||||
|
|
||||||
namespace ob {
|
namespace ob {
|
||||||
|
|
||||||
const long OBFrame::event_mask;
|
const long Frame::event_mask;
|
||||||
|
|
||||||
OBFrame::OBFrame(OBClient *client, otk::Style *style)
|
Frame::Frame(Client *client, otk::Style *style)
|
||||||
: otk::OtkWidget(Openbox::instance, style, Horizontal, 0, 1, true),
|
: otk::Widget(Openbox::instance, style, Horizontal, 0, 1, true),
|
||||||
OBWidget(Type_Frame),
|
WidgetBase(WidgetBase::Type_Frame),
|
||||||
_client(client),
|
_client(client),
|
||||||
_screen(otk::OBDisplay::screenInfo(client->screen())),
|
_screen(otk::Display::screenInfo(client->screen())),
|
||||||
_plate(this, OBWidget::Type_Plate),
|
_plate(this, WidgetBase::Type_Plate),
|
||||||
_titlebar(this, OBWidget::Type_Titlebar),
|
_titlebar(this, WidgetBase::Type_Titlebar),
|
||||||
_button_close(&_titlebar, OBWidget::Type_CloseButton),
|
_button_close(&_titlebar, WidgetBase::Type_CloseButton),
|
||||||
_button_iconify(&_titlebar, OBWidget::Type_IconifyButton),
|
_button_iconify(&_titlebar, WidgetBase::Type_IconifyButton),
|
||||||
_button_max(&_titlebar, OBWidget::Type_MaximizeButton),
|
_button_max(&_titlebar, WidgetBase::Type_MaximizeButton),
|
||||||
_button_stick(&_titlebar, OBWidget::Type_StickyButton),
|
_button_stick(&_titlebar, WidgetBase::Type_StickyButton),
|
||||||
_label(&_titlebar, OBWidget::Type_Label),
|
_label(&_titlebar, WidgetBase::Type_Label),
|
||||||
_handle(this, OBWidget::Type_Handle),
|
_handle(this, WidgetBase::Type_Handle),
|
||||||
_grip_left(&_handle, OBWidget::Type_LeftGrip),
|
_grip_left(&_handle, WidgetBase::Type_LeftGrip),
|
||||||
_grip_right(&_handle, OBWidget::Type_RightGrip),
|
_grip_right(&_handle, WidgetBase::Type_RightGrip),
|
||||||
_decorations(client->decorations())
|
_decorations(client->decorations())
|
||||||
{
|
{
|
||||||
assert(client);
|
assert(client);
|
||||||
assert(style);
|
assert(style);
|
||||||
|
|
||||||
XSelectInput(otk::OBDisplay::display, _window, OBFrame::event_mask);
|
XSelectInput(otk::Display::display, _window, Frame::event_mask);
|
||||||
|
|
||||||
_grip_left.setCursor(Openbox::instance->cursors().ll_angle);
|
_grip_left.setCursor(Openbox::instance->cursors().ll_angle);
|
||||||
_grip_right.setCursor(Openbox::instance->cursors().lr_angle);
|
_grip_right.setCursor(Openbox::instance->cursors().lr_angle);
|
||||||
|
@ -53,29 +53,29 @@ OBFrame::OBFrame(OBClient *client, otk::Style *style)
|
||||||
_style = 0;
|
_style = 0;
|
||||||
setStyle(style);
|
setStyle(style);
|
||||||
|
|
||||||
otk::OtkWidget::unfocus(); // stuff starts out appearing focused in otk
|
otk::Widget::unfocus(); // stuff starts out appearing focused in otk
|
||||||
|
|
||||||
_plate.show(); // the other stuff is shown based on decor settings
|
_plate.show(); // the other stuff is shown based on decor settings
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
OBFrame::~OBFrame()
|
Frame::~Frame()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBFrame::setTitle(const std::string &text)
|
void Frame::setTitle(const std::string &text)
|
||||||
{
|
{
|
||||||
_label.setText(text);
|
_label.setText(text);
|
||||||
_label.update();
|
_label.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBFrame::setStyle(otk::Style *style)
|
void Frame::setStyle(otk::Style *style)
|
||||||
{
|
{
|
||||||
assert(style);
|
assert(style);
|
||||||
|
|
||||||
otk::OtkWidget::setStyle(style);
|
otk::Widget::setStyle(style);
|
||||||
|
|
||||||
// if a style was previously set, then 'replace' is true, cause we're
|
// if a style was previously set, then 'replace' is true, cause we're
|
||||||
// replacing a style
|
// replacing a style
|
||||||
|
@ -98,27 +98,27 @@ void OBFrame::setStyle(otk::Style *style)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBFrame::focus()
|
void Frame::focus()
|
||||||
{
|
{
|
||||||
otk::OtkWidget::focus();
|
otk::Widget::focus();
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBFrame::unfocus()
|
void Frame::unfocus()
|
||||||
{
|
{
|
||||||
otk::OtkWidget::unfocus();
|
otk::Widget::unfocus();
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBFrame::adjust()
|
void Frame::adjust()
|
||||||
{
|
{
|
||||||
// the party all happens in adjustSize
|
// the party all happens in adjustSize
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBFrame::adjustSize()
|
void Frame::adjustSize()
|
||||||
{
|
{
|
||||||
// XXX: only if not overridden or something!!! MORE LOGIC HERE!!
|
// XXX: only if not overridden or something!!! MORE LOGIC HERE!!
|
||||||
_decorations = _client->decorations();
|
_decorations = _client->decorations();
|
||||||
|
@ -131,7 +131,7 @@ void OBFrame::adjustSize()
|
||||||
int butsize=0; // width and height of the titlebar buttons
|
int butsize=0; // width and height of the titlebar buttons
|
||||||
const int bevel = _style->getBevelWidth();
|
const int bevel = _style->getBevelWidth();
|
||||||
|
|
||||||
if (_decorations & OBClient::Decor_Border) {
|
if (_decorations & Client::Decor_Border) {
|
||||||
bwidth = _style->getBorderWidth();
|
bwidth = _style->getBorderWidth();
|
||||||
cbwidth = _style->getFrameWidth();
|
cbwidth = _style->getFrameWidth();
|
||||||
} else
|
} else
|
||||||
|
@ -148,7 +148,7 @@ void OBFrame::adjustSize()
|
||||||
_grip_right.setBorderWidth(bwidth);
|
_grip_right.setBorderWidth(bwidth);
|
||||||
_handle.setBorderWidth(bwidth);
|
_handle.setBorderWidth(bwidth);
|
||||||
|
|
||||||
if (_decorations & OBClient::Decor_Titlebar) {
|
if (_decorations & Client::Decor_Titlebar) {
|
||||||
// set the titlebar size
|
// set the titlebar size
|
||||||
_titlebar.setGeometry(-bwidth,
|
_titlebar.setGeometry(-bwidth,
|
||||||
-bwidth,
|
-bwidth,
|
||||||
|
@ -160,13 +160,13 @@ void OBFrame::adjustSize()
|
||||||
_label.setGeometry(0, bevel, width, _style->getFont()->height());
|
_label.setGeometry(0, bevel, width, _style->getFont()->height());
|
||||||
// set the buttons sizes
|
// set the buttons sizes
|
||||||
butsize = _label.height() - 2;
|
butsize = _label.height() - 2;
|
||||||
if (_decorations & OBClient::Decor_Iconify)
|
if (_decorations & Client::Decor_Iconify)
|
||||||
_button_iconify.setGeometry(0, bevel + 1, butsize, butsize);
|
_button_iconify.setGeometry(0, bevel + 1, butsize, butsize);
|
||||||
if (_decorations & OBClient::Decor_Maximize)
|
if (_decorations & Client::Decor_Maximize)
|
||||||
_button_max.setGeometry(0, bevel + 1, butsize, butsize);
|
_button_max.setGeometry(0, bevel + 1, butsize, butsize);
|
||||||
if (_decorations & OBClient::Decor_Sticky)
|
if (_decorations & Client::Decor_Sticky)
|
||||||
_button_stick.setGeometry(0, bevel + 1, butsize, butsize);
|
_button_stick.setGeometry(0, bevel + 1, butsize, butsize);
|
||||||
if (_decorations & OBClient::Decor_Close)
|
if (_decorations & Client::Decor_Close)
|
||||||
_button_close.setGeometry(0, bevel + 1, butsize, butsize);
|
_button_close.setGeometry(0, bevel + 1, butsize, butsize);
|
||||||
|
|
||||||
// separation between titlebar elements
|
// separation between titlebar elements
|
||||||
|
@ -185,7 +185,7 @@ void OBFrame::adjustSize()
|
||||||
switch (layout[i]) {
|
switch (layout[i]) {
|
||||||
case 'i':
|
case 'i':
|
||||||
case 'I':
|
case 'I':
|
||||||
if (!tit_i && (_decorations & OBClient::Decor_Iconify)) {
|
if (!tit_i && (_decorations & Client::Decor_Iconify)) {
|
||||||
tit_i = true;
|
tit_i = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -199,21 +199,21 @@ void OBFrame::adjustSize()
|
||||||
break;
|
break;
|
||||||
case 'm':
|
case 'm':
|
||||||
case 'M':
|
case 'M':
|
||||||
if (!tit_m && (_decorations & OBClient::Decor_Maximize)) {
|
if (!tit_m && (_decorations & Client::Decor_Maximize)) {
|
||||||
tit_m = true;
|
tit_m = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
case 'S':
|
case 'S':
|
||||||
if (!tit_s && (_decorations & OBClient::Decor_Sticky)) {
|
if (!tit_s && (_decorations & Client::Decor_Sticky)) {
|
||||||
tit_s = true;
|
tit_s = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
case 'C':
|
case 'C':
|
||||||
if (!tit_c && (_decorations & OBClient::Decor_Close)) {
|
if (!tit_c && (_decorations & Client::Decor_Close)) {
|
||||||
tit_c = true;
|
tit_c = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -272,7 +272,7 @@ void OBFrame::adjustSize()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_decorations & OBClient::Decor_Handle) {
|
if (_decorations & Client::Decor_Handle) {
|
||||||
_handle.setGeometry(-bwidth,
|
_handle.setGeometry(-bwidth,
|
||||||
_innersize.top + _client->area().height() + cbwidth,
|
_innersize.top + _client->area().height() + cbwidth,
|
||||||
width, _style->getHandleWidth());
|
width, _style->getHandleWidth());
|
||||||
|
@ -306,7 +306,7 @@ void OBFrame::adjustSize()
|
||||||
_client->area().width(), _client->area().height());
|
_client->area().width(), _client->area().height());
|
||||||
|
|
||||||
// map/unmap all the windows
|
// map/unmap all the windows
|
||||||
if (_decorations & OBClient::Decor_Titlebar) {
|
if (_decorations & Client::Decor_Titlebar) {
|
||||||
_label.show();
|
_label.show();
|
||||||
if (tit_i)
|
if (tit_i)
|
||||||
_button_iconify.show();
|
_button_iconify.show();
|
||||||
|
@ -329,7 +329,7 @@ void OBFrame::adjustSize()
|
||||||
_titlebar.hide(true);
|
_titlebar.hide(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_decorations & OBClient::Decor_Handle)
|
if (_decorations & Client::Decor_Handle)
|
||||||
_handle.show(true);
|
_handle.show(true);
|
||||||
else
|
else
|
||||||
_handle.hide(true);
|
_handle.hide(true);
|
||||||
|
@ -345,7 +345,7 @@ void OBFrame::adjustSize()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBFrame::adjustPosition()
|
void Frame::adjustPosition()
|
||||||
{
|
{
|
||||||
int x, y;
|
int x, y;
|
||||||
clientGravity(x, y);
|
clientGravity(x, y);
|
||||||
|
@ -353,21 +353,21 @@ void OBFrame::adjustPosition()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBFrame::adjustShape()
|
void Frame::adjustShape()
|
||||||
{
|
{
|
||||||
#ifdef SHAPE
|
#ifdef SHAPE
|
||||||
int bwidth = (_decorations & OBClient::Decor_Border) ?
|
int bwidth = (_decorations & Client::Decor_Border) ?
|
||||||
_style->getBorderWidth() : 0;
|
_style->getBorderWidth() : 0;
|
||||||
|
|
||||||
if (!_client->shaped()) {
|
if (!_client->shaped()) {
|
||||||
// clear the shape on the frame window
|
// clear the shape on the frame window
|
||||||
XShapeCombineMask(otk::OBDisplay::display, _window, ShapeBounding,
|
XShapeCombineMask(otk::Display::display, _window, ShapeBounding,
|
||||||
_innersize.left,
|
_innersize.left,
|
||||||
_innersize.top,
|
_innersize.top,
|
||||||
None, ShapeSet);
|
None, ShapeSet);
|
||||||
} else {
|
} else {
|
||||||
// make the frame's shape match the clients
|
// make the frame's shape match the clients
|
||||||
XShapeCombineShape(otk::OBDisplay::display, _window, ShapeBounding,
|
XShapeCombineShape(otk::Display::display, _window, ShapeBounding,
|
||||||
_innersize.left,
|
_innersize.left,
|
||||||
_innersize.top,
|
_innersize.top,
|
||||||
_client->window(), ShapeBounding, ShapeSet);
|
_client->window(), ShapeBounding, ShapeSet);
|
||||||
|
@ -375,7 +375,7 @@ void OBFrame::adjustShape()
|
||||||
int num = 0;
|
int num = 0;
|
||||||
XRectangle xrect[2];
|
XRectangle xrect[2];
|
||||||
|
|
||||||
if (_decorations & OBClient::Decor_Titlebar) {
|
if (_decorations & Client::Decor_Titlebar) {
|
||||||
xrect[0].x = _titlebar.rect().x();
|
xrect[0].x = _titlebar.rect().x();
|
||||||
xrect[0].y = _titlebar.rect().y();
|
xrect[0].y = _titlebar.rect().y();
|
||||||
xrect[0].width = _titlebar.width() + bwidth * 2; // XXX: this is useless once the widget handles borders!
|
xrect[0].width = _titlebar.width() + bwidth * 2; // XXX: this is useless once the widget handles borders!
|
||||||
|
@ -383,7 +383,7 @@ void OBFrame::adjustShape()
|
||||||
++num;
|
++num;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_decorations & OBClient::Decor_Handle) {
|
if (_decorations & Client::Decor_Handle) {
|
||||||
xrect[1].x = _handle.rect().x();
|
xrect[1].x = _handle.rect().x();
|
||||||
xrect[1].y = _handle.rect().y();
|
xrect[1].y = _handle.rect().y();
|
||||||
xrect[1].width = _handle.width() + bwidth * 2; // XXX: this is useless once the widget handles borders!
|
xrect[1].width = _handle.width() + bwidth * 2; // XXX: this is useless once the widget handles borders!
|
||||||
|
@ -391,7 +391,7 @@ void OBFrame::adjustShape()
|
||||||
++num;
|
++num;
|
||||||
}
|
}
|
||||||
|
|
||||||
XShapeCombineRectangles(otk::OBDisplay::display, window(),
|
XShapeCombineRectangles(otk::Display::display, window(),
|
||||||
ShapeBounding, 0, 0, xrect, num,
|
ShapeBounding, 0, 0, xrect, num,
|
||||||
ShapeUnion, Unsorted);
|
ShapeUnion, Unsorted);
|
||||||
}
|
}
|
||||||
|
@ -399,10 +399,10 @@ void OBFrame::adjustShape()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBFrame::grabClient()
|
void Frame::grabClient()
|
||||||
{
|
{
|
||||||
// reparent the client to the frame
|
// reparent the client to the frame
|
||||||
XReparentWindow(otk::OBDisplay::display, _client->window(),
|
XReparentWindow(otk::Display::display, _client->window(),
|
||||||
_plate.window(), 0, 0);
|
_plate.window(), 0, 0);
|
||||||
/*
|
/*
|
||||||
When reparenting the client window, it is usually not mapped yet, since
|
When reparenting the client window, it is usually not mapped yet, since
|
||||||
|
@ -416,38 +416,38 @@ void OBFrame::grabClient()
|
||||||
_client->ignore_unmaps += 2;
|
_client->ignore_unmaps += 2;
|
||||||
|
|
||||||
// select the event mask on the client's parent (to receive config req's)
|
// select the event mask on the client's parent (to receive config req's)
|
||||||
XSelectInput(otk::OBDisplay::display, _plate.window(),
|
XSelectInput(otk::Display::display, _plate.window(),
|
||||||
SubstructureRedirectMask);
|
SubstructureRedirectMask);
|
||||||
|
|
||||||
// map the client so it maps when the frame does
|
// map the client so it maps when the frame does
|
||||||
XMapWindow(otk::OBDisplay::display, _client->window());
|
XMapWindow(otk::Display::display, _client->window());
|
||||||
|
|
||||||
adjustSize();
|
adjustSize();
|
||||||
adjustPosition();
|
adjustPosition();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBFrame::releaseClient()
|
void Frame::releaseClient()
|
||||||
{
|
{
|
||||||
XEvent ev;
|
XEvent ev;
|
||||||
|
|
||||||
// check if the app has already reparented its window away
|
// check if the app has already reparented its window away
|
||||||
if (XCheckTypedWindowEvent(otk::OBDisplay::display, _client->window(),
|
if (XCheckTypedWindowEvent(otk::Display::display, _client->window(),
|
||||||
ReparentNotify, &ev)) {
|
ReparentNotify, &ev)) {
|
||||||
XPutBackEvent(otk::OBDisplay::display, &ev);
|
XPutBackEvent(otk::Display::display, &ev);
|
||||||
// re-map the window since the unmanaging process unmaps it
|
// re-map the window since the unmanaging process unmaps it
|
||||||
XMapWindow(otk::OBDisplay::display, _client->window());
|
XMapWindow(otk::Display::display, _client->window());
|
||||||
} else {
|
} else {
|
||||||
// according to the ICCCM - if the client doesn't reparent itself, then we
|
// according to the ICCCM - if the client doesn't reparent itself, then we
|
||||||
// will reparent the window to root for them
|
// will reparent the window to root for them
|
||||||
XReparentWindow(otk::OBDisplay::display, _client->window(),
|
XReparentWindow(otk::Display::display, _client->window(),
|
||||||
_screen->rootWindow(),
|
_screen->rootWindow(),
|
||||||
_client->area().x(), _client->area().y());
|
_client->area().x(), _client->area().y());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBFrame::clientGravity(int &x, int &y)
|
void Frame::clientGravity(int &x, int &y)
|
||||||
{
|
{
|
||||||
x = _client->area().x();
|
x = _client->area().x();
|
||||||
y = _client->area().y();
|
y = _client->area().y();
|
||||||
|
@ -506,7 +506,7 @@ void OBFrame::clientGravity(int &x, int &y)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBFrame::frameGravity(int &x, int &y)
|
void Frame::frameGravity(int &x, int &y)
|
||||||
{
|
{
|
||||||
x = rect().x();
|
x = rect().x();
|
||||||
y = rect().y();
|
y = rect().y();
|
||||||
|
|
40
src/frame.hh
40
src/frame.hh
|
@ -23,20 +23,20 @@ extern "C" {
|
||||||
|
|
||||||
namespace ob {
|
namespace ob {
|
||||||
|
|
||||||
//! Holds and decorates a frame around an OBClient (client window)
|
//! Holds and decorates a frame around an Client (client window)
|
||||||
/*!
|
/*!
|
||||||
The frame is responsible for calling XSelectInput on the client window's new
|
The frame is responsible for calling XSelectInput on the client window's new
|
||||||
parent with the SubstructureRedirectMask so that structure events for the
|
parent with the SubstructureRedirectMask so that structure events for the
|
||||||
client are sent to the window manager.
|
client are sent to the window manager.
|
||||||
*/
|
*/
|
||||||
class OBFrame : public otk::OtkWidget, public OBWidget {
|
class Frame : public otk::Widget, public WidgetBase {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
//! The event mask to grab on frame windows
|
//! The event mask to grab on frame windows
|
||||||
static const long event_mask = EnterWindowMask | LeaveWindowMask;
|
static const long event_mask = EnterWindowMask | LeaveWindowMask;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
OBClient *_client;
|
Client *_client;
|
||||||
const otk::ScreenInfo *_screen;
|
const otk::ScreenInfo *_screen;
|
||||||
|
|
||||||
//! The style to use for size and display the decorations
|
//! The style to use for size and display the decorations
|
||||||
|
@ -49,33 +49,33 @@ private:
|
||||||
otk::Strut _innersize;
|
otk::Strut _innersize;
|
||||||
|
|
||||||
// decoration windows
|
// decoration windows
|
||||||
OBBackgroundWidget _plate; // sits entirely under the client window
|
BackgroundWidget _plate; // sits entirely under the client window
|
||||||
OBBackgroundWidget _titlebar;
|
BackgroundWidget _titlebar;
|
||||||
OBButtonWidget _button_close;
|
ButtonWidget _button_close;
|
||||||
OBButtonWidget _button_iconify;
|
ButtonWidget _button_iconify;
|
||||||
OBButtonWidget _button_max;
|
ButtonWidget _button_max;
|
||||||
OBButtonWidget _button_stick;
|
ButtonWidget _button_stick;
|
||||||
OBLabelWidget _label;
|
LabelWidget _label;
|
||||||
OBBackgroundWidget _handle;
|
BackgroundWidget _handle;
|
||||||
OBButtonWidget _grip_left;
|
ButtonWidget _grip_left;
|
||||||
OBButtonWidget _grip_right;
|
ButtonWidget _grip_right;
|
||||||
|
|
||||||
//! The decorations to display on the window.
|
//! The decorations to display on the window.
|
||||||
/*!
|
/*!
|
||||||
This is by default the same value as in the OBClient::decorations, but it
|
This is by default the same value as in the Client::decorations, but it
|
||||||
is duplicated here so that it can be overridden per-window by the user.
|
is duplicated here so that it can be overridden per-window by the user.
|
||||||
*/
|
*/
|
||||||
OBClient::DecorationFlags _decorations;
|
Client::DecorationFlags _decorations;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//! Constructs an OBFrame object, and reparents the client to itself
|
//! Constructs an Frame object, and reparents the client to itself
|
||||||
/*!
|
/*!
|
||||||
@param client The client window which will be decorated by the new OBFrame
|
@param client The client window which will be decorated by the new Frame
|
||||||
@param style The style to use to decorate the frame
|
@param style The style to use to decorate the frame
|
||||||
*/
|
*/
|
||||||
OBFrame(OBClient *client, otk::Style *style);
|
Frame(Client *client, otk::Style *style);
|
||||||
//! Destroys the OBFrame object
|
//! Destroys the Frame object
|
||||||
virtual ~OBFrame();
|
virtual ~Frame();
|
||||||
|
|
||||||
//! Set the style to decorate the frame with
|
//! Set the style to decorate the frame with
|
||||||
virtual void setStyle(otk::Style *style);
|
virtual void setStyle(otk::Style *style);
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
|
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
|
||||||
|
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
# include "../config.h"
|
# include "../config.h"
|
||||||
|
@ -10,30 +11,30 @@
|
||||||
|
|
||||||
namespace ob {
|
namespace ob {
|
||||||
|
|
||||||
OBLabelWidget::OBLabelWidget(otk::OtkWidget *parent, OBWidget::WidgetType type)
|
LabelWidget::LabelWidget(otk::Widget *parent, WidgetBase::WidgetType type)
|
||||||
: otk::OtkWidget(parent),
|
: otk::Widget(parent),
|
||||||
OBWidget(type)
|
WidgetBase(type)
|
||||||
{
|
{
|
||||||
const otk::ScreenInfo *info = otk::OBDisplay::screenInfo(_screen);
|
const otk::ScreenInfo *info = otk::Display::screenInfo(_screen);
|
||||||
_xftdraw = XftDrawCreate(otk::OBDisplay::display, _window, info->visual(),
|
_xftdraw = XftDrawCreate(otk::Display::display, _window, info->visual(),
|
||||||
info->colormap());
|
info->colormap());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
OBLabelWidget::~OBLabelWidget()
|
LabelWidget::~LabelWidget()
|
||||||
{
|
{
|
||||||
XftDrawDestroy(_xftdraw);
|
XftDrawDestroy(_xftdraw);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBLabelWidget::setText(const std::string &text)
|
void LabelWidget::setText(const std::string &text)
|
||||||
{
|
{
|
||||||
_text = text;
|
_text = text;
|
||||||
_dirty = true;
|
_dirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBLabelWidget::setTextures()
|
void LabelWidget::setTextures()
|
||||||
{
|
{
|
||||||
if (_focused) {
|
if (_focused) {
|
||||||
setTexture(_style->getLabelFocus());
|
setTexture(_style->getLabelFocus());
|
||||||
|
@ -45,9 +46,9 @@ void OBLabelWidget::setTextures()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBLabelWidget::setStyle(otk::Style *style)
|
void LabelWidget::setStyle(otk::Style *style)
|
||||||
{
|
{
|
||||||
OtkWidget::setStyle(style);
|
otk::Widget::setStyle(style);
|
||||||
setTextures();
|
setTextures();
|
||||||
_font = style->getFont();
|
_font = style->getFont();
|
||||||
assert(_font);
|
assert(_font);
|
||||||
|
@ -56,25 +57,25 @@ void OBLabelWidget::setStyle(otk::Style *style)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBLabelWidget::focus()
|
void LabelWidget::focus()
|
||||||
{
|
{
|
||||||
otk::OtkWidget::focus();
|
otk::Widget::focus();
|
||||||
setTextures();
|
setTextures();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBLabelWidget::unfocus()
|
void LabelWidget::unfocus()
|
||||||
{
|
{
|
||||||
otk::OtkWidget::unfocus();
|
otk::Widget::unfocus();
|
||||||
setTextures();
|
setTextures();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBLabelWidget::update()
|
void LabelWidget::update()
|
||||||
{
|
{
|
||||||
bool draw = _dirty;
|
bool draw = _dirty;
|
||||||
|
|
||||||
OtkWidget::update();
|
otk::Widget::update();
|
||||||
|
|
||||||
if (draw) {
|
if (draw) {
|
||||||
std::string t = _text;
|
std::string t = _text;
|
||||||
|
@ -111,7 +112,7 @@ void OBLabelWidget::update()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBLabelWidget::adjust()
|
void LabelWidget::adjust()
|
||||||
{
|
{
|
||||||
// nothing to adjust. no children.
|
// nothing to adjust. no children.
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,12 +9,12 @@
|
||||||
|
|
||||||
namespace ob {
|
namespace ob {
|
||||||
|
|
||||||
class OBLabelWidget : public otk::OtkWidget, public OBWidget
|
class LabelWidget : public otk::Widget, public WidgetBase
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
void setTextures();
|
void setTextures();
|
||||||
const otk::BFont *_font;
|
const otk::Font *_font;
|
||||||
otk::BColor *_text_color;
|
otk::Color *_text_color;
|
||||||
int _sidemargin;
|
int _sidemargin;
|
||||||
otk::Style::TextJustify _justify;
|
otk::Style::TextJustify _justify;
|
||||||
std::string _text;
|
std::string _text;
|
||||||
|
@ -22,8 +22,8 @@ private:
|
||||||
XftDraw *_xftdraw;
|
XftDraw *_xftdraw;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
OBLabelWidget(otk::OtkWidget *parent, OBWidget::WidgetType type);
|
LabelWidget(otk::Widget *parent, WidgetBase::WidgetType type);
|
||||||
virtual ~OBLabelWidget();
|
virtual ~LabelWidget();
|
||||||
|
|
||||||
virtual void setStyle(otk::Style *style);
|
virtual void setStyle(otk::Style *style);
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// -*- mode: C++; indent-tabs-mode: nil; -*-
|
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
|
||||||
|
|
||||||
/*! @file main.cc
|
/*! @file main.cc
|
||||||
@brief Main entry point for the application
|
@brief Main entry point for the application
|
||||||
|
@ -16,9 +16,6 @@ extern "C" {
|
||||||
#include "gettext.h"
|
#include "gettext.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <string>
|
|
||||||
using std::string;
|
|
||||||
|
|
||||||
#include "openbox.hh"
|
#include "openbox.hh"
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
|
|
|
@ -79,8 +79,8 @@ void Openbox::signalHandler(int signal)
|
||||||
|
|
||||||
|
|
||||||
Openbox::Openbox(int argc, char **argv)
|
Openbox::Openbox(int argc, char **argv)
|
||||||
: otk::OtkEventDispatcher(),
|
: otk::EventDispatcher(),
|
||||||
otk::OtkEventHandler()
|
otk::EventHandler()
|
||||||
{
|
{
|
||||||
struct sigaction action;
|
struct sigaction action;
|
||||||
|
|
||||||
|
@ -100,10 +100,10 @@ Openbox::Openbox(int argc, char **argv)
|
||||||
parseCommandLine(argc, argv);
|
parseCommandLine(argc, argv);
|
||||||
|
|
||||||
// open the X display (and gets some info about it, and its screens)
|
// open the X display (and gets some info about it, and its screens)
|
||||||
otk::OBDisplay::initialize(_displayreq);
|
otk::Display::initialize(_displayreq);
|
||||||
assert(otk::OBDisplay::display);
|
assert(otk::Display::display);
|
||||||
|
|
||||||
XSynchronize(otk::OBDisplay::display, _sync);
|
XSynchronize(otk::Display::display, _sync);
|
||||||
|
|
||||||
// set up the signal handler
|
// set up the signal handler
|
||||||
action.sa_handler = Openbox::signalHandler;
|
action.sa_handler = Openbox::signalHandler;
|
||||||
|
@ -117,19 +117,19 @@ Openbox::Openbox(int argc, char **argv)
|
||||||
sigaction(SIGINT, &action, (struct sigaction *) 0);
|
sigaction(SIGINT, &action, (struct sigaction *) 0);
|
||||||
sigaction(SIGHUP, &action, (struct sigaction *) 0);
|
sigaction(SIGHUP, &action, (struct sigaction *) 0);
|
||||||
|
|
||||||
_property = new otk::OBProperty();
|
_property = new otk::Property();
|
||||||
_actions = new OBActions();
|
_actions = new Actions();
|
||||||
_bindings = new OBBindings();
|
_bindings = new Bindings();
|
||||||
|
|
||||||
setMasterHandler(_actions); // set as the master event handler
|
setMasterHandler(_actions); // set as the master event handler
|
||||||
|
|
||||||
// create the mouse cursors we'll use
|
// create the mouse cursors we'll use
|
||||||
_cursors.session = XCreateFontCursor(otk::OBDisplay::display, XC_left_ptr);
|
_cursors.session = XCreateFontCursor(otk::Display::display, XC_left_ptr);
|
||||||
_cursors.move = XCreateFontCursor(otk::OBDisplay::display, XC_fleur);
|
_cursors.move = XCreateFontCursor(otk::Display::display, XC_fleur);
|
||||||
_cursors.ll_angle = XCreateFontCursor(otk::OBDisplay::display, XC_ll_angle);
|
_cursors.ll_angle = XCreateFontCursor(otk::Display::display, XC_ll_angle);
|
||||||
_cursors.lr_angle = XCreateFontCursor(otk::OBDisplay::display, XC_lr_angle);
|
_cursors.lr_angle = XCreateFontCursor(otk::Display::display, XC_lr_angle);
|
||||||
_cursors.ul_angle = XCreateFontCursor(otk::OBDisplay::display, XC_ul_angle);
|
_cursors.ul_angle = XCreateFontCursor(otk::Display::display, XC_ul_angle);
|
||||||
_cursors.ur_angle = XCreateFontCursor(otk::OBDisplay::display, XC_ur_angle);
|
_cursors.ur_angle = XCreateFontCursor(otk::Display::display, XC_ur_angle);
|
||||||
|
|
||||||
// initialize scripting
|
// initialize scripting
|
||||||
python_init(argv[0]);
|
python_init(argv[0]);
|
||||||
|
@ -143,11 +143,11 @@ Openbox::Openbox(int argc, char **argv)
|
||||||
python_exec(SCRIPTDIR"/defaults.py"); // system default bahaviors
|
python_exec(SCRIPTDIR"/defaults.py"); // system default bahaviors
|
||||||
|
|
||||||
// initialize all the screens
|
// initialize all the screens
|
||||||
OBScreen *screen;
|
Screen *screen;
|
||||||
int i = _single ? DefaultScreen(otk::OBDisplay::display) : 0;
|
int i = _single ? DefaultScreen(otk::Display::display) : 0;
|
||||||
int max = _single ? i + 1 : ScreenCount(otk::OBDisplay::display);
|
int max = _single ? i + 1 : ScreenCount(otk::Display::display);
|
||||||
for (; i < max; ++i) {
|
for (; i < max; ++i) {
|
||||||
screen = new OBScreen(i);
|
screen = new Screen(i);
|
||||||
if (screen->managed())
|
if (screen->managed())
|
||||||
_screens.push_back(screen);
|
_screens.push_back(screen);
|
||||||
else
|
else
|
||||||
|
@ -189,19 +189,19 @@ Openbox::~Openbox()
|
||||||
|
|
||||||
python_destroy();
|
python_destroy();
|
||||||
|
|
||||||
XSetInputFocus(otk::OBDisplay::display, PointerRoot, RevertToNone,
|
XSetInputFocus(otk::Display::display, PointerRoot, RevertToNone,
|
||||||
CurrentTime);
|
CurrentTime);
|
||||||
XSync(otk::OBDisplay::display, false);
|
XSync(otk::Display::display, false);
|
||||||
|
|
||||||
// this tends to block.. i honestly am not sure why. causing an x error in
|
// this tends to block.. i honestly am not sure why. causing an x error in
|
||||||
// the shutdown process unblocks it. blackbox simply did a ::exit(0), so
|
// the shutdown process unblocks it. blackbox simply did a ::exit(0), so
|
||||||
// all im gunna do is the same.
|
// all im gunna do is the same.
|
||||||
//otk::OBDisplay::destroy();
|
//otk::Display::destroy();
|
||||||
|
|
||||||
if (_restart) {
|
if (_restart) {
|
||||||
if (!_restart_prog.empty()) {
|
if (!_restart_prog.empty()) {
|
||||||
const std::string &dstr =
|
const std::string &dstr =
|
||||||
otk::OBDisplay::screenInfo(first_screen)->displayString();
|
otk::Display::screenInfo(first_screen)->displayString();
|
||||||
otk::putenv(const_cast<char *>(dstr.c_str()));
|
otk::putenv(const_cast<char *>(dstr.c_str()));
|
||||||
execlp(_restart_prog.c_str(), _restart_prog.c_str(), NULL);
|
execlp(_restart_prog.c_str(), _restart_prog.c_str(), NULL);
|
||||||
perror(_restart_prog.c_str());
|
perror(_restart_prog.c_str());
|
||||||
|
@ -321,13 +321,13 @@ void Openbox::eventLoop()
|
||||||
{
|
{
|
||||||
while (!_shutdown) {
|
while (!_shutdown) {
|
||||||
_timermanager.fire(!_sync); // wait if not in sync mode
|
_timermanager.fire(!_sync); // wait if not in sync mode
|
||||||
dispatchEvents(); // from OtkEventDispatcher
|
dispatchEvents(); // from otk::EventDispatcher
|
||||||
XFlush(otk::OBDisplay::display); // flush here before we go wait for timers
|
XFlush(otk::Display::display); // flush here before we go wait for timers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Openbox::addClient(Window window, OBClient *client)
|
void Openbox::addClient(Window window, Client *client)
|
||||||
{
|
{
|
||||||
_clients[window] = client;
|
_clients[window] = client;
|
||||||
}
|
}
|
||||||
|
@ -339,7 +339,7 @@ void Openbox::removeClient(Window window)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
OBClient *Openbox::findClient(Window window)
|
Client *Openbox::findClient(Window window)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
NOTE: we dont use _clients[] to find the value because that will insert
|
NOTE: we dont use _clients[] to find the value because that will insert
|
||||||
|
@ -350,27 +350,27 @@ OBClient *Openbox::findClient(Window window)
|
||||||
if (it != _clients.end())
|
if (it != _clients.end())
|
||||||
return it->second;
|
return it->second;
|
||||||
else
|
else
|
||||||
return (OBClient*) 0;
|
return (Client*) 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Openbox::setFocusedClient(OBClient *c)
|
void Openbox::setFocusedClient(Client *c)
|
||||||
{
|
{
|
||||||
_focused_client = c;
|
_focused_client = c;
|
||||||
if (c) {
|
if (c) {
|
||||||
_focused_screen = _screens[c->screen()];
|
_focused_screen = _screens[c->screen()];
|
||||||
} else {
|
} else {
|
||||||
assert(_focused_screen);
|
assert(_focused_screen);
|
||||||
XSetInputFocus(otk::OBDisplay::display, _focused_screen->focuswindow(),
|
XSetInputFocus(otk::Display::display, _focused_screen->focuswindow(),
|
||||||
RevertToNone, CurrentTime);
|
RevertToNone, CurrentTime);
|
||||||
}
|
}
|
||||||
// set the NET_ACTIVE_WINDOW hint for all screens
|
// set the NET_ACTIVE_WINDOW hint for all screens
|
||||||
ScreenList::iterator it, end = _screens.end();
|
ScreenList::iterator it, end = _screens.end();
|
||||||
for (it = _screens.begin(); it != end; ++it) {
|
for (it = _screens.begin(); it != end; ++it) {
|
||||||
int num = (*it)->number();
|
int num = (*it)->number();
|
||||||
Window root = otk::OBDisplay::screenInfo(num)->rootWindow();
|
Window root = otk::Display::screenInfo(num)->rootWindow();
|
||||||
_property->set(root, otk::OBProperty::net_active_window,
|
_property->set(root, otk::Property::net_active_window,
|
||||||
otk::OBProperty::Atom_Window,
|
otk::Property::Atom_Window,
|
||||||
(c && _focused_screen == *it) ? c->window() : None);
|
(c && _focused_screen == *it) ? c->window() : None);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -381,9 +381,9 @@ void Openbox::setFocusedClient(OBClient *c)
|
||||||
|
|
||||||
void Openbox::execute(int screen, const std::string &bin)
|
void Openbox::execute(int screen, const std::string &bin)
|
||||||
{
|
{
|
||||||
if (screen >= ScreenCount(otk::OBDisplay::display))
|
if (screen >= ScreenCount(otk::Display::display))
|
||||||
screen = 0;
|
screen = 0;
|
||||||
otk::bexec(bin, otk::OBDisplay::screenInfo(screen)->displayString());
|
otk::bexec(bin, otk::Display::screenInfo(screen)->displayString());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,10 +23,10 @@ extern "C" {
|
||||||
|
|
||||||
namespace ob {
|
namespace ob {
|
||||||
|
|
||||||
class OBScreen;
|
class Screen;
|
||||||
class OBClient;
|
class Client;
|
||||||
class OBActions;
|
class Actions;
|
||||||
class OBBindings;
|
class Bindings;
|
||||||
|
|
||||||
//! Mouse cursors used throughout Openbox
|
//! Mouse cursors used throughout Openbox
|
||||||
struct Cursors {
|
struct Cursors {
|
||||||
|
@ -49,7 +49,7 @@ struct Cursors {
|
||||||
not exit until the window manager is ready to be destroyed. Destruction of
|
not exit until the window manager is ready to be destroyed. Destruction of
|
||||||
the Openbox class instance will shutdown the window manager.
|
the Openbox class instance will shutdown the window manager.
|
||||||
*/
|
*/
|
||||||
class Openbox : public otk::OtkEventDispatcher, public otk::OtkEventHandler
|
class Openbox : public otk::EventDispatcher, public otk::EventHandler
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
//! The single instance of the Openbox class for the application
|
//! The single instance of the Openbox class for the application
|
||||||
|
@ -67,10 +67,10 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
//! A map for looking up a specific client class from the window id
|
//! A map for looking up a specific client class from the window id
|
||||||
typedef std::map<Window, OBClient *> ClientMap;
|
typedef std::map<Window, Client *> ClientMap;
|
||||||
|
|
||||||
//! A list of OBScreen classes
|
//! A list of Screen classes
|
||||||
typedef std::vector<OBScreen *> ScreenList;
|
typedef std::vector<Screen *> ScreenList;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// stuff that can be passed on the command line
|
// stuff that can be passed on the command line
|
||||||
|
@ -106,24 +106,24 @@ private:
|
||||||
|
|
||||||
//! Manages all timers for the application
|
//! Manages all timers for the application
|
||||||
/*!
|
/*!
|
||||||
Use of the otk::OBTimerQueueManager::fire funtion in this object ensures
|
Use of the otk::TimerQueueManager::fire funtion in this object ensures
|
||||||
that all timers fire when their times elapse.
|
that all timers fire when their times elapse.
|
||||||
*/
|
*/
|
||||||
otk::OBTimerQueueManager _timermanager;
|
otk::TimerQueueManager _timermanager;
|
||||||
|
|
||||||
//! Cached atoms on the display
|
//! Cached atoms on the display
|
||||||
/*!
|
/*!
|
||||||
This is a pointer because the OBProperty class uses otk::OBDisplay::display
|
This is a pointer because the Property class uses otk::Display::display
|
||||||
in its constructor, so, it needs to be initialized <b>after</b> the display
|
in its constructor, so, it needs to be initialized <b>after</b> the display
|
||||||
is initialized in this class' constructor.
|
is initialized in this class' constructor.
|
||||||
*/
|
*/
|
||||||
otk::OBProperty *_property;
|
otk::Property *_property;
|
||||||
|
|
||||||
//! The action interface through which all user-available actions occur
|
//! The action interface through which all user-available actions occur
|
||||||
OBActions *_actions;
|
Actions *_actions;
|
||||||
|
|
||||||
//! The interface through which keys/buttons are grabbed and handled
|
//! The interface through which keys/buttons are grabbed and handled
|
||||||
OBBindings *_bindings;
|
Bindings *_bindings;
|
||||||
|
|
||||||
//! The running state of the window manager
|
//! The running state of the window manager
|
||||||
RunState _state;
|
RunState _state;
|
||||||
|
@ -146,14 +146,14 @@ private:
|
||||||
/*!
|
/*!
|
||||||
Updated by the clients themselves.
|
Updated by the clients themselves.
|
||||||
*/
|
*/
|
||||||
OBClient *_focused_client;
|
Client *_focused_client;
|
||||||
|
|
||||||
//! The screen with input focus
|
//! The screen with input focus
|
||||||
/*!
|
/*!
|
||||||
Updated by the clients when they update the Openbox::focused_client
|
Updated by the clients when they update the Openbox::focused_client
|
||||||
property.
|
property.
|
||||||
*/
|
*/
|
||||||
OBScreen *_focused_screen;
|
Screen *_focused_screen;
|
||||||
|
|
||||||
//! Parses the command line used when executing this application
|
//! Parses the command line used when executing this application
|
||||||
void parseCommandLine(int argv, char **argv);
|
void parseCommandLine(int argv, char **argv);
|
||||||
|
@ -180,24 +180,24 @@ public:
|
||||||
//! Returns the state of the window manager (starting, exiting, etc)
|
//! Returns the state of the window manager (starting, exiting, etc)
|
||||||
inline RunState state() const { return _state; }
|
inline RunState state() const { return _state; }
|
||||||
|
|
||||||
//! Returns the otk::OBTimerQueueManager for the application
|
//! Returns the otk::TimerQueueManager for the application
|
||||||
/*!
|
/*!
|
||||||
All otk::OBTimer objects used in the application should be made to use this
|
All otk::Timer objects used in the application should be made to use this
|
||||||
otk::OBTimerQueueManager.
|
otk::TimerQueueManager.
|
||||||
*/
|
*/
|
||||||
inline otk::OBTimerQueueManager *timerManager() { return &_timermanager; }
|
inline otk::TimerQueueManager *timerManager() { return &_timermanager; }
|
||||||
|
|
||||||
//! Returns the otk::OBProperty instance for the window manager
|
//! Returns the otk::Property instance for the window manager
|
||||||
inline const otk::OBProperty *property() const { return _property; }
|
inline const otk::Property *property() const { return _property; }
|
||||||
|
|
||||||
//! Returns the OBActions instance for the window manager
|
//! Returns the Actions instance for the window manager
|
||||||
inline OBActions *actions() const { return _actions; }
|
inline Actions *actions() const { return _actions; }
|
||||||
|
|
||||||
//! Returns the OBBindings instance for the window manager
|
//! Returns the Bindings instance for the window manager
|
||||||
inline OBBindings *bindings() const { return _bindings; }
|
inline Bindings *bindings() const { return _bindings; }
|
||||||
|
|
||||||
//! Returns a managed screen
|
//! Returns a managed screen
|
||||||
inline OBScreen *screen(int num) {
|
inline Screen *screen(int num) {
|
||||||
assert(num >= 0); assert(num < (signed)_screens.size());
|
assert(num >= 0); assert(num < (signed)_screens.size());
|
||||||
if (num >= screenCount())
|
if (num >= screenCount())
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -222,26 +222,26 @@ public:
|
||||||
void eventLoop();
|
void eventLoop();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//! Adds an OBClient to the client list for lookups
|
//! Adds an Client to the client list for lookups
|
||||||
void addClient(Window window, OBClient *client);
|
void addClient(Window window, Client *client);
|
||||||
|
|
||||||
//! Removes an OBClient from the client list for lookups
|
//! Removes an Client from the client list for lookups
|
||||||
void removeClient(Window window);
|
void removeClient(Window window);
|
||||||
|
|
||||||
//! Finds an OBClient based on its window id
|
//! Finds an Client based on its window id
|
||||||
OBClient *findClient(Window window);
|
Client *findClient(Window window);
|
||||||
|
|
||||||
//! The client with input focus
|
//! The client with input focus
|
||||||
inline OBClient *focusedClient() { return _focused_client; }
|
inline Client *focusedClient() { return _focused_client; }
|
||||||
|
|
||||||
//! Change the client which has focus.
|
//! Change the client which has focus.
|
||||||
/*!
|
/*!
|
||||||
This is called by the clients themselves when their focus state changes.
|
This is called by the clients themselves when their focus state changes.
|
||||||
*/
|
*/
|
||||||
void setFocusedClient(OBClient *c);
|
void setFocusedClient(Client *c);
|
||||||
|
|
||||||
//! The screen with input focus
|
//! The screen with input focus
|
||||||
inline OBScreen *focusedScreen() { return _focused_screen; }
|
inline Screen *focusedScreen() { return _focused_screen; }
|
||||||
|
|
||||||
//! Requests that the window manager exit
|
//! Requests that the window manager exit
|
||||||
/*!
|
/*!
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
%include "stl.i"
|
%include "stl.i"
|
||||||
//%include std_list.i
|
//%include std_list.i
|
||||||
//%template(ClientList) std::list<OBClient*>;
|
//%template(ClientList) std::list<Client*>;
|
||||||
|
|
||||||
%ignore ob::Openbox::instance;
|
%ignore ob::Openbox::instance;
|
||||||
%inline %{
|
%inline %{
|
||||||
|
@ -90,15 +90,15 @@ void python_callback(PyObject *func, KeyData *data)
|
||||||
}
|
}
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%ignore ob::OBScreen::clients;
|
%ignore ob::Screen::clients;
|
||||||
%{
|
%{
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
%}
|
%}
|
||||||
%extend ob::OBScreen {
|
%extend ob::Screen {
|
||||||
OBClient *client(int i) {
|
Client *client(int i) {
|
||||||
if (i >= (int)self->clients.size())
|
if (i >= (int)self->clients.size())
|
||||||
return NULL;
|
return NULL;
|
||||||
ob::OBClient::List::iterator it = self->clients.begin();
|
ob::Client::List::iterator it = self->clients.begin();
|
||||||
std::advance(it,i);
|
std::advance(it,i);
|
||||||
return *it;
|
return *it;
|
||||||
}
|
}
|
||||||
|
@ -107,9 +107,9 @@ void python_callback(PyObject *func, KeyData *data)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
%ignore otk::OBDisplay::display;
|
%ignore otk::Display::display;
|
||||||
%inline %{
|
%inline %{
|
||||||
Display *OBDisplay_display() { return otk::OBDisplay::display; }
|
Display *Display_display() { return otk::Display::display; }
|
||||||
%};
|
%};
|
||||||
|
|
||||||
%include "../otk/display.hh"
|
%include "../otk/display.hh"
|
||||||
|
@ -119,11 +119,6 @@ void python_callback(PyObject *func, KeyData *data)
|
||||||
%include "../otk/screeninfo.hh"
|
%include "../otk/screeninfo.hh"
|
||||||
%include "../otk/strut.hh"
|
%include "../otk/strut.hh"
|
||||||
|
|
||||||
%rename(itostring_unsigned) itostring(unsigned int);
|
|
||||||
%rename(itostring_long) itostring(long);
|
|
||||||
%rename(itostring_unsigned_long) itostring(unsigned long);
|
|
||||||
%include "../otk/util.hh"
|
|
||||||
|
|
||||||
%include "../otk/eventhandler.hh"
|
%include "../otk/eventhandler.hh"
|
||||||
%include "../otk/eventdispatcher.hh"
|
%include "../otk/eventdispatcher.hh"
|
||||||
|
|
||||||
|
|
756
src/openbox.py
756
src/openbox.py
|
@ -29,94 +29,94 @@ except AttributeError:
|
||||||
|
|
||||||
Openbox_instance = _openbox.Openbox_instance
|
Openbox_instance = _openbox.Openbox_instance
|
||||||
|
|
||||||
OBDisplay_display = _openbox.OBDisplay_display
|
Display_display = _openbox.Display_display
|
||||||
|
|
||||||
class OBDisplay(_object):
|
class Display(_object):
|
||||||
__swig_setmethods__ = {}
|
__swig_setmethods__ = {}
|
||||||
__setattr__ = lambda self, name, value: _swig_setattr(self, OBDisplay, name, value)
|
__setattr__ = lambda self, name, value: _swig_setattr(self, Display, name, value)
|
||||||
__swig_getmethods__ = {}
|
__swig_getmethods__ = {}
|
||||||
__getattr__ = lambda self, name: _swig_getattr(self, OBDisplay, name)
|
__getattr__ = lambda self, name: _swig_getattr(self, Display, name)
|
||||||
__swig_getmethods__["initialize"] = lambda x: _openbox.OBDisplay_initialize
|
__swig_getmethods__["initialize"] = lambda x: _openbox.Display_initialize
|
||||||
if _newclass:initialize = staticmethod(_openbox.OBDisplay_initialize)
|
if _newclass:initialize = staticmethod(_openbox.Display_initialize)
|
||||||
__swig_getmethods__["destroy"] = lambda x: _openbox.OBDisplay_destroy
|
__swig_getmethods__["destroy"] = lambda x: _openbox.Display_destroy
|
||||||
if _newclass:destroy = staticmethod(_openbox.OBDisplay_destroy)
|
if _newclass:destroy = staticmethod(_openbox.Display_destroy)
|
||||||
__swig_getmethods__["gcCache"] = lambda x: _openbox.OBDisplay_gcCache
|
__swig_getmethods__["gcCache"] = lambda x: _openbox.Display_gcCache
|
||||||
if _newclass:gcCache = staticmethod(_openbox.OBDisplay_gcCache)
|
if _newclass:gcCache = staticmethod(_openbox.Display_gcCache)
|
||||||
__swig_getmethods__["screenInfo"] = lambda x: _openbox.OBDisplay_screenInfo
|
__swig_getmethods__["screenInfo"] = lambda x: _openbox.Display_screenInfo
|
||||||
if _newclass:screenInfo = staticmethod(_openbox.OBDisplay_screenInfo)
|
if _newclass:screenInfo = staticmethod(_openbox.Display_screenInfo)
|
||||||
__swig_getmethods__["findScreen"] = lambda x: _openbox.OBDisplay_findScreen
|
__swig_getmethods__["findScreen"] = lambda x: _openbox.Display_findScreen
|
||||||
if _newclass:findScreen = staticmethod(_openbox.OBDisplay_findScreen)
|
if _newclass:findScreen = staticmethod(_openbox.Display_findScreen)
|
||||||
__swig_getmethods__["xkb"] = lambda x: _openbox.OBDisplay_xkb
|
__swig_getmethods__["xkb"] = lambda x: _openbox.Display_xkb
|
||||||
if _newclass:xkb = staticmethod(_openbox.OBDisplay_xkb)
|
if _newclass:xkb = staticmethod(_openbox.Display_xkb)
|
||||||
__swig_getmethods__["xkbEventBase"] = lambda x: _openbox.OBDisplay_xkbEventBase
|
__swig_getmethods__["xkbEventBase"] = lambda x: _openbox.Display_xkbEventBase
|
||||||
if _newclass:xkbEventBase = staticmethod(_openbox.OBDisplay_xkbEventBase)
|
if _newclass:xkbEventBase = staticmethod(_openbox.Display_xkbEventBase)
|
||||||
__swig_getmethods__["shape"] = lambda x: _openbox.OBDisplay_shape
|
__swig_getmethods__["shape"] = lambda x: _openbox.Display_shape
|
||||||
if _newclass:shape = staticmethod(_openbox.OBDisplay_shape)
|
if _newclass:shape = staticmethod(_openbox.Display_shape)
|
||||||
__swig_getmethods__["shapeEventBase"] = lambda x: _openbox.OBDisplay_shapeEventBase
|
__swig_getmethods__["shapeEventBase"] = lambda x: _openbox.Display_shapeEventBase
|
||||||
if _newclass:shapeEventBase = staticmethod(_openbox.OBDisplay_shapeEventBase)
|
if _newclass:shapeEventBase = staticmethod(_openbox.Display_shapeEventBase)
|
||||||
__swig_getmethods__["xinerama"] = lambda x: _openbox.OBDisplay_xinerama
|
__swig_getmethods__["xinerama"] = lambda x: _openbox.Display_xinerama
|
||||||
if _newclass:xinerama = staticmethod(_openbox.OBDisplay_xinerama)
|
if _newclass:xinerama = staticmethod(_openbox.Display_xinerama)
|
||||||
__swig_getmethods__["numLockMask"] = lambda x: _openbox.OBDisplay_numLockMask
|
__swig_getmethods__["numLockMask"] = lambda x: _openbox.Display_numLockMask
|
||||||
if _newclass:numLockMask = staticmethod(_openbox.OBDisplay_numLockMask)
|
if _newclass:numLockMask = staticmethod(_openbox.Display_numLockMask)
|
||||||
__swig_getmethods__["scrollLockMask"] = lambda x: _openbox.OBDisplay_scrollLockMask
|
__swig_getmethods__["scrollLockMask"] = lambda x: _openbox.Display_scrollLockMask
|
||||||
if _newclass:scrollLockMask = staticmethod(_openbox.OBDisplay_scrollLockMask)
|
if _newclass:scrollLockMask = staticmethod(_openbox.Display_scrollLockMask)
|
||||||
__swig_getmethods__["grab"] = lambda x: _openbox.OBDisplay_grab
|
__swig_getmethods__["grab"] = lambda x: _openbox.Display_grab
|
||||||
if _newclass:grab = staticmethod(_openbox.OBDisplay_grab)
|
if _newclass:grab = staticmethod(_openbox.Display_grab)
|
||||||
__swig_getmethods__["ungrab"] = lambda x: _openbox.OBDisplay_ungrab
|
__swig_getmethods__["ungrab"] = lambda x: _openbox.Display_ungrab
|
||||||
if _newclass:ungrab = staticmethod(_openbox.OBDisplay_ungrab)
|
if _newclass:ungrab = staticmethod(_openbox.Display_ungrab)
|
||||||
__swig_getmethods__["grabButton"] = lambda x: _openbox.OBDisplay_grabButton
|
__swig_getmethods__["grabButton"] = lambda x: _openbox.Display_grabButton
|
||||||
if _newclass:grabButton = staticmethod(_openbox.OBDisplay_grabButton)
|
if _newclass:grabButton = staticmethod(_openbox.Display_grabButton)
|
||||||
__swig_getmethods__["ungrabButton"] = lambda x: _openbox.OBDisplay_ungrabButton
|
__swig_getmethods__["ungrabButton"] = lambda x: _openbox.Display_ungrabButton
|
||||||
if _newclass:ungrabButton = staticmethod(_openbox.OBDisplay_ungrabButton)
|
if _newclass:ungrabButton = staticmethod(_openbox.Display_ungrabButton)
|
||||||
__swig_getmethods__["grabKey"] = lambda x: _openbox.OBDisplay_grabKey
|
__swig_getmethods__["grabKey"] = lambda x: _openbox.Display_grabKey
|
||||||
if _newclass:grabKey = staticmethod(_openbox.OBDisplay_grabKey)
|
if _newclass:grabKey = staticmethod(_openbox.Display_grabKey)
|
||||||
__swig_getmethods__["ungrabKey"] = lambda x: _openbox.OBDisplay_ungrabKey
|
__swig_getmethods__["ungrabKey"] = lambda x: _openbox.Display_ungrabKey
|
||||||
if _newclass:ungrabKey = staticmethod(_openbox.OBDisplay_ungrabKey)
|
if _newclass:ungrabKey = staticmethod(_openbox.Display_ungrabKey)
|
||||||
def __init__(self): raise RuntimeError, "No constructor defined"
|
def __init__(self): raise RuntimeError, "No constructor defined"
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<C OBDisplay instance at %s>" % (self.this,)
|
return "<C Display instance at %s>" % (self.this,)
|
||||||
|
|
||||||
class OBDisplayPtr(OBDisplay):
|
class DisplayPtr(Display):
|
||||||
def __init__(self,this):
|
def __init__(self,this):
|
||||||
self.this = this
|
self.this = this
|
||||||
if not hasattr(self,"thisown"): self.thisown = 0
|
if not hasattr(self,"thisown"): self.thisown = 0
|
||||||
self.__class__ = OBDisplay
|
self.__class__ = Display
|
||||||
_openbox.OBDisplay_swigregister(OBDisplayPtr)
|
_openbox.Display_swigregister(DisplayPtr)
|
||||||
OBDisplay_initialize = _openbox.OBDisplay_initialize
|
Display_initialize = _openbox.Display_initialize
|
||||||
|
|
||||||
OBDisplay_destroy = _openbox.OBDisplay_destroy
|
Display_destroy = _openbox.Display_destroy
|
||||||
|
|
||||||
OBDisplay_gcCache = _openbox.OBDisplay_gcCache
|
Display_gcCache = _openbox.Display_gcCache
|
||||||
|
|
||||||
OBDisplay_screenInfo = _openbox.OBDisplay_screenInfo
|
Display_screenInfo = _openbox.Display_screenInfo
|
||||||
|
|
||||||
OBDisplay_findScreen = _openbox.OBDisplay_findScreen
|
Display_findScreen = _openbox.Display_findScreen
|
||||||
|
|
||||||
OBDisplay_xkb = _openbox.OBDisplay_xkb
|
Display_xkb = _openbox.Display_xkb
|
||||||
|
|
||||||
OBDisplay_xkbEventBase = _openbox.OBDisplay_xkbEventBase
|
Display_xkbEventBase = _openbox.Display_xkbEventBase
|
||||||
|
|
||||||
OBDisplay_shape = _openbox.OBDisplay_shape
|
Display_shape = _openbox.Display_shape
|
||||||
|
|
||||||
OBDisplay_shapeEventBase = _openbox.OBDisplay_shapeEventBase
|
Display_shapeEventBase = _openbox.Display_shapeEventBase
|
||||||
|
|
||||||
OBDisplay_xinerama = _openbox.OBDisplay_xinerama
|
Display_xinerama = _openbox.Display_xinerama
|
||||||
|
|
||||||
OBDisplay_numLockMask = _openbox.OBDisplay_numLockMask
|
Display_numLockMask = _openbox.Display_numLockMask
|
||||||
|
|
||||||
OBDisplay_scrollLockMask = _openbox.OBDisplay_scrollLockMask
|
Display_scrollLockMask = _openbox.Display_scrollLockMask
|
||||||
|
|
||||||
OBDisplay_grab = _openbox.OBDisplay_grab
|
Display_grab = _openbox.Display_grab
|
||||||
|
|
||||||
OBDisplay_ungrab = _openbox.OBDisplay_ungrab
|
Display_ungrab = _openbox.Display_ungrab
|
||||||
|
|
||||||
OBDisplay_grabButton = _openbox.OBDisplay_grabButton
|
Display_grabButton = _openbox.Display_grabButton
|
||||||
|
|
||||||
OBDisplay_ungrabButton = _openbox.OBDisplay_ungrabButton
|
Display_ungrabButton = _openbox.Display_ungrabButton
|
||||||
|
|
||||||
OBDisplay_grabKey = _openbox.OBDisplay_grabKey
|
Display_grabKey = _openbox.Display_grabKey
|
||||||
|
|
||||||
OBDisplay_ungrabKey = _openbox.OBDisplay_ungrabKey
|
Display_ungrabKey = _openbox.Display_ungrabKey
|
||||||
|
|
||||||
|
|
||||||
class Point(_object):
|
class Point(_object):
|
||||||
|
@ -142,126 +142,126 @@ class PointPtr(Point):
|
||||||
self.__class__ = Point
|
self.__class__ = Point
|
||||||
_openbox.Point_swigregister(PointPtr)
|
_openbox.Point_swigregister(PointPtr)
|
||||||
|
|
||||||
class OBProperty(_object):
|
class Property(_object):
|
||||||
__swig_setmethods__ = {}
|
__swig_setmethods__ = {}
|
||||||
__setattr__ = lambda self, name, value: _swig_setattr(self, OBProperty, name, value)
|
__setattr__ = lambda self, name, value: _swig_setattr(self, Property, name, value)
|
||||||
__swig_getmethods__ = {}
|
__swig_getmethods__ = {}
|
||||||
__getattr__ = lambda self, name: _swig_getattr(self, OBProperty, name)
|
__getattr__ = lambda self, name: _swig_getattr(self, Property, name)
|
||||||
Atom_Cardinal = _openbox.OBProperty_Atom_Cardinal
|
Atom_Cardinal = _openbox.Property_Atom_Cardinal
|
||||||
Atom_Window = _openbox.OBProperty_Atom_Window
|
Atom_Window = _openbox.Property_Atom_Window
|
||||||
Atom_Pixmap = _openbox.OBProperty_Atom_Pixmap
|
Atom_Pixmap = _openbox.Property_Atom_Pixmap
|
||||||
Atom_Atom = _openbox.OBProperty_Atom_Atom
|
Atom_Atom = _openbox.Property_Atom_Atom
|
||||||
Atom_String = _openbox.OBProperty_Atom_String
|
Atom_String = _openbox.Property_Atom_String
|
||||||
Atom_Utf8 = _openbox.OBProperty_Atom_Utf8
|
Atom_Utf8 = _openbox.Property_Atom_Utf8
|
||||||
openbox_pid = _openbox.OBProperty_openbox_pid
|
openbox_pid = _openbox.Property_openbox_pid
|
||||||
wm_colormap_windows = _openbox.OBProperty_wm_colormap_windows
|
wm_colormap_windows = _openbox.Property_wm_colormap_windows
|
||||||
wm_protocols = _openbox.OBProperty_wm_protocols
|
wm_protocols = _openbox.Property_wm_protocols
|
||||||
wm_state = _openbox.OBProperty_wm_state
|
wm_state = _openbox.Property_wm_state
|
||||||
wm_delete_window = _openbox.OBProperty_wm_delete_window
|
wm_delete_window = _openbox.Property_wm_delete_window
|
||||||
wm_take_focus = _openbox.OBProperty_wm_take_focus
|
wm_take_focus = _openbox.Property_wm_take_focus
|
||||||
wm_change_state = _openbox.OBProperty_wm_change_state
|
wm_change_state = _openbox.Property_wm_change_state
|
||||||
wm_name = _openbox.OBProperty_wm_name
|
wm_name = _openbox.Property_wm_name
|
||||||
wm_icon_name = _openbox.OBProperty_wm_icon_name
|
wm_icon_name = _openbox.Property_wm_icon_name
|
||||||
wm_class = _openbox.OBProperty_wm_class
|
wm_class = _openbox.Property_wm_class
|
||||||
wm_window_role = _openbox.OBProperty_wm_window_role
|
wm_window_role = _openbox.Property_wm_window_role
|
||||||
motif_wm_hints = _openbox.OBProperty_motif_wm_hints
|
motif_wm_hints = _openbox.Property_motif_wm_hints
|
||||||
blackbox_attributes = _openbox.OBProperty_blackbox_attributes
|
blackbox_attributes = _openbox.Property_blackbox_attributes
|
||||||
blackbox_change_attributes = _openbox.OBProperty_blackbox_change_attributes
|
blackbox_change_attributes = _openbox.Property_blackbox_change_attributes
|
||||||
blackbox_hints = _openbox.OBProperty_blackbox_hints
|
blackbox_hints = _openbox.Property_blackbox_hints
|
||||||
blackbox_structure_messages = _openbox.OBProperty_blackbox_structure_messages
|
blackbox_structure_messages = _openbox.Property_blackbox_structure_messages
|
||||||
blackbox_notify_startup = _openbox.OBProperty_blackbox_notify_startup
|
blackbox_notify_startup = _openbox.Property_blackbox_notify_startup
|
||||||
blackbox_notify_window_add = _openbox.OBProperty_blackbox_notify_window_add
|
blackbox_notify_window_add = _openbox.Property_blackbox_notify_window_add
|
||||||
blackbox_notify_window_del = _openbox.OBProperty_blackbox_notify_window_del
|
blackbox_notify_window_del = _openbox.Property_blackbox_notify_window_del
|
||||||
blackbox_notify_window_focus = _openbox.OBProperty_blackbox_notify_window_focus
|
blackbox_notify_window_focus = _openbox.Property_blackbox_notify_window_focus
|
||||||
blackbox_notify_current_workspace = _openbox.OBProperty_blackbox_notify_current_workspace
|
blackbox_notify_current_workspace = _openbox.Property_blackbox_notify_current_workspace
|
||||||
blackbox_notify_workspace_count = _openbox.OBProperty_blackbox_notify_workspace_count
|
blackbox_notify_workspace_count = _openbox.Property_blackbox_notify_workspace_count
|
||||||
blackbox_notify_window_raise = _openbox.OBProperty_blackbox_notify_window_raise
|
blackbox_notify_window_raise = _openbox.Property_blackbox_notify_window_raise
|
||||||
blackbox_notify_window_lower = _openbox.OBProperty_blackbox_notify_window_lower
|
blackbox_notify_window_lower = _openbox.Property_blackbox_notify_window_lower
|
||||||
blackbox_change_workspace = _openbox.OBProperty_blackbox_change_workspace
|
blackbox_change_workspace = _openbox.Property_blackbox_change_workspace
|
||||||
blackbox_change_window_focus = _openbox.OBProperty_blackbox_change_window_focus
|
blackbox_change_window_focus = _openbox.Property_blackbox_change_window_focus
|
||||||
blackbox_cycle_window_focus = _openbox.OBProperty_blackbox_cycle_window_focus
|
blackbox_cycle_window_focus = _openbox.Property_blackbox_cycle_window_focus
|
||||||
openbox_show_root_menu = _openbox.OBProperty_openbox_show_root_menu
|
openbox_show_root_menu = _openbox.Property_openbox_show_root_menu
|
||||||
openbox_show_workspace_menu = _openbox.OBProperty_openbox_show_workspace_menu
|
openbox_show_workspace_menu = _openbox.Property_openbox_show_workspace_menu
|
||||||
net_supported = _openbox.OBProperty_net_supported
|
net_supported = _openbox.Property_net_supported
|
||||||
net_client_list = _openbox.OBProperty_net_client_list
|
net_client_list = _openbox.Property_net_client_list
|
||||||
net_client_list_stacking = _openbox.OBProperty_net_client_list_stacking
|
net_client_list_stacking = _openbox.Property_net_client_list_stacking
|
||||||
net_number_of_desktops = _openbox.OBProperty_net_number_of_desktops
|
net_number_of_desktops = _openbox.Property_net_number_of_desktops
|
||||||
net_desktop_geometry = _openbox.OBProperty_net_desktop_geometry
|
net_desktop_geometry = _openbox.Property_net_desktop_geometry
|
||||||
net_desktop_viewport = _openbox.OBProperty_net_desktop_viewport
|
net_desktop_viewport = _openbox.Property_net_desktop_viewport
|
||||||
net_current_desktop = _openbox.OBProperty_net_current_desktop
|
net_current_desktop = _openbox.Property_net_current_desktop
|
||||||
net_desktop_names = _openbox.OBProperty_net_desktop_names
|
net_desktop_names = _openbox.Property_net_desktop_names
|
||||||
net_active_window = _openbox.OBProperty_net_active_window
|
net_active_window = _openbox.Property_net_active_window
|
||||||
net_workarea = _openbox.OBProperty_net_workarea
|
net_workarea = _openbox.Property_net_workarea
|
||||||
net_supporting_wm_check = _openbox.OBProperty_net_supporting_wm_check
|
net_supporting_wm_check = _openbox.Property_net_supporting_wm_check
|
||||||
net_close_window = _openbox.OBProperty_net_close_window
|
net_close_window = _openbox.Property_net_close_window
|
||||||
net_wm_moveresize = _openbox.OBProperty_net_wm_moveresize
|
net_wm_moveresize = _openbox.Property_net_wm_moveresize
|
||||||
net_wm_name = _openbox.OBProperty_net_wm_name
|
net_wm_name = _openbox.Property_net_wm_name
|
||||||
net_wm_visible_name = _openbox.OBProperty_net_wm_visible_name
|
net_wm_visible_name = _openbox.Property_net_wm_visible_name
|
||||||
net_wm_icon_name = _openbox.OBProperty_net_wm_icon_name
|
net_wm_icon_name = _openbox.Property_net_wm_icon_name
|
||||||
net_wm_visible_icon_name = _openbox.OBProperty_net_wm_visible_icon_name
|
net_wm_visible_icon_name = _openbox.Property_net_wm_visible_icon_name
|
||||||
net_wm_desktop = _openbox.OBProperty_net_wm_desktop
|
net_wm_desktop = _openbox.Property_net_wm_desktop
|
||||||
net_wm_window_type = _openbox.OBProperty_net_wm_window_type
|
net_wm_window_type = _openbox.Property_net_wm_window_type
|
||||||
net_wm_state = _openbox.OBProperty_net_wm_state
|
net_wm_state = _openbox.Property_net_wm_state
|
||||||
net_wm_strut = _openbox.OBProperty_net_wm_strut
|
net_wm_strut = _openbox.Property_net_wm_strut
|
||||||
net_wm_allowed_actions = _openbox.OBProperty_net_wm_allowed_actions
|
net_wm_allowed_actions = _openbox.Property_net_wm_allowed_actions
|
||||||
net_wm_window_type_desktop = _openbox.OBProperty_net_wm_window_type_desktop
|
net_wm_window_type_desktop = _openbox.Property_net_wm_window_type_desktop
|
||||||
net_wm_window_type_dock = _openbox.OBProperty_net_wm_window_type_dock
|
net_wm_window_type_dock = _openbox.Property_net_wm_window_type_dock
|
||||||
net_wm_window_type_toolbar = _openbox.OBProperty_net_wm_window_type_toolbar
|
net_wm_window_type_toolbar = _openbox.Property_net_wm_window_type_toolbar
|
||||||
net_wm_window_type_menu = _openbox.OBProperty_net_wm_window_type_menu
|
net_wm_window_type_menu = _openbox.Property_net_wm_window_type_menu
|
||||||
net_wm_window_type_utility = _openbox.OBProperty_net_wm_window_type_utility
|
net_wm_window_type_utility = _openbox.Property_net_wm_window_type_utility
|
||||||
net_wm_window_type_splash = _openbox.OBProperty_net_wm_window_type_splash
|
net_wm_window_type_splash = _openbox.Property_net_wm_window_type_splash
|
||||||
net_wm_window_type_dialog = _openbox.OBProperty_net_wm_window_type_dialog
|
net_wm_window_type_dialog = _openbox.Property_net_wm_window_type_dialog
|
||||||
net_wm_window_type_normal = _openbox.OBProperty_net_wm_window_type_normal
|
net_wm_window_type_normal = _openbox.Property_net_wm_window_type_normal
|
||||||
net_wm_moveresize_size_topleft = _openbox.OBProperty_net_wm_moveresize_size_topleft
|
net_wm_moveresize_size_topleft = _openbox.Property_net_wm_moveresize_size_topleft
|
||||||
net_wm_moveresize_size_topright = _openbox.OBProperty_net_wm_moveresize_size_topright
|
net_wm_moveresize_size_topright = _openbox.Property_net_wm_moveresize_size_topright
|
||||||
net_wm_moveresize_size_bottomleft = _openbox.OBProperty_net_wm_moveresize_size_bottomleft
|
net_wm_moveresize_size_bottomleft = _openbox.Property_net_wm_moveresize_size_bottomleft
|
||||||
net_wm_moveresize_size_bottomright = _openbox.OBProperty_net_wm_moveresize_size_bottomright
|
net_wm_moveresize_size_bottomright = _openbox.Property_net_wm_moveresize_size_bottomright
|
||||||
net_wm_moveresize_move = _openbox.OBProperty_net_wm_moveresize_move
|
net_wm_moveresize_move = _openbox.Property_net_wm_moveresize_move
|
||||||
net_wm_action_move = _openbox.OBProperty_net_wm_action_move
|
net_wm_action_move = _openbox.Property_net_wm_action_move
|
||||||
net_wm_action_resize = _openbox.OBProperty_net_wm_action_resize
|
net_wm_action_resize = _openbox.Property_net_wm_action_resize
|
||||||
net_wm_action_shade = _openbox.OBProperty_net_wm_action_shade
|
net_wm_action_shade = _openbox.Property_net_wm_action_shade
|
||||||
net_wm_action_maximize_horz = _openbox.OBProperty_net_wm_action_maximize_horz
|
net_wm_action_maximize_horz = _openbox.Property_net_wm_action_maximize_horz
|
||||||
net_wm_action_maximize_vert = _openbox.OBProperty_net_wm_action_maximize_vert
|
net_wm_action_maximize_vert = _openbox.Property_net_wm_action_maximize_vert
|
||||||
net_wm_action_change_desktop = _openbox.OBProperty_net_wm_action_change_desktop
|
net_wm_action_change_desktop = _openbox.Property_net_wm_action_change_desktop
|
||||||
net_wm_action_close = _openbox.OBProperty_net_wm_action_close
|
net_wm_action_close = _openbox.Property_net_wm_action_close
|
||||||
net_wm_state_modal = _openbox.OBProperty_net_wm_state_modal
|
net_wm_state_modal = _openbox.Property_net_wm_state_modal
|
||||||
net_wm_state_sticky = _openbox.OBProperty_net_wm_state_sticky
|
net_wm_state_sticky = _openbox.Property_net_wm_state_sticky
|
||||||
net_wm_state_maximized_vert = _openbox.OBProperty_net_wm_state_maximized_vert
|
net_wm_state_maximized_vert = _openbox.Property_net_wm_state_maximized_vert
|
||||||
net_wm_state_maximized_horz = _openbox.OBProperty_net_wm_state_maximized_horz
|
net_wm_state_maximized_horz = _openbox.Property_net_wm_state_maximized_horz
|
||||||
net_wm_state_shaded = _openbox.OBProperty_net_wm_state_shaded
|
net_wm_state_shaded = _openbox.Property_net_wm_state_shaded
|
||||||
net_wm_state_skip_taskbar = _openbox.OBProperty_net_wm_state_skip_taskbar
|
net_wm_state_skip_taskbar = _openbox.Property_net_wm_state_skip_taskbar
|
||||||
net_wm_state_skip_pager = _openbox.OBProperty_net_wm_state_skip_pager
|
net_wm_state_skip_pager = _openbox.Property_net_wm_state_skip_pager
|
||||||
net_wm_state_hidden = _openbox.OBProperty_net_wm_state_hidden
|
net_wm_state_hidden = _openbox.Property_net_wm_state_hidden
|
||||||
net_wm_state_fullscreen = _openbox.OBProperty_net_wm_state_fullscreen
|
net_wm_state_fullscreen = _openbox.Property_net_wm_state_fullscreen
|
||||||
net_wm_state_above = _openbox.OBProperty_net_wm_state_above
|
net_wm_state_above = _openbox.Property_net_wm_state_above
|
||||||
net_wm_state_below = _openbox.OBProperty_net_wm_state_below
|
net_wm_state_below = _openbox.Property_net_wm_state_below
|
||||||
kde_net_system_tray_windows = _openbox.OBProperty_kde_net_system_tray_windows
|
kde_net_system_tray_windows = _openbox.Property_kde_net_system_tray_windows
|
||||||
kde_net_wm_system_tray_window_for = _openbox.OBProperty_kde_net_wm_system_tray_window_for
|
kde_net_wm_system_tray_window_for = _openbox.Property_kde_net_wm_system_tray_window_for
|
||||||
kde_net_wm_window_type_override = _openbox.OBProperty_kde_net_wm_window_type_override
|
kde_net_wm_window_type_override = _openbox.Property_kde_net_wm_window_type_override
|
||||||
NUM_ATOMS = _openbox.OBProperty_NUM_ATOMS
|
NUM_ATOMS = _openbox.Property_NUM_ATOMS
|
||||||
ascii = _openbox.OBProperty_ascii
|
ascii = _openbox.Property_ascii
|
||||||
utf8 = _openbox.OBProperty_utf8
|
utf8 = _openbox.Property_utf8
|
||||||
NUM_STRING_TYPE = _openbox.OBProperty_NUM_STRING_TYPE
|
NUM_STRING_TYPE = _openbox.Property_NUM_STRING_TYPE
|
||||||
def __init__(self,*args):
|
def __init__(self,*args):
|
||||||
self.this = apply(_openbox.new_OBProperty,args)
|
self.this = apply(_openbox.new_Property,args)
|
||||||
self.thisown = 1
|
self.thisown = 1
|
||||||
def __del__(self, destroy= _openbox.delete_OBProperty):
|
def __del__(self, destroy= _openbox.delete_Property):
|
||||||
try:
|
try:
|
||||||
if self.thisown: destroy(self)
|
if self.thisown: destroy(self)
|
||||||
except: pass
|
except: pass
|
||||||
def set(*args): return apply(_openbox.OBProperty_set,args)
|
def set(*args): return apply(_openbox.Property_set,args)
|
||||||
def get(*args): return apply(_openbox.OBProperty_get,args)
|
def get(*args): return apply(_openbox.Property_get,args)
|
||||||
def erase(*args): return apply(_openbox.OBProperty_erase,args)
|
def erase(*args): return apply(_openbox.Property_erase,args)
|
||||||
def atom(*args): return apply(_openbox.OBProperty_atom,args)
|
def atom(*args): return apply(_openbox.Property_atom,args)
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<C OBProperty instance at %s>" % (self.this,)
|
return "<C Property instance at %s>" % (self.this,)
|
||||||
|
|
||||||
class OBPropertyPtr(OBProperty):
|
class PropertyPtr(Property):
|
||||||
def __init__(self,this):
|
def __init__(self,this):
|
||||||
self.this = this
|
self.this = this
|
||||||
if not hasattr(self,"thisown"): self.thisown = 0
|
if not hasattr(self,"thisown"): self.thisown = 0
|
||||||
self.__class__ = OBProperty
|
self.__class__ = Property
|
||||||
_openbox.OBProperty_swigregister(OBPropertyPtr)
|
_openbox.Property_swigregister(PropertyPtr)
|
||||||
|
|
||||||
class Rect(_object):
|
class Rect(_object):
|
||||||
__swig_setmethods__ = {}
|
__swig_setmethods__ = {}
|
||||||
|
@ -365,110 +365,90 @@ class StrutPtr(Strut):
|
||||||
self.__class__ = Strut
|
self.__class__ = Strut
|
||||||
_openbox.Strut_swigregister(StrutPtr)
|
_openbox.Strut_swigregister(StrutPtr)
|
||||||
|
|
||||||
expandTilde = _openbox.expandTilde
|
class EventHandler(_object):
|
||||||
|
|
||||||
bexec = _openbox.bexec
|
|
||||||
|
|
||||||
textPropertyToString = _openbox.textPropertyToString
|
|
||||||
|
|
||||||
itostring_unsigned_long = _openbox.itostring_unsigned_long
|
|
||||||
|
|
||||||
itostring_long = _openbox.itostring_long
|
|
||||||
|
|
||||||
itostring_unsigned = _openbox.itostring_unsigned
|
|
||||||
|
|
||||||
itostring = _openbox.itostring
|
|
||||||
|
|
||||||
putenv = _openbox.putenv
|
|
||||||
|
|
||||||
basename = _openbox.basename
|
|
||||||
|
|
||||||
class OtkEventHandler(_object):
|
|
||||||
__swig_setmethods__ = {}
|
__swig_setmethods__ = {}
|
||||||
__setattr__ = lambda self, name, value: _swig_setattr(self, OtkEventHandler, name, value)
|
__setattr__ = lambda self, name, value: _swig_setattr(self, EventHandler, name, value)
|
||||||
__swig_getmethods__ = {}
|
__swig_getmethods__ = {}
|
||||||
__getattr__ = lambda self, name: _swig_getattr(self, OtkEventHandler, name)
|
__getattr__ = lambda self, name: _swig_getattr(self, EventHandler, name)
|
||||||
def handle(*args): return apply(_openbox.OtkEventHandler_handle,args)
|
def handle(*args): return apply(_openbox.EventHandler_handle,args)
|
||||||
def keyPressHandler(*args): return apply(_openbox.OtkEventHandler_keyPressHandler,args)
|
def keyPressHandler(*args): return apply(_openbox.EventHandler_keyPressHandler,args)
|
||||||
def keyReleaseHandler(*args): return apply(_openbox.OtkEventHandler_keyReleaseHandler,args)
|
def keyReleaseHandler(*args): return apply(_openbox.EventHandler_keyReleaseHandler,args)
|
||||||
def buttonPressHandler(*args): return apply(_openbox.OtkEventHandler_buttonPressHandler,args)
|
def buttonPressHandler(*args): return apply(_openbox.EventHandler_buttonPressHandler,args)
|
||||||
def buttonReleaseHandler(*args): return apply(_openbox.OtkEventHandler_buttonReleaseHandler,args)
|
def buttonReleaseHandler(*args): return apply(_openbox.EventHandler_buttonReleaseHandler,args)
|
||||||
def motionHandler(*args): return apply(_openbox.OtkEventHandler_motionHandler,args)
|
def motionHandler(*args): return apply(_openbox.EventHandler_motionHandler,args)
|
||||||
def enterHandler(*args): return apply(_openbox.OtkEventHandler_enterHandler,args)
|
def enterHandler(*args): return apply(_openbox.EventHandler_enterHandler,args)
|
||||||
def leaveHandler(*args): return apply(_openbox.OtkEventHandler_leaveHandler,args)
|
def leaveHandler(*args): return apply(_openbox.EventHandler_leaveHandler,args)
|
||||||
def focusHandler(*args): return apply(_openbox.OtkEventHandler_focusHandler,args)
|
def focusHandler(*args): return apply(_openbox.EventHandler_focusHandler,args)
|
||||||
def unfocusHandler(*args): return apply(_openbox.OtkEventHandler_unfocusHandler,args)
|
def unfocusHandler(*args): return apply(_openbox.EventHandler_unfocusHandler,args)
|
||||||
def exposeHandler(*args): return apply(_openbox.OtkEventHandler_exposeHandler,args)
|
def exposeHandler(*args): return apply(_openbox.EventHandler_exposeHandler,args)
|
||||||
def graphicsExposeHandler(*args): return apply(_openbox.OtkEventHandler_graphicsExposeHandler,args)
|
def graphicsExposeHandler(*args): return apply(_openbox.EventHandler_graphicsExposeHandler,args)
|
||||||
def noExposeEventHandler(*args): return apply(_openbox.OtkEventHandler_noExposeEventHandler,args)
|
def noExposeEventHandler(*args): return apply(_openbox.EventHandler_noExposeEventHandler,args)
|
||||||
def circulateRequestHandler(*args): return apply(_openbox.OtkEventHandler_circulateRequestHandler,args)
|
def circulateRequestHandler(*args): return apply(_openbox.EventHandler_circulateRequestHandler,args)
|
||||||
def configureRequestHandler(*args): return apply(_openbox.OtkEventHandler_configureRequestHandler,args)
|
def configureRequestHandler(*args): return apply(_openbox.EventHandler_configureRequestHandler,args)
|
||||||
def mapRequestHandler(*args): return apply(_openbox.OtkEventHandler_mapRequestHandler,args)
|
def mapRequestHandler(*args): return apply(_openbox.EventHandler_mapRequestHandler,args)
|
||||||
def resizeRequestHandler(*args): return apply(_openbox.OtkEventHandler_resizeRequestHandler,args)
|
def resizeRequestHandler(*args): return apply(_openbox.EventHandler_resizeRequestHandler,args)
|
||||||
def circulateHandler(*args): return apply(_openbox.OtkEventHandler_circulateHandler,args)
|
def circulateHandler(*args): return apply(_openbox.EventHandler_circulateHandler,args)
|
||||||
def configureHandler(*args): return apply(_openbox.OtkEventHandler_configureHandler,args)
|
def configureHandler(*args): return apply(_openbox.EventHandler_configureHandler,args)
|
||||||
def createHandler(*args): return apply(_openbox.OtkEventHandler_createHandler,args)
|
def createHandler(*args): return apply(_openbox.EventHandler_createHandler,args)
|
||||||
def destroyHandler(*args): return apply(_openbox.OtkEventHandler_destroyHandler,args)
|
def destroyHandler(*args): return apply(_openbox.EventHandler_destroyHandler,args)
|
||||||
def gravityHandler(*args): return apply(_openbox.OtkEventHandler_gravityHandler,args)
|
def gravityHandler(*args): return apply(_openbox.EventHandler_gravityHandler,args)
|
||||||
def mapHandler(*args): return apply(_openbox.OtkEventHandler_mapHandler,args)
|
def mapHandler(*args): return apply(_openbox.EventHandler_mapHandler,args)
|
||||||
def mappingHandler(*args): return apply(_openbox.OtkEventHandler_mappingHandler,args)
|
def mappingHandler(*args): return apply(_openbox.EventHandler_mappingHandler,args)
|
||||||
def reparentHandler(*args): return apply(_openbox.OtkEventHandler_reparentHandler,args)
|
def reparentHandler(*args): return apply(_openbox.EventHandler_reparentHandler,args)
|
||||||
def unmapHandler(*args): return apply(_openbox.OtkEventHandler_unmapHandler,args)
|
def unmapHandler(*args): return apply(_openbox.EventHandler_unmapHandler,args)
|
||||||
def visibilityHandler(*args): return apply(_openbox.OtkEventHandler_visibilityHandler,args)
|
def visibilityHandler(*args): return apply(_openbox.EventHandler_visibilityHandler,args)
|
||||||
def colorMapHandler(*args): return apply(_openbox.OtkEventHandler_colorMapHandler,args)
|
def colorMapHandler(*args): return apply(_openbox.EventHandler_colorMapHandler,args)
|
||||||
def propertyHandler(*args): return apply(_openbox.OtkEventHandler_propertyHandler,args)
|
def propertyHandler(*args): return apply(_openbox.EventHandler_propertyHandler,args)
|
||||||
def selectionClearHandler(*args): return apply(_openbox.OtkEventHandler_selectionClearHandler,args)
|
def selectionClearHandler(*args): return apply(_openbox.EventHandler_selectionClearHandler,args)
|
||||||
def selectionHandler(*args): return apply(_openbox.OtkEventHandler_selectionHandler,args)
|
def selectionHandler(*args): return apply(_openbox.EventHandler_selectionHandler,args)
|
||||||
def selectionRequestHandler(*args): return apply(_openbox.OtkEventHandler_selectionRequestHandler,args)
|
def selectionRequestHandler(*args): return apply(_openbox.EventHandler_selectionRequestHandler,args)
|
||||||
def clientMessageHandler(*args): return apply(_openbox.OtkEventHandler_clientMessageHandler,args)
|
def clientMessageHandler(*args): return apply(_openbox.EventHandler_clientMessageHandler,args)
|
||||||
def __del__(self, destroy= _openbox.delete_OtkEventHandler):
|
def __del__(self, destroy= _openbox.delete_EventHandler):
|
||||||
try:
|
try:
|
||||||
if self.thisown: destroy(self)
|
if self.thisown: destroy(self)
|
||||||
except: pass
|
except: pass
|
||||||
def __init__(self): raise RuntimeError, "No constructor defined"
|
def __init__(self): raise RuntimeError, "No constructor defined"
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<C OtkEventHandler instance at %s>" % (self.this,)
|
return "<C EventHandler instance at %s>" % (self.this,)
|
||||||
|
|
||||||
class OtkEventHandlerPtr(OtkEventHandler):
|
class EventHandlerPtr(EventHandler):
|
||||||
def __init__(self,this):
|
def __init__(self,this):
|
||||||
self.this = this
|
self.this = this
|
||||||
if not hasattr(self,"thisown"): self.thisown = 0
|
if not hasattr(self,"thisown"): self.thisown = 0
|
||||||
self.__class__ = OtkEventHandler
|
self.__class__ = EventHandler
|
||||||
_openbox.OtkEventHandler_swigregister(OtkEventHandlerPtr)
|
_openbox.EventHandler_swigregister(EventHandlerPtr)
|
||||||
cvar = _openbox.cvar
|
|
||||||
BSENTINEL = cvar.BSENTINEL
|
|
||||||
|
|
||||||
class OtkEventDispatcher(_object):
|
class EventDispatcher(_object):
|
||||||
__swig_setmethods__ = {}
|
__swig_setmethods__ = {}
|
||||||
__setattr__ = lambda self, name, value: _swig_setattr(self, OtkEventDispatcher, name, value)
|
__setattr__ = lambda self, name, value: _swig_setattr(self, EventDispatcher, name, value)
|
||||||
__swig_getmethods__ = {}
|
__swig_getmethods__ = {}
|
||||||
__getattr__ = lambda self, name: _swig_getattr(self, OtkEventDispatcher, name)
|
__getattr__ = lambda self, name: _swig_getattr(self, EventDispatcher, name)
|
||||||
def __init__(self,*args):
|
def __init__(self,*args):
|
||||||
self.this = apply(_openbox.new_OtkEventDispatcher,args)
|
self.this = apply(_openbox.new_EventDispatcher,args)
|
||||||
self.thisown = 1
|
self.thisown = 1
|
||||||
def __del__(self, destroy= _openbox.delete_OtkEventDispatcher):
|
def __del__(self, destroy= _openbox.delete_EventDispatcher):
|
||||||
try:
|
try:
|
||||||
if self.thisown: destroy(self)
|
if self.thisown: destroy(self)
|
||||||
except: pass
|
except: pass
|
||||||
def clearAllHandlers(*args): return apply(_openbox.OtkEventDispatcher_clearAllHandlers,args)
|
def clearAllHandlers(*args): return apply(_openbox.EventDispatcher_clearAllHandlers,args)
|
||||||
def registerHandler(*args): return apply(_openbox.OtkEventDispatcher_registerHandler,args)
|
def registerHandler(*args): return apply(_openbox.EventDispatcher_registerHandler,args)
|
||||||
def clearHandler(*args): return apply(_openbox.OtkEventDispatcher_clearHandler,args)
|
def clearHandler(*args): return apply(_openbox.EventDispatcher_clearHandler,args)
|
||||||
def dispatchEvents(*args): return apply(_openbox.OtkEventDispatcher_dispatchEvents,args)
|
def dispatchEvents(*args): return apply(_openbox.EventDispatcher_dispatchEvents,args)
|
||||||
def setFallbackHandler(*args): return apply(_openbox.OtkEventDispatcher_setFallbackHandler,args)
|
def setFallbackHandler(*args): return apply(_openbox.EventDispatcher_setFallbackHandler,args)
|
||||||
def getFallbackHandler(*args): return apply(_openbox.OtkEventDispatcher_getFallbackHandler,args)
|
def getFallbackHandler(*args): return apply(_openbox.EventDispatcher_getFallbackHandler,args)
|
||||||
def setMasterHandler(*args): return apply(_openbox.OtkEventDispatcher_setMasterHandler,args)
|
def setMasterHandler(*args): return apply(_openbox.EventDispatcher_setMasterHandler,args)
|
||||||
def getMasterHandler(*args): return apply(_openbox.OtkEventDispatcher_getMasterHandler,args)
|
def getMasterHandler(*args): return apply(_openbox.EventDispatcher_getMasterHandler,args)
|
||||||
def findHandler(*args): return apply(_openbox.OtkEventDispatcher_findHandler,args)
|
def findHandler(*args): return apply(_openbox.EventDispatcher_findHandler,args)
|
||||||
def lastTime(*args): return apply(_openbox.OtkEventDispatcher_lastTime,args)
|
def lastTime(*args): return apply(_openbox.EventDispatcher_lastTime,args)
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<C OtkEventDispatcher instance at %s>" % (self.this,)
|
return "<C EventDispatcher instance at %s>" % (self.this,)
|
||||||
|
|
||||||
class OtkEventDispatcherPtr(OtkEventDispatcher):
|
class EventDispatcherPtr(EventDispatcher):
|
||||||
def __init__(self,this):
|
def __init__(self,this):
|
||||||
self.this = this
|
self.this = this
|
||||||
if not hasattr(self,"thisown"): self.thisown = 0
|
if not hasattr(self,"thisown"): self.thisown = 0
|
||||||
self.__class__ = OtkEventDispatcher
|
self.__class__ = EventDispatcher
|
||||||
_openbox.OtkEventDispatcher_swigregister(OtkEventDispatcherPtr)
|
_openbox.EventDispatcher_swigregister(EventDispatcherPtr)
|
||||||
|
|
||||||
class Cursors(_object):
|
class Cursors(_object):
|
||||||
__swig_setmethods__ = {}
|
__swig_setmethods__ = {}
|
||||||
|
@ -504,12 +484,12 @@ class CursorsPtr(Cursors):
|
||||||
self.__class__ = Cursors
|
self.__class__ = Cursors
|
||||||
_openbox.Cursors_swigregister(CursorsPtr)
|
_openbox.Cursors_swigregister(CursorsPtr)
|
||||||
|
|
||||||
class Openbox(OtkEventDispatcher,OtkEventHandler):
|
class Openbox(EventDispatcher,EventHandler):
|
||||||
__swig_setmethods__ = {}
|
__swig_setmethods__ = {}
|
||||||
for _s in [OtkEventDispatcher,OtkEventHandler]: __swig_setmethods__.update(_s.__swig_setmethods__)
|
for _s in [EventDispatcher,EventHandler]: __swig_setmethods__.update(_s.__swig_setmethods__)
|
||||||
__setattr__ = lambda self, name, value: _swig_setattr(self, Openbox, name, value)
|
__setattr__ = lambda self, name, value: _swig_setattr(self, Openbox, name, value)
|
||||||
__swig_getmethods__ = {}
|
__swig_getmethods__ = {}
|
||||||
for _s in [OtkEventDispatcher,OtkEventHandler]: __swig_getmethods__.update(_s.__swig_getmethods__)
|
for _s in [EventDispatcher,EventHandler]: __swig_getmethods__.update(_s.__swig_getmethods__)
|
||||||
__getattr__ = lambda self, name: _swig_getattr(self, Openbox, name)
|
__getattr__ = lambda self, name: _swig_getattr(self, Openbox, name)
|
||||||
State_Starting = _openbox.Openbox_State_Starting
|
State_Starting = _openbox.Openbox_State_Starting
|
||||||
State_Normal = _openbox.Openbox_State_Normal
|
State_Normal = _openbox.Openbox_State_Normal
|
||||||
|
@ -542,43 +522,43 @@ class OpenboxPtr(Openbox):
|
||||||
self.__class__ = Openbox
|
self.__class__ = Openbox
|
||||||
_openbox.Openbox_swigregister(OpenboxPtr)
|
_openbox.Openbox_swigregister(OpenboxPtr)
|
||||||
|
|
||||||
class OBScreen(OtkEventHandler,):
|
class Screen(EventHandler,):
|
||||||
__swig_setmethods__ = {}
|
__swig_setmethods__ = {}
|
||||||
for _s in [OtkEventHandler,]: __swig_setmethods__.update(_s.__swig_setmethods__)
|
for _s in [EventHandler,]: __swig_setmethods__.update(_s.__swig_setmethods__)
|
||||||
__setattr__ = lambda self, name, value: _swig_setattr(self, OBScreen, name, value)
|
__setattr__ = lambda self, name, value: _swig_setattr(self, Screen, name, value)
|
||||||
__swig_getmethods__ = {}
|
__swig_getmethods__ = {}
|
||||||
for _s in [OtkEventHandler,]: __swig_getmethods__.update(_s.__swig_getmethods__)
|
for _s in [EventHandler,]: __swig_getmethods__.update(_s.__swig_getmethods__)
|
||||||
__getattr__ = lambda self, name: _swig_getattr(self, OBScreen, name)
|
__getattr__ = lambda self, name: _swig_getattr(self, Screen, name)
|
||||||
def client(*args): return apply(_openbox.OBScreen_client,args)
|
def client(*args): return apply(_openbox.Screen_client,args)
|
||||||
def clientCount(*args): return apply(_openbox.OBScreen_clientCount,args)
|
def clientCount(*args): return apply(_openbox.Screen_clientCount,args)
|
||||||
event_mask = _openbox.OBScreen_event_mask
|
event_mask = _openbox.Screen_event_mask
|
||||||
def number(*args): return apply(_openbox.OBScreen_number,args)
|
def number(*args): return apply(_openbox.Screen_number,args)
|
||||||
def managed(*args): return apply(_openbox.OBScreen_managed,args)
|
def managed(*args): return apply(_openbox.Screen_managed,args)
|
||||||
def imageControl(*args): return apply(_openbox.OBScreen_imageControl,args)
|
def imageControl(*args): return apply(_openbox.Screen_imageControl,args)
|
||||||
def area(*args): return apply(_openbox.OBScreen_area,args)
|
def area(*args): return apply(_openbox.Screen_area,args)
|
||||||
def style(*args): return apply(_openbox.OBScreen_style,args)
|
def style(*args): return apply(_openbox.Screen_style,args)
|
||||||
def focuswindow(*args): return apply(_openbox.OBScreen_focuswindow,args)
|
def focuswindow(*args): return apply(_openbox.Screen_focuswindow,args)
|
||||||
def desktop(*args): return apply(_openbox.OBScreen_desktop,args)
|
def desktop(*args): return apply(_openbox.Screen_desktop,args)
|
||||||
def numDesktops(*args): return apply(_openbox.OBScreen_numDesktops,args)
|
def numDesktops(*args): return apply(_openbox.Screen_numDesktops,args)
|
||||||
def updateStrut(*args): return apply(_openbox.OBScreen_updateStrut,args)
|
def updateStrut(*args): return apply(_openbox.Screen_updateStrut,args)
|
||||||
def manageExisting(*args): return apply(_openbox.OBScreen_manageExisting,args)
|
def manageExisting(*args): return apply(_openbox.Screen_manageExisting,args)
|
||||||
def manageWindow(*args): return apply(_openbox.OBScreen_manageWindow,args)
|
def manageWindow(*args): return apply(_openbox.Screen_manageWindow,args)
|
||||||
def unmanageWindow(*args): return apply(_openbox.OBScreen_unmanageWindow,args)
|
def unmanageWindow(*args): return apply(_openbox.Screen_unmanageWindow,args)
|
||||||
def restack(*args): return apply(_openbox.OBScreen_restack,args)
|
def restack(*args): return apply(_openbox.Screen_restack,args)
|
||||||
def setDesktopName(*args): return apply(_openbox.OBScreen_setDesktopName,args)
|
def setDesktopName(*args): return apply(_openbox.Screen_setDesktopName,args)
|
||||||
def propertyHandler(*args): return apply(_openbox.OBScreen_propertyHandler,args)
|
def propertyHandler(*args): return apply(_openbox.Screen_propertyHandler,args)
|
||||||
def clientMessageHandler(*args): return apply(_openbox.OBScreen_clientMessageHandler,args)
|
def clientMessageHandler(*args): return apply(_openbox.Screen_clientMessageHandler,args)
|
||||||
def mapRequestHandler(*args): return apply(_openbox.OBScreen_mapRequestHandler,args)
|
def mapRequestHandler(*args): return apply(_openbox.Screen_mapRequestHandler,args)
|
||||||
def __init__(self): raise RuntimeError, "No constructor defined"
|
def __init__(self): raise RuntimeError, "No constructor defined"
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<C OBScreen instance at %s>" % (self.this,)
|
return "<C Screen instance at %s>" % (self.this,)
|
||||||
|
|
||||||
class OBScreenPtr(OBScreen):
|
class ScreenPtr(Screen):
|
||||||
def __init__(self,this):
|
def __init__(self,this):
|
||||||
self.this = this
|
self.this = this
|
||||||
if not hasattr(self,"thisown"): self.thisown = 0
|
if not hasattr(self,"thisown"): self.thisown = 0
|
||||||
self.__class__ = OBScreen
|
self.__class__ = Screen
|
||||||
_openbox.OBScreen_swigregister(OBScreenPtr)
|
_openbox.Screen_swigregister(ScreenPtr)
|
||||||
|
|
||||||
class MwmHints(_object):
|
class MwmHints(_object):
|
||||||
__swig_setmethods__ = {}
|
__swig_setmethods__ = {}
|
||||||
|
@ -606,120 +586,120 @@ class MwmHintsPtr(MwmHints):
|
||||||
self.__class__ = MwmHints
|
self.__class__ = MwmHints
|
||||||
_openbox.MwmHints_swigregister(MwmHintsPtr)
|
_openbox.MwmHints_swigregister(MwmHintsPtr)
|
||||||
|
|
||||||
class OBClient(OtkEventHandler,):
|
class Client(EventHandler,):
|
||||||
__swig_setmethods__ = {}
|
__swig_setmethods__ = {}
|
||||||
for _s in [OtkEventHandler,]: __swig_setmethods__.update(_s.__swig_setmethods__)
|
for _s in [EventHandler,]: __swig_setmethods__.update(_s.__swig_setmethods__)
|
||||||
__setattr__ = lambda self, name, value: _swig_setattr(self, OBClient, name, value)
|
__setattr__ = lambda self, name, value: _swig_setattr(self, Client, name, value)
|
||||||
__swig_getmethods__ = {}
|
__swig_getmethods__ = {}
|
||||||
for _s in [OtkEventHandler,]: __swig_getmethods__.update(_s.__swig_getmethods__)
|
for _s in [EventHandler,]: __swig_getmethods__.update(_s.__swig_getmethods__)
|
||||||
__getattr__ = lambda self, name: _swig_getattr(self, OBClient, name)
|
__getattr__ = lambda self, name: _swig_getattr(self, Client, name)
|
||||||
__swig_setmethods__["frame"] = _openbox.OBClient_frame_set
|
__swig_setmethods__["frame"] = _openbox.Client_frame_set
|
||||||
__swig_getmethods__["frame"] = _openbox.OBClient_frame_get
|
__swig_getmethods__["frame"] = _openbox.Client_frame_get
|
||||||
if _newclass:frame = property(_openbox.OBClient_frame_get,_openbox.OBClient_frame_set)
|
if _newclass:frame = property(_openbox.Client_frame_get,_openbox.Client_frame_set)
|
||||||
Layer_Icon = _openbox.OBClient_Layer_Icon
|
Layer_Icon = _openbox.Client_Layer_Icon
|
||||||
Layer_Desktop = _openbox.OBClient_Layer_Desktop
|
Layer_Desktop = _openbox.Client_Layer_Desktop
|
||||||
Layer_Below = _openbox.OBClient_Layer_Below
|
Layer_Below = _openbox.Client_Layer_Below
|
||||||
Layer_Normal = _openbox.OBClient_Layer_Normal
|
Layer_Normal = _openbox.Client_Layer_Normal
|
||||||
Layer_Above = _openbox.OBClient_Layer_Above
|
Layer_Above = _openbox.Client_Layer_Above
|
||||||
Layer_Top = _openbox.OBClient_Layer_Top
|
Layer_Top = _openbox.Client_Layer_Top
|
||||||
Layer_Fullscreen = _openbox.OBClient_Layer_Fullscreen
|
Layer_Fullscreen = _openbox.Client_Layer_Fullscreen
|
||||||
Layer_Internal = _openbox.OBClient_Layer_Internal
|
Layer_Internal = _openbox.Client_Layer_Internal
|
||||||
NUM_LAYERS = _openbox.OBClient_NUM_LAYERS
|
NUM_LAYERS = _openbox.Client_NUM_LAYERS
|
||||||
TopLeft = _openbox.OBClient_TopLeft
|
TopLeft = _openbox.Client_TopLeft
|
||||||
TopRight = _openbox.OBClient_TopRight
|
TopRight = _openbox.Client_TopRight
|
||||||
BottomLeft = _openbox.OBClient_BottomLeft
|
BottomLeft = _openbox.Client_BottomLeft
|
||||||
BottomRight = _openbox.OBClient_BottomRight
|
BottomRight = _openbox.Client_BottomRight
|
||||||
Type_Desktop = _openbox.OBClient_Type_Desktop
|
Type_Desktop = _openbox.Client_Type_Desktop
|
||||||
Type_Dock = _openbox.OBClient_Type_Dock
|
Type_Dock = _openbox.Client_Type_Dock
|
||||||
Type_Toolbar = _openbox.OBClient_Type_Toolbar
|
Type_Toolbar = _openbox.Client_Type_Toolbar
|
||||||
Type_Menu = _openbox.OBClient_Type_Menu
|
Type_Menu = _openbox.Client_Type_Menu
|
||||||
Type_Utility = _openbox.OBClient_Type_Utility
|
Type_Utility = _openbox.Client_Type_Utility
|
||||||
Type_Splash = _openbox.OBClient_Type_Splash
|
Type_Splash = _openbox.Client_Type_Splash
|
||||||
Type_Dialog = _openbox.OBClient_Type_Dialog
|
Type_Dialog = _openbox.Client_Type_Dialog
|
||||||
Type_Normal = _openbox.OBClient_Type_Normal
|
Type_Normal = _openbox.Client_Type_Normal
|
||||||
MwmFlag_Functions = _openbox.OBClient_MwmFlag_Functions
|
MwmFlag_Functions = _openbox.Client_MwmFlag_Functions
|
||||||
MwmFlag_Decorations = _openbox.OBClient_MwmFlag_Decorations
|
MwmFlag_Decorations = _openbox.Client_MwmFlag_Decorations
|
||||||
MwmFunc_All = _openbox.OBClient_MwmFunc_All
|
MwmFunc_All = _openbox.Client_MwmFunc_All
|
||||||
MwmFunc_Resize = _openbox.OBClient_MwmFunc_Resize
|
MwmFunc_Resize = _openbox.Client_MwmFunc_Resize
|
||||||
MwmFunc_Move = _openbox.OBClient_MwmFunc_Move
|
MwmFunc_Move = _openbox.Client_MwmFunc_Move
|
||||||
MwmFunc_Iconify = _openbox.OBClient_MwmFunc_Iconify
|
MwmFunc_Iconify = _openbox.Client_MwmFunc_Iconify
|
||||||
MwmFunc_Maximize = _openbox.OBClient_MwmFunc_Maximize
|
MwmFunc_Maximize = _openbox.Client_MwmFunc_Maximize
|
||||||
MwmDecor_All = _openbox.OBClient_MwmDecor_All
|
MwmDecor_All = _openbox.Client_MwmDecor_All
|
||||||
MwmDecor_Border = _openbox.OBClient_MwmDecor_Border
|
MwmDecor_Border = _openbox.Client_MwmDecor_Border
|
||||||
MwmDecor_Handle = _openbox.OBClient_MwmDecor_Handle
|
MwmDecor_Handle = _openbox.Client_MwmDecor_Handle
|
||||||
MwmDecor_Title = _openbox.OBClient_MwmDecor_Title
|
MwmDecor_Title = _openbox.Client_MwmDecor_Title
|
||||||
MwmDecor_Iconify = _openbox.OBClient_MwmDecor_Iconify
|
MwmDecor_Iconify = _openbox.Client_MwmDecor_Iconify
|
||||||
MwmDecor_Maximize = _openbox.OBClient_MwmDecor_Maximize
|
MwmDecor_Maximize = _openbox.Client_MwmDecor_Maximize
|
||||||
Func_Resize = _openbox.OBClient_Func_Resize
|
Func_Resize = _openbox.Client_Func_Resize
|
||||||
Func_Move = _openbox.OBClient_Func_Move
|
Func_Move = _openbox.Client_Func_Move
|
||||||
Func_Iconify = _openbox.OBClient_Func_Iconify
|
Func_Iconify = _openbox.Client_Func_Iconify
|
||||||
Func_Maximize = _openbox.OBClient_Func_Maximize
|
Func_Maximize = _openbox.Client_Func_Maximize
|
||||||
Func_Close = _openbox.OBClient_Func_Close
|
Func_Close = _openbox.Client_Func_Close
|
||||||
Decor_Titlebar = _openbox.OBClient_Decor_Titlebar
|
Decor_Titlebar = _openbox.Client_Decor_Titlebar
|
||||||
Decor_Handle = _openbox.OBClient_Decor_Handle
|
Decor_Handle = _openbox.Client_Decor_Handle
|
||||||
Decor_Border = _openbox.OBClient_Decor_Border
|
Decor_Border = _openbox.Client_Decor_Border
|
||||||
Decor_Iconify = _openbox.OBClient_Decor_Iconify
|
Decor_Iconify = _openbox.Client_Decor_Iconify
|
||||||
Decor_Maximize = _openbox.OBClient_Decor_Maximize
|
Decor_Maximize = _openbox.Client_Decor_Maximize
|
||||||
Decor_Sticky = _openbox.OBClient_Decor_Sticky
|
Decor_Sticky = _openbox.Client_Decor_Sticky
|
||||||
Decor_Close = _openbox.OBClient_Decor_Close
|
Decor_Close = _openbox.Client_Decor_Close
|
||||||
State_Remove = _openbox.OBClient_State_Remove
|
State_Remove = _openbox.Client_State_Remove
|
||||||
State_Add = _openbox.OBClient_State_Add
|
State_Add = _openbox.Client_State_Add
|
||||||
State_Toggle = _openbox.OBClient_State_Toggle
|
State_Toggle = _openbox.Client_State_Toggle
|
||||||
event_mask = _openbox.OBClient_event_mask
|
event_mask = _openbox.Client_event_mask
|
||||||
no_propagate_mask = _openbox.OBClient_no_propagate_mask
|
no_propagate_mask = _openbox.Client_no_propagate_mask
|
||||||
__swig_setmethods__["ignore_unmaps"] = _openbox.OBClient_ignore_unmaps_set
|
__swig_setmethods__["ignore_unmaps"] = _openbox.Client_ignore_unmaps_set
|
||||||
__swig_getmethods__["ignore_unmaps"] = _openbox.OBClient_ignore_unmaps_get
|
__swig_getmethods__["ignore_unmaps"] = _openbox.Client_ignore_unmaps_get
|
||||||
if _newclass:ignore_unmaps = property(_openbox.OBClient_ignore_unmaps_get,_openbox.OBClient_ignore_unmaps_set)
|
if _newclass:ignore_unmaps = property(_openbox.Client_ignore_unmaps_get,_openbox.Client_ignore_unmaps_set)
|
||||||
def screen(*args): return apply(_openbox.OBClient_screen,args)
|
def screen(*args): return apply(_openbox.Client_screen,args)
|
||||||
def window(*args): return apply(_openbox.OBClient_window,args)
|
def window(*args): return apply(_openbox.Client_window,args)
|
||||||
def type(*args): return apply(_openbox.OBClient_type,args)
|
def type(*args): return apply(_openbox.Client_type,args)
|
||||||
def normal(*args): return apply(_openbox.OBClient_normal,args)
|
def normal(*args): return apply(_openbox.Client_normal,args)
|
||||||
def desktop(*args): return apply(_openbox.OBClient_desktop,args)
|
def desktop(*args): return apply(_openbox.Client_desktop,args)
|
||||||
def title(*args): return apply(_openbox.OBClient_title,args)
|
def title(*args): return apply(_openbox.Client_title,args)
|
||||||
def iconTitle(*args): return apply(_openbox.OBClient_iconTitle,args)
|
def iconTitle(*args): return apply(_openbox.Client_iconTitle,args)
|
||||||
def appName(*args): return apply(_openbox.OBClient_appName,args)
|
def appName(*args): return apply(_openbox.Client_appName,args)
|
||||||
def appClass(*args): return apply(_openbox.OBClient_appClass,args)
|
def appClass(*args): return apply(_openbox.Client_appClass,args)
|
||||||
def role(*args): return apply(_openbox.OBClient_role,args)
|
def role(*args): return apply(_openbox.Client_role,args)
|
||||||
def canFocus(*args): return apply(_openbox.OBClient_canFocus,args)
|
def canFocus(*args): return apply(_openbox.Client_canFocus,args)
|
||||||
def urgent(*args): return apply(_openbox.OBClient_urgent,args)
|
def urgent(*args): return apply(_openbox.Client_urgent,args)
|
||||||
def focusNotify(*args): return apply(_openbox.OBClient_focusNotify,args)
|
def focusNotify(*args): return apply(_openbox.Client_focusNotify,args)
|
||||||
def shaped(*args): return apply(_openbox.OBClient_shaped,args)
|
def shaped(*args): return apply(_openbox.Client_shaped,args)
|
||||||
def gravity(*args): return apply(_openbox.OBClient_gravity,args)
|
def gravity(*args): return apply(_openbox.Client_gravity,args)
|
||||||
def positionRequested(*args): return apply(_openbox.OBClient_positionRequested,args)
|
def positionRequested(*args): return apply(_openbox.Client_positionRequested,args)
|
||||||
def decorations(*args): return apply(_openbox.OBClient_decorations,args)
|
def decorations(*args): return apply(_openbox.Client_decorations,args)
|
||||||
def funtions(*args): return apply(_openbox.OBClient_funtions,args)
|
def funtions(*args): return apply(_openbox.Client_funtions,args)
|
||||||
def transientFor(*args): return apply(_openbox.OBClient_transientFor,args)
|
def transientFor(*args): return apply(_openbox.Client_transientFor,args)
|
||||||
def modal(*args): return apply(_openbox.OBClient_modal,args)
|
def modal(*args): return apply(_openbox.Client_modal,args)
|
||||||
def shaded(*args): return apply(_openbox.OBClient_shaded,args)
|
def shaded(*args): return apply(_openbox.Client_shaded,args)
|
||||||
def iconic(*args): return apply(_openbox.OBClient_iconic,args)
|
def iconic(*args): return apply(_openbox.Client_iconic,args)
|
||||||
def maxVert(*args): return apply(_openbox.OBClient_maxVert,args)
|
def maxVert(*args): return apply(_openbox.Client_maxVert,args)
|
||||||
def maxHorz(*args): return apply(_openbox.OBClient_maxHorz,args)
|
def maxHorz(*args): return apply(_openbox.Client_maxHorz,args)
|
||||||
def layer(*args): return apply(_openbox.OBClient_layer,args)
|
def layer(*args): return apply(_openbox.Client_layer,args)
|
||||||
def toggleClientBorder(*args): return apply(_openbox.OBClient_toggleClientBorder,args)
|
def toggleClientBorder(*args): return apply(_openbox.Client_toggleClientBorder,args)
|
||||||
def area(*args): return apply(_openbox.OBClient_area,args)
|
def area(*args): return apply(_openbox.Client_area,args)
|
||||||
def strut(*args): return apply(_openbox.OBClient_strut,args)
|
def strut(*args): return apply(_openbox.Client_strut,args)
|
||||||
def move(*args): return apply(_openbox.OBClient_move,args)
|
def move(*args): return apply(_openbox.Client_move,args)
|
||||||
def resize(*args): return apply(_openbox.OBClient_resize,args)
|
def resize(*args): return apply(_openbox.Client_resize,args)
|
||||||
def focus(*args): return apply(_openbox.OBClient_focus,args)
|
def focus(*args): return apply(_openbox.Client_focus,args)
|
||||||
def unfocus(*args): return apply(_openbox.OBClient_unfocus,args)
|
def unfocus(*args): return apply(_openbox.Client_unfocus,args)
|
||||||
def focusHandler(*args): return apply(_openbox.OBClient_focusHandler,args)
|
def focusHandler(*args): return apply(_openbox.Client_focusHandler,args)
|
||||||
def unfocusHandler(*args): return apply(_openbox.OBClient_unfocusHandler,args)
|
def unfocusHandler(*args): return apply(_openbox.Client_unfocusHandler,args)
|
||||||
def propertyHandler(*args): return apply(_openbox.OBClient_propertyHandler,args)
|
def propertyHandler(*args): return apply(_openbox.Client_propertyHandler,args)
|
||||||
def clientMessageHandler(*args): return apply(_openbox.OBClient_clientMessageHandler,args)
|
def clientMessageHandler(*args): return apply(_openbox.Client_clientMessageHandler,args)
|
||||||
def configureRequestHandler(*args): return apply(_openbox.OBClient_configureRequestHandler,args)
|
def configureRequestHandler(*args): return apply(_openbox.Client_configureRequestHandler,args)
|
||||||
def unmapHandler(*args): return apply(_openbox.OBClient_unmapHandler,args)
|
def unmapHandler(*args): return apply(_openbox.Client_unmapHandler,args)
|
||||||
def destroyHandler(*args): return apply(_openbox.OBClient_destroyHandler,args)
|
def destroyHandler(*args): return apply(_openbox.Client_destroyHandler,args)
|
||||||
def reparentHandler(*args): return apply(_openbox.OBClient_reparentHandler,args)
|
def reparentHandler(*args): return apply(_openbox.Client_reparentHandler,args)
|
||||||
def __init__(self): raise RuntimeError, "No constructor defined"
|
def __init__(self): raise RuntimeError, "No constructor defined"
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<C OBClient instance at %s>" % (self.this,)
|
return "<C Client instance at %s>" % (self.this,)
|
||||||
|
|
||||||
class OBClientPtr(OBClient):
|
class ClientPtr(Client):
|
||||||
def __init__(self,this):
|
def __init__(self,this):
|
||||||
self.this = this
|
self.this = this
|
||||||
if not hasattr(self,"thisown"): self.thisown = 0
|
if not hasattr(self,"thisown"): self.thisown = 0
|
||||||
self.__class__ = OBClient
|
self.__class__ = Client
|
||||||
_openbox.OBClient_swigregister(OBClientPtr)
|
_openbox.Client_swigregister(ClientPtr)
|
||||||
|
|
||||||
MC_Frame = _openbox.MC_Frame
|
MC_Frame = _openbox.MC_Frame
|
||||||
MC_Titlebar = _openbox.MC_Titlebar
|
MC_Titlebar = _openbox.MC_Titlebar
|
||||||
|
|
2402
src/openbox_wrap.cc
2402
src/openbox_wrap.cc
File diff suppressed because it is too large
Load diff
|
@ -133,7 +133,7 @@ PyObject *kbind(PyObject *keylist, ob::KeyContext context, PyObject *func)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ob::OBBindings::StringVect vectkeylist;
|
ob::Bindings::StringVect vectkeylist;
|
||||||
for (int i = 0, end = PyList_Size(keylist); i < end; ++i) {
|
for (int i = 0, end = PyList_Size(keylist); i < end; ++i) {
|
||||||
PyObject *str = PyList_GetItem(keylist, i);
|
PyObject *str = PyList_GetItem(keylist, i);
|
||||||
if (!PyString_Check(str)) {
|
if (!PyString_Check(str)) {
|
||||||
|
@ -163,7 +163,7 @@ PyObject *kunbind(PyObject *keylist, PyObject *func)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ob::OBBindings::StringVect vectkeylist;
|
ob::Bindings::StringVect vectkeylist;
|
||||||
for (int i = 0, end = PyList_Size(keylist); i < end; ++i) {
|
for (int i = 0, end = PyList_Size(keylist); i < end; ++i) {
|
||||||
PyObject *str = PyList_GetItem(keylist, i);
|
PyObject *str = PyList_GetItem(keylist, i);
|
||||||
if (!PyString_Check(str)) {
|
if (!PyString_Check(str)) {
|
||||||
|
@ -195,9 +195,9 @@ PyObject *send_client_msg(Window target, int type, Window about,
|
||||||
long data, long data1, long data2,
|
long data, long data1, long data2,
|
||||||
long data3, long data4)
|
long data3, long data4)
|
||||||
{
|
{
|
||||||
if (type < 0 || type >= otk::OBProperty::NUM_ATOMS) {
|
if (type < 0 || type >= otk::Property::NUM_ATOMS) {
|
||||||
PyErr_SetString(PyExc_TypeError,
|
PyErr_SetString(PyExc_TypeError,
|
||||||
"Invalid atom type. Must be from otk::OBProperty::Atoms");
|
"Invalid atom type. Must be from otk::Property::Atoms");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -205,7 +205,7 @@ PyObject *send_client_msg(Window target, int type, Window about,
|
||||||
e.xclient.type = ClientMessage;
|
e.xclient.type = ClientMessage;
|
||||||
e.xclient.format = 32;
|
e.xclient.format = 32;
|
||||||
e.xclient.message_type =
|
e.xclient.message_type =
|
||||||
Openbox::instance->property()->atom((otk::OBProperty::Atoms)type);
|
Openbox::instance->property()->atom((otk::Property::Atoms)type);
|
||||||
e.xclient.window = about;
|
e.xclient.window = about;
|
||||||
e.xclient.data.l[0] = data;
|
e.xclient.data.l[0] = data;
|
||||||
e.xclient.data.l[1] = data1;
|
e.xclient.data.l[1] = data1;
|
||||||
|
@ -213,7 +213,7 @@ PyObject *send_client_msg(Window target, int type, Window about,
|
||||||
e.xclient.data.l[3] = data3;
|
e.xclient.data.l[3] = data3;
|
||||||
e.xclient.data.l[4] = data4;
|
e.xclient.data.l[4] = data4;
|
||||||
|
|
||||||
XSendEvent(otk::OBDisplay::display, target, false,
|
XSendEvent(otk::Display::display, target, false,
|
||||||
SubstructureRedirectMask | SubstructureNotifyMask,
|
SubstructureRedirectMask | SubstructureNotifyMask,
|
||||||
&e);
|
&e);
|
||||||
Py_INCREF(Py_None); return Py_None;
|
Py_INCREF(Py_None); return Py_None;
|
||||||
|
|
|
@ -21,7 +21,7 @@ extern "C" {
|
||||||
|
|
||||||
namespace ob {
|
namespace ob {
|
||||||
|
|
||||||
class OBClient;
|
class Client;
|
||||||
|
|
||||||
enum MouseContext {
|
enum MouseContext {
|
||||||
MC_Frame,
|
MC_Frame,
|
||||||
|
@ -68,7 +68,7 @@ enum EventAction {
|
||||||
class MouseData {
|
class MouseData {
|
||||||
public:
|
public:
|
||||||
int screen;
|
int screen;
|
||||||
OBClient *client;
|
Client *client;
|
||||||
Time time;
|
Time time;
|
||||||
unsigned int state;
|
unsigned int state;
|
||||||
unsigned int button;
|
unsigned int button;
|
||||||
|
@ -83,7 +83,7 @@ public:
|
||||||
int press_clientwidth;
|
int press_clientwidth;
|
||||||
int press_clientheight;
|
int press_clientheight;
|
||||||
|
|
||||||
MouseData(int screen, OBClient *client, Time time, unsigned int state,
|
MouseData(int screen, Client *client, Time time, unsigned int state,
|
||||||
unsigned int button, MouseContext context, MouseAction action,
|
unsigned int button, MouseContext context, MouseAction action,
|
||||||
int xroot, int yroot, const otk::Point &initpos,
|
int xroot, int yroot, const otk::Point &initpos,
|
||||||
const otk::Rect &initarea) {
|
const otk::Rect &initarea) {
|
||||||
|
@ -103,7 +103,7 @@ public:
|
||||||
this->press_clientwidth = initarea.width();
|
this->press_clientwidth = initarea.width();
|
||||||
this->press_clientheight = initarea.height();
|
this->press_clientheight = initarea.height();
|
||||||
}
|
}
|
||||||
MouseData(int screen, OBClient *client, Time time, unsigned int state,
|
MouseData(int screen, Client *client, Time time, unsigned int state,
|
||||||
unsigned int button, MouseContext context, MouseAction action) {
|
unsigned int button, MouseContext context, MouseAction action) {
|
||||||
this->screen = screen;
|
this->screen = screen;
|
||||||
this->client = client;
|
this->client = client;
|
||||||
|
@ -126,11 +126,11 @@ public:
|
||||||
class EventData {
|
class EventData {
|
||||||
public:
|
public:
|
||||||
int screen;
|
int screen;
|
||||||
OBClient *client;
|
Client *client;
|
||||||
unsigned int state;
|
unsigned int state;
|
||||||
EventAction action;
|
EventAction action;
|
||||||
|
|
||||||
EventData(int screen, OBClient *client, EventAction action,
|
EventData(int screen, Client *client, EventAction action,
|
||||||
unsigned int state) {
|
unsigned int state) {
|
||||||
this->screen = screen;
|
this->screen = screen;
|
||||||
this->client = client;
|
this->client = client;
|
||||||
|
@ -142,18 +142,18 @@ public:
|
||||||
class KeyData {
|
class KeyData {
|
||||||
public:
|
public:
|
||||||
int screen;
|
int screen;
|
||||||
OBClient *client;
|
Client *client;
|
||||||
Time time;
|
Time time;
|
||||||
unsigned int state;
|
unsigned int state;
|
||||||
std::string key;
|
std::string key;
|
||||||
|
|
||||||
KeyData(int screen, OBClient *client, Time time, unsigned int state,
|
KeyData(int screen, Client *client, Time time, unsigned int state,
|
||||||
unsigned int key) {
|
unsigned int key) {
|
||||||
this->screen = screen;
|
this->screen = screen;
|
||||||
this->client = client;
|
this->client = client;
|
||||||
this->time = time;
|
this->time = time;
|
||||||
this->state = state;
|
this->state = state;
|
||||||
this->key = XKeysymToString(XKeycodeToKeysym(otk::OBDisplay::display,
|
this->key = XKeysymToString(XKeycodeToKeysym(otk::Display::display,
|
||||||
key, 0));
|
key, 0));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
314
src/screen.cc
314
src/screen.cc
|
@ -45,18 +45,18 @@ static int anotherWMRunning(Display *display, XErrorEvent *) {
|
||||||
namespace ob {
|
namespace ob {
|
||||||
|
|
||||||
|
|
||||||
OBScreen::OBScreen(int screen)
|
Screen::Screen(int screen)
|
||||||
: OBWidget(OBWidget::Type_Root),
|
: WidgetBase(WidgetBase::Type_Root),
|
||||||
_number(screen)
|
_number(screen)
|
||||||
{
|
{
|
||||||
assert(screen >= 0); assert(screen < ScreenCount(otk::OBDisplay::display));
|
assert(screen >= 0); assert(screen < ScreenCount(otk::Display::display));
|
||||||
_info = otk::OBDisplay::screenInfo(screen);
|
_info = otk::Display::screenInfo(screen);
|
||||||
|
|
||||||
::running = false;
|
::running = false;
|
||||||
XErrorHandler old = XSetErrorHandler(::anotherWMRunning);
|
XErrorHandler old = XSetErrorHandler(::anotherWMRunning);
|
||||||
XSelectInput(otk::OBDisplay::display, _info->rootWindow(),
|
XSelectInput(otk::Display::display, _info->rootWindow(),
|
||||||
OBScreen::event_mask);
|
Screen::event_mask);
|
||||||
XSync(otk::OBDisplay::display, false);
|
XSync(otk::Display::display, false);
|
||||||
XSetErrorHandler(old);
|
XSetErrorHandler(old);
|
||||||
|
|
||||||
_managed = !::running;
|
_managed = !::running;
|
||||||
|
@ -66,16 +66,16 @@ OBScreen::OBScreen(int screen)
|
||||||
_number, XVisualIDFromVisual(_info->visual()), _info->depth());
|
_number, XVisualIDFromVisual(_info->visual()), _info->depth());
|
||||||
|
|
||||||
Openbox::instance->property()->set(_info->rootWindow(),
|
Openbox::instance->property()->set(_info->rootWindow(),
|
||||||
otk::OBProperty::openbox_pid,
|
otk::Property::openbox_pid,
|
||||||
otk::OBProperty::Atom_Cardinal,
|
otk::Property::Atom_Cardinal,
|
||||||
(unsigned long) getpid());
|
(unsigned long) getpid());
|
||||||
|
|
||||||
// set the mouse cursor for the root window (the default cursor)
|
// set the mouse cursor for the root window (the default cursor)
|
||||||
XDefineCursor(otk::OBDisplay::display, _info->rootWindow(),
|
XDefineCursor(otk::Display::display, _info->rootWindow(),
|
||||||
Openbox::instance->cursors().session);
|
Openbox::instance->cursors().session);
|
||||||
|
|
||||||
// initialize the shit that is used for all drawing on the screen
|
// initialize the shit that is used for all drawing on the screen
|
||||||
_image_control = new otk::BImageControl(Openbox::instance->timerManager(),
|
_image_control = new otk::ImageControl(Openbox::instance->timerManager(),
|
||||||
_info, true);
|
_info, true);
|
||||||
_image_control->installRootColormap();
|
_image_control->installRootColormap();
|
||||||
_root_cmap_installed = True;
|
_root_cmap_installed = True;
|
||||||
|
@ -102,16 +102,16 @@ OBScreen::OBScreen(int screen)
|
||||||
unsigned long geometry[] = { _info->width(),
|
unsigned long geometry[] = { _info->width(),
|
||||||
_info->height() };
|
_info->height() };
|
||||||
Openbox::instance->property()->set(_info->rootWindow(),
|
Openbox::instance->property()->set(_info->rootWindow(),
|
||||||
otk::OBProperty::net_desktop_geometry,
|
otk::Property::net_desktop_geometry,
|
||||||
otk::OBProperty::Atom_Cardinal,
|
otk::Property::Atom_Cardinal,
|
||||||
geometry, 2);
|
geometry, 2);
|
||||||
|
|
||||||
// Set the net_desktop_names property
|
// Set the net_desktop_names property
|
||||||
std::vector<std::string> names;
|
std::vector<std::string> names;
|
||||||
python_get_stringlist("desktop_names", &names);
|
python_get_stringlist("desktop_names", &names);
|
||||||
Openbox::instance->property()->set(_info->rootWindow(),
|
Openbox::instance->property()->set(_info->rootWindow(),
|
||||||
otk::OBProperty::net_desktop_names,
|
otk::Property::net_desktop_names,
|
||||||
otk::OBProperty::utf8,
|
otk::Property::utf8,
|
||||||
names);
|
names);
|
||||||
// the above set() will cause the updateDesktopNames to fire right away so
|
// the above set() will cause the updateDesktopNames to fire right away so
|
||||||
// we have a list of desktop names
|
// we have a list of desktop names
|
||||||
|
@ -126,10 +126,10 @@ OBScreen::OBScreen(int screen)
|
||||||
// create the window which gets focus when no clients get it
|
// create the window which gets focus when no clients get it
|
||||||
XSetWindowAttributes attr;
|
XSetWindowAttributes attr;
|
||||||
attr.override_redirect = true;
|
attr.override_redirect = true;
|
||||||
_focuswindow = XCreateWindow(otk::OBDisplay::display, _info->rootWindow(),
|
_focuswindow = XCreateWindow(otk::Display::display, _info->rootWindow(),
|
||||||
-100, -100, 1, 1, 0, 0, InputOnly,
|
-100, -100, 1, 1, 0, 0, InputOnly,
|
||||||
_info->visual(), CWOverrideRedirect, &attr);
|
_info->visual(), CWOverrideRedirect, &attr);
|
||||||
XMapWindow(otk::OBDisplay::display, _focuswindow);
|
XMapWindow(otk::Display::display, _focuswindow);
|
||||||
|
|
||||||
// these may be further updated if any pre-existing windows are found in
|
// these may be further updated if any pre-existing windows are found in
|
||||||
// the manageExising() function
|
// the manageExising() function
|
||||||
|
@ -145,11 +145,11 @@ OBScreen::OBScreen(int screen)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
OBScreen::~OBScreen()
|
Screen::~Screen()
|
||||||
{
|
{
|
||||||
if (! _managed) return;
|
if (! _managed) return;
|
||||||
|
|
||||||
XSelectInput(otk::OBDisplay::display, _info->rootWindow(), NoEventMask);
|
XSelectInput(otk::Display::display, _info->rootWindow(), NoEventMask);
|
||||||
|
|
||||||
// unmanage all windows
|
// unmanage all windows
|
||||||
while (!clients.empty())
|
while (!clients.empty())
|
||||||
|
@ -159,25 +159,25 @@ OBScreen::~OBScreen()
|
||||||
EventData data(_number, 0, EventShutdown, 0);
|
EventData data(_number, 0, EventShutdown, 0);
|
||||||
Openbox::instance->bindings()->fireEvent(&data);
|
Openbox::instance->bindings()->fireEvent(&data);
|
||||||
|
|
||||||
XDestroyWindow(otk::OBDisplay::display, _focuswindow);
|
XDestroyWindow(otk::Display::display, _focuswindow);
|
||||||
XDestroyWindow(otk::OBDisplay::display, _supportwindow);
|
XDestroyWindow(otk::Display::display, _supportwindow);
|
||||||
|
|
||||||
delete _image_control;
|
delete _image_control;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBScreen::manageExisting()
|
void Screen::manageExisting()
|
||||||
{
|
{
|
||||||
unsigned int i, j, nchild;
|
unsigned int i, j, nchild;
|
||||||
Window r, p, *children;
|
Window r, p, *children;
|
||||||
XQueryTree(otk::OBDisplay::display, _info->rootWindow(), &r, &p,
|
XQueryTree(otk::Display::display, _info->rootWindow(), &r, &p,
|
||||||
&children, &nchild);
|
&children, &nchild);
|
||||||
|
|
||||||
// preen the window list of all icon windows... for better dockapp support
|
// preen the window list of all icon windows... for better dockapp support
|
||||||
for (i = 0; i < nchild; i++) {
|
for (i = 0; i < nchild; i++) {
|
||||||
if (children[i] == None) continue;
|
if (children[i] == None) continue;
|
||||||
|
|
||||||
XWMHints *wmhints = XGetWMHints(otk::OBDisplay::display,
|
XWMHints *wmhints = XGetWMHints(otk::Display::display,
|
||||||
children[i]);
|
children[i]);
|
||||||
|
|
||||||
if (wmhints) {
|
if (wmhints) {
|
||||||
|
@ -201,7 +201,7 @@ void OBScreen::manageExisting()
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
XWindowAttributes attrib;
|
XWindowAttributes attrib;
|
||||||
if (XGetWindowAttributes(otk::OBDisplay::display, children[i], &attrib)) {
|
if (XGetWindowAttributes(otk::Display::display, children[i], &attrib)) {
|
||||||
if (attrib.override_redirect) continue;
|
if (attrib.override_redirect) continue;
|
||||||
|
|
||||||
if (attrib.map_state != IsUnmapped) {
|
if (attrib.map_state != IsUnmapped) {
|
||||||
|
@ -214,11 +214,11 @@ void OBScreen::manageExisting()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBScreen::updateStrut()
|
void Screen::updateStrut()
|
||||||
{
|
{
|
||||||
_strut.left = _strut.right = _strut.top = _strut.bottom = 0;
|
_strut.left = _strut.right = _strut.top = _strut.bottom = 0;
|
||||||
|
|
||||||
OBClient::List::iterator it, end = clients.end();
|
Client::List::iterator it, end = clients.end();
|
||||||
for (it = clients.begin(); it != end; ++it) {
|
for (it = clients.begin(); it != end; ++it) {
|
||||||
const otk::Strut &s = (*it)->strut();
|
const otk::Strut &s = (*it)->strut();
|
||||||
_strut.left = std::max(_strut.left, s.left);
|
_strut.left = std::max(_strut.left, s.left);
|
||||||
|
@ -230,7 +230,7 @@ void OBScreen::updateStrut()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBScreen::calcArea()
|
void Screen::calcArea()
|
||||||
{
|
{
|
||||||
otk::Rect old_area = _area;
|
otk::Rect old_area = _area;
|
||||||
|
|
||||||
|
@ -276,103 +276,103 @@ void OBScreen::calcArea()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBScreen::changeSupportedAtoms()
|
void Screen::changeSupportedAtoms()
|
||||||
{
|
{
|
||||||
// create the netwm support window
|
// create the netwm support window
|
||||||
_supportwindow = XCreateSimpleWindow(otk::OBDisplay::display,
|
_supportwindow = XCreateSimpleWindow(otk::Display::display,
|
||||||
_info->rootWindow(),
|
_info->rootWindow(),
|
||||||
0, 0, 1, 1, 0, 0, 0);
|
0, 0, 1, 1, 0, 0, 0);
|
||||||
|
|
||||||
// set supporting window
|
// set supporting window
|
||||||
Openbox::instance->property()->set(_info->rootWindow(),
|
Openbox::instance->property()->set(_info->rootWindow(),
|
||||||
otk::OBProperty::net_supporting_wm_check,
|
otk::Property::net_supporting_wm_check,
|
||||||
otk::OBProperty::Atom_Window,
|
otk::Property::Atom_Window,
|
||||||
_supportwindow);
|
_supportwindow);
|
||||||
|
|
||||||
//set properties on the supporting window
|
//set properties on the supporting window
|
||||||
Openbox::instance->property()->set(_supportwindow,
|
Openbox::instance->property()->set(_supportwindow,
|
||||||
otk::OBProperty::net_wm_name,
|
otk::Property::net_wm_name,
|
||||||
otk::OBProperty::utf8,
|
otk::Property::utf8,
|
||||||
"Openbox");
|
"Openbox");
|
||||||
Openbox::instance->property()->set(_supportwindow,
|
Openbox::instance->property()->set(_supportwindow,
|
||||||
otk::OBProperty::net_supporting_wm_check,
|
otk::Property::net_supporting_wm_check,
|
||||||
otk::OBProperty::Atom_Window,
|
otk::Property::Atom_Window,
|
||||||
_supportwindow);
|
_supportwindow);
|
||||||
|
|
||||||
|
|
||||||
Atom supported[] = {
|
Atom supported[] = {
|
||||||
otk::OBProperty::net_current_desktop,
|
otk::Property::net_current_desktop,
|
||||||
otk::OBProperty::net_number_of_desktops,
|
otk::Property::net_number_of_desktops,
|
||||||
otk::OBProperty::net_desktop_geometry,
|
otk::Property::net_desktop_geometry,
|
||||||
otk::OBProperty::net_desktop_viewport,
|
otk::Property::net_desktop_viewport,
|
||||||
otk::OBProperty::net_active_window,
|
otk::Property::net_active_window,
|
||||||
otk::OBProperty::net_workarea,
|
otk::Property::net_workarea,
|
||||||
otk::OBProperty::net_client_list,
|
otk::Property::net_client_list,
|
||||||
otk::OBProperty::net_client_list_stacking,
|
otk::Property::net_client_list_stacking,
|
||||||
otk::OBProperty::net_desktop_names,
|
otk::Property::net_desktop_names,
|
||||||
otk::OBProperty::net_close_window,
|
otk::Property::net_close_window,
|
||||||
otk::OBProperty::net_wm_name,
|
otk::Property::net_wm_name,
|
||||||
otk::OBProperty::net_wm_visible_name,
|
otk::Property::net_wm_visible_name,
|
||||||
otk::OBProperty::net_wm_icon_name,
|
otk::Property::net_wm_icon_name,
|
||||||
otk::OBProperty::net_wm_visible_icon_name,
|
otk::Property::net_wm_visible_icon_name,
|
||||||
/*
|
/*
|
||||||
otk::OBProperty::net_wm_desktop,
|
otk::Property::net_wm_desktop,
|
||||||
*/
|
*/
|
||||||
otk::OBProperty::net_wm_strut,
|
otk::Property::net_wm_strut,
|
||||||
otk::OBProperty::net_wm_window_type,
|
otk::Property::net_wm_window_type,
|
||||||
otk::OBProperty::net_wm_window_type_desktop,
|
otk::Property::net_wm_window_type_desktop,
|
||||||
otk::OBProperty::net_wm_window_type_dock,
|
otk::Property::net_wm_window_type_dock,
|
||||||
otk::OBProperty::net_wm_window_type_toolbar,
|
otk::Property::net_wm_window_type_toolbar,
|
||||||
otk::OBProperty::net_wm_window_type_menu,
|
otk::Property::net_wm_window_type_menu,
|
||||||
otk::OBProperty::net_wm_window_type_utility,
|
otk::Property::net_wm_window_type_utility,
|
||||||
otk::OBProperty::net_wm_window_type_splash,
|
otk::Property::net_wm_window_type_splash,
|
||||||
otk::OBProperty::net_wm_window_type_dialog,
|
otk::Property::net_wm_window_type_dialog,
|
||||||
otk::OBProperty::net_wm_window_type_normal,
|
otk::Property::net_wm_window_type_normal,
|
||||||
/*
|
/*
|
||||||
otk::OBProperty::net_wm_moveresize,
|
otk::Property::net_wm_moveresize,
|
||||||
otk::OBProperty::net_wm_moveresize_size_topleft,
|
otk::Property::net_wm_moveresize_size_topleft,
|
||||||
otk::OBProperty::net_wm_moveresize_size_topright,
|
otk::Property::net_wm_moveresize_size_topright,
|
||||||
otk::OBProperty::net_wm_moveresize_size_bottomleft,
|
otk::Property::net_wm_moveresize_size_bottomleft,
|
||||||
otk::OBProperty::net_wm_moveresize_size_bottomright,
|
otk::Property::net_wm_moveresize_size_bottomright,
|
||||||
otk::OBProperty::net_wm_moveresize_move,
|
otk::Property::net_wm_moveresize_move,
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
otk::OBProperty::net_wm_allowed_actions,
|
otk::Property::net_wm_allowed_actions,
|
||||||
otk::OBProperty::net_wm_action_move,
|
otk::Property::net_wm_action_move,
|
||||||
otk::OBProperty::net_wm_action_resize,
|
otk::Property::net_wm_action_resize,
|
||||||
otk::OBProperty::net_wm_action_shade,
|
otk::Property::net_wm_action_shade,
|
||||||
otk::OBProperty::net_wm_action_maximize_horz,
|
otk::Property::net_wm_action_maximize_horz,
|
||||||
otk::OBProperty::net_wm_action_maximize_vert,
|
otk::Property::net_wm_action_maximize_vert,
|
||||||
otk::OBProperty::net_wm_action_change_desktop,
|
otk::Property::net_wm_action_change_desktop,
|
||||||
otk::OBProperty::net_wm_action_close,
|
otk::Property::net_wm_action_close,
|
||||||
*/
|
*/
|
||||||
otk::OBProperty::net_wm_state,
|
otk::Property::net_wm_state,
|
||||||
otk::OBProperty::net_wm_state_modal,
|
otk::Property::net_wm_state_modal,
|
||||||
otk::OBProperty::net_wm_state_maximized_vert,
|
otk::Property::net_wm_state_maximized_vert,
|
||||||
otk::OBProperty::net_wm_state_maximized_horz,
|
otk::Property::net_wm_state_maximized_horz,
|
||||||
otk::OBProperty::net_wm_state_shaded,
|
otk::Property::net_wm_state_shaded,
|
||||||
otk::OBProperty::net_wm_state_skip_taskbar,
|
otk::Property::net_wm_state_skip_taskbar,
|
||||||
otk::OBProperty::net_wm_state_skip_pager,
|
otk::Property::net_wm_state_skip_pager,
|
||||||
otk::OBProperty::net_wm_state_hidden,
|
otk::Property::net_wm_state_hidden,
|
||||||
otk::OBProperty::net_wm_state_fullscreen,
|
otk::Property::net_wm_state_fullscreen,
|
||||||
otk::OBProperty::net_wm_state_above,
|
otk::Property::net_wm_state_above,
|
||||||
otk::OBProperty::net_wm_state_below,
|
otk::Property::net_wm_state_below,
|
||||||
};
|
};
|
||||||
const int num_supported = sizeof(supported)/sizeof(Atom);
|
const int num_supported = sizeof(supported)/sizeof(Atom);
|
||||||
|
|
||||||
// convert to the atom values
|
// convert to the atom values
|
||||||
for (int i = 0; i < num_supported; ++i)
|
for (int i = 0; i < num_supported; ++i)
|
||||||
supported[i] =
|
supported[i] =
|
||||||
Openbox::instance->property()->atom((otk::OBProperty::Atoms)supported[i]);
|
Openbox::instance->property()->atom((otk::Property::Atoms)supported[i]);
|
||||||
|
|
||||||
Openbox::instance->property()->set(_info->rootWindow(),
|
Openbox::instance->property()->set(_info->rootWindow(),
|
||||||
otk::OBProperty::net_supported,
|
otk::Property::net_supported,
|
||||||
otk::OBProperty::Atom_Atom,
|
otk::Property::Atom_Atom,
|
||||||
supported, num_supported);
|
supported, num_supported);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBScreen::changeClientList()
|
void Screen::changeClientList()
|
||||||
{
|
{
|
||||||
Window *windows;
|
Window *windows;
|
||||||
unsigned int size = clients.size();
|
unsigned int size = clients.size();
|
||||||
|
@ -383,16 +383,16 @@ void OBScreen::changeClientList()
|
||||||
|
|
||||||
windows = new Window[size];
|
windows = new Window[size];
|
||||||
win_it = windows;
|
win_it = windows;
|
||||||
OBClient::List::const_iterator it = clients.begin();
|
Client::List::const_iterator it = clients.begin();
|
||||||
const OBClient::List::const_iterator end = clients.end();
|
const Client::List::const_iterator end = clients.end();
|
||||||
for (; it != end; ++it, ++win_it)
|
for (; it != end; ++it, ++win_it)
|
||||||
*win_it = (*it)->window();
|
*win_it = (*it)->window();
|
||||||
} else
|
} else
|
||||||
windows = (Window*) 0;
|
windows = (Window*) 0;
|
||||||
|
|
||||||
Openbox::instance->property()->set(_info->rootWindow(),
|
Openbox::instance->property()->set(_info->rootWindow(),
|
||||||
otk::OBProperty::net_client_list,
|
otk::Property::net_client_list,
|
||||||
otk::OBProperty::Atom_Window,
|
otk::Property::Atom_Window,
|
||||||
windows, size);
|
windows, size);
|
||||||
|
|
||||||
if (size)
|
if (size)
|
||||||
|
@ -402,7 +402,7 @@ void OBScreen::changeClientList()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBScreen::changeStackingList()
|
void Screen::changeStackingList()
|
||||||
{
|
{
|
||||||
Window *windows;
|
Window *windows;
|
||||||
unsigned int size = _stacking.size();
|
unsigned int size = _stacking.size();
|
||||||
|
@ -416,16 +416,16 @@ void OBScreen::changeStackingList()
|
||||||
|
|
||||||
windows = new Window[size];
|
windows = new Window[size];
|
||||||
win_it = windows;
|
win_it = windows;
|
||||||
OBClient::List::const_iterator it = _stacking.begin();
|
Client::List::const_iterator it = _stacking.begin();
|
||||||
const OBClient::List::const_iterator end = _stacking.end();
|
const Client::List::const_iterator end = _stacking.end();
|
||||||
for (; it != end; ++it, ++win_it)
|
for (; it != end; ++it, ++win_it)
|
||||||
*win_it = (*it)->window();
|
*win_it = (*it)->window();
|
||||||
} else
|
} else
|
||||||
windows = (Window*) 0;
|
windows = (Window*) 0;
|
||||||
|
|
||||||
Openbox::instance->property()->set(_info->rootWindow(),
|
Openbox::instance->property()->set(_info->rootWindow(),
|
||||||
otk::OBProperty::net_client_list_stacking,
|
otk::Property::net_client_list_stacking,
|
||||||
otk::OBProperty::Atom_Window,
|
otk::Property::Atom_Window,
|
||||||
windows, size);
|
windows, size);
|
||||||
|
|
||||||
if (size)
|
if (size)
|
||||||
|
@ -433,7 +433,7 @@ void OBScreen::changeStackingList()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBScreen::changeWorkArea() {
|
void Screen::changeWorkArea() {
|
||||||
unsigned long *dims = new unsigned long[4 * _num_desktops];
|
unsigned long *dims = new unsigned long[4 * _num_desktops];
|
||||||
for (long i = 0; i < _num_desktops; ++i) {
|
for (long i = 0; i < _num_desktops; ++i) {
|
||||||
// XXX: this could be different for each workspace
|
// XXX: this could be different for each workspace
|
||||||
|
@ -443,27 +443,27 @@ void OBScreen::changeWorkArea() {
|
||||||
dims[(i * 4) + 3] = _area.height();
|
dims[(i * 4) + 3] = _area.height();
|
||||||
}
|
}
|
||||||
Openbox::instance->property()->set(_info->rootWindow(),
|
Openbox::instance->property()->set(_info->rootWindow(),
|
||||||
otk::OBProperty::net_workarea,
|
otk::Property::net_workarea,
|
||||||
otk::OBProperty::Atom_Cardinal,
|
otk::Property::Atom_Cardinal,
|
||||||
dims, 4 * _num_desktops);
|
dims, 4 * _num_desktops);
|
||||||
delete [] dims;
|
delete [] dims;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBScreen::manageWindow(Window window)
|
void Screen::manageWindow(Window window)
|
||||||
{
|
{
|
||||||
OBClient *client = 0;
|
Client *client = 0;
|
||||||
XWMHints *wmhint;
|
XWMHints *wmhint;
|
||||||
XSetWindowAttributes attrib_set;
|
XSetWindowAttributes attrib_set;
|
||||||
|
|
||||||
otk::OBDisplay::grab();
|
otk::Display::grab();
|
||||||
|
|
||||||
// is the window a docking app
|
// is the window a docking app
|
||||||
if ((wmhint = XGetWMHints(otk::OBDisplay::display, window))) {
|
if ((wmhint = XGetWMHints(otk::Display::display, window))) {
|
||||||
if ((wmhint->flags & StateHint) &&
|
if ((wmhint->flags & StateHint) &&
|
||||||
wmhint->initial_state == WithdrawnState) {
|
wmhint->initial_state == WithdrawnState) {
|
||||||
//slit->addClient(w); // XXX: make dock apps work!
|
//slit->addClient(w); // XXX: make dock apps work!
|
||||||
otk::OBDisplay::ungrab();
|
otk::Display::ungrab();
|
||||||
|
|
||||||
XFree(wmhint);
|
XFree(wmhint);
|
||||||
return;
|
return;
|
||||||
|
@ -472,13 +472,13 @@ void OBScreen::manageWindow(Window window)
|
||||||
}
|
}
|
||||||
|
|
||||||
// choose the events we want to receive on the CLIENT window
|
// choose the events we want to receive on the CLIENT window
|
||||||
attrib_set.event_mask = OBClient::event_mask;
|
attrib_set.event_mask = Client::event_mask;
|
||||||
attrib_set.do_not_propagate_mask = OBClient::no_propagate_mask;
|
attrib_set.do_not_propagate_mask = Client::no_propagate_mask;
|
||||||
XChangeWindowAttributes(otk::OBDisplay::display, window,
|
XChangeWindowAttributes(otk::Display::display, window,
|
||||||
CWEventMask|CWDontPropagate, &attrib_set);
|
CWEventMask|CWDontPropagate, &attrib_set);
|
||||||
|
|
||||||
// create the OBClient class, which gets all of the hints on the window
|
// create the Client class, which gets all of the hints on the window
|
||||||
client = new OBClient(_number, window);
|
client = new Client(_number, window);
|
||||||
// register for events
|
// register for events
|
||||||
Openbox::instance->registerHandler(window, client);
|
Openbox::instance->registerHandler(window, client);
|
||||||
// add to the wm's map
|
// add to the wm's map
|
||||||
|
@ -489,7 +489,7 @@ void OBScreen::manageWindow(Window window)
|
||||||
|
|
||||||
// specify that if we exit, the window should not be destroyed and should be
|
// specify that if we exit, the window should not be destroyed and should be
|
||||||
// reparented back to root automatically
|
// reparented back to root automatically
|
||||||
XChangeSaveSet(otk::OBDisplay::display, window, SetModeInsert);
|
XChangeSaveSet(otk::Display::display, window, SetModeInsert);
|
||||||
|
|
||||||
if (!(Openbox::instance->state() == Openbox::State_Starting ||
|
if (!(Openbox::instance->state() == Openbox::State_Starting ||
|
||||||
client->positionRequested())) {
|
client->positionRequested())) {
|
||||||
|
@ -500,7 +500,7 @@ void OBScreen::manageWindow(Window window)
|
||||||
}
|
}
|
||||||
|
|
||||||
// create the decoration frame for the client window
|
// create the decoration frame for the client window
|
||||||
client->frame = new OBFrame(client, &_style);
|
client->frame = new Frame(client, &_style);
|
||||||
|
|
||||||
// add to the wm's map
|
// add to the wm's map
|
||||||
Openbox::instance->addClient(client->frame->window(), client);
|
Openbox::instance->addClient(client->frame->window(), client);
|
||||||
|
@ -526,7 +526,7 @@ void OBScreen::manageWindow(Window window)
|
||||||
|
|
||||||
// XXX: handle any requested states such as maximized
|
// XXX: handle any requested states such as maximized
|
||||||
|
|
||||||
otk::OBDisplay::ungrab();
|
otk::Display::ungrab();
|
||||||
|
|
||||||
// add to the screen's list
|
// add to the screen's list
|
||||||
clients.push_back(client);
|
clients.push_back(client);
|
||||||
|
@ -548,9 +548,9 @@ void OBScreen::manageWindow(Window window)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBScreen::unmanageWindow(OBClient *client)
|
void Screen::unmanageWindow(Client *client)
|
||||||
{
|
{
|
||||||
OBFrame *frame = client->frame;
|
Frame *frame = client->frame;
|
||||||
|
|
||||||
// call the python CLOSEWINDOW binding
|
// call the python CLOSEWINDOW binding
|
||||||
EventData data(_number, client, EventCloseWindow, 0);
|
EventData data(_number, client, EventCloseWindow, 0);
|
||||||
|
@ -575,10 +575,10 @@ void OBScreen::unmanageWindow(OBClient *client)
|
||||||
Openbox::instance->clearHandler(client->window());
|
Openbox::instance->clearHandler(client->window());
|
||||||
|
|
||||||
// remove the window from our save set
|
// remove the window from our save set
|
||||||
XChangeSaveSet(otk::OBDisplay::display, client->window(), SetModeDelete);
|
XChangeSaveSet(otk::Display::display, client->window(), SetModeDelete);
|
||||||
|
|
||||||
// we dont want events no more
|
// we dont want events no more
|
||||||
XSelectInput(otk::OBDisplay::display, client->window(), NoEventMask);
|
XSelectInput(otk::Display::display, client->window(), NoEventMask);
|
||||||
|
|
||||||
frame->hide();
|
frame->hide();
|
||||||
|
|
||||||
|
@ -610,7 +610,7 @@ void OBScreen::unmanageWindow(OBClient *client)
|
||||||
changeClientList();
|
changeClientList();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBScreen::restack(bool raise, OBClient *client)
|
void Screen::restack(bool raise, Client *client)
|
||||||
{
|
{
|
||||||
const int layer = client->layer();
|
const int layer = client->layer();
|
||||||
std::vector<Window> wins;
|
std::vector<Window> wins;
|
||||||
|
@ -619,7 +619,7 @@ void OBScreen::restack(bool raise, OBClient *client)
|
||||||
|
|
||||||
// the stacking list is from highest to lowest
|
// the stacking list is from highest to lowest
|
||||||
|
|
||||||
OBClient::List::iterator it = _stacking.begin(), end = _stacking.end();
|
Client::List::iterator it = _stacking.begin(), end = _stacking.end();
|
||||||
// insert the windows above this window
|
// insert the windows above this window
|
||||||
for (; it != end; ++it) {
|
for (; it != end; ++it) {
|
||||||
if ((*it)->layer() < layer || (raise && (*it)->layer() == layer))
|
if ((*it)->layer() < layer || (raise && (*it)->layer() == layer))
|
||||||
|
@ -633,11 +633,11 @@ void OBScreen::restack(bool raise, OBClient *client)
|
||||||
for (; it != end; ++it)
|
for (; it != end; ++it)
|
||||||
wins.push_back((*it)->frame->window());
|
wins.push_back((*it)->frame->window());
|
||||||
|
|
||||||
XRestackWindows(otk::OBDisplay::display, &wins[0], wins.size());
|
XRestackWindows(otk::Display::display, &wins[0], wins.size());
|
||||||
changeStackingList();
|
changeStackingList();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBScreen::changeDesktop(long desktop)
|
void Screen::changeDesktop(long desktop)
|
||||||
{
|
{
|
||||||
assert(desktop >= 0 && desktop < _num_desktops);
|
assert(desktop >= 0 && desktop < _num_desktops);
|
||||||
|
|
||||||
|
@ -649,13 +649,13 @@ void OBScreen::changeDesktop(long desktop)
|
||||||
|
|
||||||
_desktop = desktop;
|
_desktop = desktop;
|
||||||
Openbox::instance->property()->set(_info->rootWindow(),
|
Openbox::instance->property()->set(_info->rootWindow(),
|
||||||
otk::OBProperty::net_current_desktop,
|
otk::Property::net_current_desktop,
|
||||||
otk::OBProperty::Atom_Cardinal,
|
otk::Property::Atom_Cardinal,
|
||||||
_desktop);
|
_desktop);
|
||||||
|
|
||||||
if (old == _desktop) return;
|
if (old == _desktop) return;
|
||||||
|
|
||||||
OBClient::List::iterator it, end = clients.end();
|
Client::List::iterator it, end = clients.end();
|
||||||
for (it = clients.begin(); it != end; ++it) {
|
for (it = clients.begin(); it != end; ++it) {
|
||||||
if ((*it)->desktop() == old) {
|
if ((*it)->desktop() == old) {
|
||||||
(*it)->frame->hide();
|
(*it)->frame->hide();
|
||||||
|
@ -669,7 +669,7 @@ void OBScreen::changeDesktop(long desktop)
|
||||||
Openbox::instance->setFocusedClient(0);
|
Openbox::instance->setFocusedClient(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBScreen::changeNumDesktops(long num)
|
void Screen::changeNumDesktops(long num)
|
||||||
{
|
{
|
||||||
assert(num > 0);
|
assert(num > 0);
|
||||||
|
|
||||||
|
@ -679,16 +679,16 @@ void OBScreen::changeNumDesktops(long num)
|
||||||
|
|
||||||
_num_desktops = num;
|
_num_desktops = num;
|
||||||
Openbox::instance->property()->set(_info->rootWindow(),
|
Openbox::instance->property()->set(_info->rootWindow(),
|
||||||
otk::OBProperty::net_number_of_desktops,
|
otk::Property::net_number_of_desktops,
|
||||||
otk::OBProperty::Atom_Cardinal,
|
otk::Property::Atom_Cardinal,
|
||||||
_num_desktops);
|
_num_desktops);
|
||||||
|
|
||||||
// set the viewport hint
|
// set the viewport hint
|
||||||
unsigned long *viewport = new unsigned long[_num_desktops * 2];
|
unsigned long *viewport = new unsigned long[_num_desktops * 2];
|
||||||
memset(viewport, 0, sizeof(unsigned long) * _num_desktops * 2);
|
memset(viewport, 0, sizeof(unsigned long) * _num_desktops * 2);
|
||||||
Openbox::instance->property()->set(_info->rootWindow(),
|
Openbox::instance->property()->set(_info->rootWindow(),
|
||||||
otk::OBProperty::net_desktop_viewport,
|
otk::Property::net_desktop_viewport,
|
||||||
otk::OBProperty::Atom_Cardinal,
|
otk::Property::Atom_Cardinal,
|
||||||
viewport, _num_desktops * 2);
|
viewport, _num_desktops * 2);
|
||||||
delete [] viewport;
|
delete [] viewport;
|
||||||
|
|
||||||
|
@ -697,79 +697,79 @@ void OBScreen::changeNumDesktops(long num)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBScreen::updateDesktopNames()
|
void Screen::updateDesktopNames()
|
||||||
{
|
{
|
||||||
const otk::OBProperty *property = Openbox::instance->property();
|
const otk::Property *property = Openbox::instance->property();
|
||||||
|
|
||||||
unsigned long num = (unsigned) -1;
|
unsigned long num = (unsigned) -1;
|
||||||
|
|
||||||
if (!property->get(_info->rootWindow(),
|
if (!property->get(_info->rootWindow(),
|
||||||
otk::OBProperty::net_desktop_names,
|
otk::Property::net_desktop_names,
|
||||||
otk::OBProperty::utf8, &num, &_desktop_names))
|
otk::Property::utf8, &num, &_desktop_names))
|
||||||
_desktop_names.clear();
|
_desktop_names.clear();
|
||||||
while ((long)_desktop_names.size() < _num_desktops)
|
while ((long)_desktop_names.size() < _num_desktops)
|
||||||
_desktop_names.push_back("Unnamed");
|
_desktop_names.push_back("Unnamed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBScreen::setDesktopName(long i, const std::string &name)
|
void Screen::setDesktopName(long i, const std::string &name)
|
||||||
{
|
{
|
||||||
assert(i >= 0);
|
assert(i >= 0);
|
||||||
|
|
||||||
if (i >= _num_desktops) return;
|
if (i >= _num_desktops) return;
|
||||||
|
|
||||||
const otk::OBProperty *property = Openbox::instance->property();
|
const otk::Property *property = Openbox::instance->property();
|
||||||
|
|
||||||
otk::OBProperty::StringVect newnames = _desktop_names;
|
otk::Property::StringVect newnames = _desktop_names;
|
||||||
newnames[i] = name;
|
newnames[i] = name;
|
||||||
property->set(_info->rootWindow(), otk::OBProperty::net_desktop_names,
|
property->set(_info->rootWindow(), otk::Property::net_desktop_names,
|
||||||
otk::OBProperty::utf8, newnames);
|
otk::Property::utf8, newnames);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBScreen::propertyHandler(const XPropertyEvent &e)
|
void Screen::propertyHandler(const XPropertyEvent &e)
|
||||||
{
|
{
|
||||||
otk::OtkEventHandler::propertyHandler(e);
|
otk::EventHandler::propertyHandler(e);
|
||||||
|
|
||||||
const otk::OBProperty *property = Openbox::instance->property();
|
const otk::Property *property = Openbox::instance->property();
|
||||||
|
|
||||||
// compress changes to a single property into a single change
|
// compress changes to a single property into a single change
|
||||||
XEvent ce;
|
XEvent ce;
|
||||||
while (XCheckTypedEvent(otk::OBDisplay::display, e.type, &ce)) {
|
while (XCheckTypedEvent(otk::Display::display, e.type, &ce)) {
|
||||||
// XXX: it would be nice to compress ALL changes to a property, not just
|
// XXX: it would be nice to compress ALL changes to a property, not just
|
||||||
// changes in a row without other props between.
|
// changes in a row without other props between.
|
||||||
if (ce.xproperty.atom != e.atom) {
|
if (ce.xproperty.atom != e.atom) {
|
||||||
XPutBackEvent(otk::OBDisplay::display, &ce);
|
XPutBackEvent(otk::Display::display, &ce);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e.atom == property->atom(otk::OBProperty::net_desktop_names))
|
if (e.atom == property->atom(otk::Property::net_desktop_names))
|
||||||
updateDesktopNames();
|
updateDesktopNames();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBScreen::clientMessageHandler(const XClientMessageEvent &e)
|
void Screen::clientMessageHandler(const XClientMessageEvent &e)
|
||||||
{
|
{
|
||||||
otk::OtkEventHandler::clientMessageHandler(e);
|
otk::EventHandler::clientMessageHandler(e);
|
||||||
|
|
||||||
if (e.format != 32) return;
|
if (e.format != 32) return;
|
||||||
|
|
||||||
const otk::OBProperty *property = Openbox::instance->property();
|
const otk::Property *property = Openbox::instance->property();
|
||||||
|
|
||||||
if (e.message_type == property->atom(otk::OBProperty::net_current_desktop)) {
|
if (e.message_type == property->atom(otk::Property::net_current_desktop)) {
|
||||||
changeDesktop(e.data.l[0]);
|
changeDesktop(e.data.l[0]);
|
||||||
} else if (e.message_type ==
|
} else if (e.message_type ==
|
||||||
property->atom(otk::OBProperty::net_number_of_desktops)) {
|
property->atom(otk::Property::net_number_of_desktops)) {
|
||||||
changeNumDesktops(e.data.l[0]);
|
changeNumDesktops(e.data.l[0]);
|
||||||
}
|
}
|
||||||
// XXX: so many client messages to handle here! ..or not.. they go to clients
|
// XXX: so many client messages to handle here! ..or not.. they go to clients
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OBScreen::mapRequestHandler(const XMapRequestEvent &e)
|
void Screen::mapRequestHandler(const XMapRequestEvent &e)
|
||||||
{
|
{
|
||||||
otk::OtkEventHandler::mapRequestHandler(e);
|
otk::EventHandler::mapRequestHandler(e);
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf("MapRequest for 0x%lx\n", e.window);
|
printf("MapRequest for 0x%lx\n", e.window);
|
||||||
|
@ -780,15 +780,15 @@ void OBScreen::mapRequestHandler(const XMapRequestEvent &e)
|
||||||
right to the client window, because of how they are sent and their struct
|
right to the client window, because of how they are sent and their struct
|
||||||
layout.
|
layout.
|
||||||
*/
|
*/
|
||||||
OBClient *c = Openbox::instance->findClient(e.window);
|
Client *c = Openbox::instance->findClient(e.window);
|
||||||
|
|
||||||
if (c) {
|
if (c) {
|
||||||
// send a net_active_window message
|
// send a net_active_window message
|
||||||
XEvent ce;
|
XEvent ce;
|
||||||
ce.xclient.type = ClientMessage;
|
ce.xclient.type = ClientMessage;
|
||||||
ce.xclient.message_type =
|
ce.xclient.message_type =
|
||||||
Openbox::instance->property()->atom(otk::OBProperty::net_active_window);
|
Openbox::instance->property()->atom(otk::Property::net_active_window);
|
||||||
ce.xclient.display = otk::OBDisplay::display;
|
ce.xclient.display = otk::Display::display;
|
||||||
ce.xclient.window = c->window();
|
ce.xclient.window = c->window();
|
||||||
ce.xclient.format = 32;
|
ce.xclient.format = 32;
|
||||||
ce.xclient.data.l[0] = 0l;
|
ce.xclient.data.l[0] = 0l;
|
||||||
|
@ -796,7 +796,7 @@ void OBScreen::mapRequestHandler(const XMapRequestEvent &e)
|
||||||
ce.xclient.data.l[2] = 0l;
|
ce.xclient.data.l[2] = 0l;
|
||||||
ce.xclient.data.l[3] = 0l;
|
ce.xclient.data.l[3] = 0l;
|
||||||
ce.xclient.data.l[4] = 0l;
|
ce.xclient.data.l[4] = 0l;
|
||||||
XSendEvent(otk::OBDisplay::display, _info->rootWindow(), false,
|
XSendEvent(otk::Display::display, _info->rootWindow(), false,
|
||||||
SubstructureRedirectMask | SubstructureNotifyMask,
|
SubstructureRedirectMask | SubstructureNotifyMask,
|
||||||
&ce);
|
&ce);
|
||||||
} else
|
} else
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#define __screen_hh
|
#define __screen_hh
|
||||||
|
|
||||||
/*! @file screen.hh
|
/*! @file screen.hh
|
||||||
@brief OBScreen manages a single screen
|
@brief Screen manages a single screen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -25,13 +25,13 @@ extern "C" {
|
||||||
|
|
||||||
namespace ob {
|
namespace ob {
|
||||||
|
|
||||||
class OBClient;
|
class Client;
|
||||||
class OBRootWindow;
|
class RootWindow;
|
||||||
|
|
||||||
//! Manages a single screen
|
//! Manages a single screen
|
||||||
/*!
|
/*!
|
||||||
*/
|
*/
|
||||||
class OBScreen : public otk::OtkEventHandler, public OBWidget {
|
class Screen : public otk::EventHandler, public WidgetBase {
|
||||||
public:
|
public:
|
||||||
//! Holds a list of otk::Strut objects
|
//! Holds a list of otk::Strut objects
|
||||||
typedef std::list<otk::Strut*> StrutList;
|
typedef std::list<otk::Strut*> StrutList;
|
||||||
|
@ -46,7 +46,7 @@ public:
|
||||||
ButtonReleaseMask;
|
ButtonReleaseMask;
|
||||||
|
|
||||||
//! All managed clients on the screen (in order of being mapped)
|
//! All managed clients on the screen (in order of being mapped)
|
||||||
OBClient::List clients;
|
Client::List clients;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//! Was %Openbox able to manage the screen?
|
//! Was %Openbox able to manage the screen?
|
||||||
|
@ -59,7 +59,7 @@ private:
|
||||||
const otk::ScreenInfo *_info;
|
const otk::ScreenInfo *_info;
|
||||||
|
|
||||||
//! The Image Control used for rendering on the screen
|
//! The Image Control used for rendering on the screen
|
||||||
otk::BImageControl *_image_control;
|
otk::ImageControl *_image_control;
|
||||||
|
|
||||||
//! The style with which to render on the screen
|
//! The style with which to render on the screen
|
||||||
otk::Style _style;
|
otk::Style _style;
|
||||||
|
@ -81,7 +81,7 @@ private:
|
||||||
Window _supportwindow;
|
Window _supportwindow;
|
||||||
|
|
||||||
//! A list of all managed clients on the screen, in their stacking order
|
//! A list of all managed clients on the screen, in their stacking order
|
||||||
OBClient::List _stacking;
|
Client::List _stacking;
|
||||||
|
|
||||||
//! The desktop currently being displayed
|
//! The desktop currently being displayed
|
||||||
long _desktop;
|
long _desktop;
|
||||||
|
@ -90,16 +90,16 @@ private:
|
||||||
long _num_desktops;
|
long _num_desktops;
|
||||||
|
|
||||||
//! The names of all desktops
|
//! The names of all desktops
|
||||||
otk::OBProperty::StringVect _desktop_names;
|
otk::Property::StringVect _desktop_names;
|
||||||
|
|
||||||
//! Calculate the OBScreen::_area member
|
//! Calculate the Screen::_area member
|
||||||
void calcArea();
|
void calcArea();
|
||||||
//! Set the list of supported NETWM atoms on the root window
|
//! Set the list of supported NETWM atoms on the root window
|
||||||
void changeSupportedAtoms();
|
void changeSupportedAtoms();
|
||||||
//! Set the client list on the root window
|
//! Set the client list on the root window
|
||||||
/*!
|
/*!
|
||||||
Sets the _NET_CLIENT_LIST root window property.<br>
|
Sets the _NET_CLIENT_LIST root window property.<br>
|
||||||
Also calls OBScreen::updateStackingList.
|
Also calls Screen::updateStackingList.
|
||||||
*/
|
*/
|
||||||
void changeClientList();
|
void changeClientList();
|
||||||
//! Set the client stacking list on the root window
|
//! Set the client stacking list on the root window
|
||||||
|
@ -133,10 +133,10 @@ private:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
#ifndef SWIG
|
#ifndef SWIG
|
||||||
//! Constructs a new OBScreen object
|
//! Constructs a new Screen object
|
||||||
OBScreen(int screen);
|
Screen(int screen);
|
||||||
//! Destroys the OBScreen object
|
//! Destroys the Screen object
|
||||||
virtual ~OBScreen();
|
virtual ~Screen();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
inline int number() const { return _number; }
|
inline int number() const { return _number; }
|
||||||
|
@ -148,7 +148,7 @@ public:
|
||||||
*/
|
*/
|
||||||
inline bool managed() const { return _managed; }
|
inline bool managed() const { return _managed; }
|
||||||
//! Returns the Image Control used for rendering on the screen
|
//! Returns the Image Control used for rendering on the screen
|
||||||
inline otk::BImageControl *imageControl() { return _image_control; }
|
inline otk::ImageControl *imageControl() { return _image_control; }
|
||||||
//! Returns the area of the screen not reserved by applications' Struts
|
//! Returns the area of the screen not reserved by applications' Struts
|
||||||
inline const otk::Rect &area() const { return _area; }
|
inline const otk::Rect &area() const { return _area; }
|
||||||
//! Returns the style in use on the screen
|
//! Returns the style in use on the screen
|
||||||
|
@ -179,11 +179,11 @@ public:
|
||||||
it, etc.
|
it, etc.
|
||||||
@param client The client to unmanage
|
@param client The client to unmanage
|
||||||
*/
|
*/
|
||||||
void unmanageWindow(OBClient *client);
|
void unmanageWindow(Client *client);
|
||||||
|
|
||||||
//! Raises/Lowers a client window above/below all others in its stacking
|
//! Raises/Lowers a client window above/below all others in its stacking
|
||||||
//! layer
|
//! layer
|
||||||
void restack(bool raise, OBClient *client);
|
void restack(bool raise, Client *client);
|
||||||
|
|
||||||
//! Sets the name of a desktop by changing the root window property
|
//! Sets the name of a desktop by changing the root window property
|
||||||
/*!
|
/*!
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
|
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
|
||||||
#ifndef __obwidgetbase_hh
|
#ifndef __widgetbase_hh
|
||||||
#define __obwidgetbase_hh
|
#define __widgetbase_hh
|
||||||
|
|
||||||
#include "python.hh"
|
#include "python.hh"
|
||||||
|
|
||||||
namespace ob {
|
namespace ob {
|
||||||
|
|
||||||
class OBWidget {
|
class WidgetBase {
|
||||||
public:
|
public:
|
||||||
enum WidgetType {
|
enum WidgetType {
|
||||||
Type_Frame,
|
Type_Frame,
|
||||||
|
@ -28,7 +28,7 @@ private:
|
||||||
WidgetType _type;
|
WidgetType _type;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
OBWidget(WidgetType type) : _type(type) {}
|
WidgetBase(WidgetType type) : _type(type) {}
|
||||||
|
|
||||||
inline WidgetType type() const { return _type; }
|
inline WidgetType type() const { return _type; }
|
||||||
|
|
||||||
|
@ -68,4 +68,4 @@ public:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // __obwidgetbase_hh
|
#endif // __widgetbase_hh
|
||||||
|
|
Loading…
Reference in a new issue