Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

mlview-settings-management.h File Reference

#include <gnome.h>
#include <libxml/tree.h>
#include <libxml/xpath.h>
#include <libxml/xpathInternals.h>
#include "mlview-app-context.h"

Go to the source code of this file.

Data Structures

struct  _MlViewSettingsEntry
struct  _MlViewSettingsEntryHandlers
struct  _MlViewSettingsManager

Typedefs

typedef _MlViewSettingsEntryHandlers MlViewSettingsEntryHandlers
typedef _MlViewSettingsEntry MlViewSettingsEntry
typedef _MlViewSettingsEntryPrivate MlViewSettingsEntryPrivate
typedef void(* NotifySettingsChanged )(MlViewSettingsEntry *a_settings, void *a_user_data)
typedef void(* LoadSettingsFromXMLDocIntoSettingsEntry )(MlViewSettingsEntry *a_settings, xmlDoc *a_xml_doc)
typedef void(* GetSettingsFromSettingsWidget )(MlViewSettingsEntry *a_settings)
typedef void(* SetSettingsToSettingsWidget )(MlViewSettingsEntry *a_settings)
typedef _MlViewSettingsManager MlViewSettingsManager
typedef _MlViewSettingsManagerPrivate MlViewSettingsManagerPrivate

Enumerations

enum  MlViewSettingsType { MLVIEW_EDITOR_SETTINGS = 1, MLVIEW_EDITOR_VALIDATION_SETTINGS, MLVIEW_TREE_EDITOR_SETTINGS, MLVIEW_SETTINGS_ROOT }

Functions

MlViewSettingsEntrymlview_settings_entry_new (gchar *a_name, gpointer a_settings, GtkWidget *a_settings_widget, gpointer a_settings_widget_structure)
 Builds a new settings entry.

void mlview_settings_add_child_entry (MlViewSettingsEntry *a_parent_entry, MlViewSettingsEntry *a_child_entry)
void mlview_settings_add_previous_sibling_entry (MlViewSettingsEntry *a_parent_entry, MlViewSettingsEntry *a_sibling_entry, MlViewSettingsEntry *a_node)
MlViewSettingsEntrymlview_settings_unlink_entry (MlViewSettingsEntry *a_entry)
void mlview_settings_entry_destroy (MlViewSettingsEntry *a_settings_entry)
MlViewSettingsEntryHandlersmlview_settings_entry_get_handlers (MlViewSettingsEntry *a_settings_entry)
void mlview_settings_entry_entry_set_handlers (MlViewSettingsEntry *a_settings_entry, MlViewSettingsEntryHandlers *a_handlers)
gchar * mlview_settings_entry_get_name (MlViewSettingsEntry *a_settings_entry)
void mlview_settings_entry_set_name (MlViewSettingsEntry *a_settings_entry, gchar *a_name)
 Sets the name of the entry to a_name.

gint mlview_settings_entry_get_type (MlViewSettingsEntry *a_settings_entry)
void mlview_settings_entry_set_type (MlViewSettingsEntry *a_settings_entry, MlViewSettingsType a_type)
void * mlview_settings_entry_get_settings (MlViewSettingsEntry *a_settings_entry)
void mlview_settings_entry_set_settings (MlViewSettingsEntry *a_settings_entry, void *a_settings_struct)
 Associates a custom settings struct to this settings entry.

GtkWidget * mlview_settings_entry_get_settings_widget (MlViewSettingsEntry *a_settings_entry)
void * mlview_settings_entry_get_settings_widgets_struct (MlViewSettingsEntry *a_settings_entry)
void mlview_settings_entry_set_handlers (MlViewSettingsEntry *a_settings_entry, MlViewSettingsEntryHandlers *a_handlers)
 Associates the handlers to the settings entry.

MlViewSettingsManagermlview_settings_manager_new (MlViewAppContext *a_app_context)
GnomeDialog * mlview_settings_manager_get_settings_dialog (MlViewSettingsManager *a_manager)
void mlview_settings_manager_edit_settings_interactive (MlViewSettingsManager *a_manager)
 Displays the settings dialog box and allow the user to edit the setting.

