152 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* 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, see <http://www.gnu.org/licenses/>.
 | |
|  */
 | |
| 
 | |
| #include "gtk/gtkiconview.h"
 | |
| 
 | |
| #ifndef __GTK_ICON_VIEW_PRIVATE_H__
 | |
| #define __GTK_ICON_VIEW_PRIVATE_H__
 | |
| 
 | |
| typedef struct _GtkIconViewItem GtkIconViewItem;
 | |
| struct _GtkIconViewItem
 | |
| {
 | |
|   GdkRectangle cell_area;
 | |
| 
 | |
|   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;
 | |
| 
 | |
|   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 activate_on_single_click : 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__ */
 | 
