|
|
|
|
/*
|
|
|
|
|
* misc_python.h - Misc Functions for 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>
|
|
|
|
|
* Copyright (C) 2004,2005 Luke Kenneth Casson Leighton <lkcl@lkcl.net>
|
|
|
|
|
*
|
|
|
|
|
* 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 MISC_PYTHON_H
|
|
|
|
|
#define MISC_PYTHON_H
|
|
|
|
|
|
|
|
|
|
/** @file
|
|
|
|
|
*
|
|
|
|
|
* These are global functions that are used to interpret
|
|
|
|
|
* certain Python calls.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** Misc/acceptDrops
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long acceptDrops(widget)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* Calling this enables your widget to receive Drop events. In other words,
|
|
|
|
|
* the user will be able to drag icons from her desktop and drop them on
|
|
|
|
|
* your widget. The "itemDropped" callback is called as a result with the
|
|
|
|
|
* data about the icon that was dropped on your widget. This allows, for
|
|
|
|
|
* example, icon bars where items are added to the icon bar by Drag and
|
|
|
|
|
* Drop.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_accept_drops(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/execute
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long execute(command)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* This command simply executes a program or command on the system. This is
|
|
|
|
|
* just for convience (IE you could accomplish this directly through python,
|
|
|
|
|
* but sometimes threading problems crop up that way). The only option is a
|
|
|
|
|
* string containing the command to execute.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * string command -- command to execute
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_execute_command(PyObject* self, PyObject* args);
|
|
|
|
|
|
|
|
|
|
/** Misc/executeInteractive
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long executeInteractive(widget, command)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* This command executes a program or command on the system. But it allows
|
|
|
|
|
* you to get any text that the program outputs. Futhermore, it won't freeze
|
|
|
|
|
* up your widget while the command executes.
|
|
|
|
|
*
|
|
|
|
|
* To use it, call executeInteractive with the reference to your widget and
|
|
|
|
|
* an array of command options. The array is simply a list that contains the
|
|
|
|
|
* command as the first entry, and each option as a seperate list entry.
|
|
|
|
|
* Make sure to catch the returning value from executeInteractive(); it will
|
|
|
|
|
* be the identifier (process number) for the command.
|
|
|
|
|
*
|
|
|
|
|
* Output from the command triggers commandOutput callback. Among other items
|
|
|
|
|
* commandOutput gives the process number of the command that gave the output.
|
|
|
|
|
* This allows you to identify the output when running more than one command
|
|
|
|
|
* at a time.
|
|
|
|
|
*
|
|
|
|
|
* Example:
|
|
|
|
|
* To run the command "ls -la *.zip"
|
|
|
|
|
*
|
|
|
|
|
* myCommand = ["ls", "-la", "*.zip"]
|
|
|
|
|
* procID = karamba.executeInteractive(widget, myCommand)
|
|
|
|
|
*
|
|
|
|
|
* To catch the output, screen commandOutput output for procID.
|
|
|
|
|
*
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * list command -- command to execute
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* identification number of the executed command process
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_execute_command_interactive(PyObject* self, PyObject* args);
|
|
|
|
|
|
|
|
|
|
/** Misc/run
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long run(name, command, icon, list_of_args)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* This command simply executes a program or command on the system.
|
|
|
|
|
* The difference between run and execute is that run takes arguments,
|
|
|
|
|
* and the name of the icon to be displayed.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * string name -- name to be displayed
|
|
|
|
|
* * string command -- command to execute
|
|
|
|
|
* * string icon -- name of icon to be displayed
|
|
|
|
|
* * string list_of_args -- arguments to be passed to the command
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_run_command(PyObject* self, PyObject* args);
|
|
|
|
|
|
|
|
|
|
/** Misc/attachClickArea
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long attachClickArea(widget, meter, lB, mB, rB)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* It is possible to attach a clickarea to a meter (image or text field),
|
|
|
|
|
* which is moved and resized correctly if the meter is moved or resized.
|
|
|
|
|
*
|
|
|
|
|
* There is also a callback meterClicked(widget, meter, button) which is
|
|
|
|
|
* called whenever a meter is clicked (if something is attached to it).
|
|
|
|
|
* Given an Image or a TextLabel, this call makes it clickable. When a mouse
|
|
|
|
|
* click is detected, the callback meterClicked is called.
|
|
|
|
|
*
|
|
|
|
|
* lB, mB, and rB are strings that specify what command is executed when
|
|
|
|
|
* this meter is clicked with the left mouse button, middle mouse button,
|
|
|
|
|
* and right mouse button respectively. If given, the appropriate command is
|
|
|
|
|
* executed when the mouse click is received.
|
|
|
|
|
*
|
|
|
|
|
* The keyword arguments are all optional. If command is an empty string
|
|
|
|
|
* nothing is executed.
|
|
|
|
|
*
|
|
|
|
|
* For now the command given to RightButton has obviosly no effect (because
|
|
|
|
|
* that brings up the SuperKaramba menu).
|
|
|
|
|
*
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * long meter -- pointer to meter
|
|
|
|
|
* * string lB -- command to left mouse button
|
|
|
|
|
* * string mB -- command to middle mouse button
|
|
|
|
|
* * string rB -- command to right mouse button
|
|
|
|
|
*
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_attach_clickArea(PyObject* self, PyObject* args, PyObject* dict);
|
|
|
|
|
|
|
|
|
|
/** Misc/toggleShowDesktop
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long toggleShowDesktop(widget)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* This shows/hides the current desktop just like the Show Desktop button on
|
|
|
|
|
* kicker. Basically, it minimizes all the windows on the current desktop.
|
|
|
|
|
* Call it once to show the desktop and again to hide it.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_toggle_show_desktop(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/getThemePath
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* string getThemePath(widget)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* Returns a string containing the directory where your theme was loaded
|
|
|
|
|
* from. If you are running the theme from (compressed) skz (zip) file, the
|
|
|
|
|
* return value will be the path of that file, including the file name.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* path to theme
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_get_theme_path(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/language
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* string language(widget)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* Returns a string containing default language of a translation file.
|
|
|
|
|
* Please, see userLanguage to obtain the preferred KDE interface language.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* default language or empty string if no translation files found.
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_language(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/userLanguage
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* string userLanguage(widget)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* Returns a string containing the language name abbreviation for the
|
|
|
|
|
* language user chose for the KDE session in Region & Language settings.
|
|
|
|
|
* Implemented in version 0.40. Parse ~/.trinity/share/config/kdeglobals
|
|
|
|
|
* for 'Language' directly for earlier clients.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* user language or empty string.
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_userLanguage(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** Misc/userLanguages
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* string userLanguages(widget)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* Returns a list (array) containing the language name abbreviations for the
|
|
|
|
|
* preferred interface languages user chose for KDE session in Region &
|
|
|
|
|
* Language settings.
|
|
|
|
|
* Having the whole array of preferred languages available is important for
|
|
|
|
|
* cases when you cannot provide interface translation for the 1st preferred
|
|
|
|
|
* language, but can for consecutive languages.
|
|
|
|
|
* (Implemented in version 0.42.)
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* list (array) with user languages in the order of preference.
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_userLanguages(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** Misc/readThemeFile
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* string readThemeFile(widget, file)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* Returns a string containing the contents of the file.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * string file -- name of the file to read
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* file contents
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_read_theme_file(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/createClickArea
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long createClickArea(widget, x, y, w, h, cmd_to_run)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* This creates a clickable area at x,y with width and height w,h. When
|
|
|
|
|
* this area is clicked, cmd_to_run will be executed. The mouse will change
|
|
|
|
|
* to the clickable icon while hovering over this area.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * long x -- x coordinate
|
|
|
|
|
* * long y -- y coordinate
|
|
|
|
|
* * long w -- width
|
|
|
|
|
* * long h -- height
|
|
|
|
|
* * string cmd_to_run -- command to be run
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* a handle to the click area
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_create_click_area(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/openTheme
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long openTheme(theme)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* Opens new theme.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * string theme -- path to new theme
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_open_theme(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/reloadTheme
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long reloadTheme(theme)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* Reloads current theme.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * string theme -- path to new theme
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_reload_theme(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/getNumberOfDesktop
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long getNumberOfDesktop(widget)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* Returns number fo desktops
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* number of desktops
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_get_number_of_desktops(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/translateAll
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long translateAll(widget, relative_x, relative_y)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* Moves all widgets within a theme in a particular direction relative to
|
|
|
|
|
* the previous spot without moving the parent theme widget.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * long translate_x -- move horizontally
|
|
|
|
|
* * long translate_y -- move vertically
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_translate_all(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/show
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* string show(widget)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* show theme
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_show(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/hide
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* string hide(widget)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* hide theme
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_hide(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/getIp
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* string getIp(widget, interface_name)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* get current IP address of the interface_name interface.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * string interface_name -- name of the interface to get ip
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* ip address
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_get_ip(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/changeInterval
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long changeInterval(widget, interval)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* Calling this changes your widget's refresh rate (ms)
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * int interval -- interval, in ms
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_change_interval(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/createServiceClickArea
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long createServiceClickArea(widget, x, y, w, h, name_of_command, cmd_to_run, icon_to_display)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* This creates a clickable area at x,y with width and height w,h. When
|
|
|
|
|
* this area is clicked, cmd_to_run will be executed. The mouse will change
|
|
|
|
|
* to the clickable icon when over this area. For more information on
|
|
|
|
|
* the difference between createClickArea and createServiceClickArea,
|
|
|
|
|
* see the KDE documentation about KService, and the difference
|
|
|
|
|
* between KRun::run and KRun::runCommand.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * long x -- x coordinate
|
|
|
|
|
* * long y -- y coordinate
|
|
|
|
|
* * long w -- width
|
|
|
|
|
* * long h -- height
|
|
|
|
|
* * string name_of_command -- name to be displayed
|
|
|
|
|
* * string cmd_to_run -- command to be run
|
|
|
|
|
* * string icon_to_display -- name of icon to be displayed
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* a handle to the click area
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_create_service_click_area(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/removeClickArea
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long removeClickArea(widget, clickarea)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* This function deletes a clickable area.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * long clickarea -- handle to the click area
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_remove_click_area(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** Misc/getPrettyThemeName
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* string getPrettyThemeName(theme)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* When a theme is created with openNamedTheme, there is an
|
|
|
|
|
* option to give the theme an alternative name.
|
|
|
|
|
* This is useful if you open several widgets from the same theme:
|
|
|
|
|
* you need to give them unique names in order to contact them
|
|
|
|
|
* (for example, with callTheme or with setIncomingData)
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * string theme -- path to the theme
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* the pretty name of the theme
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_get_pretty_name(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/openNamedTheme
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long openNamedTheme(theme, pretty_name, is_sub_theme)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* Opens a new theme, giving it a pretty (alternative and by your
|
|
|
|
|
* own choice _unique_) name.
|
|
|
|
|
* If you do not want the theme to be loaded when superkaramba is
|
|
|
|
|
* first started up (but instead want it to only be opened by
|
|
|
|
|
* this function call) then set is_sub_theme to 1.
|
|
|
|
|
* Themes opened with openNamedTheme will be unique. If a theme
|
|
|
|
|
* with the same pretty name already exists, openNamedTheme will
|
|
|
|
|
* have no effect. If you want duplicate themes (and a bit of a
|
|
|
|
|
* mess), use openTheme, instead.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * string theme -- path to new theme
|
|
|
|
|
* * string pretty_name -- the name to be associated with the new widget
|
|
|
|
|
* * long is_sub_theme -- sets persistence (save state) of the theme
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* a handle to the widget created
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_open_named_theme(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/callTheme
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long callTheme(widget, theme, info)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* Sends a string to the theme identified by the pretty name.
|
|
|
|
|
* If you need to pass complex arguments (dictionaries, lists), use python
|
|
|
|
|
* "repr" and "eval" functions to marshall and unmarshall the data structure.
|
|
|
|
|
* (themeNotify Will be called in the target theme when message is received)
|
|
|
|
|
*
|
|
|
|
|
* Note: As a bug/feature of SuperKaramba version 0.40, multiple instances of
|
|
|
|
|
* the same theme share global variables. If you want to communicate to other
|
|
|
|
|
* instances of the same theme, just communicate through global variables.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * string theme -- pretty name of the theme to be called
|
|
|
|
|
* * string info -- a string containing the info to be passed to the theme
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_call_theme(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/setIncomingData
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long setIncomingData(widget, theme, info)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* Contacts a theme - identified by the pretty name - and stores a string
|
|
|
|
|
* to be associated with the remote theme. The difference between
|
|
|
|
|
* setIncomingData and callTheme is that the theme is not notified
|
|
|
|
|
* by setIncomingData that the data has arrived. Previous information,
|
|
|
|
|
* if any, is overwritten. Use getIncomingData to retrieve the last
|
|
|
|
|
* stored information.
|
|
|
|
|
* setIncomingData is not very sophisticated, and could benefit from
|
|
|
|
|
* having info passed to it put into a queue, instead of being overwritten.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * string theme -- pretty name of theme the information is passed to.
|
|
|
|
|
* * string info -- a string containing the info to be passed to the theme
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_set_incoming_data(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/getIncomingData
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long getIncomingData(widget)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* Obtains the last data received by any other theme that set the
|
|
|
|
|
* "incoming data" of this theme. This isn't particularly sophisticated
|
|
|
|
|
* and could benefit from the data being placed in an FIFO queue instead.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* string containing last information received from setIncomingData
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_get_incoming_data(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/getUpdateTime
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long getUpdateTime(widget)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* returns the last stored update time. Intended for use
|
|
|
|
|
* so that the next refresh interval can work out how long ago
|
|
|
|
|
* the mouse was last moved over the widget.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* last stored update time (from setUpdateTime)
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_get_update_time(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/setWantRightButton
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long setWantRightButton(widget, want_receive_right_button)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* There's a management menu for SuperKaramba themes which
|
|
|
|
|
* allows themes to be loaded, closed, moved to other
|
|
|
|
|
* screens. Not all themes will want this management
|
|
|
|
|
* interface. call karamba.wantRightButton(widget, 1)
|
|
|
|
|
* if you want to receive MouseUpdate button notifications.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * long want_receive_right_button -- whether the widget will receive right clicks
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_want_right_button(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/setWantMeterWheelEvent
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long setWantMeterWheelEvent(widget, want_receive_wheel_event)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* Enabling this allows themes to receive a wheel event when
|
|
|
|
|
* the wheel is turned over a meter.
|
|
|
|
|
* This function is available after version 0.42.
|
|
|
|
|
* This behaviour is default in SuperKaramba 0.50 and later,
|
|
|
|
|
* so this function will be not available after the 0.50 version.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * long want_receive_wheel_event -- whether the theme will receive mouse wheel events
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_want_wheel_event(PyObject *, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/managementPopup
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long managementPopup(widget)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* There's a management menu for SuperKaramba themes which
|
|
|
|
|
* allows themes to be loaded, closed, moved to other
|
|
|
|
|
* screens. If you want this popup menu to appear, call
|
|
|
|
|
* this function.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_management_popup(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
/** Misc/setUpdateTime
|
|
|
|
|
*
|
|
|
|
|
* SYNOPSIS
|
|
|
|
|
* long getUpdateTime(widget, updated_time)
|
|
|
|
|
* DESCRIPTION
|
|
|
|
|
* returns the last stored update time. intended for use
|
|
|
|
|
* so that the next refresh interval can work out how long ago
|
|
|
|
|
* the mouse was last moved over the widget.
|
|
|
|
|
* ARGUMENTS
|
|
|
|
|
* * long widget -- karamba
|
|
|
|
|
* * long updated_time -- the update time to be associated with the widget
|
|
|
|
|
* RETURN VALUE
|
|
|
|
|
* 1 if successful
|
|
|
|
|
*/
|
|
|
|
|
PyObject* py_set_update_time(PyObject *self, PyObject *args);
|
|
|
|
|
|
|
|
|
|
#endif /* MISC_PYTHON_H */
|
|
|
|
|
|