gint mlview_settings_manager_install_settings (MlViewSettingsManager *a_settings_manager, MlViewSettingsEntry *a_entry)
 Installs the settings entry into the mlview settings edition management system.

MlViewSettingsEntrymlview_settings_manager_uninstall_settings (MlViewSettingsManager *a_settings_manager, MlViewSettingsEntry *a_entry)
xmlDoc * mlview_settings_manager_load_settings_from_disk (MlViewSettingsManager *a_manager)
 Loads the xml settings file from the personal .mlview dir, and parses it.

void mlview_settings_manager_set_settings_dialog_proportions (MlViewSettingsManager *a_manager, guint a_percentage)
 Sets the proportions of the main GtkHPaned widget of the settings dialog.

gint mlview_settings_manager_create_personal_settings_file (xmlDoc **a_xml_doc)
 Creates the settings.xml file in the personal .mlview directory.

gboolean mlview_settings_manager_personal_settings_file_exists (void)
void mlview_settings_manager_post_settings_install_init (MlViewSettingsManager *a_manager, xmlDoc *a_settings_doc)
 Instructs the settings manager to call settings entries post settings install handler.

void mlview_settings_manager_destroy (MlViewSettingsManager *a_manager)
gint mlview_settings_management_get_settings_xml_nodes (xmlXPathObject **a_xpath_object, gchar *a_xpath_expression, xmlDoc *a_xml_doc)


Typedef Documentation

typedef void(* GetSettingsFromSettingsWidget)(MlViewSettingsEntry *a_settings)
 

Definition at line 49 of file mlview-settings-management.h.

typedef void(* LoadSettingsFromXMLDocIntoSettingsEntry)(MlViewSettingsEntry *a_settings, xmlDoc * a_xml_doc)
 

Definition at line 44 of file mlview-settings-management.h.

typedef struct _MlViewSettingsEntry MlViewSettingsEntry
 

Definition at line 29 of file mlview-settings-management.h.

typedef struct _MlViewSettingsEntryHandlers MlViewSettingsEntryHandlers
 

Definition at line 28 of file mlview-settings-management.h.

typedef struct _MlViewSettingsEntryPrivate MlViewSettingsEntryPrivate
 

Definition at line 30 of file mlview-settings-management.h.

typedef struct _MlViewSettingsManager MlViewSettingsManager
 

Definition at line 128 of file mlview-settings-management.h.

typedef struct _MlViewSettingsManagerPrivate MlViewSettingsManagerPrivate
 

Definition at line 129 of file mlview-settings-management.h.

typedef void(* NotifySettingsChanged)(MlViewSettingsEntry *a_settings, void * a_user_data)
 

Definition at line 38 of file mlview-settings-management.h.

typedef void(* SetSettingsToSettingsWidget)(MlViewSettingsEntry *a_settings)
 

Definition at line 54 of file mlview-settings-management.h.


Enumeration Type Documentation

enum MlViewSettingsType
 

Enumeration values:
MLVIEW_EDITOR_SETTINGS 
MLVIEW_EDITOR_VALIDATION_SETTINGS 
MLVIEW_TREE_EDITOR_SETTINGS 
MLVIEW_SETTINGS_ROOT 

Definition at line 60 of file mlview-settings-management.h.


Function Documentation

void mlview_settings_add_child_entry MlViewSettingsEntry   a_parent_entry,
MlViewSettingsEntry   a_child_entry
 

Parameters:
a_parent_entry 
a_child_entry 

Definition at line 294 of file mlview-settings-management.c.

References _MlViewSettingsEntry::tree_node.

void mlview_settings_add_previous_sibling_entry MlViewSettingsEntry   a_parent_entry,
MlViewSettingsEntry   a_sibling_entry,
MlViewSettingsEntry   a_node
 

Parameters:
a_sibling_entry 
a_parent_entry 
a_node 

Definition at line 312 of file mlview-settings-management.c.

References _MlViewSettingsEntry::tree_node.

void mlview_settings_entry_destroy MlViewSettingsEntry   a_settings_entry
 

Parameters:
a_settings_entry 

Definition at line 350 of file mlview-settings-management.c.

References _MlViewSettingsEntry::tree_node.

void mlview_settings_entry_entry_set_handlers MlViewSettingsEntry   a_settings_entry,
MlViewSettingsEntryHandlers   a_handlers
 

