diff options
author | Seth Nickell <snickell@stanford.edu> | 2002-05-15 00:57:00 +0000 |
---|---|---|
committer | Seth Nickell <seth@src.gnome.org> | 2002-05-15 00:57:00 +0000 |
commit | 9ad97b920e0575d6f2e9e750d76de75a48bb17bc (patch) | |
tree | 1ea286c3b003d993d7e1b0011b5884409f9ec270 | |
parent | 957afeae788b1b0dde3c3f83b607702edb9f3cb9 (diff) | |
download | gnome-control-center-9ad97b920e0575d6f2e9e750d76de75a48bb17bc.tar.gz |
Move code out of window capplet into a seperate library so the settings
2002-05-14 Seth Nickell <snickell@stanford.edu>
* .cvsignore:
* Makefile.am:
* gnome-window-manager.c: (gnome_window_manager_new):
* gnome-window-manager.h:
Move code out of window capplet into a seperate library so the settings
daemon can avail of it.
-rw-r--r-- | libwindow-settings/.cvsignore | 11 | ||||
-rw-r--r-- | libwindow-settings/ChangeLog | 9 | ||||
-rw-r--r-- | libwindow-settings/Makefile.am | 17 | ||||
-rw-r--r-- | libwindow-settings/gnome-window-manager.c | 37 | ||||
-rw-r--r-- | libwindow-settings/gnome-window-manager.h | 53 |
5 files changed, 127 insertions, 0 deletions
diff --git a/libwindow-settings/.cvsignore b/libwindow-settings/.cvsignore new file mode 100644 index 000000000..885705814 --- /dev/null +++ b/libwindow-settings/.cvsignore @@ -0,0 +1,11 @@ +Makefile +Makefile.in +.deps +.libs +*.o +*.lo +*.la +gnome-window-properties +window-properties.desktop +*.oaf +*.gladep
\ No newline at end of file diff --git a/libwindow-settings/ChangeLog b/libwindow-settings/ChangeLog new file mode 100644 index 000000000..948470eb1 --- /dev/null +++ b/libwindow-settings/ChangeLog @@ -0,0 +1,9 @@ +2002-05-14 Seth Nickell <snickell@stanford.edu> + + * .cvsignore: + * Makefile.am: + * gnome-window-manager.c: (gnome_window_manager_new): + * gnome-window-manager.h: + + Move code out of window capplet into a seperate library so the settings + daemon can avail of it.
\ No newline at end of file diff --git a/libwindow-settings/Makefile.am b/libwindow-settings/Makefile.am new file mode 100644 index 000000000..111ddf7b6 --- /dev/null +++ b/libwindow-settings/Makefile.am @@ -0,0 +1,17 @@ +EXTRA_DIST = ChangeLog + +INCLUDES = \ + -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ + -DGNOME_ICONDIR=\""${prefix}/share/pixmaps"\" \ + -DG_LOG_DOMAIN=\"capplet-common\" \ + -DGNOME_WINDOW_MANAGER_MODULE_PATH=\""$(libdir)/window-manager-settings"\" \ + -I$(top_srcdir)/ \ + @CAPPLET_CFLAGS@ + +noinst_LTLIBRARIES = libwindow-settings.la + +libwindow_settings_la_SOURCES = \ + gnome-window-manager.c \ + gnome-window-manager.h + +libwindow_settings_la_LIBADD = $(GNOMECC_CAPPLETS_LIBS)
\ No newline at end of file diff --git a/libwindow-settings/gnome-window-manager.c b/libwindow-settings/gnome-window-manager.c new file mode 100644 index 000000000..08e9edcd2 --- /dev/null +++ b/libwindow-settings/gnome-window-manager.c @@ -0,0 +1,37 @@ +#include "gnome-window-manager.h" + +#include <gmodule.h> + +GObject * +gnome_window_manager_new (GnomeDesktopItem *item) +{ + const char *settings_lib; + char *module_name; + GnomeWindowManagerNewFunc wm_new_func = NULL; + GObject *wm; + GModule *module; + gboolean success; + + settings_lib = gnome_desktop_item_get_string (item, "GnomeSettingsLibrary"); + + module_name = g_module_build_path (GNOME_WINDOW_MANAGER_MODULE_PATH, + settings_lib); + + module = g_module_open (module_name, G_MODULE_BIND_LAZY); + if (module == NULL) { + g_warning ("Couldn't load window manager settings module `%s' (%s)", module_name, g_module_error ()); + return NULL; + } + + success = g_module_symbol (module, "window_manager_new", + (gpointer *) &wm_new_func); + + if ((!success) || wm_new_func == NULL) { + g_warning ("Couldn't load window manager settings module `%s`, couldn't find symbol \'window_manager_new\'", module_name); + return NULL; + } + + wm = (wm_new_func) (); + + return (wm); +} diff --git a/libwindow-settings/gnome-window-manager.h b/libwindow-settings/gnome-window-manager.h new file mode 100644 index 000000000..3da3efb16 --- /dev/null +++ b/libwindow-settings/gnome-window-manager.h @@ -0,0 +1,53 @@ +#ifndef GNOME_WINDOW_MANAGER_H +#define GNOME_WINDOW_MANAGER_H + +#include <glib/gerror.h> +#include <glib-object.h> + +#include <libgnome/gnome-desktop-item.h> + +typedef GObject * (* GnomeWindowManagerNewFunc) (void); + +G_BEGIN_DECLS + +#define GNOME_WINDOW_MANAGER_TYPE (gnome_window_manager_get_type ()) +#define GNOME_WINDOW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNOME_WINDOW_MANAGER_TYPE, GnomeWindowManager)) +#define GNOME_WINDOW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNOME_WINDOW_MANAGER_TYPE, GnomeWindowManagerClass)) +#define IS_GNOME_WINDOW_MANAGER(obj) (GTK_TYPE_CHECK_INSTANCE_TYPE ((obj), GNOME_WINDOW_MANAGER_TYPE)) +#define IS_GNOME_WINDOW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNOME_WINDOW_MANAGER_TYPE)) +#define GNOME_WINDOW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNOME_WINDOW_MANAGER_TYPE, GnomeWindowManagerClass)) + +#define GNOME_WINDOW_MANAGER_ERROR gnome_window_manager_error_quark () + +typedef struct _GnomeWindowManager GnomeWindowManager; +typedef struct _GnomeWindowManagerClass GnomeWindowManagerClass; +typedef struct _GnomeWindowManagerPrivate GnomeWindowManagerPrivate; + +struct _GnomeWindowManager +{ + GObject parent_instance; +}; + +struct _GnomeWindowManagerClass +{ + GObjectClass parent_class; + + void (*set_theme) (const char *theme_name); + GList * (*get_theme_list) (void); + void (*set_font) (const char *font); + gboolean (*get_focus_follows_mouse) (void); + void (*set_focus_follows_mouse) (gboolean focus_follows_mouse); +}; + +GObject *gnome_window_manager_new (GnomeDesktopItem *item); + +GType gnome_window_manager_get_type (void); +void gnome_window_manager_set_theme (const char *theme_name); +GList * gnome_window_manager_get_theme_list (void); +void gnome_window_manager_set_font (const char *font); +gboolean gnome_window_manager_get_focus_follows_mouse (void); +void gnome_window_manager_set_focus_follows_mouse (gboolean focus_follows_mouse); + +G_END_DECLS + +#endif /* GNOME_WINDOW_MANAGER_H */ |