1 /*
2  * Copyright © 2015 Red Hat Inc.
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
16  *
17  * Authors: Benjamin Otte <otte@gnome.org>
18  */
19 
20 #ifndef __GTK_BUILTIN_ICON_PRIVATE_H__
21 #define __GTK_BUILTIN_ICON_PRIVATE_H__
22 
23 #include "gtk/gtkcssgadgetprivate.h"
24 
25 G_BEGIN_DECLS
26 
27 #define GTK_TYPE_BUILTIN_ICON           (gtk_builtin_icon_get_type ())
28 #define GTK_BUILTIN_ICON(obj)           (G_TYPE_CHECK_INSTANCE_CAST (obj, GTK_TYPE_BUILTIN_ICON, GtkBuiltinIcon))
29 #define GTK_BUILTIN_ICON_CLASS(cls)     (G_TYPE_CHECK_CLASS_CAST (cls, GTK_TYPE_BUILTIN_ICON, GtkBuiltinIconClass))
30 #define GTK_IS_BUILTIN_ICON(obj)        (G_TYPE_CHECK_INSTANCE_TYPE (obj, GTK_TYPE_BUILTIN_ICON))
31 #define GTK_IS_BUILTIN_ICON_CLASS(obj)  (G_TYPE_CHECK_CLASS_TYPE (obj, GTK_TYPE_BUILTIN_ICON))
32 #define GTK_BUILTIN_ICON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_BUILTIN_ICON, GtkBuiltinIconClass))
33 
34 typedef struct _GtkBuiltinIcon           GtkBuiltinIcon;
35 typedef struct _GtkBuiltinIconClass      GtkBuiltinIconClass;
36 
37 struct _GtkBuiltinIcon
38 {
39   GtkCssGadget parent;
40 };
41 
42 struct _GtkBuiltinIconClass
43 {
44   GtkCssGadgetClass  parent_class;
45 };
46 
47 GType                   gtk_builtin_icon_get_type               (void) G_GNUC_CONST;
48 
49 GtkCssGadget *          gtk_builtin_icon_new                    (const char             *name,
50                                                                  GtkWidget              *owner,
51                                                                  GtkCssGadget           *parent,
52                                                                  GtkCssGadget           *next_sibling);
53 GtkCssGadget *          gtk_builtin_icon_new_for_node           (GtkCssNode             *node,
54                                                                  GtkWidget              *owner);
55 
56 void                    gtk_builtin_icon_set_image              (GtkBuiltinIcon         *icon,
57                                                                  GtkCssImageBuiltinType  image);
58 GtkCssImageBuiltinType  gtk_builtin_icon_get_image              (GtkBuiltinIcon         *icon);
59 void                    gtk_builtin_icon_set_default_size       (GtkBuiltinIcon         *icon,
60                                                                  int                     default_size);
61 int                     gtk_builtin_icon_get_default_size       (GtkBuiltinIcon         *icon);
62 void                    gtk_builtin_icon_set_default_size_property (GtkBuiltinIcon      *icon,
63                                                                  const char             *property_name);
64 const char *            gtk_builtin_icon_get_default_size_property (GtkBuiltinIcon      *icon);
65 
66 G_END_DECLS
67 
68 #endif /* __GTK_BUILTIN_ICON_PRIVATE_H__ */
69