Parameters:
a_handlers 
a_settings_entry 

Definition at line 369 of file mlview-settings-management.c.

References _MlViewSettingsEntryPrivate::handlers, and _MlViewSettingsEntry::private.

MlViewSettingsEntryHandlers* mlview_settings_entry_get_handlers MlViewSettingsEntry   a_settings_entry
 

Parameters:
a_settings_entry 
Returns:
a pointer to the internal handler structure of MlViewSettingsEntry ... so make sure you know what you are

Definition at line 258 of file mlview-settings-management.c.

References _MlViewSettingsEntryPrivate::handlers, and _MlViewSettingsEntry::private.

gchar* mlview_settings_entry_get_name MlViewSettingsEntry   a_settings_entry
 

Parameters:
a_settings_entry  the current instance of MlViewSettings
Returns:
the readable name of the settings entry.

Definition at line 153 of file mlview-settings-management.c.

References _MlViewSettingsEntryPrivate::name, and _MlViewSettingsEntry::private.

void* mlview_settings_entry_get_settings MlViewSettingsEntry   a_settings_entry
 

Parameters:
a_settings_entry  the current instance of MlViewSettingsEntry.
Returns:
the settings struct set to this entry. Can return NULL if a NULL settings has been set or

Definition at line 189 of file mlview-settings-management.c.

References _MlViewSettingsEntry::private, and _MlViewSettingsEntryPrivate::settings.

GtkWidget* mlview_settings_entry_get_settings_widget MlViewSettingsEntry   a_settings_entry
 

Parameters:
a_settings_entry 
Returns:
the widget that will be displayed by the settings manager to edit this settings entry.

Definition at line 224 of file mlview-settings-management.c.

References _MlViewSettingsEntry::private, and _MlViewSettingsEntryPrivate::settings_widget.

void* mlview_settings_entry_get_settings_widgets_struct MlViewSettingsEntry   a_settings_entry
 

Parameters:
a_settings_entry  the current instance of MlViewSettingsEntry.
Returns:
the structure from wich the caller can access the fields of the settings entry widget.

Definition at line 241 of file mlview-settings-management.c.

References _MlViewSettingsEntry::private, and _MlViewSettingsEntryPrivate::settings_widgets_structure.

gint mlview_settings_entry_get_type MlViewSettingsEntry   a_settings_entry
 

MlViewSettingsEntry* mlview_settings_entry_new gchar *    a_name,
gpointer    a_settings_struct,
GtkWidget *    a_settings_widget,
gpointer    a_settings_widget_structure
 

Builds a new settings entry.

Parameters:
a_settings_widget_structure  a custom structure which fields must contains the children widgets of the a_settings_widget if any. *MUST NOT* be freed by the caller. Has the fields of this struct contains *ONLY* fields that are children of a_settings_widget, they will be free when a_settings_widget is free.
param  a_settings_widget the widget that will be shown in the settings dialog, for this settings entry.Must *NOT* be freed by the caller.
a_name  the displayed name of the entry. Must be free be the caller.
a_settings_struct  a points to a pointer to the custom struct that holds the settings. Must be freed by the caller. Once freed, The pointer to the settings custom struct MUST be set to NULL, so that the settings manager knows it is freed.

Definition at line 121 of file mlview-settings-management.c.

References _MlViewSettingsEntryPrivate::handlers, _MlViewSettingsEntryPrivate::name, _MlViewSettingsEntry::private, _MlViewSettingsEntryPrivate::settings, _MlViewSettingsEntryPrivate::settings_widget, _MlViewSettingsEntryPrivate::settings_widgets_structure, and _MlViewSettingsEntry::tree_node.

void mlview_settings_entry_set_handlers MlViewSettingsEntry   a_settings_entry,
MlViewSettingsEntryHandlers   a_handlers
 

Associates the handlers to the settings entry.

Parameters:
a_handlers  the new handlers
a_settings_entry  the current instance of MlViewSettingsEntry.

Definition at line 275 of file mlview-settings-management.c.

References _MlViewSettingsEntryPrivate::handlers, and _MlViewSettingsEntry::private.

