libyui-gtk  2.44.5
ygtkimage.h
1 /********************************************************************
2  * YaST2-GTK - http://en.opensuse.org/YaST2-GTK *
3  ********************************************************************/
4 
5 /* GtkImage doesn't provide all the functionality asked by libyui,
6  such as scaling and tiling. Thus, YGtkImage is a more powerful
7  GtkImage.
8 */
9 
10 #ifndef YGTK_IMAGE_H
11 #define YGTK_IMAGE_H
12 
13 #include <gtk/gtk.h>
14 #include <gdk/gdk.h>
15 
16 G_BEGIN_DECLS
17 
18 #define YGTK_TYPE_IMAGE (ygtk_image_get_type ())
19 #define YGTK_IMAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
20  YGTK_TYPE_IMAGE, YGtkImage))
21 #define YGTK_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \
22  YGTK_TYPE_IMAGE, YGtkImageClass))
23 #define YGTK_IS_IMAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
24  YGTK_TYPE_IMAGE))
25 #define YGTK_IS_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
26  YGTK_TYPE_IMAGE))
27 #define YGTK_IMAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \
28  YGTK_TYPE_IMAGE, YGtkImageClass))
29 
30 typedef enum {
31  CENTER_IMAGE_ALIGN, SCALE_IMAGE_ALIGN, TILE_IMAGE_ALIGN
32 } YGtkImageAlign;
33 
35  GdkPixbufAnimation *pixbuf;
36  GdkPixbufAnimationIter *frame;
37  guint timeout_id;
38 };
39 
40 typedef struct _YGtkImage
41 {
42  GtkDrawingArea parent;
43 
44  // properties:
45  YGtkImageAlign align;
46 
47  gboolean animated;
48  union {
49  GdkPixbuf *pixbuf;
50  struct _YGtkImageAnimation *animation;
51  };
52 
53  gboolean loaded;
54  gchar *alt_text;
55 
56 } YGtkImage;
57 
58 typedef struct _YGtkImageClass
59 {
60  GtkDrawingAreaClass parent_class;
62 
63 GtkWidget* ygtk_image_new (void);
64 GType ygtk_image_get_type (void) G_GNUC_CONST;
65 
66 void ygtk_image_set_from_file (YGtkImage *image, const char *filename, gboolean anim);
67 void ygtk_image_set_from_data (YGtkImage *image, const guint8 *data, long size, gboolean anim);
68 void ygtk_image_set_from_pixbuf (YGtkImage *image, GdkPixbuf *pixbuf);
69 void ygtk_image_set_props (YGtkImage *image, YGtkImageAlign align, const gchar *alt_text);
70 
71 // as we don't have a window,
72 
73 G_END_DECLS
74 
75 #endif /* YGTK_IMAGE_H */
76