static void caja_notebook_init (CajaNotebook *notebook) { #if GTK_CHECK_VERSION (3, 0, 0) GtkStyleContext *context; context = gtk_widget_get_style_context (GTK_WIDGET (notebook)); gtk_style_context_add_class (context, "caja-notebook"); #endif gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook), TRUE); gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE); gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE); g_signal_connect (notebook, "button-press-event", (GCallback)button_press_cb, NULL); /* Set up drag-and-drop target */ /* TODO this would be used for opening a new tab. * It will only work properly as soon as GtkNotebook * supports to find out whether a particular point * is on a tab button or not. */ #if 0 gtk_drag_dest_set (GTK_WIDGET (notebook), 0, url_drag_types, G_N_ELEMENTS (url_drag_types), GDK_ACTION_LINK); gtk_drag_dest_set_track_motion (GTK_WIDGET (notebook), TRUE); #endif }
static void gtk_expander_init (GtkExpander *expander) { GtkExpanderPrivate *priv; expander->priv = priv = GTK_EXPANDER_GET_PRIVATE (expander); gtk_widget_set_can_focus (GTK_WIDGET (expander), TRUE); gtk_widget_set_has_window (GTK_WIDGET (expander), FALSE); priv->label_widget = NULL; priv->event_window = NULL; priv->spacing = 0; priv->expander_style = GTK_EXPANDER_COLLAPSED; priv->animation_timeout = 0; priv->expanded = FALSE; priv->use_underline = FALSE; priv->use_markup = FALSE; priv->button_down = FALSE; priv->prelight = FALSE; priv->label_fill = FALSE; priv->expand_timer = 0; gtk_drag_dest_set (GTK_WIDGET (expander), 0, NULL, 0, 0); gtk_drag_dest_set_track_motion (GTK_WIDGET (expander), TRUE); }
static void gtk_ellipsis_init (GtkEllipsis *ellipsis) { GtkEllipsisPrivate *priv; ellipsis->priv = priv = GTK_ELLIPSIS_GET_PRIVATE (ellipsis); GTK_WIDGET_SET_FLAGS (ellipsis, GTK_CAN_FOCUS); GTK_WIDGET_SET_FLAGS (ellipsis, GTK_NO_WINDOW); priv->label = NULL; priv->ellipsis_label = NULL; priv->event_window = NULL; priv->wrap_mode = GTK_ELLIPSIS_DEFAULT_WRAP; priv->expanded = FALSE; priv->use_underline = FALSE; priv->use_markup = FALSE; priv->button_down = FALSE; priv->prelight = FALSE; priv->expand_timer = 0; gtk_drag_dest_set (GTK_WIDGET (ellipsis), 0, NULL, 0, 0); gtk_drag_dest_set_track_motion (GTK_WIDGET (ellipsis), TRUE); }
static void gstyle_color_widget_init (GstyleColorWidget *self) { GtkStyleContext *context; GtkWidget *widget = GTK_WIDGET (self); gtk_widget_set_has_window (GTK_WIDGET (self), TRUE); self->label = GTK_LABEL (g_object_new (GTK_TYPE_LABEL, "ellipsize", PANGO_ELLIPSIZE_END, "visible", TRUE, "halign", GTK_ALIGN_CENTER, "valign", GTK_ALIGN_CENTER, NULL)); gtk_container_add (GTK_CONTAINER (self), GTK_WIDGET (self->label)); self->is_name_visible = TRUE; self->is_fallback_name_visible = TRUE; self->fallback_name_kind = GSTYLE_COLOR_KIND_RGB_HEX6; self->checkered_pattern = gstyle_utils_get_checkered_pattern (); gtk_widget_set_valign (widget, GTK_ALIGN_FILL); gtk_widget_set_halign (widget, GTK_ALIGN_FILL); gtk_widget_set_hexpand (widget, TRUE); gtk_widget_set_vexpand (widget, TRUE); context = gtk_widget_get_style_context (GTK_WIDGET (self)); self->default_provider = gstyle_css_provider_init_default (gtk_style_context_get_screen (context)); self->target_list = gtk_target_list_new (dnd_targets, G_N_ELEMENTS (dnd_targets)); gtk_target_list_add_text_targets (self->target_list, 0); gtk_drag_dest_set (widget, 0, NULL, 0, GDK_ACTION_MOVE); gtk_drag_dest_set_target_list (widget, self->target_list); gtk_drag_dest_set_track_motion (GTK_WIDGET (self), TRUE); update_container_parent_informations (self); self->multipress_gesture = gtk_gesture_multi_press_new (widget); gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (self->multipress_gesture), 0); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (self->multipress_gesture), GTK_PHASE_BUBBLE); g_signal_connect (self->multipress_gesture, "pressed", G_CALLBACK (gstyle_color_widget_multipress_gesture_pressed), widget); self->drag_gesture = gtk_gesture_drag_new (GTK_WIDGET (self)); g_signal_connect (self->drag_gesture, "drag-update", G_CALLBACK (gstyle_color_widget_drag_gesture_update), self); g_signal_connect_swapped (self, "key-press-event", G_CALLBACK (gstyle_color_widget_key_pressed_cb), self); gstyle_color_widget_actions_init (self); gtk_widget_set_can_focus (GTK_WIDGET (self), TRUE); }
static void ddb_tabstrip_realize (GtkWidget *widget) { DdbTabStrip *darea = DDB_TABSTRIP (widget); GdkWindowAttr attributes; gint attributes_mask; if (!gtk_widget_get_has_window (widget)) { GTK_WIDGET_CLASS (ddb_tabstrip_parent_class)->realize (widget); } else { gtk_widget_set_realized (widget, TRUE); attributes.window_type = GDK_WINDOW_CHILD; GtkAllocation a; gtk_widget_get_allocation (widget, &a); attributes.x = a.x; attributes.y = a.y; attributes.width = a.width; attributes.height = a.height; attributes.wclass = GDK_INPUT_OUTPUT; attributes.visual = gtk_widget_get_visual (widget); #if !GTK_CHECK_VERSION(3,0,0) attributes.colormap = gtk_widget_get_colormap (widget); #endif attributes.event_mask = gtk_widget_get_events (widget); attributes.event_mask |= GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK; attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; #if !GTK_CHECK_VERSION(3,0,0) attributes_mask |= GDK_WA_COLORMAP; #endif GdkWindow *window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask); gtk_widget_set_window(widget, window); gdk_window_set_user_data (gtk_widget_get_window(widget), darea); #if !GTK_CHECK_VERSION(3,0,0) widget->style = gtk_style_attach (widget->style, widget->window); gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL); #else gtk_style_context_set_background (gtk_widget_get_style_context (widget), window); #endif } ddb_tabstrip_send_configure (DDB_TABSTRIP (widget)); GtkTargetEntry entry = { .target = TARGET_PLAYITEMS, .flags = GTK_TARGET_SAME_APP, .info = TARGET_SAMEWIDGET }; gtk_drag_dest_set (widget, GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, &entry, 1, GDK_ACTION_COPY | GDK_ACTION_MOVE); gtk_drag_dest_add_uri_targets (widget); gtk_drag_dest_set_track_motion (widget, TRUE); }
static void nautilus_notebook_init (NautilusNotebook *notebook) { gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook), TRUE); gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE); gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE); g_signal_connect (notebook, "button-press-event", (GCallback)button_press_cb, NULL); /* Set up drag-and-drop target */ /* TODO this would be used for opening a new tab. * It will only work properly as soon as GtkNotebook * supports to find out whether a particular point * is on a tab button or not. */ #if 0 gtk_drag_dest_set (GTK_WIDGET (notebook), 0, url_drag_types, G_N_ELEMENTS (url_drag_types), GDK_ACTION_LINK); gtk_drag_dest_set_track_motion (GTK_WIDGET (notebook), TRUE); #endif }
static VALUE rg_m_dest_set_track_motion(VALUE self, VALUE widget, VALUE track_motion) { gtk_drag_dest_set_track_motion(RVAL2WIDGET(widget), RVAL2CBOOL(track_motion)); return self; }