void mlview_settings_entry_set_name MlViewSettingsEntry   a_settings_entry,
gchar *    a_name
 

Sets the name of the entry to a_name.

Parameters:
a_name  the name to set. Note that the caller can/must free this pointer.
a_settings_entry  the current instance of MlViewSettingsEntry.

Definition at line 171 of file mlview-settings-management.c.

References _MlViewSettingsEntryPrivate::name, and _MlViewSettingsEntry::private.

void mlview_settings_entry_set_settings MlViewSettingsEntry   a_settings_entry,
void *    a_settings
 

Associates a custom settings struct to this settings entry.

Parameters:
a_settings  the custom data structure the caller wishes to associate to this settings entry. Note that the caller is responsible offreeing this structure but be carefull.
a_settings_entry  the current intance of MlViewSettingsEntry.

Definition at line 207 of file mlview-settings-management.c.

References _MlViewSettingsEntry::private, and _MlViewSettingsEntryPrivate::settings.

void mlview_settings_entry_set_type MlViewSettingsEntry   a_settings_entry,
MlViewSettingsType    a_type
 

gint mlview_settings_management_get_settings_xml_nodes xmlXPathObject **    a_xpath_object,
gchar *    a_xpath_expression,
xmlDoc *    a_xml_doc
 

Definition at line 1175 of file mlview-settings-management.c.

References mlview_settings_management_get_settings_xml_nodes().

Referenced by mlview_settings_management_get_settings_xml_nodes().

gint mlview_settings_manager_create_personal_settings_file xmlDoc **    a_xml_doc
 

Creates the settings.xml file in the personal .mlview directory.

Parameters:
a_xml_doc  the xml doc created. is Set to NULL, if it could not be created or if the file exists already.
a_manager  the current instance of MlViewSettignsManager
Returns:
0 created if everything is ok and -1 if it could not create the file.

Definition at line 673 of file mlview-settings-management.c.

References mlview_file_descriptor_create_file(), mlview_file_descriptor_destroy(), mlview_file_descriptor_new(), and mlview_settings_manager_personal_settings_file_exists().

Referenced by mlview_settings_builder_build_settings().

void mlview_settings_manager_destroy MlViewSettingsManager   a_manager
 

Definition at line 1215 of file mlview-settings-management.c.

References _MlViewSettingsManager::private, _MlViewSettingsManagerPrivate::settings_dialog, _MlViewSettingsManagerPrivate::settings_entries, _MlViewSettingsManagerPrivate::settings_entries_map, and _MlViewSettingsManagerPrivate::settings_xml_doc.

Referenced by mlview_settings_builder_destroy().

void mlview_settings_manager_edit_settings_interactive MlViewSettingsManager   a_manager
 

Displays the settings dialog box and allow the user to edit the setting.

Parameters:
a_manager  the current settings manager.

Definition at line 629 of file mlview-settings-management.c.

References mlview_app_context_set_window_icon(), MLVIEW_SETTINGS_DIALOG_MAIN_PANED_PROPORTION, mlview_settings_manager_get_settings_dialog(), mlview_settings_manager_set_settings_dialog_proportions(), and PRIVATE.

Referenced by mlview_editor_edit_settings_interactive().

GnomeDialog* mlview_settings_manager_get_settings_dialog MlViewSettingsManager   a_manager
 

Parameters:
a_manager  the current settings manager.
Returns:
the

Definition at line 472 of file mlview-settings-management.c.

References _MlViewSettingsManager::private, and _MlViewSettingsManagerPrivate::settings_dialog.

Referenced by mlview_settings_manager_edit_settings_interactive().

gint mlview_settings_manager_install_settings MlViewSettingsManager   a_settings_manager,
MlViewSettingsEntry   a_entry
 

Installs the settings entry into the mlview settings edition management system.

Parameters:
a_entry  the entry to install in the settings dialog.
a_settings_manager  the current instance of MlViewSettingsManager.
Returns:
0 if everythings went ok, -1 if that entry exists already, and -2 if at least one

Definition at line 522 of file mlview-settings-management.c.

