X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtktreeviewcolumn.h;h=47cea714364ca1769b3c82516b67451e7a5e0a37;hb=5e2c23214564f7dcc687fa8467020eeb6b9407a9;hp=d8fdd6b0e2f0a0aa284a3e3521e43f5ea30a9822;hpb=92841cb95add212c35b2ef58129f043c33676c52;p=~andy%2Fgtk diff --git a/gtk/gtktreeviewcolumn.h b/gtk/gtktreeviewcolumn.h index d8fdd6b0e..47cea7143 100644 --- a/gtk/gtktreeviewcolumn.h +++ b/gtk/gtktreeviewcolumn.h @@ -12,106 +12,101 @@ * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library. If not, see . */ #ifndef __GTK_TREE_VIEW_COLUMN_H__ #define __GTK_TREE_VIEW_COLUMN_H__ -#include +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif + #include #include #include +#include -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ -#define GTK_TYPE_TREE_VIEW_COLUMN (gtk_tree_view_column_get_type ()) -#define GTK_TREE_VIEW_COLUMN(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_TREE_VIEW_COLUMN, GtkTreeViewColumn)) -#define GTK_TREE_VIEW_COLUMN_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_TREE_VIEW_COLUMN, GtkTreeViewColumnClass)) -#define GTK_IS_TREE_VIEW_COLUMN(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_TREE_VIEW_COLUMN)) -#define GTK_IS_TREE_VIEW_COLUMN_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), GTK_TYPE_TREE_VIEW_COLUMN)) -#define GTK_TREE_VIEW_COLUMN_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), GTK_TYPE_TREE_VIEW_COLUMN, GtkTreeViewColumnClass)) +G_BEGIN_DECLS + +#define GTK_TYPE_TREE_VIEW_COLUMN (gtk_tree_view_column_get_type ()) +#define GTK_TREE_VIEW_COLUMN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TREE_VIEW_COLUMN, GtkTreeViewColumn)) +#define GTK_TREE_VIEW_COLUMN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TREE_VIEW_COLUMN, GtkTreeViewColumnClass)) +#define GTK_IS_TREE_VIEW_COLUMN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TREE_VIEW_COLUMN)) +#define GTK_IS_TREE_VIEW_COLUMN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TREE_VIEW_COLUMN)) +#define GTK_TREE_VIEW_COLUMN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TREE_VIEW_COLUMN, GtkTreeViewColumnClass)) + +typedef struct _GtkTreeViewColumn GtkTreeViewColumn; +typedef struct _GtkTreeViewColumnClass GtkTreeViewColumnClass; +typedef struct _GtkTreeViewColumnPrivate GtkTreeViewColumnPrivate; + +/** + * GtkTreeViewColumnSizing: + * @GTK_TREE_VIEW_COLUMN_GROW_ONLY: Columns only get bigger in reaction to changes in the model + * @GTK_TREE_VIEW_COLUMN_AUTOSIZE: Columns resize to be the optimal size everytime the model changes. + * @GTK_TREE_VIEW_COLUMN_FIXED: Columns are a fixed numbers of pixels wide. + * + * The sizing method the column uses to determine its width. Please note + * that @GTK_TREE_VIEW_COLUMN_AUTOSIZE are inefficient for large views, and + * can make columns appear choppy. + */ typedef enum { GTK_TREE_VIEW_COLUMN_GROW_ONLY, - GTK_TREE_VIEW_COLUMN_RESIZABLE, GTK_TREE_VIEW_COLUMN_AUTOSIZE, GTK_TREE_VIEW_COLUMN_FIXED } GtkTreeViewColumnSizing; -typedef struct _GtkTreeViewColumn GtkTreeViewColumn; -typedef struct _GtkTreeViewColumnClass GtkTreeViewColumnClass; - +/** + * GtkTreeCellDataFunc: + * @tree_column: A #GtkTreeViewColumn + * @cell: The #GtkCellRenderer that is being rendered by @tree_column + * @tree_model: The #GtkTreeModel being rendered + * @iter: A #GtkTreeIter of the current row rendered + * @data: user data + * + * A function to set the properties of a cell instead of just using the + * straight mapping between the cell and the model. This is useful for + * customizing the cell renderer. For example, a function might get an + * integer from the @tree_model, and render it to the "text" attribute of + * "cell" by converting it to its written equivilent. This is set by + * calling gtk_tree_view_column_set_cell_data_func() + */ typedef void (* GtkTreeCellDataFunc) (GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data); - + struct _GtkTreeViewColumn { - GtkObject parent; - - GtkWidget *tree_view; - GtkWidget *button; - GtkWidget *child; - GtkWidget *arrow; - GtkWidget *alignment; - GdkWindow *window; - GtkCellEditable *editable_widget; - gfloat xalign; - guint property_changed_signal; - - gint spacing; - gint fixed_width; - gint width; - gint requested_width; - gint min_width; - gint max_width; - - /* dragging columns */ - gint drag_x; - gint drag_y; - - gchar *title; - GList *cell_list; - GtkTreeViewColumnSizing column_type; - - /* Sorting */ - guint sort_clicked_signal; - guint sort_column_changed_signal; - gint sort_column_id; - GtkSortType sort_order; - - /* Flags */ - guint visible : 1; - guint clickable : 1; - guint dirty : 1; - guint show_sort_indicator : 1; - guint maybe_reordered : 1; - guint reorderable : 1; + GInitiallyUnowned parent_instance; + + GtkTreeViewColumnPrivate *priv; }; struct _GtkTreeViewColumnClass { - GtkObjectClass parent_class; + GInitiallyUnownedClass parent_class; void (*clicked) (GtkTreeViewColumn *tree_column); + + /* Padding for future expansion */ + void (*_gtk_reserved1) (void); + void (*_gtk_reserved2) (void); + void (*_gtk_reserved3) (void); + void (*_gtk_reserved4) (void); }; -GtkType gtk_tree_view_column_get_type (void); +GType gtk_tree_view_column_get_type (void) G_GNUC_CONST; GtkTreeViewColumn *gtk_tree_view_column_new (void); +GtkTreeViewColumn *gtk_tree_view_column_new_with_area (GtkCellArea *area); GtkTreeViewColumn *gtk_tree_view_column_new_with_attributes (const gchar *title, GtkCellRenderer *cell, - ...); -void gtk_tree_view_column_set_cell_renderer (GtkTreeViewColumn *tree_column, - GtkCellRenderer *cell); + ...) G_GNUC_NULL_TERMINATED; void gtk_tree_view_column_pack_start (GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, gboolean expand); @@ -119,19 +114,18 @@ void gtk_tree_view_column_pack_end (GtkTreeViewCol GtkCellRenderer *cell, gboolean expand); void gtk_tree_view_column_clear (GtkTreeViewColumn *tree_column); -GList *gtk_tree_view_column_get_cell_renderers (GtkTreeViewColumn *tree_column); void gtk_tree_view_column_add_attribute (GtkTreeViewColumn *tree_column, GtkCellRenderer *cell_renderer, const gchar *attribute, gint column); void gtk_tree_view_column_set_attributes (GtkTreeViewColumn *tree_column, GtkCellRenderer *cell_renderer, - ...); + ...) G_GNUC_NULL_TERMINATED; void gtk_tree_view_column_set_cell_data_func (GtkTreeViewColumn *tree_column, GtkCellRenderer *cell_renderer, GtkTreeCellDataFunc func, gpointer func_data, - GtkDestroyNotify destroy); + GDestroyNotify destroy); void gtk_tree_view_column_clear_attributes (GtkTreeViewColumn *tree_column, GtkCellRenderer *cell_renderer); void gtk_tree_view_column_set_spacing (GtkTreeViewColumn *tree_column, @@ -140,9 +134,14 @@ gint gtk_tree_view_column_get_spacing (GtkTreeViewCol void gtk_tree_view_column_set_visible (GtkTreeViewColumn *tree_column, gboolean visible); gboolean gtk_tree_view_column_get_visible (GtkTreeViewColumn *tree_column); +void gtk_tree_view_column_set_resizable (GtkTreeViewColumn *tree_column, + gboolean resizable); +gboolean gtk_tree_view_column_get_resizable (GtkTreeViewColumn *tree_column); void gtk_tree_view_column_set_sizing (GtkTreeViewColumn *tree_column, GtkTreeViewColumnSizing type); GtkTreeViewColumnSizing gtk_tree_view_column_get_sizing (GtkTreeViewColumn *tree_column); +GDK_AVAILABLE_IN_3_2 +gint gtk_tree_view_column_get_x_offset (GtkTreeViewColumn *tree_column); gint gtk_tree_view_column_get_width (GtkTreeViewColumn *tree_column); gint gtk_tree_view_column_get_fixed_width (GtkTreeViewColumn *tree_column); void gtk_tree_view_column_set_fixed_width (GtkTreeViewColumn *tree_column, @@ -161,7 +160,10 @@ void gtk_tree_view_column_clicked (GtkTreeViewCol */ void gtk_tree_view_column_set_title (GtkTreeViewColumn *tree_column, const gchar *title); -G_CONST_RETURN gchar *gtk_tree_view_column_get_title (GtkTreeViewColumn *tree_column); +const gchar * gtk_tree_view_column_get_title (GtkTreeViewColumn *tree_column); +void gtk_tree_view_column_set_expand (GtkTreeViewColumn *tree_column, + gboolean expand); +gboolean gtk_tree_view_column_get_expand (GtkTreeViewColumn *tree_column); void gtk_tree_view_column_set_clickable (GtkTreeViewColumn *tree_column, gboolean clickable); gboolean gtk_tree_view_column_get_clickable (GtkTreeViewColumn *tree_column); @@ -199,38 +201,24 @@ void gtk_tree_view_column_cell_set_cell_data (GtkTreeViewCol gboolean is_expander, gboolean is_expanded); void gtk_tree_view_column_cell_get_size (GtkTreeViewColumn *tree_column, - GdkRectangle *cell_area, + const GdkRectangle *cell_area, gint *x_offset, gint *y_offset, gint *width, gint *height); -void gtk_tree_view_column_cell_render (GtkTreeViewColumn *tree_column, - GdkWindow *window, - GdkRectangle *background_area, - GdkRectangle *cell_area, - GdkRectangle *expose_area, - guint flags); -gboolean gtk_tree_view_column_cell_event (GtkTreeViewColumn *tree_column, - GdkEvent *event, - gchar *path_string, - GdkRectangle *background_area, - GdkRectangle *cell_area, - guint flags); -gboolean gtk_tree_view_column_cell_focus (GtkTreeViewColumn *tree_column, - gint direction); -void gtk_tree_view_column_cell_draw_focus (GtkTreeViewColumn *tree_column, - GdkWindow *window, - GdkRectangle *background_area, - GdkRectangle *cell_area, - GdkRectangle *expose_area, - guint flags); gboolean gtk_tree_view_column_cell_is_visible (GtkTreeViewColumn *tree_column); -void gtk_tree_view_column_cell_set_dirty (GtkTreeViewColumn *tree_column); +void gtk_tree_view_column_focus_cell (GtkTreeViewColumn *tree_column, + GtkCellRenderer *cell); +gboolean gtk_tree_view_column_cell_get_position (GtkTreeViewColumn *tree_column, + GtkCellRenderer *cell_renderer, + gint *x_offset, + gint *width); +void gtk_tree_view_column_queue_resize (GtkTreeViewColumn *tree_column); +GtkWidget *gtk_tree_view_column_get_tree_view (GtkTreeViewColumn *tree_column); +GtkWidget *gtk_tree_view_column_get_button (GtkTreeViewColumn *tree_column); -#ifdef __cplusplus -} -#endif /* __cplusplus */ +G_END_DECLS -#endif /* __GTK_TREE_VIEW_COLUMN_H__ */ +#endif /* __GTK_TREE_VIEW_COLUMN_H__ */