[dia] persistance: style cleanups
- From: Zander <zbrown src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [dia] persistance: style cleanups
- Date: Fri, 1 May 2020 02:36:14 +0000 (UTC)
commit 05c64fa2ffc1725bb90781d012bc5389bbf7fc5d
Author: Zander Brown <zbrown gnome org>
Date: Fri May 1 03:07:56 2020 +0100
persistance: style cleanups
Update docs
lib/persistence.c | 791 ++++++++++++++++++++++++++++++++++++------------------
lib/persistence.h | 107 ++++----
2 files changed, 585 insertions(+), 313 deletions(-)
---
diff --git a/lib/persistence.c b/lib/persistence.c
index e0c7f86c..fe60a1ad 100644
--- a/lib/persistence.c
+++ b/lib/persistence.c
@@ -27,9 +27,6 @@
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
#include "persistence.h"
#include "dia_dirs.h"
@@ -42,20 +39,22 @@
#include <gtk/gtk.h>
#include <libxml/tree.h>
-/* private data structures */
-/*!
- * \brief A persistently stored list of strings.
+
+/**
+ * PersistentList:
+ *
+ * A persistently stored list of strings.
*
* The persitent list contains no duplicates.
- * If sorted is FALSE, any string added will be placed in front of the list
+ * If sorted is %FALSE, any string added will be placed in front of the list
* (possibly removing it from further down), thus making it an LRU list.
* The list is not tied to any particular GTK widget, as it has uses
* in a number of different places (though mostly in menus)
*/
struct _PersistentList {
- const gchar *role;
+ const char *role;
gboolean sorted;
- gint max_members;
+ int max_members;
GList *glist;
GList *listeners;
};
@@ -68,18 +67,21 @@ typedef struct {
GtkWindow *window;
} PersistentWindow;
-/* Hash table from window role (string) to PersistentWindow structure.
- */
-static GHashTable *persistent_windows, *persistent_entrystrings, *persistent_lists;
-static GHashTable *persistent_integers, *persistent_reals;
-static GHashTable *persistent_booleans, *persistent_strings;
+/* string->value */
+static GHashTable *persistent_windows;
+static GHashTable *persistent_entrystrings;
+static GHashTable *persistent_lists;
+static GHashTable *persistent_integers;
+static GHashTable *persistent_reals;
+static GHashTable *persistent_booleans;
+static GHashTable *persistent_strings;
static GHashTable *persistent_colors;
static GHashTable *
_dia_hash_table_str_any_new (void)
{
/* the key is const, the value gets freed */
- return g_hash_table_new_full(g_str_hash, g_str_equal, NULL, g_free);
+ return g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_free);
}
/* *********************** LOADING FUNCTIONS *********************** */
@@ -275,7 +277,7 @@ persistence_set_type_handler (gchar *name, PersistenceLoadFunc func)
static void
-persistence_init(void)
+persistence_init (void)
{
persistence_set_type_handler ("window", persistence_load_window);
persistence_set_type_handler ("entrystring", persistence_load_entrystring);
@@ -356,8 +358,7 @@ persistence_load (void)
/* *********************** SAVING FUNCTIONS *********************** */
-typedef struct
-{
+typedef struct {
xmlNodePtr tree;
DiaContext *ctx;
} PersitenceUserData;
@@ -531,52 +532,67 @@ persistence_save (void)
/* ********* WINDOWS ********* */
-/* Returns the name used for a window in persistence.
+/*
+ * Returns the name used for a window in persistence.
*/
-static const gchar *
-persistence_get_window_name(GtkWindow *window)
+static const char *
+persistence_get_window_name (GtkWindow *window)
{
- const gchar *name = gtk_window_get_role(window);
+ const char *name = gtk_window_get_role (window);
+
if (name == NULL) {
- g_warning("Internal: Window %s has no role.", gtk_window_get_title(window));
+ g_warning ("Internal: Window %s has no role.",
+ gtk_window_get_title (window));
return NULL;
}
+
return name;
}
+
static void
-persistence_store_window_info(GtkWindow *window, PersistentWindow *wininfo,
- gboolean isclosed)
+persistence_store_window_info (GtkWindow *window,
+ PersistentWindow *wininfo,
+ gboolean isclosed)
{
/* Drawable means visible & mapped, what we usually think of as open. */
if (!isclosed) {
- gtk_window_get_position(window, &wininfo->x, &wininfo->y);
- gtk_window_get_size(window, &wininfo->width, &wininfo->height);
+ gtk_window_get_position (window, &wininfo->x, &wininfo->y);
+ gtk_window_get_size (window, &wininfo->width, &wininfo->height);
wininfo->isopen = TRUE;
} else {
wininfo->isopen = FALSE;
}
}
-/*!
- * \brief Update the persistent information for a window.
- * @param window The GTK window object being stored.
- * @param isclosed Whether the window should be stored as closed or not.
+
+/**
+ * persistence_update_window:
+ * @window: The GTK window object being stored.
+ * @isclosed: Whether the window should be stored as closed or not.
+ *
+ * Update the persistent information for a window.
+ *
* In some cases, the window's open/close state is not updated by the time
* the handler is called.
+ *
+ * Since: dawn-of-time
*/
static void
-persistence_update_window(GtkWindow *window, gboolean isclosed)
+persistence_update_window (GtkWindow *window, gboolean isclosed)
{
- const gchar *name = persistence_get_window_name(window);
+ const char *name = persistence_get_window_name(window);
PersistentWindow *wininfo;
- if (name == NULL) return;
+ if (name == NULL) {
+ return;
+ }
if (persistent_windows == NULL) {
- persistent_windows = _dia_hash_table_str_any_new();
+ persistent_windows = _dia_hash_table_str_any_new ();
}
- wininfo = (PersistentWindow *)g_hash_table_lookup(persistent_windows, name);
+ wininfo = (PersistentWindow *) g_hash_table_lookup (persistent_windows,
+ name);
if (wininfo != NULL) {
persistence_store_window_info (window, wininfo, isclosed);
@@ -630,7 +646,7 @@ persistence_window_map (GtkWindow *window,
{
g_return_val_if_fail (event->type == GDK_MAP, FALSE);
- dia_log_message ("map (%s)", persistence_get_window_name (window));
+ dia_log_message ("map (%s)", persistence_get_window_name (window));
persistence_update_window (window,
!gtk_widget_get_mapped (GTK_WIDGET (window)));
@@ -679,9 +695,12 @@ persistence_hide_show_window (GtkWindow *window, gpointer data)
*
* Check stored window information against screen size
*
- * If the screen size has changed some persistent info maybe out of the visible area.
- * This function checks that stored coordinates are at least paritally visible on some
- * monitor. In GDK parlance a screen can have multiple monitors.
+ * If the screen size has changed some persistent info maybe out of the
+ * visible area.
+ *
+ * This function checks that stored coordinates are at least paritally
+ * visible on some monitor. In GDK parlance a screen can have multiple
+ * monitors.
*/
static gboolean
wininfo_in_range (const PersistentWindow *wininfo)
@@ -702,8 +721,10 @@ wininfo_in_range (const PersistentWindow *wininfo)
gdk_screen_get_monitor_geometry (screen, i, &rmon);
gdk_rectangle_intersect (&rwin, &rmon, &rres);
- if (rres.width * rres.height > 0)
+
+ if (rres.width * rres.height > 0) {
break;
+ }
}
return (rres.width * rres.height > 0);
@@ -721,7 +742,7 @@ wininfo_in_range (const PersistentWindow *wininfo)
void
persistence_register_window (GtkWindow *window)
{
- const gchar *name = persistence_get_window_name (window);
+ const char *name = persistence_get_window_name (window);
PersistentWindow *wininfo;
if (name == NULL) {
@@ -732,7 +753,8 @@ persistence_register_window (GtkWindow *window)
persistent_windows = _dia_hash_table_str_any_new ();
}
- wininfo = (PersistentWindow *) g_hash_table_lookup (persistent_windows, name);
+ wininfo = (PersistentWindow *) g_hash_table_lookup (persistent_windows,
+ name);
if (wininfo != NULL) {
if (wininfo_in_range (wininfo)) {
/* only restore position if partially visible */
@@ -781,9 +803,11 @@ persistence_register_window (GtkWindow *window)
* called if the window should be opened at startup.
* If no persistence information is available for the given role,
* nothing happens.
+ *
+ * Since: dawn-of-time
*/
void
-persistence_register_window_create (gchar *role, NullaryFunc *func)
+persistence_register_window_create (char *role, NullaryFunc *func)
{
PersistentWindow *wininfo;
@@ -803,197 +827,290 @@ persistence_register_window_create (gchar *role, NullaryFunc *func)
}
-/* ********* STRING ENTRIES ********** */
-
static gboolean
-persistence_update_string_entry(GtkWidget *widget, GdkEvent *event,
- gpointer userdata)
+persistence_update_string_entry (GtkWidget *widget,
+ GdkEvent *event,
+ gpointer userdata)
{
- gchar *role = (gchar*)userdata;
+ char *role = (char*) userdata;
if (event->type == GDK_FOCUS_CHANGE) {
- gchar *string = (gchar *)g_hash_table_lookup(persistent_entrystrings, role);
- const gchar *entrystring = gtk_entry_get_text(GTK_ENTRY(widget));
- if (string == NULL || strcmp(string, entrystring) != 0) {
- g_hash_table_insert(persistent_entrystrings, role, g_strdup(entrystring));
+ char *string = (char *) g_hash_table_lookup (persistent_entrystrings,
+ role);
+ const char *entrystring = gtk_entry_get_text (GTK_ENTRY (widget));
+ if (string == NULL || g_strcmp0 (string, entrystring) != 0) {
+ g_hash_table_insert (persistent_entrystrings,
+ role,
+ g_strdup (entrystring));
}
}
return FALSE;
}
-/*!
- * \brief Cancel modification of a persistent string entry
+
+/**
+ * persistence_change_string_entry:
+ * @role: the name of the value
+ * @string: the new value
+ * @widget: #GtkEntry editing @role
+ *
+ * Cancel modification of a persistent string entry
*
* Change the contents of the persistently stored string entry.
* If widget is non-null, it is updated to reflect the change.
* This can be used e.g. for when a dialog is cancelled and the old
* contents should be restored.
+ *
+ * Returns: %FALSE
+ *
+ * Since: dawn-of-time
*/
gboolean
-persistence_change_string_entry(gchar *role, gchar *string,
- GtkWidget *widget)
+persistence_change_string_entry (char *role,
+ char *string,
+ GtkWidget *widget)
{
- gchar *old_string = (gchar*)g_hash_table_lookup(persistent_entrystrings, role);
+ char *old_string = (char *) g_hash_table_lookup (persistent_entrystrings,
+ role);
+
if (old_string != NULL) {
if (widget != NULL) {
- gtk_entry_set_text(GTK_ENTRY(widget), string);
+ gtk_entry_set_text (GTK_ENTRY (widget), string);
}
- g_hash_table_insert(persistent_entrystrings, role, g_strdup(string));
+ g_hash_table_insert (persistent_entrystrings, role, g_strdup(string));
}
return FALSE;
}
-/*!
- * \brief Register a string in a GtkEntry for persistence.
+
+/**
+ * persistence_register_string_entry:
+ * @role: the name of the value
+ * @entry: the #GtkEntry editing @role
+ *
+ * Register a string in a #GtkEntry for persistence.
*
* This should include not only a unique name, but some way to update
* whereever the string is used.
+ *
+ * Since: dawn-of-time
*/
void
-persistence_register_string_entry(gchar *role, GtkWidget *entry)
+persistence_register_string_entry (char *role, GtkWidget *entry)
{
- gchar *string;
- if (role == NULL) return;
+ char *string;
+
+ if (role == NULL) {
+ return;
+ }
+
if (persistent_entrystrings == NULL) {
persistent_entrystrings = _dia_hash_table_str_any_new();
}
- string = (gchar *)g_hash_table_lookup(persistent_entrystrings, role);
+
+ string = (char *) g_hash_table_lookup (persistent_entrystrings, role);
if (string != NULL) {
- gtk_entry_set_text(GTK_ENTRY(entry), string);
+ gtk_entry_set_text (GTK_ENTRY (entry), string);
} else {
- string = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry)));
- g_hash_table_insert(persistent_entrystrings, role, string);
+ string = g_strdup (gtk_entry_get_text (GTK_ENTRY (entry)));
+ g_hash_table_insert (persistent_entrystrings, role, string);
}
- g_signal_connect(G_OBJECT(entry), "event",
- G_CALLBACK(persistence_update_string_entry), role);
+
+ g_signal_connect (G_OBJECT (entry), "event",
+ G_CALLBACK (persistence_update_string_entry), role);
}
-/* ********* LISTS ********** */
-/* Lists are used for e.g. recent files, selected fonts, etc.
+
+/**
+ * persistence_register_list:
+ * @role: the name of the value
+ *
+ * Lists are used for e.g. recent files, selected fonts, etc.
* Anywhere where the user occasionally picks from a long list and
* is likely to reuse the items.
+ *
+ * Returns: a #PersistentList for @role
+ *
+ * Since: dawn-of-time
*/
-
PersistentList *
-persistence_register_list(const gchar *role)
+persistence_register_list (const char *role)
{
PersistentList *list;
- if (role == NULL) return NULL;
+
+ if (role == NULL) {
+ return NULL;
+ }
+
if (persistent_lists == NULL) {
- persistent_lists = _dia_hash_table_str_any_new();
+ persistent_lists = _dia_hash_table_str_any_new ();
} else {
- list = (PersistentList *)g_hash_table_lookup(persistent_lists, role);
+ list = (PersistentList *) g_hash_table_lookup (persistent_lists, role);
if (list != NULL) {
return list;
}
}
- list = g_new(PersistentList, 1);
+
+ list = g_new (PersistentList, 1);
list->role = role;
list->glist = NULL;
list->sorted = FALSE;
list->max_members = G_MAXINT;
- g_hash_table_insert(persistent_lists, (gchar *)role, list);
+
+ g_hash_table_insert (persistent_lists, (char *) role, list);
+
return list;
}
+
+/**
+ * persistent_list_get:
+ * @role: the name of the list
+ *
+ * Returns: the #PersistentList for @role, or %NULL when unregistered
+ *
+ * Since: dawn-of-time
+ */
PersistentList *
-persistent_list_get(const gchar *role)
+persistent_list_get (const char *role)
{
PersistentList *list;
- if (role == NULL) return NULL;
+
+ if (role == NULL) {
+ return NULL;
+ }
+
if (persistent_lists != NULL) {
- list = (PersistentList *)g_hash_table_lookup(persistent_lists, role);
+ list = (PersistentList *) g_hash_table_lookup (persistent_lists, role);
if (list != NULL) {
return list;
}
}
+
/* Not registered! */
return NULL;
}
+
+/**
+ * persistent_list_get_glist:
+ * @role: the name of the list
+ *
+ * Returns: the #GList for @role, or %NULL when unregistered
+ *
+ * Since: dawn-of-time
+ */
GList *
-persistent_list_get_glist(const gchar *role)
+persistent_list_get_glist (const char *role)
{
- PersistentList *plist = persistent_list_get(role);
- if (plist == NULL) return NULL;
+ PersistentList *plist = persistent_list_get (role);
+
+ if (plist == NULL) {
+ return NULL;
+ }
+
return plist->glist;
}
+
static GList *
-persistent_list_cut_length(GList *list, guint length)
+persistent_list_cut_length (GList *list, guint length)
{
- while (g_list_length(list) > length) {
- GList *last = g_list_last(list);
+ while (g_list_length (list) > length) {
+ GList *last = g_list_last (list);
/* Leaking data? See not in persistent_list_add */
- list = g_list_remove_link(list, last);
- g_list_free(last);
+ list = g_list_remove_link (list, last);
+ g_list_free (last);
}
return list;
}
-/*!
- * \brief Add a new entry to this persistent list.
- * @param role The name of a persistent list.
- * @param item An entry to add.
- * @return FALSE if the entry already existed in the list, TRUE otherwise.
+
+/**
+ * persistent_list_add
+ * @role: The name of a persistent list.
+ * @item: An entry to add.
+ *
+ * Add a new entry to this persistent list.
+ *
+ * Returns: %FALSE if the entry already existed in the list, %TRUE otherwise.
+ *
+ * Since: dawn-of-time
*/
gboolean
-persistent_list_add(const gchar *role, const gchar *item)
+persistent_list_add (const char *role, const char *item)
{
- PersistentList *plist = persistent_list_get(role);
- if(plist == NULL) {
- g_warning("Can't find list for %s when adding %s", role, item);
+ PersistentList *plist = persistent_list_get (role);
+
+ if (plist == NULL) {
+ g_warning ("Can't find list for %s when adding %s", role, item);
return TRUE;
}
+
if (plist->sorted) {
/* Sorting not implemented yet. */
return TRUE;
} else {
gboolean existed = FALSE;
GList *tmplist = plist->glist;
- GList *old_elem = g_list_find_custom(tmplist, item, (GCompareFunc)g_ascii_strcasecmp);
+ GList *old_elem = g_list_find_custom (tmplist,
+ item,
+ (GCompareFunc) g_ascii_strcasecmp);
while (old_elem != NULL) {
- tmplist = g_list_remove_link(tmplist, old_elem);
+ tmplist = g_list_remove_link (tmplist,old_elem);
/* Don't free this, as it makes recent_files go boom after
* selecting a file there several times. Yes, it should be strdup'd,
* but it isn't.
*/
/*g_clear_pointer (&old_elem->data, g_free);*/
- g_list_free_1(old_elem);
- old_elem = g_list_find_custom(tmplist, item, (GCompareFunc)g_ascii_strcasecmp);
+ g_list_free_1 (old_elem);
+ old_elem = g_list_find_custom (tmplist,
+ item,
+ (GCompareFunc) g_ascii_strcasecmp);
existed = TRUE;
}
- tmplist = g_list_prepend(tmplist, g_strdup(item));
- tmplist = persistent_list_cut_length(tmplist, plist->max_members);
+
+ tmplist = g_list_prepend (tmplist, g_strdup (item));
+ tmplist = persistent_list_cut_length (tmplist, plist->max_members);
plist->glist = tmplist;
+
return existed;
}
}
+
void
-persistent_list_set_max_length(const gchar *role, gint max)
+persistent_list_set_max_length (const char *role, int max)
{
- PersistentList *plist = persistent_list_get(role);
+ PersistentList *plist = persistent_list_get (role);
plist->max_members = max;
- plist->glist = persistent_list_cut_length(plist->glist, max);
+ plist->glist = persistent_list_cut_length (plist->glist, max);
}
-/*!
- * \brief Remove an item from the persistent list.
- * @param role The name of the persistent list.
- * @param item The entry to remove.
- * @returns TRUE if the item existed in the list, FALSE otherwise.
+
+/**
+ * persistent_list_remove:
+ * @role: The name of the persistent list.
+ * @item: The entry to remove.
+ *
+ * Remove an item from the persistent list.
+ *
+ * Returns: %TRUE if the item existed in the list, %FALSE otherwise.
+ *
+ * Since: dawn-of-time
*/
gboolean
-persistent_list_remove(const gchar *role, const gchar *item)
+persistent_list_remove (const char *role, const char *item)
{
- PersistentList *plist = persistent_list_get(role);
+ PersistentList *plist = persistent_list_get (role);
/* Leaking data? See not in persistent_list_add */
- GList *entry = g_list_find_custom(plist->glist, item, (GCompareFunc)g_ascii_strcasecmp);
+ GList *entry = g_list_find_custom (plist->glist,
+ item,
+ (GCompareFunc) g_ascii_strcasecmp);
if (entry != NULL) {
- plist->glist = g_list_remove_link(plist->glist, entry);
+ plist->glist = g_list_remove_link (plist->glist, entry);
g_clear_pointer (&entry->data, g_free);
return TRUE;
} else {
@@ -1001,320 +1118,466 @@ persistent_list_remove(const gchar *role, const gchar *item)
}
}
+
void
-persistent_list_remove_all(const gchar *role)
+persistent_list_remove_all (const char *role)
{
- PersistentList *plist = persistent_list_get(role);
- persistent_list_cut_length(plist->glist, 0);
+ PersistentList *plist = persistent_list_get (role);
+ persistent_list_cut_length (plist->glist, 0);
plist->glist = NULL;
}
+
typedef struct {
PersistenceCallback func;
GObject *watch;
gpointer userdata;
} ListenerData;
-/*!
- * \brief Add a listener to a persitence list
+
+/**
+ * persistent_list_add_listener:
+ * @role: The name of the persistent list to watch.
+ * @func: A function to call when the list is updated, takes the given
+ * @userdata.
+ * @watch: GObject to watch
+ * @userdata: Data passed back into the callback function.
+ *
+ * Add a listener to a persitence list
*
* Add a listener to updates on the list, so that if another
* instance changes the list, menus and such can be updated.
- * @param role The name of the persistent list to watch.
- * @param func A function to call when the list is updated, takes
- * the given userdata.
- * @param watch GObject to watch
- * @param userdata Data passed back into the callback function.
+ *
+ * Since: dawn-of-time
*/
void
-persistent_list_add_listener(const gchar *role, PersistenceCallback func,
- GObject *watch, gpointer userdata)
+persistent_list_add_listener (const char *role,
+ PersistenceCallback func,
+ GObject *watch,
+ gpointer userdata)
{
- PersistentList *plist = persistent_list_get(role);
+ PersistentList *plist = persistent_list_get (role);
ListenerData *listener;
if (plist != NULL) {
- listener = g_new(ListenerData, 1);
+ listener = g_new (ListenerData, 1);
listener->func = func;
listener->watch = watch;
- g_object_add_weak_pointer(watch, (gpointer)&listener->watch);
+ g_object_add_weak_pointer (watch, (gpointer) &listener->watch);
listener->userdata = userdata;
- plist->listeners = g_list_append(plist->listeners, listener);
+ plist->listeners = g_list_append (plist->listeners, listener);
}
}
-/*!
- * \brief Empty the list
+
+/**
+ * persistent_list_clear:
+ * @role: The name of the persistent list
+ *
+ * Empty the list
+ *
+ * Since: dawn-of-time
*/
void
-persistent_list_clear(const gchar *role)
+persistent_list_clear (const char *role)
{
- PersistentList *plist = persistent_list_get(role);
+ PersistentList *plist = persistent_list_get (role);
- g_list_foreach(plist->glist, (GFunc)g_free, NULL);
- g_list_free(plist->glist);
+ g_list_foreach (plist->glist, (GFunc) g_free, NULL);
+ g_list_free (plist->glist);
plist->glist = NULL;
}
-/* ********* INTEGERS ********** */
-gint
-persistence_register_integer(gchar *role, int defaultvalue)
+
+/**
+ * persistence_register_integer:
+ * @role: The name of the persistent integer
+ * @defaultvalue: default value for @role
+ *
+ * Returns: The stored integer, or @defaultvalue
+ *
+ * Since: dawn-of-time
+ */
+int
+persistence_register_integer (char *role, int defaultvalue)
{
- gint *integer;
- if (role == NULL) return 0;
+ int *integer;
+
+ if (role == NULL) {
+ return 0;
+ }
+
if (persistent_integers == NULL) {
- persistent_integers = _dia_hash_table_str_any_new();
+ persistent_integers = _dia_hash_table_str_any_new ();
}
- integer = (gint *)g_hash_table_lookup(persistent_integers, role);
+
+ integer = (int *) g_hash_table_lookup (persistent_integers, role);
if (integer == NULL) {
- integer = g_new(gint, 1);
+ integer = g_new (int, 1);
*integer = defaultvalue;
- g_hash_table_insert(persistent_integers, role, integer);
+ g_hash_table_insert (persistent_integers, role, integer);
}
+
return *integer;
}
-gint
-persistence_get_integer(gchar *role)
+
+int
+persistence_get_integer (char *role)
{
- gint *integer;
+ int *integer;
+
if (persistent_integers == NULL) {
- g_warning("No persistent integers to get for %s!", role);
+ g_warning ("No persistent integers to get for %s!", role);
return 0;
}
- integer = (gint *)g_hash_table_lookup(persistent_integers, role);
- if (integer != NULL) return *integer;
- g_warning("No integer to get for %s", role);
+
+ integer = (int *) g_hash_table_lookup (persistent_integers, role);
+
+ if (integer != NULL) {
+ return *integer;
+ }
+
+ g_warning ("No integer to get for %s", role);
+
return 0;
}
+
void
-persistence_set_integer(gchar *role, gint newvalue)
+persistence_set_integer (char *role, int newvalue)
{
- gint *integer;
+ int *integer;
+
if (persistent_integers == NULL) {
- g_warning("No persistent integers yet for %s!", role);
+ g_warning ("No persistent integers yet for %s!", role);
return;
}
- integer = (gint *)g_hash_table_lookup(persistent_integers, role);
- if (integer != NULL)
+
+ integer = (int *) g_hash_table_lookup (persistent_integers, role);
+ if (integer != NULL) {
*integer = newvalue;
- else
- g_warning("No integer to set for %s", role);
+ } else {
+ g_warning ("No integer to set for %s", role);
+ }
}
-/* ********* REALS ********** */
-real
-persistence_register_real(gchar *role, real defaultvalue)
+
+double
+persistence_register_real (char *role, double defaultvalue)
{
- real *realval;
- if (role == NULL) return 0;
+ double *realval;
+
+ if (role == NULL) {
+ return 0;
+ }
+
if (persistent_reals == NULL) {
- persistent_reals = _dia_hash_table_str_any_new();
+ persistent_reals = _dia_hash_table_str_any_new ();
}
- realval = (real *)g_hash_table_lookup(persistent_reals, role);
+
+ realval = (double *) g_hash_table_lookup (persistent_reals, role);
if (realval == NULL) {
- realval = g_new(real, 1);
+ realval = g_new (double, 1);
*realval = defaultvalue;
- g_hash_table_insert(persistent_reals, role, realval);
+ g_hash_table_insert (persistent_reals, role, realval);
}
+
return *realval;
}
-real
-persistence_get_real(gchar *role)
+
+double
+persistence_get_real (char *role)
{
- real *realval;
+ double *realval;
+
if (persistent_reals == NULL) {
- g_warning("No persistent reals to get for %s!", role);
+ g_warning ("No persistent reals to get for %s!", role);
return 0;
}
- realval = (real *)g_hash_table_lookup(persistent_reals, role);
- if (realval != NULL) return *realval;
- g_warning("No real to get for %s", role);
+
+ realval = (double *) g_hash_table_lookup (persistent_reals, role);
+ if (realval != NULL) {
+ return *realval;
+ }
+
+ g_warning ("No real to get for %s", role);
+
return 0.0;
}
+
void
-persistence_set_real(gchar *role, real newvalue)
+persistence_set_real (char *role, double newvalue)
{
- real *realval;
+ double *realval;
+
if (persistent_reals == NULL) {
- g_warning("No persistent reals yet for %s!", role);
+ g_warning ("No persistent reals yet for %s!", role);
return;
}
- realval = (real *)g_hash_table_lookup(persistent_reals, role);
- if (realval != NULL)
+
+ realval = (double *) g_hash_table_lookup (persistent_reals, role);
+ if (realval != NULL) {
*realval = newvalue;
- else
- g_warning("No real to set for %s", role);
+ } else {
+ g_warning ("No real to set for %s", role);
+ }
}
-/* ********* BOOLEANS ********** */
-/*! \brief Returns true if the given role has been registered. */
gboolean
-persistence_boolean_is_registered(const gchar *role)
+persistence_register_boolean (const char *role, gboolean defaultvalue)
{
gboolean *booleanval;
- if (role == NULL) return 0;
- if (persistent_booleans == NULL) {
- persistent_booleans = _dia_hash_table_str_any_new();
+
+ if (role == NULL) {
+ return 0;
}
- booleanval = (gboolean *)g_hash_table_lookup(persistent_booleans, role);
- return booleanval != NULL;
-}
-gboolean
-persistence_register_boolean(const gchar *role, gboolean defaultvalue)
-{
- gboolean *booleanval;
- if (role == NULL) return 0;
if (persistent_booleans == NULL) {
persistent_booleans = _dia_hash_table_str_any_new();
}
- booleanval = (gboolean *)g_hash_table_lookup(persistent_booleans, role);
+
+ booleanval = (gboolean *) g_hash_table_lookup (persistent_booleans, role);
if (booleanval == NULL) {
- booleanval = g_new(gboolean, 1);
+ booleanval = g_new (gboolean, 1);
*booleanval = defaultvalue;
g_hash_table_insert (persistent_booleans, (gpointer) role, booleanval);
}
+
return *booleanval;
}
+
gboolean
-persistence_get_boolean(const gchar *role)
+persistence_get_boolean (const char *role)
{
gboolean *booleanval;
+
if (persistent_booleans == NULL) {
- g_warning("No persistent booleans to get for %s!", role);
+ g_warning ("No persistent booleans to get for %s!", role);
return FALSE;
}
- booleanval = (gboolean *)g_hash_table_lookup(persistent_booleans, role);
- if (booleanval != NULL) return *booleanval;
- g_warning("No boolean to get for %s", role);
+
+ booleanval = (gboolean *) g_hash_table_lookup (persistent_booleans, role);
+ if (booleanval != NULL) {
+ return *booleanval;
+ }
+
+ g_warning ("No boolean to get for %s", role);
+
return FALSE;
}
+
+/**
+ * persistence_set_boolean:
+ * @role: the name of the value
+ * @newvalue: new value for @role
+ *
+ * Since: dawn-of-time
+ */
void
-persistence_set_boolean(const gchar *role, gboolean newvalue)
+persistence_set_boolean (const char *role, gboolean newvalue)
{
gboolean *booleanval;
+
if (persistent_booleans == NULL) {
- g_warning("No persistent booleans yet for %s!", role);
+ g_warning ("No persistent booleans yet for %s!", role);
return;
}
- booleanval = (gboolean *)g_hash_table_lookup(persistent_booleans, role);
- if (booleanval != NULL)
+
+ booleanval = (gboolean *) g_hash_table_lookup (persistent_booleans, role);
+ if (booleanval != NULL) {
*booleanval = newvalue;
- else
- g_warning("No boolean to set for %s", role);
+ } else {
+ g_warning ("No boolean to set for %s", role);
+ }
}
-/* ********* STRINGS ********** */
-/*!
- * \brief Register a string in persistence.
- * @param role The name used to refer to the string. Must be unique within
- * registered strings (and preferably with all registered items)
- * @param defaultvalue A value to use if the role does not exist yet.
- * @returns The value that role has after registering. The caller is
+
+/**
+ * persistence_register_string:
+ * @role: The name used to refer to the string. Must be unique within
+ * registered strings (and preferably with all registered items)
+ * @defaultvalue: A value to use if the role does not exist yet.
+ *
+ * Register a string in persistence.
+ *
+ * Returns: The value that role has after registering. The caller is
* responsible for freeing this memory. It will never be the same
* memory as defaultvalue.
+ *
+ * Since: dawn-of-time
*/
-gchar *
-persistence_register_string(gchar *role, gchar *defaultvalue)
+char *
+persistence_register_string (char *role, const char *defaultvalue)
{
- gchar *stringval;
- if (role == NULL) return 0;
+ char *stringval;
+
+ if (role == NULL) {
+ return 0;
+ }
+
if (persistent_strings == NULL) {
persistent_strings = _dia_hash_table_str_any_new();
}
- stringval = (gchar *)g_hash_table_lookup(persistent_strings, role);
+
+ stringval = (char *) g_hash_table_lookup (persistent_strings, role);
if (stringval == NULL) {
- stringval = g_strdup(defaultvalue);
- g_hash_table_insert(persistent_strings, role, stringval);
+ stringval = g_strdup (defaultvalue);
+ g_hash_table_insert (persistent_strings, role, stringval);
}
- return g_strdup(stringval);
+
+ return g_strdup (stringval);
}
-gchar *
-persistence_get_string(gchar *role)
+
+/**
+ * persistence_get_string:
+ * @role: the name to get the value for
+ *
+ * Returns: the string, or %NULL
+ *
+ * Since: dawn-of-time
+ */
+char *
+persistence_get_string (char *role)
{
- gchar *stringval;
+ char *stringval;
+
if (persistent_strings == NULL) {
- g_warning("No persistent strings to get for %s!", role);
+ g_warning ("No persistent strings to get for %s!", role);
return NULL;
}
- stringval = (gchar *)g_hash_table_lookup(persistent_strings, role);
- if (stringval != NULL) return g_strdup(stringval);
- g_warning("No string to get for %s", role);
+
+ stringval = (char *) g_hash_table_lookup (persistent_strings, role);
+ if (stringval != NULL) {
+ return g_strdup (stringval);
+ }
+
+ g_warning ("No string to get for %s", role);
+
return NULL;
}
+
+/**
+ * persistence_set_string:
+ * @role: the name of the value
+ * @newvalue: new value for @role
+ *
+ * Since: dawn-of-time
+ */
void
-persistence_set_string(gchar *role, const gchar *newvalue)
+persistence_set_string (char *role, const char *newvalue)
{
- gchar *stringval;
+ char *stringval;
+
if (persistent_strings == NULL) {
- g_warning("No persistent strings yet for %s!", role);
+ g_warning ("No persistent strings yet for %s!", role);
return;
}
- stringval = (gchar *)g_hash_table_lookup(persistent_strings, role);
+
+ stringval = (char *) g_hash_table_lookup (persistent_strings, role);
if (stringval != NULL) {
- g_hash_table_insert(persistent_strings, role, g_strdup(newvalue));
+ g_hash_table_insert (persistent_strings, role, g_strdup(newvalue));
} else {
- g_hash_table_remove(persistent_strings, role);
+ g_hash_table_remove (persistent_strings, role);
}
}
-/* ********* COLORS ********** */
-/*!
- * \brief Register a _Color for persistence
+
+/**
+ * persistence_register_color:
+ * @role: the name of the value
+ * @defaultvalue: default value for @role
+ *
+ * Register a #Color for persistence
*
* Remember that colors returned are private, not to be deallocated.
- * They will be smashed in some undefined way by persistence_set_color */
+ * They will be smashed in some undefined way by persistence_set_color
+ *
+ * Returns: The stored colour, or @defaultvalue
+ *
+ * Since: dawn-of-time
+ */
Color *
-persistence_register_color(gchar *role, Color *defaultvalue)
+persistence_register_color (char *role, Color *defaultvalue)
{
Color *colorval;
- if (role == NULL) return 0;
+
+ if (role == NULL) {
+ return 0;
+ }
+
if (persistent_colors == NULL) {
- persistent_colors = _dia_hash_table_str_any_new();
+ persistent_colors = _dia_hash_table_str_any_new ();
}
- colorval = (Color *)g_hash_table_lookup(persistent_colors, role);
+
+ colorval = (Color *) g_hash_table_lookup (persistent_colors, role);
if (colorval == NULL) {
- colorval = g_new(Color, 1);
+ colorval = g_new (Color, 1);
*colorval = *defaultvalue;
- g_hash_table_insert(persistent_colors, role, colorval);
+ g_hash_table_insert (persistent_colors, role, colorval);
}
+
return colorval;
}
+
+/**
+ * persistence_get_color:
+ * @role: the name to get the value for
+ *
+ * Returns: the #Color, or %NULL
+ *
+ * Since: dawn-of-time
+ */
Color *
-persistence_get_color(gchar *role)
+persistence_get_color (char *role)
{
Color *colorval;
+
if (persistent_colors == NULL) {
- g_warning("No persistent colors to get for %s!", role);
- return 0;
+ g_warning ("No persistent colors to get for %s!", role);
+ return NULL;
}
- colorval = (Color *)g_hash_table_lookup(persistent_colors, role);
- if (colorval != NULL) return colorval;
- g_warning("No color to get for %s", role);
- return 0;
+
+ colorval = (Color *) g_hash_table_lookup (persistent_colors, role);
+ if (colorval != NULL) {
+ return colorval;
+ }
+
+ g_warning ("No color to get for %s", role);
+
+ return NULL;
}
+
+/**
+ * persistence_set_color:
+ * @role: the name of the value
+ * @newvalue: new value for @role
+ *
+ * Since: dawn-of-time
+ */
void
-persistence_set_color(gchar *role, Color *newvalue)
+persistence_set_color (char *role, Color *newvalue)
{
Color *colorval;
+
if (persistent_colors == NULL) {
- g_warning("No persistent colors yet for %s!", role);
+ g_warning ("No persistent colors yet for %s!", role);
return;
}
- colorval = (Color *)g_hash_table_lookup(persistent_colors, role);
- if (colorval != NULL)
+
+ colorval = (Color *) g_hash_table_lookup (persistent_colors, role);
+ if (colorval != NULL) {
*colorval = *newvalue;
- else
- g_warning("No color to set for %s", role);
+ } else {
+ g_warning ("No color to set for %s", role);
+ }
}
diff --git a/lib/persistence.h b/lib/persistence.h
index 5980a774..d7baa091 100644
--- a/lib/persistence.h
+++ b/lib/persistence.h
@@ -16,62 +16,71 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-/* persistence.h -- definitions for persistent storage.
- */
+#pragma once
-#ifndef PERSISTENCE_H
-#define PERSISTENCE_H
#include "geometry.h"
#include <gtk/gtk.h>
-typedef void (NullaryFunc)();
-
-void persistence_load(void);
-void persistence_save(void);
-void persistence_register_window(GtkWindow *window);
-void persistence_register_window_create(gchar *role, NullaryFunc *func);
-void persistence_register_string_entry(gchar *role, GtkWidget *entry);
-gboolean persistence_change_string_entry(gchar *role, gchar *string,
- GtkWidget *widget);
-
-
-typedef struct _PersistentList PersistentList;
-
-typedef void (*PersistenceCallback)(GObject *, gpointer);
-
-PersistentList *persistence_register_list(const gchar *role);
-PersistentList *persistent_list_get(const gchar *role);
-GList *persistent_list_get_glist(const gchar *role);
-gboolean persistent_list_add(const gchar *role, const gchar *item);
-void persistent_list_set_max_length(const gchar *role, gint max);
-gboolean persistent_list_remove(const gchar *role, const gchar *item);
-void persistent_list_remove_all(const gchar *role);
-void persistent_list_add_listener(const gchar *role, PersistenceCallback func,
- GObject *watch, gpointer userdata);
-void persistent_list_clear(const gchar *role);
-
-gboolean persistence_is_registered(gchar *role);
+G_BEGIN_DECLS
-gint persistence_register_integer(gchar *role, int defaultvalue);
-gint persistence_get_integer(gchar *role);
-void persistence_set_integer(gchar *role, gint newvalue);
+typedef void (NullaryFunc) ();
-real persistence_register_real(gchar *role, real defaultvalue);
-real persistence_get_real(gchar *role);
-void persistence_set_real(gchar *role, real newvalue);
+void persistence_load (void);
+void persistence_save (void);
+void persistence_register_window (GtkWindow *window);
+void persistence_register_window_create (char *role,
+ NullaryFunc *func);
+void persistence_register_string_entry (char *role,
+ GtkWidget *entry);
+gboolean persistence_change_string_entry (char *role,
+ char *string,
+ GtkWidget *widget);
-gboolean persistence_boolean_is_registered(const gchar *role);
-gboolean persistence_register_boolean(const gchar *role, gboolean defaultvalue);
-gboolean persistence_get_boolean(const gchar *role);
-void persistence_set_boolean(const gchar *role, gboolean newvalue);
-gchar *persistence_register_string(gchar *role, gchar *defaultvalue);
-gchar *persistence_get_string(gchar *role);
-void persistence_set_string(gchar *role, const gchar *newvalue);
-
-Color *persistence_register_color(gchar *role, Color *defaultvalue);
-Color *persistence_get_color(gchar *role);
-void persistence_set_color(gchar *role, Color *newvalue);
+typedef struct _PersistentList PersistentList;
-#endif
+typedef void (*PersistenceCallback) (GObject *, gpointer);
+
+PersistentList *persistence_register_list (const char *role);
+PersistentList *persistent_list_get (const char *role);
+GList *persistent_list_get_glist (const char *role);
+gboolean persistent_list_add (const char *role,
+ const char *item);
+void persistent_list_set_max_length (const char *role,
+ int max);
+gboolean persistent_list_remove (const char *role,
+ const char *item);
+void persistent_list_remove_all (const char *role);
+void persistent_list_add_listener (const char *role,
+ PersistenceCallback func,
+ GObject *watch,
+ gpointer userdata);
+void persistent_list_clear (const char *role);
+int persistence_register_integer (char *role,
+ int defaultvalue);
+int persistence_get_integer (char *role);
+void persistence_set_integer (char *role,
+ int newvalue);
+double persistence_register_real (char *role,
+ double defaultvalue);
+double persistence_get_real (char *role);
+void persistence_set_real (char *role,
+ double newvalue);
+gboolean persistence_register_boolean (const char *role,
+ gboolean defaultvalue);
+gboolean persistence_get_boolean (const char *role);
+void persistence_set_boolean (const char *role,
+ gboolean newvalue);
+char *persistence_register_string (char *role,
+ const char *defaultvalue);
+char *persistence_get_string (char *role);
+void persistence_set_string (char *role,
+ const char *newvalue);
+Color *persistence_register_color (char *role,
+ Color *defaultvalue);
+Color *persistence_get_color (char *role);
+void persistence_set_color (char *role,
+ Color *newvalue);
+
+G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]