References _MlViewSettingsEntryPrivate::name, _MlViewSettingsEntryPrivate::parent_visual_node, _MlViewSettingsEntry::private, _MlViewSettingsManager::private, _MlViewSettingsManagerPrivate::settings_entries, _MlViewSettingsManagerPrivate::settings_entries_map, _MlViewSettingsManagerPrivate::settings_entries_tree, _MlViewSettingsManagerPrivate::settings_notebook, _MlViewSettingsEntryPrivate::settings_widget, and _MlViewSettingsEntry::tree_node.

Referenced by mlview_settings_builder_build_settings().

xmlDoc* mlview_settings_manager_load_settings_from_disk MlViewSettingsManager   a_manager
 

Loads the xml settings file from the personal .mlview dir, and parses it.

Returns:
the xml doc data structure.

Definition at line 716 of file mlview-settings-management.c.

References mlview_settings_manager_personal_settings_file_exists(), _MlViewSettingsManager::private, and _MlViewSettingsManagerPrivate::settings_xml_doc.

Referenced by mlview_settings_builder_build_settings().

MlViewSettingsManager* mlview_settings_manager_new MlViewAppContext   a_app_context
 

Definition at line 413 of file mlview-settings-management.c.

References _MlViewSettingsManagerPrivate::app_context, MLVIEW_SETTINGS_DIALOG_DEFAULT_HEIGHT, MLVIEW_SETTINGS_DIALOG_DEFAULT_WIDTH, _MlViewSettingsManagerPrivate::paned_widget, _MlViewSettingsManager::private, _MlViewSettingsManagerPrivate::settings_dialog, _MlViewSettingsManagerPrivate::settings_entries_map, _MlViewSettingsManagerPrivate::settings_entries_tree, and _MlViewSettingsManagerPrivate::settings_notebook.

gboolean mlview_settings_manager_personal_settings_file_exists void   
 

Returns:
TRUE if the user mlview settings file exists and is writeable.

Definition at line 768 of file mlview-settings-management.c.

References mlview_file_descriptor_destroy(), mlview_file_descriptor_is_writeable(), and mlview_file_descriptor_new().

Referenced by mlview_settings_builder_build_settings(), mlview_settings_manager_create_personal_settings_file(), and mlview_settings_manager_load_settings_from_disk().

void mlview_settings_manager_post_settings_install_init MlViewSettingsManager   a_manager,
xmlDoc *    a_settings_doc
 

Instructs the settings manager to call settings entries post settings install handler.

The handler called is : load_settings_from_xml_doc_into_settings_entry() (See the MlViewSettingsEntryHandlers struct)

Definition at line 796 of file mlview-settings-management.c.

References _MlViewSettingsManager::private, _MlViewSettingsManagerPrivate::settings_entries, _MlViewSettingsManagerPrivate::settings_xml_doc, and _MlViewSettingsEntry::tree_node.

Referenced by mlview_settings_builder_build_settings().

void mlview_settings_manager_set_settings_dialog_proportions MlViewSettingsManager   a_manager,
guint    a_percentage
 

Sets the proportions of the main GtkHPaned widget of the settings dialog.

Parameters:
a_manager  the settings manager we are talking about.
a_percentage  the percentage of the parent widget taken by the firstpartf of the GtkHPaned. Must be less than or equal to 100.

Definition at line 490 of file mlview-settings-management.c.

References _MlViewSettingsManagerPrivate::paned_widget, _MlViewSettingsManager::private, and _MlViewSettingsManagerPrivate::settings_dialog.

Referenced by mlview_settings_manager_edit_settings_interactive().

MlViewSettingsEntry* mlview_settings_manager_uninstall_settings MlViewSettingsManager   a_settings_manager,
MlViewSettingsEntry   a_entry
 

Definition at line 592 of file mlview-settings-management.c.

References _MlViewSettingsManager::private, _MlViewSettingsManagerPrivate::settings_entries, _MlViewSettingsManagerPrivate::settings_entries_map, and _MlViewSettingsManagerPrivate::settings_entries_tree.

MlViewSettingsEntry* mlview_settings_unlink_entry MlViewSettingsEntry   a_entry
 

Parameters:
a_entry 

Definition at line 332 of file mlview-settings-management.c.

References _MlViewSettingsEntry::tree_node.


Generated on Sat Jul 6 09:57:40 2002 for Gnome-MlView by doxygen1.2.16