📄 gtkwidget.c
字号:
gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_GDK_EVENT); widget_signals[ENTER_NOTIFY_EVENT] = gtk_signal_new ("enter_notify_event", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, enter_notify_event), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_GDK_EVENT); widget_signals[LEAVE_NOTIFY_EVENT] = gtk_signal_new ("leave_notify_event", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, leave_notify_event), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_GDK_EVENT); widget_signals[CONFIGURE_EVENT] = gtk_signal_new ("configure_event", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, configure_event), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_GDK_EVENT); widget_signals[FOCUS_IN_EVENT] = gtk_signal_new ("focus_in_event", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, focus_in_event), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_GDK_EVENT); widget_signals[FOCUS_OUT_EVENT] = gtk_signal_new ("focus_out_event", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, focus_out_event), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_GDK_EVENT); widget_signals[MAP_EVENT] = gtk_signal_new ("map_event", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, map_event), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_GDK_EVENT); widget_signals[UNMAP_EVENT] = gtk_signal_new ("unmap_event", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, unmap_event), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_GDK_EVENT); widget_signals[PROPERTY_NOTIFY_EVENT] = gtk_signal_new ("property_notify_event", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, property_notify_event), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_GDK_EVENT); widget_signals[SELECTION_CLEAR_EVENT] = gtk_signal_new ("selection_clear_event", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, selection_clear_event), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_GDK_EVENT); widget_signals[SELECTION_REQUEST_EVENT] = gtk_signal_new ("selection_request_event", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, selection_request_event), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_GDK_EVENT); widget_signals[SELECTION_NOTIFY_EVENT] = gtk_signal_new ("selection_notify_event", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, selection_notify_event), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_GDK_EVENT); widget_signals[SELECTION_RECEIVED] = gtk_signal_new ("selection_received", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, selection_received), gtk_marshal_NONE__POINTER_UINT, GTK_TYPE_NONE, 2, GTK_TYPE_SELECTION_DATA, GTK_TYPE_UINT); widget_signals[SELECTION_GET] = gtk_signal_new ("selection_get", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, selection_get), gtk_marshal_NONE__POINTER_UINT_UINT, GTK_TYPE_NONE, 3, GTK_TYPE_SELECTION_DATA, GTK_TYPE_UINT, GTK_TYPE_UINT); widget_signals[PROXIMITY_IN_EVENT] = gtk_signal_new ("proximity_in_event", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, proximity_in_event), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_GDK_EVENT); widget_signals[PROXIMITY_OUT_EVENT] = gtk_signal_new ("proximity_out_event", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, proximity_out_event), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_GDK_EVENT); widget_signals[DRAG_LEAVE] = gtk_signal_new ("drag_leave", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, drag_leave), gtk_marshal_NONE__POINTER_UINT, GTK_TYPE_NONE, 2, GTK_TYPE_GDK_DRAG_CONTEXT, GTK_TYPE_UINT); widget_signals[DRAG_BEGIN] = gtk_signal_new ("drag_begin", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, drag_begin), gtk_marshal_NONE__POINTER, GTK_TYPE_NONE, 1, GTK_TYPE_GDK_DRAG_CONTEXT); widget_signals[DRAG_END] = gtk_signal_new ("drag_end", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, drag_end), gtk_marshal_NONE__POINTER, GTK_TYPE_NONE, 1, GTK_TYPE_GDK_DRAG_CONTEXT); widget_signals[DRAG_DATA_DELETE] = gtk_signal_new ("drag_data_delete", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, drag_data_delete), gtk_marshal_NONE__POINTER, GTK_TYPE_NONE, 1, GTK_TYPE_GDK_DRAG_CONTEXT); widget_signals[DRAG_MOTION] = gtk_signal_new ("drag_motion", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, drag_motion), gtk_marshal_BOOL__POINTER_INT_INT_UINT, GTK_TYPE_BOOL, 4, GTK_TYPE_GDK_DRAG_CONTEXT, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_UINT); widget_signals[DRAG_DROP] = gtk_signal_new ("drag_drop", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, drag_drop), gtk_marshal_BOOL__POINTER_INT_INT_UINT, GTK_TYPE_BOOL, 4, GTK_TYPE_GDK_DRAG_CONTEXT, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_UINT); widget_signals[DRAG_DATA_GET] = gtk_signal_new ("drag_data_get", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, drag_data_get), gtk_marshal_NONE__POINTER_POINTER_UINT_UINT, GTK_TYPE_NONE, 4, GTK_TYPE_GDK_DRAG_CONTEXT, GTK_TYPE_SELECTION_DATA, GTK_TYPE_UINT, GTK_TYPE_UINT); widget_signals[DRAG_DATA_RECEIVED] = gtk_signal_new ("drag_data_received", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, drag_data_received), gtk_marshal_NONE__POINTER_INT_INT_POINTER_UINT_UINT, GTK_TYPE_NONE, 6, GTK_TYPE_GDK_DRAG_CONTEXT, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_SELECTION_DATA, GTK_TYPE_UINT, GTK_TYPE_UINT); widget_signals[VISIBILITY_NOTIFY_EVENT] = gtk_signal_new ("visibility_notify_event", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, visibility_notify_event), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_GDK_EVENT); widget_signals[CLIENT_EVENT] = gtk_signal_new ("client_event", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, client_event), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_GDK_EVENT); widget_signals[NO_EXPOSE_EVENT] = gtk_signal_new ("no_expose_event", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, no_expose_event), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_GDK_EVENT); widget_signals[DEBUG_MSG] = gtk_signal_new ("debug_msg", GTK_RUN_LAST | GTK_RUN_ACTION, object_class->type, GTK_SIGNAL_OFFSET (GtkWidgetClass, debug_msg), gtk_marshal_NONE__STRING, GTK_TYPE_NONE, 1, GTK_TYPE_STRING); gtk_object_class_add_signals (object_class, widget_signals, LAST_SIGNAL); object_class->set_arg = gtk_widget_set_arg; object_class->get_arg = gtk_widget_get_arg; object_class->shutdown = gtk_widget_shutdown; object_class->destroy = gtk_widget_real_destroy; object_class->finalize = gtk_widget_finalize; klass->activate_signal = 0; klass->set_scroll_adjustments_signal = 0; klass->show = gtk_widget_real_show; klass->show_all = gtk_widget_show; klass->hide = gtk_widget_real_hide; klass->hide_all = gtk_widget_hide; klass->map = gtk_widget_real_map; klass->unmap = gtk_widget_real_unmap; klass->realize = gtk_widget_real_realize; klass->unrealize = gtk_widget_real_unrealize; klass->draw = gtk_widget_real_draw; klass->draw_focus = NULL; klass->size_request = gtk_widget_real_size_request; klass->size_allocate = gtk_widget_real_size_allocate; klass->state_changed = NULL; klass->parent_set = NULL; klass->style_set = gtk_widget_style_set; klass->add_accelerator = (void*) gtk_accel_group_handle_add; klass->remove_accelerator = (void*) gtk_accel_group_handle_remove; klass->grab_focus = gtk_widget_real_grab_focus; klass->event = NULL; klass->button_press_event = NULL; klass->button_release_event = NULL; klass->motion_notify_event = NULL; klass->delete_event = NULL; klass->destroy_event = NULL; klass->expose_event = NULL; klass->key_press_event = gtk_widget_real_key_press_event; klass->key_release_event = gtk_widget_real_key_release_event; klass->enter_notify_event = NULL; klass->leave_notify_event = NULL; klass->configure_event = NULL; klass->focus_in_event = NULL; klass->focus_out_event = NULL; klass->map_event = NULL; klass->unmap_event = NULL; klass->property_notify_event = gtk_selection_property_notify; klass->selection_clear_event = gtk_selection_clear; klass->selection_request_event = gtk_selection_request; klass->selection_notify_event = gtk_selection_notify; klass->selection_received = NULL; klass->proximity_in_event = NULL; klass->proximity_out_event = NULL; klass->drag_begin = NULL; klass->drag_end = NULL; klass->drag_data_delete = NULL; klass->drag_leave = NULL; klass->drag_motion = NULL; klass->drag_drop = NULL; klass->drag_data_received = NULL; klass->no_expose_event = NULL; klass->debug_msg = gtk_widget_debug_msg;}static voidgtk_widget_set_arg (GtkObject *object, GtkArg *arg, guint arg_id){ GtkWidget *widget; widget = GTK_WIDGET (object); switch (arg_id) { guint32 saved_flags; case ARG_NAME: gtk_widget_set_name (widget, GTK_VALUE_STRING (*arg)); break; case ARG_PARENT: gtk_container_add (GTK_CONTAINER (GTK_VALUE_OBJECT (*arg)), widget); break; case ARG_X: gtk_widget_set_uposition (widget, GTK_VALUE_INT (*arg), -2); break; case ARG_Y: gtk_widget_set_uposition (widget, -2, GTK_VALUE_INT (*arg)); break; case ARG_WIDTH: gtk_widget_set_usize (widget, GTK_VALUE_INT (*arg), -2); break; case ARG_HEIGHT: gtk_widget_set_usize (widget, -2, GTK_VALUE_INT (*arg)); break; case ARG_VISIBLE: if (GTK_VALUE_BOOL(*arg)) gtk_widget_show (widget); else gtk_widget_hide (widget); break; case ARG_SENSITIVE: gtk_widget_set_sensitive (widget, GTK_VALUE_BOOL (*arg)); break; case ARG_APP_PAINTABLE: gtk_widget_set_app_paintable (widget, GTK_VALUE_BOOL (*arg)); break; case ARG_CAN_FOCUS: saved_flags = GTK_WIDGET_FLAGS (widget); if (GTK_VALUE_BOOL (*arg)) GTK_WIDGET_SET_FLAGS (widget, GTK_CAN_FOCUS); else GTK_WIDGET_UNSET_FLAGS (widget, GTK_CAN_FOCUS); if (saved_flags != GTK_WIDGET_FLAGS (widget)) gtk_widget_queue_resize (widget); break; case ARG_HAS_FOCUS: if (GTK_VALUE_BOOL (*arg)) gtk_widget_grab_focus (widget); break; case ARG_CAN_DEFAULT: saved_flags = GTK_WIDGET_FLAGS (widget); if (GTK_VALUE_BOOL (*arg)) GTK_WIDGET_SET_FLAGS (widget, GTK_CAN_DEFAULT); else GTK_WIDGET_UNSET_FLAGS (widget, GTK_CAN_DEFAULT); if (saved_flags != GTK_WIDGET_FLAGS (widget)) gtk_widget_queue_resize (widget); break; case ARG_HAS_DEFAULT: if (GTK_VALUE_BOOL (*arg)) gtk_widget_grab_default (widget); break; case ARG_RECEIVES_DEFAULT: if (GTK_VALUE_BOOL (*arg)) GTK_WIDGET_SET_FLAGS (widget, GTK_RECEIVES_DEFAULT); else GTK_WIDGET_UNSET_FLAGS (widget, GTK_RECEIVES_DEFAULT); break; case ARG_COMPOSITE_CHILD: if (GTK_VALUE_BOOL(*arg)) GTK_WIDGET_SET_FLAGS (widget, GTK_COMPOSITE_CHILD); else GTK_WIDGET_UNSET_FLAGS (widget, GTK_COMPOSITE_CHILD); break; case ARG_STYLE: gtk_widget_set_style (widget, (GtkStyle*) GTK_VALUE_BOXED (*arg)); break; case ARG_EVENTS: if (!GTK_WIDGET_REALIZED (widget) && !GTK_WIDGET_NO_WINDOW (widget)) gtk_widget_set_events (widget, GTK_VALUE_FLAGS (*arg)); break; case ARG_EXTENSION_EVENTS: gtk_widget_set_extension_events (widget, GTK_VALUE_FLAGS (*arg)); break; default: break; }}/***************************************** * gtk_widget_get_arg: * * arguments: * * results: *****************************************/static voidgtk_widget_get_arg (GtkObject *object, GtkArg *arg, guint arg_id){ GtkWidget *widget; widget = GTK_WIDGET (object); switch (arg_id) { GtkWidgetAuxInfo *aux_info; gint *eventp; GdkExtensionMode *modep; case ARG_NAME: if (widget->name) GTK_VALUE_STRING (*arg) = g_strdup (widget->name); else GTK_VALUE_STRING (*arg) = g_strdup (""); break; case ARG_PARENT: GTK_VALUE_OBJECT (*arg) = (GtkObject*) widget->parent; break; case ARG_X: aux_info = gtk_object_get_data_by_id (GTK_OBJECT (widget), aux_info_key_id); if (!aux_info) GTK_VALUE_INT (*arg) = -1; else GTK_VALUE_INT (*arg) = aux_info->x; break; case ARG_Y: aux_info = gtk_object_get_data_by_id (GTK_OBJECT (widget), aux_info_key_id); if (!aux_info) GTK_VALUE_INT (*arg) = -1; else GTK_VALUE_INT (*arg) = aux_info->y; break; case ARG_WIDTH: aux_info = gtk_object_get_data_by_id (GTK_OBJECT (widget), aux_info_key_id); if (!aux_info) GTK_VALUE_INT (*arg) = -1; else GTK_VALUE_INT (*arg) = aux_info->width; break; case ARG_HEIGHT: aux_info = gtk_object_get_data_by_id (GTK_OBJECT (widget), aux_info_key_id); if (!aux_info) GTK_VALUE_INT (*arg) = -1; else GTK_VALUE_INT (*arg) = aux_info->height; break; case ARG_VISIBLE: GTK_VALUE_BOOL (*arg) = (GTK_WIDGET_VISIBLE (widget) != FALSE); break; case ARG_SENSITIVE: GTK_VALUE_BOOL (*arg) = (GTK_WIDGET_SENSITIVE (widget) != FALSE); break; case ARG_APP_PAINTABLE: GTK_VALUE_BOOL (*arg) = (GTK_WIDGET_APP_PAINTABLE (widget) != FALSE); break; case ARG_CAN_FOCUS: GTK_VALUE_BOOL (*arg) = (GTK_WIDGET_CAN_FOCUS (widget) != FALSE); break; case ARG_HAS_FOCUS: GTK_VALUE_BOOL (*arg) = (GTK_WIDGET_HAS_FOCUS (widget) != FALSE); break; case ARG_CAN_DEFAULT: GTK_VALUE_BOOL (*arg) = (GTK_WIDGET_CAN_DEFAULT (widget) != FALSE); break; case ARG_HAS_DEFAULT: GTK_VALUE_BOOL (*arg) = (GTK_WIDGET_HAS_DEFAULT (widget) != FALSE); break; case ARG_RECEIVES_DEFAULT: GTK_VALUE_BOOL (*arg) = (GTK_WIDGET_RECEIVES_DEFAULT (widget) != FALSE);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -