Frameworks/libpurple.framework/Versions/0.6.2/Headers/theme-loader.h
author Zachary West <zacw@adium.im>
Fri Aug 21 13:25:11 2009 -0700 (2009-08-21)
changeset 2592 e8d15275025e
parent 2069 Frameworks/libpurple.framework/Versions/0.6.0/Headers/theme-loader.h@1346acdb9a2b
permissions -rw-r--r--
im.pidgin.adium.1-4 at 267c6165e02e34318a1823960bd04c0639952f73
     1 /**
     2  * @file theme-loader.h  Purple Theme Loader Abstact Class API
     3  */
     4 
     5 /* purple
     6  *
     7  * Purple is the legal property of its developers, whose names are too numerous
     8  * to list here.  Please refer to the COPYRIGHT file distributed with this
     9  * source distribution.
    10  *
    11  * This program is free software; you can redistribute it and/or modify
    12  * it under the terms of the GNU General Public License as published by
    13  * the Free Software Foundation; either version 2 of the License, or
    14  * (at your option) any later version.
    15  *
    16  * This program is distributed in the hope that it will be useful,
    17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    19  * GNU General Public License for more details.
    20  *
    21  * You should have received a copy of the GNU General Public License
    22  * along with this program; if not, write to the Free Software
    23  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
    24  */
    25 
    26 #ifndef PURPLE_THEME_LOADER_H
    27 #define PURPLE_THEME_LOADER_H
    28 
    29 #include <glib.h>
    30 #include <glib-object.h>
    31 #include "theme.h"
    32 
    33 /**
    34  * A purple theme loader.
    35  * This is an abstract class for Purple to use with the Purple theme manager.
    36  * The loader is responsible for building each type of theme
    37  *
    38  * PurpleThemeLoader is a GObject.
    39  */
    40 typedef struct _PurpleThemeLoader        PurpleThemeLoader;
    41 typedef struct _PurpleThemeLoaderClass   PurpleThemeLoaderClass;
    42 
    43 #define PURPLE_TYPE_THEME_LOADER            (purple_theme_loader_get_type())
    44 #define PURPLE_THEME_LOADER(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_THEME_LOADER, PurpleThemeLoader))
    45 #define PURPLE_THEME_LOADER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_THEME_LOADER, PurpleThemeLoaderClass))
    46 #define PURPLE_IS_THEME_LOADER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_THEME_LOADER))
    47 #define PURPLE_IS_THEME_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_THEME_LOADER))
    48 #define PURPLE_THEME_LOADER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_THEME_LOADER, PurpleThemeLoaderClass))
    49 
    50 struct _PurpleThemeLoader
    51 {
    52 	GObject parent;
    53 	gpointer priv;
    54 };
    55 
    56 struct _PurpleThemeLoaderClass
    57 {
    58 	GObjectClass parent_class;
    59 	PurpleTheme *((*purple_theme_loader_build)(const gchar*));
    60 };
    61 
    62 /**************************************************************************/
    63 /** @name Purple Theme-Loader API                                         */
    64 /**************************************************************************/
    65 G_BEGIN_DECLS
    66 
    67 /**
    68  * GObject foo.
    69  * @internal.
    70  */
    71 GType purple_theme_loader_get_type(void);
    72 
    73 /**
    74  * Returns the string represtenting the type of the theme loader
    75  *
    76  * @param self The theme loader
    77  *
    78  * @returns The string represting this type
    79  */
    80 const gchar *purple_theme_loader_get_type_string(PurpleThemeLoader *self);
    81 
    82 /**
    83  * Creates a new PurpleTheme
    84  *
    85  * @param loader The theme loader
    86  * @param dir    The directory containing the theme
    87  *
    88  * @returns A PurpleTheme containing the information from the directory
    89  */
    90 PurpleTheme *purple_theme_loader_build(PurpleThemeLoader *loader, const gchar *dir);
    91 
    92 G_END_DECLS
    93 #endif /* PURPLE_THEME_LOADER_H */