summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-01-02 21:05:29 +0000
committerDana Jansens <danakj@orodu.net>2003-01-02 21:05:29 +0000
commit14cf42ff0780bf58a6b54c9443c87c7402b61faa (patch)
treeb4517a43cf036fd482b655d978660cf5d7ff990d /src
parent6d58d84f22887f03ac5471b9775452b90103b6f0 (diff)
run scripts before initializing screens. kill the globals.py. add the python_get_stringlist.
Diffstat (limited to 'src')
-rw-r--r--src/openbox.cc11
-rw-r--r--src/openbox_wrap.cc6
-rw-r--r--src/python.cc13
-rw-r--r--src/python.hh2
4 files changed, 24 insertions, 8 deletions
diff --git a/src/openbox.cc b/src/openbox.cc
index f7f2098b..436c09fa 100644
--- a/src/openbox.cc
+++ b/src/openbox.cc
@@ -133,6 +133,11 @@ Openbox::Openbox(int argc, char **argv)
// load config values
python_exec(SCRIPTDIR"/config.py"); // load openbox config values
+ // run all of the python scripts
+ python_exec(SCRIPTDIR"/clientmotion.py"); // moving and resizing clients
+ python_exec(SCRIPTDIR"/clicks.py"); // titlebar/root clicks and dblclicks
+ // run the user's script
+ python_exec(_scriptfilepath.c_str());
// initialize all the screens
OBScreen *screen;
@@ -148,12 +153,6 @@ Openbox::Openbox(int argc, char **argv)
::exit(1);
}
- // run all of the python scripts, including the user's
- python_exec(SCRIPTDIR"/globals.py"); // create/set global vars
- python_exec(SCRIPTDIR"/clientmotion.py"); // moving and resizing clients
- python_exec(SCRIPTDIR"/clicks.py"); // titlebar/root clicks and dblclicks
- python_exec(_scriptfilepath.c_str());
-
ScreenList::iterator it, end = _screens.end();
for (it = _screens.begin(); it != end; ++it) {
(*it)->manageExisting();
diff --git a/src/openbox_wrap.cc b/src/openbox_wrap.cc
index ada473b6..146bb2a7 100644
--- a/src/openbox_wrap.cc
+++ b/src/openbox_wrap.cc
@@ -786,7 +786,9 @@ static std::string SwigString_AsString(PyObject* o) {
Action_EnterWindow,
Action_LeaveWindow,
Action_KeyPress,
- Action_MouseMotion
+ Action_MouseMotion,
+ Action_NewWindow,
+ Action_CloseWindow
};
enum WidgetType {
Type_Frame,
@@ -2918,6 +2920,8 @@ static swig_const_info swig_const_table[] = {
{ SWIG_PY_INT, (char *)"Action_LeaveWindow", (long) Action_LeaveWindow, 0, 0, 0},
{ SWIG_PY_INT, (char *)"Action_KeyPress", (long) Action_KeyPress, 0, 0, 0},
{ SWIG_PY_INT, (char *)"Action_MouseMotion", (long) Action_MouseMotion, 0, 0, 0},
+{ SWIG_PY_INT, (char *)"Action_NewWindow", (long) Action_NewWindow, 0, 0, 0},
+{ SWIG_PY_INT, (char *)"Action_CloseWindow", (long) Action_CloseWindow, 0, 0, 0},
{ SWIG_PY_INT, (char *)"Type_Frame", (long) Type_Frame, 0, 0, 0},
{ SWIG_PY_INT, (char *)"Type_Titlebar", (long) Type_Titlebar, 0, 0, 0},
{ SWIG_PY_INT, (char *)"Type_Handle", (long) Type_Handle, 0, 0, 0},
diff --git a/src/python.cc b/src/python.cc
index 8fec3b15..f1b7f43c 100644
--- a/src/python.cc
+++ b/src/python.cc
@@ -212,6 +212,7 @@ void python_init(char *argv0)
init_otk();
init_openbox();
PyRun_SimpleString("from _otk import *; from _openbox import *;");
+ PyRun_SimpleString("openbox = Openbox_instance()");
// set up access to the python global variables
PyObject *obmodule = PyImport_AddModule("__main__");
@@ -302,5 +303,17 @@ bool python_get_string(const char *name, std::string *value)
return true;
}
+bool python_get_stringlist(const char *name, std::vector<std::string> *value)
+{
+ PyObject *val = PyDict_GetItemString(obdict, const_cast<char*>(name));
+ if (!(val && PyList_Check(val))) return false;
+
+ for (int i = 0, end = PyList_Size(val); i < end; ++i) {
+ PyObject *str = PyList_GetItem(val, i);
+ if (PyString_Check(str))
+ value->push_back(PyString_AsString(str));
+ }
+ return true;
+}
}
diff --git a/src/python.hh b/src/python.hh
index 0870c9ad..2fa3e867 100644
--- a/src/python.hh
+++ b/src/python.hh
@@ -32,7 +32,7 @@ void python_callback(PyObject *func, Window window, unsigned int state,
bool python_get_string(const char *name, std::string *value);
-bool python_getstringlist(const char *name, std::vector<std::string> *value);
+bool python_get_stringlist(const char *name, std::vector<std::string> *value);
}