run scripts before initializing screens. kill the globals.py. add the python_get_stringlist.
This commit is contained in:
parent
6d58d84f22
commit
14cf42ff07
5 changed files with 24 additions and 22 deletions
|
@ -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"
|
|
@ -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();
|
||||
|
|
|
@ -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},
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue