X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtktreeviewcolumn.h;h=47cea714364ca1769b3c82516b67451e7a5e0a37;hb=5e2c23214564f7dcc687fa8467020eeb6b9407a9;hp=aebac8781165615841d7dcb3eaa8c3d6b2a4dea2;hpb=59444d85e3abd3c9f8b1c1c27fdd67c4b716e723;p=~andy%2Fgtk diff --git a/gtk/gtktreeviewcolumn.h b/gtk/gtktreeviewcolumn.h index aebac8781..47cea7143 100644 --- a/gtk/gtktreeviewcolumn.h +++ b/gtk/gtktreeviewcolumn.h @@ -12,126 +12,140 @@ * 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_RESIZEABLE, + GTK_TREE_VIEW_COLUMN_GROW_ONLY, 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; - gfloat xalign; - guint property_changed_signal; - - gint width; - gint requested_width; - gint min_width; - gint max_width; - gint displayed_width; - - /* dragging columns */ - gint drag_x; - gint drag_y; - - GtkTreeCellDataFunc func; - gpointer func_data; - GtkDestroyNotify destroy; - gchar *title; - GtkCellRenderer *cell; - GSList *attributes; - GtkTreeViewColumnSizing column_type; - - /* Sorting */ - guint sort_clicked_signal; - guint sort_column_changed_signal; - gint sort_column_id; - GtkTreeSortOrder sort_order; - - 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); -GtkTreeViewColumn * gtk_tree_view_column_new (void); -GtkTreeViewColumn * gtk_tree_view_column_new_with_attributes (const gchar *title, +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); -GtkCellRenderer * gtk_tree_view_column_get_cell_renderer (GtkTreeViewColumn *tree_column); + ...) G_GNUC_NULL_TERMINATED; +void gtk_tree_view_column_pack_start (GtkTreeViewColumn *tree_column, + GtkCellRenderer *cell, + gboolean expand); +void gtk_tree_view_column_pack_end (GtkTreeViewColumn *tree_column, + GtkCellRenderer *cell, + gboolean expand); +void gtk_tree_view_column_clear (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); -void gtk_tree_view_column_clear_attributes (GtkTreeViewColumn *tree_column); + 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, + gint spacing); +gint gtk_tree_view_column_get_spacing (GtkTreeViewColumn *tree_column); 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); -void gtk_tree_view_column_set_width (GtkTreeViewColumn *tree_column, - gint size); +gint gtk_tree_view_column_get_fixed_width (GtkTreeViewColumn *tree_column); +void gtk_tree_view_column_set_fixed_width (GtkTreeViewColumn *tree_column, + gint fixed_width); void gtk_tree_view_column_set_min_width (GtkTreeViewColumn *tree_column, gint min_width); gint gtk_tree_view_column_get_min_width (GtkTreeViewColumn *tree_column); @@ -146,13 +160,16 @@ 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); void gtk_tree_view_column_set_widget (GtkTreeViewColumn *tree_column, GtkWidget *widget); -GtkWidget * gtk_tree_view_column_get_widget (GtkTreeViewColumn *tree_column); +GtkWidget *gtk_tree_view_column_get_widget (GtkTreeViewColumn *tree_column); void gtk_tree_view_column_set_alignment (GtkTreeViewColumn *tree_column, gfloat xalign); gfloat gtk_tree_view_column_get_alignment (GtkTreeViewColumn *tree_column); @@ -167,44 +184,41 @@ gboolean gtk_tree_view_column_get_reorderable (GtkTreeViewCol */ void gtk_tree_view_column_set_sort_column_id (GtkTreeViewColumn *tree_column, gint sort_column_id); +gint gtk_tree_view_column_get_sort_column_id (GtkTreeViewColumn *tree_column); void gtk_tree_view_column_set_sort_indicator (GtkTreeViewColumn *tree_column, gboolean setting); gboolean gtk_tree_view_column_get_sort_indicator (GtkTreeViewColumn *tree_column); void gtk_tree_view_column_set_sort_order (GtkTreeViewColumn *tree_column, - GtkTreeSortOrder order); -GtkTreeSortOrder gtk_tree_view_column_get_sort_order (GtkTreeViewColumn *tree_column); - - + GtkSortType order); +GtkSortType gtk_tree_view_column_get_sort_order (GtkTreeViewColumn *tree_column); /* These functions are meant primarily for interaction between the GtkTreeView and the column. */ void gtk_tree_view_column_cell_set_cell_data (GtkTreeViewColumn *tree_column, GtkTreeModel *tree_model, - GtkTreeIter *iter); + GtkTreeIter *iter, + 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); - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ +gboolean gtk_tree_view_column_cell_is_visible (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); -#endif /* __GTK_TREE_VIEW_COLUMN_H__ */ +G_END_DECLS + + +#endif /* __GTK_TREE_VIEW_COLUMN_H__ */