summaryrefslogtreecommitdiffstats
path: root/superkaramba/src/config_python.h
diff options
context:
space:
mode:
Diffstat (limited to 'superkaramba/src/config_python.h')
-rw-r--r--superkaramba/src/config_python.h138
1 files changed, 138 insertions, 0 deletions
diff --git a/superkaramba/src/config_python.h b/superkaramba/src/config_python.h
new file mode 100644
index 0000000..c22a032
--- /dev/null
+++ b/superkaramba/src/config_python.h
@@ -0,0 +1,138 @@
+/****************************************************************************
+* 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é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