diff options
author | Benjamin Otte <otte@redhat.com> | 2011-12-18 16:16:34 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2011-12-19 16:17:12 +0100 |
commit | 1305815bde9be3a2571ddd568911892f71b108b3 (patch) | |
tree | 8015051828d3bf03fb47cf5b7ccf101ba8b18ac5 /gtk/gtkiconviewprivate.h | |
parent | eb27c618788009353ac280e284a13e403c91d089 (diff) | |
download | gtk+-1305815bde9be3a2571ddd568911892f71b108b3.tar.gz |
iconview: Split out iconview accessible
Diffstat (limited to 'gtk/gtkiconviewprivate.h')
-rw-r--r-- | gtk/gtkiconviewprivate.h | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/gtk/gtkiconviewprivate.h b/gtk/gtkiconviewprivate.h new file mode 100644 index 0000000000..4be78dcf4c --- /dev/null +++ b/gtk/gtkiconviewprivate.h @@ -0,0 +1,157 @@ +/* gtkiconview.h + * Copyright (C) 2002, 2004 Anders Carlsson <andersca@gnome.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * 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. + */ + +#include "gtk/gtkiconview.h" + +#ifndef __GTK_ICON_VIEW_PRIVATE_H__ +#define __GTK_ICON_VIEW_PRIVATE_H__ + +typedef struct _GtkIconViewItem GtkIconViewItem; +struct _GtkIconViewItem +{ + /* First member is always the rectangle so it + * can be cast to a rectangle. */ + GdkRectangle cell_area; + + GtkTreeIter iter; + gint index; + + gint row, col; + + guint prelight : 1; + guint selected : 1; + guint selected_before_rubberbanding : 1; + +}; + +struct _GtkIconViewPrivate +{ + GtkCellArea *cell_area; + GtkCellAreaContext *cell_area_context; + + gulong add_editable_id; + gulong remove_editable_id; + gulong context_changed_id; + + GPtrArray *row_contexts; + + gint width, height; + + GtkSelectionMode selection_mode; + + guint layout_idle_id; + + GdkWindow *bin_window; + + GList *children; + + GtkTreeModel *model; + + GList *items; + + GtkAdjustment *hadjustment; + GtkAdjustment *vadjustment; + + gint rubberband_x1, rubberband_y1; + gint rubberband_x2, rubberband_y2; + GdkDevice *rubberband_device; + + guint scroll_timeout_id; + gint scroll_value_diff; + gint event_last_x, event_last_y; + + GtkIconViewItem *anchor_item; + GtkIconViewItem *cursor_item; + + GtkIconViewItem *last_single_clicked; + GtkIconViewItem *last_prelight; + + GtkOrientation item_orientation; + + gint columns; + gint item_width; + gint spacing; + gint row_spacing; + gint column_spacing; + gint margin; + gint item_padding; + + gint text_column; + gint markup_column; + gint pixbuf_column; + gint tooltip_column; + + GtkCellRenderer *pixbuf_cell; + GtkCellRenderer *text_cell; + + /* Drag-and-drop. */ + GdkModifierType start_button_mask; + gint pressed_button; + gint press_start_x; + gint press_start_y; + + GdkDragAction source_actions; + GdkDragAction dest_actions; + + GtkTreeRowReference *dest_item; + GtkIconViewDropPosition dest_pos; + + /* scroll to */ + GtkTreeRowReference *scroll_to_path; + gfloat scroll_to_row_align; + gfloat scroll_to_col_align; + guint scroll_to_use_align : 1; + + guint source_set : 1; + guint dest_set : 1; + guint reorderable : 1; + guint empty_view_drop :1; + + guint modify_selection_pressed : 1; + guint extend_selection_pressed : 1; + + guint draw_focus : 1; + + /* GtkScrollablePolicy needs to be checked when + * driving the scrollable adjustment values */ + guint hscroll_policy : 1; + guint vscroll_policy : 1; + + guint doing_rubberband : 1; + +}; + +void _gtk_icon_view_set_cell_data (GtkIconView *icon_view, + GtkIconViewItem *item); +void _gtk_icon_view_set_cursor_item (GtkIconView *icon_view, + GtkIconViewItem *item, + GtkCellRenderer *cursor_cell); +GtkIconViewItem * _gtk_icon_view_get_item_at_coords (GtkIconView *icon_view, + gint x, + gint y, + gboolean only_in_cell, + GtkCellRenderer **cell_at_pos); +void _gtk_icon_view_select_item (GtkIconView *icon_view, + GtkIconViewItem *item); +void _gtk_icon_view_unselect_item (GtkIconView *icon_view, + GtkIconViewItem *item); + +G_END_DECLS + +#endif /* __GTK_ICON_VIEW_PRIVATE_H__ */ |