⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gtkclist.c

📁 gtk是linux一款强大的夸平台的图形化开发工具
💻 C
📖 第 1 页 / 共 5 页
字号:
/* Misc */static gboolean title_focus           (GtkCList  *clist,			               gint       dir);static void real_row_move             (GtkCList  *clist,			               gint       source_row,			               gint       dest_row);static gint column_title_passive_func (GtkWidget *widget, 				       GdkEvent  *event,				       gpointer   data);static void drag_dest_cell            (GtkCList         *clist,				       gint              x,				       gint              y,				       GtkCListDestInfo *dest_info);static GtkContainerClass *parent_class = NULL;static guint clist_signals[LAST_SIGNAL] = {0};static GtkTargetEntry clist_target_table = { "gtk-clist-drag-reorder", 0, 0};GtkTypegtk_clist_get_type (void){  static GtkType clist_type = 0;  if (!clist_type)    {      static const GtkTypeInfo clist_info =      {	"GtkCList",	sizeof (GtkCList),	sizeof (GtkCListClass),	(GtkClassInitFunc) gtk_clist_class_init,	(GtkObjectInitFunc) gtk_clist_init,	/* reserved_1 */ NULL,	/* reserved_2 */ NULL,	(GtkClassInitFunc) NULL,      };      clist_type = gtk_type_unique (GTK_TYPE_CONTAINER, &clist_info);    }  return clist_type;}static voidgtk_clist_class_init (GtkCListClass *klass){  GtkObjectClass *object_class;  GtkWidgetClass *widget_class;  GtkContainerClass *container_class;  GtkBindingSet *binding_set;  object_class = (GtkObjectClass *) klass;  widget_class = (GtkWidgetClass *) klass;  container_class = (GtkContainerClass *) klass;  parent_class = gtk_type_class (GTK_TYPE_CONTAINER);  gtk_object_add_arg_type ("GtkCList::n_columns",			   GTK_TYPE_UINT,			   GTK_ARG_READWRITE | GTK_ARG_CONSTRUCT_ONLY,			   ARG_N_COLUMNS);  gtk_object_add_arg_type ("GtkCList::shadow_type",			   GTK_TYPE_SHADOW_TYPE,			   GTK_ARG_READWRITE,			   ARG_SHADOW_TYPE);  gtk_object_add_arg_type ("GtkCList::selection_mode",			   GTK_TYPE_SELECTION_MODE,			   GTK_ARG_READWRITE,			   ARG_SELECTION_MODE);  gtk_object_add_arg_type ("GtkCList::row_height",			   GTK_TYPE_UINT,			   GTK_ARG_READWRITE,			   ARG_ROW_HEIGHT);  gtk_object_add_arg_type ("GtkCList::reorderable",			   GTK_TYPE_BOOL,			   GTK_ARG_READWRITE,			   ARG_REORDERABLE);  gtk_object_add_arg_type ("GtkCList::titles_active",			   GTK_TYPE_BOOL,			   GTK_ARG_READWRITE,			   ARG_TITLES_ACTIVE);  gtk_object_add_arg_type ("GtkCList::use_drag_icons",			   GTK_TYPE_BOOL,			   GTK_ARG_READWRITE,			   ARG_USE_DRAG_ICONS);  gtk_object_add_arg_type ("GtkCList::sort_type",			   GTK_TYPE_SORT_TYPE,			   GTK_ARG_READWRITE,			   ARG_SORT_TYPE);    object_class->set_arg = gtk_clist_set_arg;  object_class->get_arg = gtk_clist_get_arg;  object_class->destroy = gtk_clist_destroy;  object_class->finalize = gtk_clist_finalize;  widget_class->set_scroll_adjustments_signal =    gtk_signal_new ("set_scroll_adjustments",		    GTK_RUN_LAST,		    object_class->type,		    GTK_SIGNAL_OFFSET (GtkCListClass, set_scroll_adjustments),		    gtk_marshal_NONE__POINTER_POINTER,		    GTK_TYPE_NONE, 2, GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT);  clist_signals[SELECT_ROW] =    gtk_signal_new ("select_row",		    GTK_RUN_FIRST,		    object_class->type,		    GTK_SIGNAL_OFFSET (GtkCListClass, select_row),		    gtk_marshal_NONE__INT_INT_POINTER,		    GTK_TYPE_NONE, 3,		    GTK_TYPE_INT,		    GTK_TYPE_INT,		    GTK_TYPE_GDK_EVENT);  clist_signals[UNSELECT_ROW] =    gtk_signal_new ("unselect_row",		    GTK_RUN_FIRST,		    object_class->type,		    GTK_SIGNAL_OFFSET (GtkCListClass, unselect_row),		    gtk_marshal_NONE__INT_INT_POINTER,		    GTK_TYPE_NONE, 3, GTK_TYPE_INT,		    GTK_TYPE_INT, GTK_TYPE_GDK_EVENT);  clist_signals[ROW_MOVE] =    gtk_signal_new ("row_move",		    GTK_RUN_LAST,		    object_class->type,		    GTK_SIGNAL_OFFSET (GtkCListClass, row_move),		    gtk_marshal_NONE__INT_INT,		    GTK_TYPE_NONE, 2, GTK_TYPE_INT, GTK_TYPE_INT);  clist_signals[CLICK_COLUMN] =    gtk_signal_new ("click_column",		    GTK_RUN_FIRST,		    object_class->type,		    GTK_SIGNAL_OFFSET (GtkCListClass, click_column),		    gtk_marshal_NONE__INT,		    GTK_TYPE_NONE, 1, GTK_TYPE_INT);  clist_signals[RESIZE_COLUMN] =    gtk_signal_new ("resize_column",		    GTK_RUN_LAST,		    object_class->type,		    GTK_SIGNAL_OFFSET (GtkCListClass, resize_column),		    gtk_marshal_NONE__INT_INT,		    GTK_TYPE_NONE, 2, GTK_TYPE_INT, GTK_TYPE_INT);  clist_signals[TOGGLE_FOCUS_ROW] =    gtk_signal_new ("toggle_focus_row",                    GTK_RUN_LAST | GTK_RUN_ACTION,                    object_class->type,                    GTK_SIGNAL_OFFSET (GtkCListClass, toggle_focus_row),                    gtk_marshal_NONE__NONE,                    GTK_TYPE_NONE, 0);  clist_signals[SELECT_ALL] =    gtk_signal_new ("select_all",                    GTK_RUN_LAST | GTK_RUN_ACTION,                    object_class->type,                    GTK_SIGNAL_OFFSET (GtkCListClass, select_all),                    gtk_marshal_NONE__NONE,                    GTK_TYPE_NONE, 0);  clist_signals[UNSELECT_ALL] =    gtk_signal_new ("unselect_all",                    GTK_RUN_LAST | GTK_RUN_ACTION,                    object_class->type,                    GTK_SIGNAL_OFFSET (GtkCListClass, unselect_all),                    gtk_marshal_NONE__NONE,                    GTK_TYPE_NONE, 0);  clist_signals[UNDO_SELECTION] =    gtk_signal_new ("undo_selection",		    GTK_RUN_LAST | GTK_RUN_ACTION,		    object_class->type,		    GTK_SIGNAL_OFFSET (GtkCListClass, undo_selection),		    gtk_marshal_NONE__NONE,		    GTK_TYPE_NONE, 0);  clist_signals[START_SELECTION] =    gtk_signal_new ("start_selection",		    GTK_RUN_LAST | GTK_RUN_ACTION,		    object_class->type,		    GTK_SIGNAL_OFFSET (GtkCListClass, start_selection),		    gtk_marshal_NONE__NONE,		    GTK_TYPE_NONE, 0);  clist_signals[END_SELECTION] =    gtk_signal_new ("end_selection",		    GTK_RUN_LAST | GTK_RUN_ACTION,		    object_class->type,		    GTK_SIGNAL_OFFSET (GtkCListClass, end_selection),		    gtk_marshal_NONE__NONE,		    GTK_TYPE_NONE, 0);  clist_signals[TOGGLE_ADD_MODE] =    gtk_signal_new ("toggle_add_mode",		    GTK_RUN_LAST | GTK_RUN_ACTION,		    object_class->type,		    GTK_SIGNAL_OFFSET (GtkCListClass, toggle_add_mode),		    gtk_marshal_NONE__NONE,		    GTK_TYPE_NONE, 0);  clist_signals[EXTEND_SELECTION] =    gtk_signal_new ("extend_selection",                    GTK_RUN_LAST | GTK_RUN_ACTION,                    object_class->type,                    GTK_SIGNAL_OFFSET (GtkCListClass, extend_selection),                    gtk_marshal_NONE__ENUM_FLOAT_BOOL,                    GTK_TYPE_NONE, 3,		    GTK_TYPE_SCROLL_TYPE, GTK_TYPE_FLOAT, GTK_TYPE_BOOL);  clist_signals[SCROLL_VERTICAL] =    gtk_signal_new ("scroll_vertical",                    GTK_RUN_LAST | GTK_RUN_ACTION,                    object_class->type,                    GTK_SIGNAL_OFFSET (GtkCListClass, scroll_vertical),                    gtk_marshal_NONE__ENUM_FLOAT,                    GTK_TYPE_NONE, 2, GTK_TYPE_SCROLL_TYPE, GTK_TYPE_FLOAT);  clist_signals[SCROLL_HORIZONTAL] =    gtk_signal_new ("scroll_horizontal",                    GTK_RUN_LAST | GTK_RUN_ACTION,                    object_class->type,                    GTK_SIGNAL_OFFSET (GtkCListClass, scroll_horizontal),                    gtk_marshal_NONE__ENUM_FLOAT,                    GTK_TYPE_NONE, 2, GTK_TYPE_SCROLL_TYPE, GTK_TYPE_FLOAT);  clist_signals[ABORT_COLUMN_RESIZE] =    gtk_signal_new ("abort_column_resize",                    GTK_RUN_LAST | GTK_RUN_ACTION,                    object_class->type,                    GTK_SIGNAL_OFFSET (GtkCListClass, abort_column_resize),                    gtk_marshal_NONE__NONE,                    GTK_TYPE_NONE, 0);  gtk_object_class_add_signals (object_class, clist_signals, LAST_SIGNAL);  widget_class->realize = gtk_clist_realize;  widget_class->unrealize = gtk_clist_unrealize;  widget_class->map = gtk_clist_map;  widget_class->unmap = gtk_clist_unmap;  widget_class->draw = gtk_clist_draw;  widget_class->button_press_event = gtk_clist_button_press;  widget_class->button_release_event = gtk_clist_button_release;  widget_class->motion_notify_event = gtk_clist_motion;  widget_class->expose_event = gtk_clist_expose;  widget_class->size_request = gtk_clist_size_request;  widget_class->size_allocate = gtk_clist_size_allocate;  widget_class->key_press_event = gtk_clist_key_press;  widget_class->focus_in_event = gtk_clist_focus_in;  widget_class->focus_out_event = gtk_clist_focus_out;  widget_class->draw_focus = gtk_clist_draw_focus;  widget_class->style_set = gtk_clist_style_set;  widget_class->drag_begin = gtk_clist_drag_begin;  widget_class->drag_end = gtk_clist_drag_end;  widget_class->drag_motion = gtk_clist_drag_motion;  widget_class->drag_leave = gtk_clist_drag_leave;  widget_class->drag_drop = gtk_clist_drag_drop;  widget_class->drag_data_get = gtk_clist_drag_data_get;  widget_class->drag_data_received = gtk_clist_drag_data_received;  /* container_class->add = NULL; use the default GtkContainerClass warning */  /* container_class->remove=NULL; use the default GtkContainerClass warning */  container_class->forall = gtk_clist_forall;  container_class->focus = gtk_clist_focus;  container_class->set_focus_child = gtk_clist_set_focus_child;  klass->set_scroll_adjustments = gtk_clist_set_scroll_adjustments;  klass->refresh = clist_refresh;  klass->select_row = real_select_row;  klass->unselect_row = real_unselect_row;  klass->row_move = real_row_move;  klass->undo_selection = real_undo_selection;  klass->resync_selection = resync_selection;  klass->selection_find = selection_find;  klass->click_column = NULL;  klass->resize_column = real_resize_column;  klass->draw_row = draw_row;  klass->draw_drag_highlight = draw_drag_highlight;  klass->insert_row = real_insert_row;  klass->remove_row = real_remove_row;  klass->clear = real_clear;  klass->sort_list = real_sort_list;  klass->select_all = real_select_all;  klass->unselect_all = real_unselect_all;  klass->fake_unselect_all = fake_unselect_all;  klass->scroll_horizontal = scroll_horizontal;  klass->scroll_vertical = scroll_vertical;  klass->extend_selection = extend_selection;  klass->toggle_focus_row = toggle_focus_row;  klass->toggle_add_mode = toggle_add_mode;  klass->start_selection = start_selection;  klass->end_selection = end_selection;  klass->abort_column_resize = abort_column_resize;  klass->set_cell_contents = set_cell_contents;  klass->cell_size_request = cell_size_request;  binding_set = gtk_binding_set_by_class (klass);  gtk_binding_entry_add_signal (binding_set, GDK_Up, 0,				"scroll_vertical", 2,				GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD,				GTK_TYPE_FLOAT, 0.0);  gtk_binding_entry_add_signal (binding_set, GDK_Down, 0,				"scroll_vertical", 2,				GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD,				GTK_TYPE_FLOAT, 0.0);  gtk_binding_entry_add_signal (binding_set, GDK_Page_Up, 0,				"scroll_vertical", 2,				GTK_TYPE_ENUM, GTK_SCROLL_PAGE_BACKWARD,				GTK_TYPE_FLOAT, 0.0);  gtk_binding_entry_add_signal (binding_set, GDK_Page_Down, 0,				"scroll_vertical", 2,				GTK_TYPE_ENUM, GTK_SCROLL_PAGE_FORWARD,				GTK_TYPE_FLOAT, 0.0);  gtk_binding_entry_add_signal (binding_set, GDK_Home, GDK_CONTROL_MASK,				"scroll_vertical", 2,				GTK_TYPE_ENUM, GTK_SCROLL_JUMP,				GTK_TYPE_FLOAT, 0.0);  gtk_binding_entry_add_signal (binding_set, GDK_End, GDK_CONTROL_MASK,				"scroll_vertical", 2,				GTK_TYPE_ENUM, GTK_SCROLL_JUMP,				GTK_TYPE_FLOAT, 1.0);  gtk_binding_entry_add_signal (binding_set, GDK_Up, GDK_SHIFT_MASK,				"extend_selection", 3,				GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD,				GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE);  gtk_binding_entry_add_signal (binding_set, GDK_Down, GDK_SHIFT_MASK,				"extend_selection", 3,				GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD,				GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE);  gtk_binding_entry_add_signal (binding_set, GDK_Page_Up, GDK_SHIFT_MASK,				"extend_selection", 3,				GTK_TYPE_ENUM, GTK_SCROLL_PAGE_BACKWARD,				GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE);  gtk_binding_entry_add_signal (binding_set, GDK_Page_Down, GDK_SHIFT_MASK,				"extend_selection", 3,				GTK_TYPE_ENUM, GTK_SCROLL_PAGE_FORWARD,				GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE);  gtk_binding_entry_add_signal (binding_set, GDK_Home,				GDK_SHIFT_MASK | GDK_CONTROL_MASK,				"extend_selection", 3,				GTK_TYPE_ENUM, GTK_SCROLL_JUMP,				GTK_TYPE_FLOAT, 0.0, GTK_TYPE_BOOL, TRUE);  gtk_binding_entry_add_signal (binding_set, GDK_End,				GDK_SHIFT_MASK | GDK_CONTROL_MASK,				"extend_selection", 3,				GTK_TYPE_ENUM, GTK_SCROLL_JUMP,				GTK_TYPE_FLOAT, 1.0, GTK_TYPE_BOOL, TRUE);  gtk_binding_entry_add_signal (binding_set, GDK_Left, 0,				"scroll_horizontal", 2,				GTK_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD,				GTK_TYPE_FLOAT, 0.0);  gtk_binding_entry_add_signal (binding_set, GDK_Right, 0,				"scroll_horizontal", 2,				GTK_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD,				GTK_TYPE_FLOAT, 0.0);  gtk_binding_entry_add_signal (binding_set, GDK_Home, 0,				"scroll_horizontal", 2,				GTK_TYPE_ENUM, GTK_SCROLL_JUMP,				GTK_TYPE_FLOAT, 0.0);  gtk_binding_entry_add_signal (binding_set, GDK_End, 0,				"scroll_horizontal", 2,				GTK_TYPE_ENUM, GTK_SCROLL_JUMP,				GTK_TYPE_FLOAT, 1.0);  gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0,				"undo_selection", 0);  gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0,				"abort_column_resize", 0);  gtk_binding_entry_add_signal (binding_set, GDK_space, 0,				"toggle_focus_row", 0);  gtk_binding_entry_add_signal (binding_set, GDK_space, GDK_CONTROL_MASK,				"toggle_add_mode", 0);  gtk_binding_entry_add_signal (binding_set, '/', GDK_CONTROL_MASK,				"select_all", 0);  gtk_binding_entry_add_signal (binding_set, '\\', GDK_CONTROL_MASK,				"unselect_all", 0);  gtk_binding_entry_add_signal (binding_set, GDK_Shift_L,				GDK_RELEASE_MASK | GDK_SHIFT_MASK,				"end_selection", 0);  gtk_binding_entry_add_signal (binding_set, GDK_Shift_R,				GDK_RELEASE_MASK | GDK_SHIFT_MASK,				"end_selection", 0);  gtk_binding_entry_add_signal (binding_set, GDK_Shift_L,				GDK_RELEASE_MASK | GDK_SHIFT_MASK |				GDK_CONTROL_MASK,				"end_selection", 0);  gtk_binding_entry_add_signal (binding_set, GDK_Shift_R,				GDK_RELEASE_MASK | GDK_SHIFT_MASK |				GDK_CONTROL_MASK,				"end_selection", 0);}static voidgtk_clist_set_arg (GtkObject      *object,		   GtkArg         *arg,		   guint           arg_id){  GtkCList *clist;  clist = GTK_CLIST (object);  switch (arg_id)    {    case ARG_N_COLUMNS: /* construct-only arg, only set when !GTK_CONSTRUCTED */      gtk_clist_construct (clist, MAX (1, GTK_VALUE_UINT (*arg)), NULL);      break;    case ARG_SHADOW_TYPE:      gtk_clist_set_shadow_type (clist, GTK_VALUE_ENUM (*arg));      break;    case ARG_SELECTION_MODE:      gtk_clist_set_selection_mode (clist, GTK_VALUE_ENUM (*arg));      break;    case ARG_ROW_HEIGHT:      gtk_clist_set_row_height (clist, GTK_VALUE_UINT (*arg));      break;    case ARG_REORDERABLE:      gtk_clist_set_reorderable (clist, GTK_VALUE_BOOL (*arg));      break;    case ARG_TITLES_ACTIVE:      if (GTK_VALUE_BOOL (*arg))	gtk_clist_column_titles_active (clist);      else	gtk_clist_column_titles_passive (clist);      break;    case ARG_USE_DRAG_ICONS:      gtk_clist_set_use_drag_icons (clist, GTK_VALUE_BOOL (*arg));      break;    case ARG_SORT_TYPE:      gtk_clist_set_sort_type (clist, GTK_VALUE_ENUM (*arg));      break;    }}static voidgtk_clist_get_arg (GtkObject      *object,		   GtkArg         *arg,		   guint           arg_id){  GtkCList *clist;  clist = GTK_CLIST (object);  switch (arg_id)    {      guint i;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -