![]() |
![]() |
![]() |
Anjuta Developers Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy |
#include <libanjuta/anjuta-preferences.h> enum AnjutaPropertyObjectType; enum AnjutaPropertyDataType; AnjutaProperty; GtkWidget* anjuta_property_get_widget (AnjutaProperty *prop); AnjutaPreferencesPriv; AnjutaPreferences; gboolean (*AnjutaPreferencesCallback) (AnjutaPreferences *pr, const gchar *key, gpointer data); AnjutaPreferences * anjuta_preferences_new (AnjutaPluginManager *plugin_manager); void anjuta_preferences_add_page (AnjutaPreferences *pr, GladeXML *gxml, const gchar *glade_widget_name, const gchar *title, const gchar *icon_filename); void anjuta_preferences_remove_page (AnjutaPreferences *pr, const gchar *page_name); void anjuta_preferences_register_all_properties_from_glade_xml (AnjutaPreferences *pr, GladeXML *gxml, GtkWidget *parent); gboolean anjuta_preferences_register_property_from_string (AnjutaPreferences *pr, GtkWidget *object, const gchar *property_desc); gboolean anjuta_preferences_register_property_raw (AnjutaPreferences *pr, GtkWidget *object, const gchar *key, const gchar *default_value, guint flags, AnjutaPropertyObjectType object_type, AnjutaPropertyDataType data_type); gboolean anjuta_preferences_register_property_custom (AnjutaPreferences *pr, GtkWidget *object, const gchar *key, const gchar *default_value, AnjutaPropertyDataType data_type, guint flags, void (set_propertyAnjutaProperty *prop, const gchar *value) (), gchar* (get_propertyAnjutaProperty *) ()); void anjuta_preferences_reset_defaults (AnjutaPreferences *pr); void anjuta_preferences_foreach (AnjutaPreferences *pr, AnjutaPreferencesCallback callback, gpointer data); void anjuta_preferences_sync_to_session (AnjutaPreferences *pr); void anjuta_preferences_set (AnjutaPreferences *pr, const gchar *key, const gchar *value); void anjuta_preferences_set_int (AnjutaPreferences *pr, const gchar *key, const gint value); gchar * anjuta_preferences_get (AnjutaPreferences *pr, const gchar *key); gint anjuta_preferences_get_int (AnjutaPreferences *pr, const gchar *key); gint anjuta_preferences_get_int_with_default (AnjutaPreferences *pr, const gchar *key, gint default_value); gchar * anjuta_preferences_default_get (AnjutaPreferences *pr, const gchar *key); gint anjuta_preferences_default_get_int (AnjutaPreferences *pr, const gchar *key); GtkWidget * anjuta_preferences_get_dialog (AnjutaPreferences *pr); gboolean anjuta_preferences_is_dialog_created (AnjutaPreferences *pr); void anjuta_preferences_notify_remove (AnjutaPreferences *pr, guint notify_id); const gchar* anjuta_preferences_get_prefix (AnjutaPreferences *pr);
AnjutaPreferences is a way to let plugins register their preferences. There are mainly two ways a plugin could register its preferences in Anjuta.
First is to not use AnjutaPreferences at all. Simply register a
preferences page in AnjutaPreferencesDialog using the function
anjuta_preferences_dialog_add_page()
. The plugin should take
care of loading, saving and widgets synchronization of the
preferences values. It is particularly useful if the plugin
uses gconf system for its preferences. Also no "changed"
signal will be emitted from it.
Second is to use anjuta_preferences_add_page()
, which will
automatically register the preferences keys and values from
a glade xml file. The glade xml file contains a preferences
page of the plugin. The widget names in the page are
given in a particular way (see anjuta_preferences_add_page()
) to
let it know property key details. Loading, saving and
widget synchronization are automatically done. "changed" signal is
emitted when a preference is changed.
anjuta_preferences_register_all_properties_from_glade_xml()
only registers
the preferences propery keys for automatic loading, saving and widget
syncrhronization, but does not add the page in preferences dialog. It
is useful if the plugin wants to show the preferences page somewhere else.
anjuta_preferences_register_property_from_string()
is similar to
anjuta_preferences_register_all_properties_from_glade_xml()
, but it only
registers one property, the detail of which is given in its arguments.
anjuta_preferences_register_property_custom()
is used to register a
property that uses a widget which is not supported by AnjutaPreferences.
typedef enum { ANJUTA_PROPERTY_OBJECT_TYPE_TOGGLE, ANJUTA_PROPERTY_OBJECT_TYPE_SPIN, ANJUTA_PROPERTY_OBJECT_TYPE_ENTRY, ANJUTA_PROPERTY_OBJECT_TYPE_COMBO, ANJUTA_PROPERTY_OBJECT_TYPE_TEXT, ANJUTA_PROPERTY_OBJECT_TYPE_COLOR, ANJUTA_PROPERTY_OBJECT_TYPE_FONT, ANJUTA_PROPERTY_OBJECT_TYPE_FILE, ANJUTA_PROPERTY_OBJECT_TYPE_FOLDER } AnjutaPropertyObjectType;
typedef enum { ANJUTA_PROPERTY_DATA_TYPE_BOOL, ANJUTA_PROPERTY_DATA_TYPE_INT, ANJUTA_PROPERTY_DATA_TYPE_TEXT, ANJUTA_PROPERTY_DATA_TYPE_COLOR, ANJUTA_PROPERTY_DATA_TYPE_FONT } AnjutaPropertyDataType;
GtkWidget* anjuta_property_get_widget (AnjutaProperty *prop);
Gets the widget associated with the property.
|
an AnjutaProperty reference |
Returns : |
a GtkWidget object associated with the property. |
gboolean (*AnjutaPreferencesCallback) (AnjutaPreferences *pr, const gchar *key, gpointer data);
|
|
|
|
|
|
Returns : |
AnjutaPreferences * anjuta_preferences_new (AnjutaPluginManager *plugin_manager);
Creates a new AnjutaPreferences object
|
|
Returns : |
A AnjutaPreferences object. |
void anjuta_preferences_add_page (AnjutaPreferences *pr, GladeXML *gxml, const gchar *glade_widget_name, const gchar *title, const gchar *icon_filename);
Add a page to the preferences sytem. builder is the GtkBuilder object of the dialog containing the page widget. The dialog will contain the layout of the preferences widgets. The widgets which are preference widgets (e.g. toggle button) should have widget names of the form:
preferences_OBJECTTYPE:DATATYPE:DEFAULT:FLAGS:PROPERTYKEY where, OBJECTTYPE is 'toggle', 'spin', 'entry', 'text', 'color', 'font' or 'file' . DATATYPE is 'bool', 'int', 'float', 'text', 'color' or 'font'. DEFAULT is the default value (in the appropriate format). The format for color is 'XXXXXX' representing RGB value and for font, it is the pango font description. FLAGS is any flag associated with the property. Currently it has only two values -- 0 and 1. For normal preference property which is saved/retrieved globally, the flag = 0. For preference property which is also saved/retrieved along with the project, the flag = 1. PROPERTYKEY is the property key. e.g - 'tab.size'.
All widgets having the above names in the gxml tree will be registered and will become part of auto saving/loading. For example, refer to anjuta preferences dialogs and study the widget names.
|
a AnjutaPreferences object |
|
|
|
|
|
|
|
File name (of the form filename.png) of the icon representing the preference page. |
void anjuta_preferences_remove_page (AnjutaPreferences *pr, const gchar *page_name);
|
|
|
void anjuta_preferences_register_all_properties_from_glade_xml (AnjutaPreferences *pr, GladeXML *gxml, GtkWidget *parent);
This will register all the properties names of the format described above without considering the UI. Useful if you have the widgets shown elsewhere but you want them to be part of preferences system.
|
a AnjutaPreferences Object |
|
GladeXML object containing the properties widgets. |
|
Parent widget in the gxml object |
gboolean anjuta_preferences_register_property_from_string (AnjutaPreferences *pr, GtkWidget *object, const gchar *property_desc);
This registers only one widget. The widget could be shown elsewhere. the property_description should be of the form described before.
|
a AnjutaPreferences object |
|
Widget to register |
|
Property description (see anjuta_preferences_add_page() )
|
Returns : |
TRUE if sucessful. |
gboolean anjuta_preferences_register_property_raw (AnjutaPreferences *pr, GtkWidget *object, const gchar *key, const gchar *default_value, guint flags, AnjutaPropertyObjectType object_type, AnjutaPropertyDataType data_type);
This also registers only one widget, but instead of supplying the property parameters as a single parsable string (as done in previous method), it takes them separately.
|
a AnjutaPreferences object |
|
Widget to register |
|
Property key |
|
Default value of the key |
|
Flags |
|
Object type of widget |
|
Data type of the property |
Returns : |
TRUE if sucessful. |
gboolean anjuta_preferences_register_property_custom (AnjutaPreferences *pr, GtkWidget *object, const gchar *key, const gchar *default_value, AnjutaPropertyDataType data_type, guint flags, void (set_propertyAnjutaProperty *prop, const gchar *value) (), gchar* (get_propertyAnjutaProperty *) ());
This is meant for complex widgets which can not be set/get with the standard object set/get methods. Custom set/get methods are passed for the property to set/get the value to/from the widget.
|
a AnjutaPreferences object. |
|
Object to register. |
|
Property key. |
|
Default value of the key. |
|
property data type. |
|
Flags |
|
Set property to widget callback. |
|
Get property from widget callback. |
Returns : |
TRUE if sucessful. |
void anjuta_preferences_reset_defaults (AnjutaPreferences *pr);
Resets the default values into the keys
|
a AnjutaPreferences object. |
void anjuta_preferences_foreach (AnjutaPreferences *pr, AnjutaPreferencesCallback callback, gpointer data);
Calls callback
function for each of the registered property keys. Keys
with matching filter
flags are left out of the loop. If filter
is
ANJUTA_PREFERENCES_FILTER_NONE, all properties are selected for the loop.
|
A AnjutaPreferences object. |
|
User callback function. |
|
User data passed to callback
|
void anjuta_preferences_sync_to_session (AnjutaPreferences *pr);
|
void anjuta_preferences_set (AnjutaPreferences *pr, const gchar *key, const gchar *value);
Sets the value of key
in current session.
|
A AnjutaPreferences object. |
|
Property key. |
|
Value of the key. |
void anjuta_preferences_set_int (AnjutaPreferences *pr, const gchar *key, const gint value);
Sets the value of key
in current session.
|
A AnjutaPreferences object. |
|
Property key. |
|
Integer value of the key. |
gchar * anjuta_preferences_get (AnjutaPreferences *pr, const gchar *key);
Gets the value of key
as string. Returned string should be g_freed()
when not
required.
|
A AnjutaPreferences object |
|
Property key |
Returns : |
Key value as string or NULL if the key is not defined. |
gint anjuta_preferences_get_int (AnjutaPreferences *pr, const gchar *key);
Gets the value of key
as integer.
|
A AnjutaPreferences object |
|
Property key |
Returns : |
Key value as boolean or FALSE if the key is not defined. |
gint anjuta_preferences_get_int_with_default (AnjutaPreferences *pr, const gchar *key, gint default_value);
Gets the value of key
as integer.
|
A AnjutaPreferences object |
|
Property key |
|
Default value to return if the key is not defined. |
Returns : |
Key value as integer or default_value if the
key is not defined.
|
gchar * anjuta_preferences_default_get (AnjutaPreferences *pr, const gchar *key);
Gets the default value of key
as string. The default value of the key
is the value defined in System defaults (generally installed during
program installation). Returned value must be g_freed()
when not required.
|
A AnjutaPreferences object |
|
Property key |
Returns : |
Default key value as string or NULL if not defined. |
gint anjuta_preferences_default_get_int (AnjutaPreferences *pr, const gchar *key);
Gets the default value of key
as integer. The default value of the key
is the value defined in System defaults (generally installed during
program installation).
|
A AnjutaPreferences object |
|
Property key |
Returns : |
Default key value as integer or 0 if the key is not defined. |
GtkWidget * anjuta_preferences_get_dialog (AnjutaPreferences *pr);
|
|
Returns : |
gboolean anjuta_preferences_is_dialog_created (AnjutaPreferences *pr);
|
|
Returns : |
void anjuta_preferences_notify_remove (AnjutaPreferences *pr, guint notify_id);
Removes the notify callback added with anjuta_preferences_notify_add()
.
|
A AnjutaPreferences object. |
|
Notify ID returned by anjuta_preferences_notify_add() .
|
const gchar* anjuta_preferences_get_prefix (AnjutaPreferences *pr);
Returns the gconf key prefix used by anjuta to store its preferences.
|
A AnjutaPreferences object. |
Returns : |
preferences keys prefix. |