Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 
 
 

196 wiersze
7.6 KiB

  1. /* gtkcellrenderer.h
  2. * Copyright (C) 2000 Red Hat, Inc., Jonathan Blandford <jrb@redhat.com>
  3. *
  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.
  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. * Library General Public License for more details.
  13. *
  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.
  18. */
  19. #if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
  20. #error "Only <gtk/gtk.h> can be included directly."
  21. #endif
  22. #ifndef __GTK_CELL_RENDERER_H__
  23. #define __GTK_CELL_RENDERER_H__
  24. #include <gtk/gtkcelleditable.h>
  25. G_BEGIN_DECLS
  26. typedef enum
  27. {
  28. GTK_CELL_RENDERER_SELECTED = 1 << 0,
  29. GTK_CELL_RENDERER_PRELIT = 1 << 1,
  30. GTK_CELL_RENDERER_INSENSITIVE = 1 << 2,
  31. /* this flag means the cell is in the sort column/row */
  32. GTK_CELL_RENDERER_SORTED = 1 << 3,
  33. GTK_CELL_RENDERER_FOCUSED = 1 << 4
  34. } GtkCellRendererState;
  35. typedef enum
  36. {
  37. GTK_CELL_RENDERER_MODE_INERT,
  38. GTK_CELL_RENDERER_MODE_ACTIVATABLE,
  39. GTK_CELL_RENDERER_MODE_EDITABLE
  40. } GtkCellRendererMode;
  41. #define GTK_TYPE_CELL_RENDERER (gtk_cell_renderer_get_type ())
  42. #define GTK_CELL_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_CELL_RENDERER, GtkCellRenderer))
  43. #define GTK_CELL_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_CELL_RENDERER, GtkCellRendererClass))
  44. #define GTK_IS_CELL_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_CELL_RENDERER))
  45. #define GTK_IS_CELL_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_CELL_RENDERER))
  46. #define GTK_CELL_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_CELL_RENDERER, GtkCellRendererClass))
  47. typedef struct _GtkCellRenderer GtkCellRenderer;
  48. typedef struct _GtkCellRendererClass GtkCellRendererClass;
  49. struct _GtkCellRenderer
  50. {
  51. GtkObject parent;
  52. gfloat GSEAL (xalign);
  53. gfloat GSEAL (yalign);
  54. gint GSEAL (width);
  55. gint GSEAL (height);
  56. guint16 GSEAL (xpad);
  57. guint16 GSEAL (ypad);
  58. guint GSEAL (mode) : 2;
  59. guint GSEAL (visible) : 1;
  60. guint GSEAL (is_expander) : 1;
  61. guint GSEAL (is_expanded) : 1;
  62. guint GSEAL (cell_background_set) : 1;
  63. guint GSEAL (sensitive) : 1;
  64. guint GSEAL (editing) : 1;
  65. };
  66. struct _GtkCellRendererClass
  67. {
  68. GtkObjectClass parent_class;
  69. /* vtable - not signals */
  70. void (* get_size) (GtkCellRenderer *cell,
  71. GtkWidget *widget,
  72. GdkRectangle *cell_area,
  73. gint *x_offset,
  74. gint *y_offset,
  75. gint *width,
  76. gint *height);
  77. void (* render) (GtkCellRenderer *cell,
  78. GdkDrawable *window,
  79. GtkWidget *widget,
  80. GdkRectangle *background_area,
  81. GdkRectangle *cell_area,
  82. GdkRectangle *expose_area,
  83. GtkCellRendererState flags);
  84. gboolean (* activate) (GtkCellRenderer *cell,
  85. GdkEvent *event,
  86. GtkWidget *widget,
  87. const gchar *path,
  88. GdkRectangle *background_area,
  89. GdkRectangle *cell_area,
  90. GtkCellRendererState flags);
  91. GtkCellEditable *(* start_editing) (GtkCellRenderer *cell,
  92. GdkEvent *event,
  93. GtkWidget *widget,
  94. const gchar *path,
  95. GdkRectangle *background_area,
  96. GdkRectangle *cell_area,
  97. GtkCellRendererState flags);
  98. /* Signals */
  99. void (* editing_canceled) (GtkCellRenderer *cell);
  100. void (* editing_started) (GtkCellRenderer *cell,
  101. GtkCellEditable *editable,
  102. const gchar *path);
  103. /* Padding for future expansion */
  104. void (*_gtk_reserved1) (void);
  105. void (*_gtk_reserved2) (void);
  106. };
  107. GType gtk_cell_renderer_get_type (void) G_GNUC_CONST;
  108. void gtk_cell_renderer_get_size (GtkCellRenderer *cell,
  109. GtkWidget *widget,
  110. const GdkRectangle *cell_area,
  111. gint *x_offset,
  112. gint *y_offset,
  113. gint *width,
  114. gint *height);
  115. void gtk_cell_renderer_render (GtkCellRenderer *cell,
  116. GdkWindow *window,
  117. GtkWidget *widget,
  118. const GdkRectangle *background_area,
  119. const GdkRectangle *cell_area,
  120. const GdkRectangle *expose_area,
  121. GtkCellRendererState flags);
  122. gboolean gtk_cell_renderer_activate (GtkCellRenderer *cell,
  123. GdkEvent *event,
  124. GtkWidget *widget,
  125. const gchar *path,
  126. const GdkRectangle *background_area,
  127. const GdkRectangle *cell_area,
  128. GtkCellRendererState flags);
  129. GtkCellEditable *gtk_cell_renderer_start_editing (GtkCellRenderer *cell,
  130. GdkEvent *event,
  131. GtkWidget *widget,
  132. const gchar *path,
  133. const GdkRectangle *background_area,
  134. const GdkRectangle *cell_area,
  135. GtkCellRendererState flags);
  136. void gtk_cell_renderer_set_fixed_size (GtkCellRenderer *cell,
  137. gint width,
  138. gint height);
  139. void gtk_cell_renderer_get_fixed_size (GtkCellRenderer *cell,
  140. gint *width,
  141. gint *height);
  142. void gtk_cell_renderer_set_alignment (GtkCellRenderer *cell,
  143. gfloat xalign,
  144. gfloat yalign);
  145. void gtk_cell_renderer_get_alignment (GtkCellRenderer *cell,
  146. gfloat *xalign,
  147. gfloat *yalign);
  148. void gtk_cell_renderer_set_padding (GtkCellRenderer *cell,
  149. gint xpad,
  150. gint ypad);
  151. void gtk_cell_renderer_get_padding (GtkCellRenderer *cell,
  152. gint *xpad,
  153. gint *ypad);
  154. void gtk_cell_renderer_set_visible (GtkCellRenderer *cell,
  155. gboolean visible);
  156. gboolean gtk_cell_renderer_get_visible (GtkCellRenderer *cell);
  157. void gtk_cell_renderer_set_sensitive (GtkCellRenderer *cell,
  158. gboolean sensitive);
  159. gboolean gtk_cell_renderer_get_sensitive (GtkCellRenderer *cell);
  160. /* For use by cell renderer implementations only */
  161. #ifndef GTK_DISABLE_DEPRECATED
  162. void gtk_cell_renderer_editing_canceled (GtkCellRenderer *cell);
  163. #endif
  164. void gtk_cell_renderer_stop_editing (GtkCellRenderer *cell,
  165. gboolean canceled);
  166. G_END_DECLS
  167. #endif /* __GTK_CELL_RENDERER_H__ */