|
|
|
|
/****************************************************************************
|
|
|
|
|
* config_python.h - Functions for config python api
|
|
|
|
|
*
|
|
|
|
|
* Copyright (C) 2003 Hans Karlsson <karlsson.h@home.se>
|
|
|
|
|
* Copyright (C) 2003-2004 Adam Geitgey <adam@rootnode.org>
|
|
|
|
|
* Copyright (c) 2004 Petri Damst<EFBFBD>n <damu@iki.fi>
|
|
|
|
|
*
|
|
|
|
|
* This file is part of SuperKaramba.
|
|
|
|
|
*
|
|
|
|
|
* SuperKaramba is free software; you can redistribute it and/or modify
|
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
|
|
|
* (at your option) any later version.
|
|
|
|
|
*
|
|
|
|
|
* SuperKaramba is distributed in the hope that it will be useful,
|
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
|
*
|
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
|
* along with SuperKaramba; if not, write to the Free Software
|
|
|
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
|
****************************************************************************/
|
|
|
|
|
|
|
|
|
|
#ifndef CONFIG_PYTHON_H
|
|
|
|
|
#define CONFIG_PYTHON_H
|
|
|
|
|
|
|
|
|
|
/** Config/addMenuConfigOption
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long addMenuConfigOption(widget, key, name)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* SuperKaramba supports a simplistic configuration pop-up menu. This menu
|
|
|
|
|
* appears when you right-click on a widget and choose Configure Theme.
|
|
|
|
|
* Basically, it allows you to have check-able entrys in the menu to allow
|
|
|
|
|
* the user to enable or disable features in your theme.
|
|
|
|
|
*
|
|
|
|
|
* Before you use any configuration menu stuff, you NEED to add a new
|
|
|
|
|
* callback to your script:
|
|
|
|
|
*
|
|
|
|
|
* def menuOptionChanged(widget, key, value):
|
|
|
|
|
*
|
|
|
|
|
* This will get called whenever a config menu option is changed. Now you
|
|
|
|
|
* can add items to the config menu:
|
|
|
|
|
*
|
|
|
|
|
* addMenuConfigOption(widget, String key, String name)
|
|
|
|
|
*
|
|
|
|
|
* Key is the name of a key value where the value will be saved
|
|
|
|
|
* automatically into the widget's config file. Name is the actual text that
|
|
|
|
|
* will show up in the config menu.
|
|
|
|
|
*
|
|
|
|
|
* For example, I could allow the user to enable or disable a clock showing
|
|
|
|
|
* up in my theme:
|
|
|
|
|
*
|
|
|
|
|
* karamba.addMenuConfigOption(widget, "showclock", "Display a clock")
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * string key -- key for menu item
|
|
|
|
|
* * string name -- name of the graph to get
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_add_menu_config_option(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Config/setMenuConfigOption
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long setMenuConfigOption(widget, key, value)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* This sets whether or not the given option is checked in the theme's
|
|
|
|
|
* Configure Theme menu. Value should be 0 if key should not be checked and
|
|
|
|
|
* 1 if key should be checked.
|
|
|
|
|
*
|
|
|
|
|
* See addMenuConfigOption for a more detailed explanation.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * string key -- key for menu item
|
|
|
|
|
* * int value -- 1 if checked
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_set_menu_config_option(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Config/readMenuConfigOption
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long readMenuConfigOption(widget, key)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* This returns whether or not the given option is checked in the theme's
|
|
|
|
|
* Configure Theme menu.
|
|
|
|
|
*
|
|
|
|
|
* See addMenuConfigOption for a more detailed explanation.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * string key -- key for menu item
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 0 is returned if it is not checked and 1 is returned if it is.
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_read_menu_config_option(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Config/writeConfigEntry
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long writeConfigEntry(widget, key, value)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* SuperKaramba automatically supports configuration files for each theme.
|
|
|
|
|
* These files will be saved in /your/home/dir/.superkaramba/ and will be
|
|
|
|
|
* named themenamerc where themename is the name of the theme.
|
|
|
|
|
*
|
|
|
|
|
* This function writes an entry into the config file with the given key and
|
|
|
|
|
* value.
|
|
|
|
|
*
|
|
|
|
|
* For example, to save my favorite color, I would do
|
|
|
|
|
* karamba.writeConfigEntry(widget, "FavColor", "Red")
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * string key -- key for config item
|
|
|
|
|
* * string value -- config value
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_write_config_entry(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Config/readConfigEntry
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* string|long readConfigEntry(widget, key, value)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* This function reads an entry from the config file with the given key.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * string key -- key for config item
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* config value for key
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_read_config_entry(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
#endif // CONFIG_PYTHON_H
|