2
* Copyright (C) 2000 Red Hat, Inc., Jonathan Blandford <jrb@redhat.com>
4
* This library is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Library General Public
6
* License as published by the Free Software Foundation; either
7
* version 2 of the License, or (at your option) any later version.
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
* Library General Public License for more details.
14
* You should have received a copy of the GNU Library General Public
15
* License along with this library; if not, write to the
16
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17
* Boston, MA 02111-1307, USA.
20
#ifndef __GTK_CELL_RENDERER_H__
21
#define __GTK_CELL_RENDERER_H__
23
#include <gtk/gtkobject.h>
24
#include <gtk/gtkwidget.h>
25
#include <gtk/gtkcelleditable.h>
31
GTK_CELL_RENDERER_SELECTED = 1 << 0,
32
GTK_CELL_RENDERER_PRELIT = 1 << 1,
33
GTK_CELL_RENDERER_INSENSITIVE = 1 << 2,
34
/* this flag means the cell is in the sort column/row */
35
GTK_CELL_RENDERER_SORTED = 1 << 3,
36
GTK_CELL_RENDERER_FOCUSED = 1 << 4
37
} GtkCellRendererState;
41
GTK_CELL_RENDERER_MODE_INERT,
42
GTK_CELL_RENDERER_MODE_ACTIVATABLE,
43
GTK_CELL_RENDERER_MODE_EDITABLE
44
} GtkCellRendererMode;
46
#define GTK_TYPE_CELL_RENDERER (gtk_cell_renderer_get_type ())
47
#define GTK_CELL_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_CELL_RENDERER, GtkCellRenderer))
48
#define GTK_CELL_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_CELL_RENDERER, GtkCellRendererClass))
49
#define GTK_IS_CELL_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_CELL_RENDERER))
50
#define GTK_IS_CELL_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_CELL_RENDERER))
51
#define GTK_CELL_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_CELL_RENDERER, GtkCellRendererClass))
53
typedef struct _GtkCellRenderer GtkCellRenderer;
54
typedef struct _GtkCellRendererClass GtkCellRendererClass;
56
struct _GtkCellRenderer
71
guint is_expander : 1;
72
guint is_expanded : 1;
73
guint cell_background_set : 1;
78
struct _GtkCellRendererClass
80
GtkObjectClass parent_class;
82
/* vtable - not signals */
83
void (* get_size) (GtkCellRenderer *cell,
85
GdkRectangle *cell_area,
90
void (* render) (GtkCellRenderer *cell,
93
GdkRectangle *background_area,
94
GdkRectangle *cell_area,
95
GdkRectangle *expose_area,
96
GtkCellRendererState flags);
97
gboolean (* activate) (GtkCellRenderer *cell,
101
GdkRectangle *background_area,
102
GdkRectangle *cell_area,
103
GtkCellRendererState flags);
104
GtkCellEditable *(* start_editing) (GtkCellRenderer *cell,
108
GdkRectangle *background_area,
109
GdkRectangle *cell_area,
110
GtkCellRendererState flags);
113
void (* editing_canceled) (GtkCellRenderer *cell);
114
void (* editing_started) (GtkCellRenderer *cell,
115
GtkCellEditable *editable,
118
/* Padding for future expansion */
119
void (*_gtk_reserved1) (void);
120
void (*_gtk_reserved2) (void);
123
GType gtk_cell_renderer_get_type (void) G_GNUC_CONST;
125
void gtk_cell_renderer_get_size (GtkCellRenderer *cell,
127
GdkRectangle *cell_area,
132
void gtk_cell_renderer_render (GtkCellRenderer *cell,
135
GdkRectangle *background_area,
136
GdkRectangle *cell_area,
137
GdkRectangle *expose_area,
138
GtkCellRendererState flags);
139
gboolean gtk_cell_renderer_activate (GtkCellRenderer *cell,
143
GdkRectangle *background_area,
144
GdkRectangle *cell_area,
145
GtkCellRendererState flags);
146
GtkCellEditable *gtk_cell_renderer_start_editing (GtkCellRenderer *cell,
150
GdkRectangle *background_area,
151
GdkRectangle *cell_area,
152
GtkCellRendererState flags);
153
void gtk_cell_renderer_set_fixed_size (GtkCellRenderer *cell,
156
void gtk_cell_renderer_get_fixed_size (GtkCellRenderer *cell,
160
/* For use by cell renderer implementations only */
161
#ifndef GTK_DISABLE_DEPRECATED
162
void gtk_cell_renderer_editing_canceled (GtkCellRenderer *cell);
164
void gtk_cell_renderer_stop_editing (GtkCellRenderer *cell,
170
#endif /* __GTK_CELL_RENDERER_H__ */