summaryrefslogtreecommitdiff
path: root/glabels2/src/mygal/e-util.h
diff options
context:
space:
mode:
Diffstat (limited to 'glabels2/src/mygal/e-util.h')
-rw-r--r--glabels2/src/mygal/e-util.h234
1 files changed, 234 insertions, 0 deletions
diff --git a/glabels2/src/mygal/e-util.h b/glabels2/src/mygal/e-util.h
new file mode 100644
index 0000000..7bc3978
--- /dev/null
+++ b/glabels2/src/mygal/e-util.h
@@ -0,0 +1,234 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * e-util.h
+ * Copyright 2000, 2001, Ximian, Inc.
+ *
+ * Authors:
+ * Chris Lahey <clahey@ximian.com>
+ *
+ * Modified for gLabels by:
+ * Jim Evins <evins@snaught.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License, version 2, as published by the Free Software Foundation.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef _E_UTIL_H_
+#define _E_UTIL_H_
+
+#include <sys/types.h>
+#include <glib-object.h>
+#include <limits.h>
+
+#ifdef __cplusplus
+extern "C" {
+#pragma }
+#endif /* __cplusplus */
+
+#include "e-marshal.h"
+
+#define E_MAKE_TYPE(l,str,t,ci,i,parent) \
+GType l##_get_type(void)\
+{\
+ static GType type = 0; \
+ if (!type){ \
+ static GTypeInfo const object_info = { \
+ sizeof (t##Class), \
+ \
+ (GBaseInitFunc) NULL, \
+ (GBaseFinalizeFunc) NULL, \
+ \
+ (GClassInitFunc) ci, \
+ (GClassFinalizeFunc) NULL, \
+ NULL, /* class_data */ \
+ \
+ sizeof (t), \
+ 0, /* n_preallocs */ \
+ (GInstanceInitFunc) i, \
+ }; \
+ type = g_type_register_static (parent, str, &object_info, 0); \
+ } \
+ return type; \
+}
+
+
+#define E_MAKE_X_TYPE(l,str,t,ci,i,parent,poa_init,offset) \
+GtkType l##_get_type(void) \
+{ \
+ static GtkType type = 0; \
+ if (!type){ \
+ GTypeInfo info = { \
+ sizeof (t##Class), \
+ \
+ (GBaseInitFunc) NULL, \
+ (GBaseFinalizeFunc) NULL, \
+ \
+ (GClassInitFunc) ci, \
+ (GClassFinalizeFunc) NULL, \
+ \
+ NULL, /* class_data */ \
+ \
+ sizeof (t), \
+ 0, /* n_preallocs */ \
+ (GInstanceInitFunc) i, \
+ }; \
+ type = bonobo_x_type_unique ( \
+ parent, poa_init, NULL, \
+ offset, &info, str); \
+ } \
+ return type; \
+}
+
+#define GET_STRING_ARRAY_FROM_ELLIPSIS(labels, first_string) \
+ { \
+ va_list args; \
+ int i; \
+ char *s; \
+ \
+ va_start (args, (first_string)); \
+ \
+ i = 0; \
+ for (s = (first_string); s; s = va_arg (args, char *)) \
+ i++; \
+ va_end (args); \
+ \
+ (labels) = g_new (char *, i + 1); \
+ \
+ va_start (args, (first_string)); \
+ i = 0; \
+ for (s = (first_string); s; s = va_arg (args, char *)) \
+ (labels)[i++] = s; \
+ \
+ va_end (args); \
+ (labels)[i] = NULL; \
+ }
+
+
+#define GET_DUPLICATED_STRING_ARRAY_FROM_ELLIPSIS(labels, first_string) \
+ { \
+ int i; \
+ GET_STRING_ARRAY_FROM_ELLIPSIS ((labels), (first_string)); \
+ for (i = 0; labels[i]; i++) \
+ labels[i] = g_strdup (labels[i]); \
+ }
+
+
+#if 0
+# define E_OBJECT_CLASS_ADD_SIGNALS(oc,sigs,last) \
+ gtk_object_class_add_signals (oc, sigs, last)
+# define E_OBJECT_CLASS_TYPE(oc) (oc)->type
+#else
+# define E_OBJECT_CLASS_ADD_SIGNALS(oc,sigs,last)
+# define E_OBJECT_CLASS_TYPE(oc) G_TYPE_FROM_CLASS (oc)
+#endif
+
+
+typedef enum {
+ E_FOCUS_NONE,
+ E_FOCUS_CURRENT,
+ E_FOCUS_START,
+ E_FOCUS_END
+} EFocus;
+int g_str_compare (const void *x,
+ const void *y);
+int g_collate_compare (const void *x,
+ const void *y);
+int g_int_compare (const void *x,
+ const void *y);
+char *e_strdup_strip (const char *string);
+void e_free_object_list (GList *list);
+void e_free_object_slist (GSList *list);
+void e_free_string_list (GList *list);
+void e_free_string_slist (GSList *list);
+char *e_read_file (const char *filename);
+int e_write_file (const char *filename,
+ const char *data,
+ int flags);
+int e_write_file_mkstemp (char *filename,
+ const char *data);
+int e_mkdir_hier (const char *path,
+ mode_t mode);
+
+gchar **e_strsplit (const gchar *string,
+ const gchar *delimiter,
+ gint max_tokens);
+gchar *e_strstrcase (const gchar *haystack,
+ const gchar *needle);
+/* This only makes a filename safe for usage as a filename. It still may have shell meta-characters in it. */
+void e_filename_make_safe (gchar *string);
+gchar *e_format_number (gint number);
+gchar *e_format_number_float (gfloat number);
+gboolean e_create_directory (gchar *directory);
+gchar **e_strdupv (const gchar **str_array);
+
+
+typedef int (*ESortCompareFunc) (const void *first,
+ const void *second,
+ gpointer closure);
+void e_sort (void *base,
+ size_t nmemb,
+ size_t size,
+ ESortCompareFunc compare,
+ gpointer closure);
+void e_bsearch (const void *key,
+ const void *base,
+ size_t nmemb,
+ size_t size,
+ ESortCompareFunc compare,
+ gpointer closure,
+ size_t *start,
+ size_t *end);
+size_t e_strftime_fix_am_pm (char *s,
+ size_t max,
+ const char *fmt,
+ const struct tm *tm);
+
+size_t e_strftime (char *s,
+ size_t max,
+ const char *fmt,
+ const struct tm *tm);
+
+size_t e_utf8_strftime_fix_am_pm (char *s,
+ size_t max,
+ const char *fmt,
+ const struct tm *tm);
+
+size_t e_utf8_strftime (char *s,
+ size_t max,
+ const char *fmt,
+ const struct tm *tm);
+
+/* String to/from double conversion functions */
+gdouble e_flexible_strtod (const gchar *nptr,
+ gchar **endptr);
+
+/* 29 bytes should enough for all possible values that
+ * g_ascii_dtostr can produce with the %.17g format.
+ * Then add 10 for good measure */
+#define E_ASCII_DTOSTR_BUF_SIZE (DBL_DIG + 12 + 10)
+gchar *e_ascii_dtostr (gchar *buffer,
+ gint buf_len,
+ const gchar *format,
+ gdouble d);
+
+/* Alternating char * and int arguments with a NULL char * to end.
+ Less than 0 for the int means copy the whole string. */
+gchar *e_strdup_append_strings (gchar *first_string,
+ ...);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* _E_UTIL_H_ */