source: trunk/third/gtkhtml3/src/htmlimage.h @ 19539

Revision 19539, 6.4 KB checked in by ghudson, 21 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r19538, which included commits to RCS files with non-trunk default branches.
Line 
1/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2/* This file is part of the KDE libraries
3
4   Copyright (C) 1997 Martin Jones (mjones@kde.org)
5   Copyright (C) 1997 Torben Weis (weis@kde.org)
6   Copyright (C) 1999, 2000 Helix Code, Inc.
7   
8   This library is free software; you can redistribute it and/or
9   modify it under the terms of the GNU Library General Public
10   License as published by the Free Software Foundation; either
11   version 2 of the License, or (at your option) any later version.
12   
13   This library is distributed in the hope that it will be useful,
14   but WITHOUT ANY WARRANTY; without even the implied warranty of
15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16   Library General Public License for more details.
17   
18   You should have received a copy of the GNU Library General Public License
19   along with this library; see the file COPYING.LIB.  If not, write to
20   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21   Boston, MA 02111-1307, USA.
22*/
23#ifndef _HTMLIMAGE_H_
24#define _HTMLIMAGE_H_
25
26#include <gdk-pixbuf/gdk-pixbuf.h>
27#include <gdk-pixbuf/gdk-pixbuf-loader.h>
28#include "htmlobject.h"
29
30#define HTML_IMAGE_FACTORY(x) ((HTMLImageFactory *)(x))
31#define HTML_IMAGE_POINTER(x) ((HTMLImagePointer *)(x))
32#define HTML_IS_IMAGE(x) (HTML_CHECK_TYPE ((x), HTML_TYPE_IMAGE))
33
34struct _HTMLImagePointer {
35        gint refcount;
36        gchar *url;
37        GdkPixbufLoader *loader;
38        GdkPixbufAnimation *animation;
39        GdkPixbufAnimationIter *iter;
40        GSList *interests; /* A list of HTMLImage's, or a NULL pointer for the background pixmap */
41        HTMLImageFactory *factory;
42        gint stall;
43        guint stall_timeout;
44        guint animation_timeout;
45};
46
47#define HTML_IMAGE(x) ((HTMLImage *)(x))
48#define HTML_IMAGE_POINTER(x) ((HTMLImagePointer *)(x))
49
50struct _HTMLImage {
51        HTMLObject object;
52        HTMLImagePointer *image_ptr;
53
54        HTMLColor *color;
55
56        guint have_color: 1;
57
58        gint8 border;
59
60        gint16 specified_width;
61        gint16 specified_height;
62        gboolean percent_width  : 1;
63        gboolean percent_height : 1;
64        gboolean ismap : 1;
65        gboolean animation_active : 1;
66
67        gint8 hspace;
68        gint8 vspace;
69
70        HTMLVAlignType valign;
71
72        gchar *url;
73        gchar *target;
74        gchar *alt;
75        gchar *usemap;
76        gchar *final_url;       
77};
78
79struct _HTMLImageClass {
80        HTMLObjectClass parent_class;
81};
82
83
84extern HTMLImageClass image_class;
85
86
87void        html_image_type_init          (void);
88void        html_image_class_init         (HTMLImageClass   *klass,
89                                           HTMLType          type,
90                                           guint             object_size);
91void        html_image_init               (HTMLImage        *image,
92                                           HTMLImageClass   *klass,
93                                           HTMLImageFactory *imf,
94                                           const gchar      *filename,
95                                           const gchar      *url,
96                                           const gchar      *target,
97                                           gint16            width,
98                                           gint16            height,
99                                           gboolean          percent_width,
100                                           gboolean          percent_height,
101                                           gint8             border,
102                                           HTMLColor        *border_color,
103                                           HTMLVAlignType    valign,
104                                           gboolean          reload);
105HTMLObject *html_image_new                (HTMLImageFactory *imf,
106                                           const gchar      *filename,
107                                           const gchar      *url,
108                                           const gchar      *target,
109                                           gint16            width,
110                                           gint16            height,
111                                           gboolean          percent_width,
112                                           gboolean          percent_height,
113                                           gint8             border,
114                                           HTMLColor        *border_color,
115                                           HTMLVAlignType    valign,
116                                           gboolean          reload);
117void        html_image_set_size           (HTMLImage        *image,
118                                           gint              w,
119                                           gint              h,
120                                           gboolean          pw,
121                                           gboolean          ph);
122void        html_image_set_spacing        (HTMLImage        *image,
123                                           gint              hspace,
124                                           gint              vspace);
125void        html_image_set_url            (HTMLImage        *image,
126                                           const gchar      *url);
127void        html_image_set_valign         (HTMLImage        *image,
128                                           HTMLVAlignType    valign);
129void        html_image_set_border         (HTMLImage        *image,
130                                           gint              border);
131void        html_image_set_alt            (HTMLImage        *image,
132                                           gchar            *alt);
133void        html_image_set_map            (HTMLImage        *image,
134                                           gchar            *mapuri,
135                                           gboolean         ismap);
136gchar      *html_image_resolve_image_url  (GtkHTML          *html,
137                                           gchar            *image_url);
138
139void        html_image_edit_set_url        (HTMLImage       *image,
140                                            const gchar     *url);
141guint       html_image_get_actual_width    (HTMLImage       *image,
142                                            HTMLPainter     *painter);
143guint       html_image_get_actual_height   (HTMLImage       *image,
144                                            HTMLPainter     *painter);
145/* FIXME move to htmlimagefactory.c */
146HTMLImageFactory *html_image_factory_new                    (HTMLEngine       *e);
147void              html_image_factory_free                   (HTMLImageFactory *factory);
148void              html_image_factory_cleanup                (HTMLImageFactory *factory); /* Does gc etc. - removes unused image entries */
149void              html_image_factory_stop_animations        (HTMLImageFactory *factory);
150void              html_image_factory_start_animations       (HTMLImageFactory *factory);
151void              html_image_factory_set_animate            (HTMLImageFactory *factory,
152                                                             gboolean animate);
153gboolean          html_image_factory_get_animate            (HTMLImageFactory *factory);
154void              html_image_factory_deactivate_animations  (HTMLImageFactory *factory);
155HTMLImagePointer *html_image_factory_register               (HTMLImageFactory *factory,
156                                                             HTMLImage        *i,
157                                                             const char       *filename,
158                                                             gboolean          reload);
159void              html_image_factory_unregister             (HTMLImageFactory *factory,
160                                                             HTMLImagePointer *pointer,
161                                                             HTMLImage        *i);
162void              html_image_factory_move_images            (HTMLImageFactory *dst,
163                                                             HTMLImageFactory *src);
164void              html_image_factory_ref_all_images         (HTMLImageFactory *factory);
165void              html_image_factory_unref_all_images       (HTMLImageFactory *factory);
166void              html_image_factory_ref_image_ptr          (HTMLImageFactory *factory,
167                                                             const gchar      *url);
168void              html_image_factory_unref_image_ptr        (HTMLImageFactory *factory,
169                                                             const gchar      *url);
170#endif /* _HTMLIMAGE_H_ */
Note: See TracBrowser for help on using the repository browser.