From 14cf42ff0780bf58a6b54c9443c87c7402b61faa Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Thu, 2 Jan 2003 21:05:29 +0000 Subject: [PATCH] run scripts before initializing screens. kill the globals.py. add the python_get_stringlist. --- scripts/globals.py | 14 -------------- src/openbox.cc | 11 +++++------ src/openbox_wrap.cc | 6 +++++- src/python.cc | 13 +++++++++++++ src/python.hh | 2 +- 5 files changed, 24 insertions(+), 22 deletions(-) delete mode 100644 scripts/globals.py diff --git a/scripts/globals.py b/scripts/globals.py deleted file mode 100644 index 450ee8b7..00000000 --- a/scripts/globals.py +++ /dev/null @@ -1,14 +0,0 @@ -############################################################################# -### Variables defined for other scripts to use. ### -############################################################################# - -# openbox - pointer to the current Openbox instance -openbox = Openbox_instance() - -# screens - list of all screens in the current openbox instance -screens = [] -for i in range(Openbox_screenCount(openbox)): - screens.append(Openbox_screen(openbox, i)) - - -print "Loaded globals.py" 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 *value) +{ + PyObject *val = PyDict_GetItemString(obdict, const_cast(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 *value); +bool python_get_stringlist(const char *name, std::vector *value); } -- 2.39.2