pidgin: a43f6439: Add some boilerplate Conversation theme ...
qulogic at pidgin.im
qulogic at pidgin.im
Sat Sep 17 01:45:47 EDT 2011
----------------------------------------------------------------------
Revision: a43f6439e5cf56dc0afe5ec8fa57609c5affe524
Parent: 13c74d7b26fd20cac3caa1d147efa68eda82fd81
Author: qulogic at pidgin.im
Date: 09/17/11 01:27:30
Branch: im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/a43f6439e5cf56dc0afe5ec8fa57609c5affe524
Changelog:
Add some boilerplate Conversation theme GObjects. These don't do
anything yet, and aren't used either.
Changes against parent 13c74d7b26fd20cac3caa1d147efa68eda82fd81
added pidgin/gtkconv-theme-loader.c
added pidgin/gtkconv-theme-loader.h
added pidgin/gtkconv-theme.c
added pidgin/gtkconv-theme.h
patched pidgin/Makefile.am
-------------- next part --------------
============================================================
--- pidgin/Makefile.am d080b09adf292dd20e033dd9561ee0a153b2e8fe
+++ pidgin/Makefile.am 14e3773547daf116505ae4beb87aca32e5a47058
@@ -48,6 +48,8 @@ pidgin_SOURCES = \
gtkcertmgr.c \
gtkconn.c \
gtkconv.c \
+ gtkconv-theme.c \
+ gtkconv-theme-loader.c \
gtkdebug.c \
gtkdialogs.c \
gtkdnd-hints.c \
@@ -99,6 +101,8 @@ pidgin_headers = \
gtkconn.h \
gtkconv.h \
gtkconvwin.h \
+ gtkconv-theme.h \
+ gtkconv-theme-loader.h \
gtkdebug.h \
gtkdialogs.h \
gtkdnd-hints.h \
============================================================
--- /dev/null
+++ pidgin/gtkconv-theme-loader.c be6287b7e8fd1d84ec2ccd7e6ec72517c84ca490
@@ -0,0 +1,79 @@
+/*
+ * PidginConvThemeLoader for Pidgin
+ *
+ * Pidgin is the legal property of its developers, whose names are too numerous
+ * to list here. Please refer to the COPYRIGHT file distributed with this
+ * source distribution.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
+ */
+
+#include "gtkconv-theme-loader.h"
+#include "gtkconv-theme.h"
+
+#include "xmlnode.h"
+#include "debug.h"
+
+/*****************************************************************************
+ * Conversation Theme Builder
+ *****************************************************************************/
+
+static PurpleTheme *
+pidgin_conv_loader_build(const gchar *dir)
+{
+ PidginConvTheme *theme = NULL;
+
+ /* Find the theme file */
+ g_return_val_if_fail(dir != NULL, NULL);
+
+ return PURPLE_THEME(theme);
+}
+
+/******************************************************************************
+ * GObject Stuff
+ *****************************************************************************/
+
+static void
+pidgin_conv_theme_loader_class_init(PidginConvThemeLoaderClass *klass)
+{
+ PurpleThemeLoaderClass *loader_klass = PURPLE_THEME_LOADER_CLASS(klass);
+
+ loader_klass->purple_theme_loader_build = pidgin_conv_loader_build;
+}
+
+
+GType
+pidgin_conversation_theme_loader_get_type(void)
+{
+ static GType type = 0;
+ if (type == 0) {
+ static const GTypeInfo info = {
+ sizeof(PidginConvThemeLoaderClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc)pidgin_conv_theme_loader_class_init, /* class_init */
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (PidginConvThemeLoader),
+ 0, /* n_preallocs */
+ NULL, /* instance_init */
+ NULL, /* value table */
+ };
+ type = g_type_register_static(PURPLE_TYPE_THEME_LOADER,
+ "PidginConvThemeLoader", &info, 0);
+ }
+ return type;
+}
+
============================================================
--- /dev/null
+++ pidgin/gtkconv-theme-loader.h 2b0dde78efac7a21aab2728fbf9985a783c8919a
@@ -0,0 +1,72 @@
+/**
+ * @file gtkconv-theme-loader.h Pidgin Conversation Theme Loader Class API
+ */
+
+/* purple
+ *
+ * Purple is the legal property of its developers, whose names are too numerous
+ * to list here. Please refer to the COPYRIGHT file distributed with this
+ * source distribution.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
+ */
+
+#ifndef PIDGIN_CONV_THEME_LOADER_H
+#define PIDGIN_CONV_THEME_LOADER_H
+
+#include <glib.h>
+#include <glib-object.h>
+#include "theme-loader.h"
+
+/**
+ * A pidgin conversation theme loader. Extends PurpleThemeLoader (theme-loader.h)
+ * This is a class designed to build conversation themes
+ *
+ * PidginConvThemeLoader is a GObject.
+ */
+typedef struct _PidginConvThemeLoader PidginConvThemeLoader;
+typedef struct _PidginConvThemeLoaderClass PidginConvThemeLoaderClass;
+
+#define PIDGIN_TYPE_CONV_THEME_LOADER (pidgin_conversation_theme_loader_get_type ())
+#define PIDGIN_CONV_THEME_LOADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PIDGIN_TYPE_CONV_THEME_LOADER, PidginConvThemeLoader))
+#define PIDGIN_CONV_THEME_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PIDGIN_TYPE_CONV_THEME_LOADER, PidginConvThemeLoaderClass))
+#define PIDGIN_IS_CONV_THEME_LOADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PIDGIN_TYPE_CONV_THEME_LOADER))
+#define PIDGIN_IS_CONV_THEME_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PIDGIN_TYPE_CONV_THEME_LOADER))
+#define PIDGIN_CONV_THEME_LOADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PIDGIN_TYPE_CONV_THEME_LOADER, PidginConvThemeLoaderClass))
+
+struct _PidginConvThemeLoader
+{
+ PurpleThemeLoader parent;
+};
+
+struct _PidginConvThemeLoaderClass
+{
+ PurpleThemeLoaderClass parent_class;
+};
+
+/**************************************************************************/
+/** @name Pidgin Conversation Theme-Loader API */
+/**************************************************************************/
+G_BEGIN_DECLS
+
+/**
+ * GObject foo.
+ * @internal.
+ */
+GType pidgin_conversation_theme_loader_get_type(void);
+
+G_END_DECLS
+#endif /* PIDGIN_CONV_THEME_LOADER_H */
+
============================================================
--- /dev/null
+++ pidgin/gtkconv-theme.c 0648d1ec29b2d6dccca6c01354c6f75a208f20e5
@@ -0,0 +1,107 @@
+/*
+ * Conversation Themes for Pidgin
+ *
+ * Pidgin is the legal property of its developers, whose names are too numerous
+ * to list here. Please refer to the COPYRIGHT file distributed with this
+ * source distribution.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
+ */
+
+#include "gtkconv-theme.h"
+#include "pidginstock.h"
+
+#include <gtk/gtk.h>
+
+#define PIDGIN_CONV_THEME_GET_PRIVATE(Gobject) \
+ (G_TYPE_INSTANCE_GET_PRIVATE((Gobject), PIDGIN_TYPE_CONV_THEME, PidginConvThemePrivate))
+
+/******************************************************************************
+ * Structs
+ *****************************************************************************/
+
+typedef struct {
+ /* Boilerplate... */
+ gpointer unused;
+} PidginConvThemePrivate;
+
+/******************************************************************************
+ * Globals
+ *****************************************************************************/
+
+static GObjectClass *parent_class = NULL;
+
+/******************************************************************************
+ * GObject Stuff
+ *****************************************************************************/
+
+static void
+pidgin_conv_theme_init(GTypeInstance *instance,
+ gpointer klass)
+{
+ PidginConvThemePrivate *priv;
+
+ priv = PIDGIN_CONV_THEME_GET_PRIVATE(instance);
+
+ priv->unused = NULL; /* Boilerplate... */
+}
+
+static void
+pidgin_conv_theme_finalize(GObject *obj)
+{
+ PidginConvThemePrivate *priv;
+
+ priv = PIDGIN_CONV_THEME_GET_PRIVATE(obj);
+
+ parent_class->finalize(obj);
+}
+
+static void
+pidgin_conv_theme_class_init(PidginIconThemeClass *klass)
+{
+ GObjectClass *obj_class = G_OBJECT_CLASS(klass);
+
+ parent_class = g_type_class_peek_parent(klass);
+
+ obj_class->finalize = pidgin_conv_theme_finalize;
+}
+
+GType
+pidgin_conversation_theme_get_type(void)
+{
+ static GType type = 0;
+ if (type == 0) {
+ static const GTypeInfo info = {
+ sizeof(PidginConvThemeClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc)pidgin_conv_theme_class_init, /* class_init */
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof(PidginConvTheme),
+ 0, /* n_preallocs */
+ pidgin_conv_theme_init, /* instance_init */
+ NULL, /* value table */
+ };
+ type = g_type_register_static(PURPLE_TYPE_THEME,
+ "PidginConvTheme", &info, G_TYPE_FLAG_ABSTRACT);
+ }
+ return type;
+}
+
+/*****************************************************************************
+ * Public API functions
+ *****************************************************************************/
+
============================================================
--- /dev/null
+++ pidgin/gtkconv-theme.h cc1fc616323168a812b56d0b0f982a7372a457be
@@ -0,0 +1,73 @@
+/**
+ * @file gtkconv-theme.h Pidgin Conversation Theme Class API
+ */
+
+/* pidgin
+ *
+ * Pidgin is the legal property of its developers, whose names are too numerous
+ * to list here. Please refer to the COPYRIGHT file distributed with this
+ * source distribution.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
+ */
+
+#ifndef PIDGIN_CONV_THEME_H
+#define PIDGIN_CONV_THEME_H
+
+#include <glib.h>
+#include <glib-object.h>
+#include "theme.h"
+
+/**
+ * extends PurpleTheme (theme.h)
+ * A pidgin icon theme.
+ * This object represents a Pidgin icon theme.
+ *
+ * PidginConvTheme is a PurpleTheme Object.
+ */
+typedef struct _PidginConvTheme PidginConvTheme;
+typedef struct _PidginConvThemeClass PidginConvThemeClass;
+
+#define PIDGIN_TYPE_CONV_THEME (pidgin_conversation_theme_get_type ())
+#define PIDGIN_CONV_THEME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PIDGIN_TYPE_CONV_THEME, PidginConvTheme))
+#define PIDGIN_CONV_THEME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PIDGIN_TYPE_CONV_THEME, PidginConvThemeClass))
+#define PIDGIN_IS_CONV_THEME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PIDGIN_TYPE_CONV_THEME))
+#define PIDGIN_IS_CONV_THEME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PIDGIN_TYPE_CONV_THEME))
+#define PIDGIN_CONV_THEME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PIDGIN_TYPE_CONV_THEME, PidginConvThemeClass))
+
+struct _PidginConvTheme
+{
+ PurpleTheme parent;
+};
+
+struct _PidginConvThemeClass
+{
+ PurpleThemeClass parent_class;
+};
+
+/**************************************************************************/
+/** @name Pidgin Conversation Theme API */
+/**************************************************************************/
+G_BEGIN_DECLS
+
+/**
+ * GObject foo.
+ * @internal.
+ */
+GType pidgin_conversation_theme_get_type(void);
+
+G_END_DECLS
+#endif /* PIDGIN_CONV_THEME_H */
+
More information about the Commits
mailing list