static void ide_terminal_page_init (IdeTerminalPage *self) { GtkStyleContext *style_context; self->close_on_exit = TRUE; self->respawn_on_exit = TRUE; self->manage_spawn = TRUE; self->tsearch = g_object_new (IDE_TYPE_TERMINAL_SEARCH, "visible", TRUE, NULL); self->search_revealer_top = ide_terminal_search_get_revealer (self->tsearch); gtk_widget_init_template (GTK_WIDGET (self)); g_signal_connect_object (self->terminal_top, "text-inserted", G_CALLBACK (ide_terminal_page_on_text_inserted_cb), self, G_CONNECT_SWAPPED); ide_page_set_icon_name (IDE_PAGE (self), "utilities-terminal-symbolic"); ide_page_set_can_split (IDE_PAGE (self), TRUE); ide_page_set_menu_id (IDE_PAGE (self), "ide-terminal-page-document-menu"); gtk_overlay_add_overlay (self->terminal_overlay_top, GTK_WIDGET (self->tsearch)); ide_terminal_page_connect_terminal (self, VTE_TERMINAL (self->terminal_top)); ide_terminal_search_set_terminal (self->tsearch, VTE_TERMINAL (self->terminal_top)); ide_terminal_page_actions_init (self); style_context = gtk_widget_get_style_context (GTK_WIDGET (self->terminal_top)); gtk_style_context_add_class (style_context, "terminal"); g_signal_connect_object (style_context, "changed", G_CALLBACK (style_context_changed), self, 0); style_context_changed (style_context, self); gtk_widget_set_can_focus (GTK_WIDGET (self->terminal_top), TRUE); ide_widget_set_context_handler (self, ide_terminal_page_context_set); }
static void ide_omni_bar_init (IdeOmniBar *self) { gtk_widget_init_template (GTK_WIDGET (self)); G_GNUC_BEGIN_IGNORE_DEPRECATIONS; gtk_container_set_reallocate_redraws (GTK_CONTAINER (self), TRUE); G_GNUC_END_IGNORE_DEPRECATIONS; gtk_widget_set_direction (GTK_WIDGET (self->branch_box), GTK_TEXT_DIR_LTR); g_signal_connect_object (self->build_button, "query-tooltip", G_CALLBACK (ide_omni_bar__build_button__query_tooltip), self, G_CONNECT_SWAPPED); /* * IdeBuildManager bindings and signals. */ self->build_manager_bindings = dzl_binding_group_new (); dzl_binding_group_bind (self->build_manager_bindings, "busy", self->cancel_button, "visible", G_BINDING_SYNC_CREATE); dzl_binding_group_bind (self->build_manager_bindings, "busy", self->build_button, "visible", G_BINDING_SYNC_CREATE | G_BINDING_INVERT_BOOLEAN); dzl_binding_group_bind (self->build_manager_bindings, "has-diagnostics", self->build_result_diagnostics_image, "visible", G_BINDING_SYNC_CREATE); dzl_binding_group_bind (self->build_manager_bindings, "error-count", self->popover_errors_label, "label", G_BINDING_SYNC_CREATE); dzl_binding_group_bind (self->build_manager_bindings, "warning-count", self->popover_warnings_label, "label", G_BINDING_SYNC_CREATE); dzl_binding_group_bind_full (self->build_manager_bindings, "last-build-time", self->popover_last_build_time_label, "label", G_BINDING_SYNC_CREATE, date_time_to_label, NULL, NULL, NULL); self->build_manager_signals = dzl_signal_group_new (IDE_TYPE_BUILD_MANAGER); dzl_signal_group_connect_object (self->build_manager_signals, "build-started", G_CALLBACK (ide_omni_bar__build_manager__build_started), self, G_CONNECT_SWAPPED); dzl_signal_group_connect_object (self->build_manager_signals, "build-failed", G_CALLBACK (ide_omni_bar__build_manager__build_failed), self, G_CONNECT_SWAPPED); dzl_signal_group_connect_object (self->build_manager_signals, "build-finished", G_CALLBACK (ide_omni_bar__build_manager__build_finished), self, G_CONNECT_SWAPPED); /* * Project bindings. */ self->project_bindings = dzl_binding_group_new (); dzl_binding_group_bind (self->project_bindings, "name", self->popover_project_label, "label", G_BINDING_SYNC_CREATE); /* * IdeVcs bindings and signals. */ self->vcs_bindings = dzl_binding_group_new (); dzl_binding_group_bind (self->vcs_bindings, "branch-name", self->branch_label, "label", G_BINDING_SYNC_CREATE); dzl_binding_group_bind (self->vcs_bindings, "branch-name", self->popover_branch_label, "label", G_BINDING_SYNC_CREATE); /* * IdeConfigurationManager bindings and signals. */ self->config_manager_bindings = dzl_binding_group_new (); dzl_binding_group_bind (self->config_manager_bindings, "current-display-name", self->config_name_label, "label", G_BINDING_SYNC_CREATE); self->config_manager_signals = dzl_signal_group_new (IDE_TYPE_CONFIGURATION_MANAGER); dzl_signal_group_connect_object (self->config_manager_signals, "notify::current", G_CALLBACK (ide_omni_bar__config_manager__notify_current), self, G_CONNECT_SWAPPED); /* * Enable various events for state tracking. */ gtk_widget_add_events (GTK_WIDGET (self->event_box), GDK_BUTTON_PRESS_MASK); g_signal_connect_object (self->event_box, "enter-notify-event", G_CALLBACK (event_box_enter_notify), self, G_CONNECT_SWAPPED); g_signal_connect_object (self->event_box, "leave-notify-event", G_CALLBACK (event_box_leave_notify), self, G_CONNECT_SWAPPED); g_signal_connect_object (self->popover, "closed", G_CALLBACK (ide_omni_bar_popover_closed), self, G_CONNECT_SWAPPED); self->gesture = gtk_gesture_multi_press_new (GTK_WIDGET (self->event_box)); g_signal_connect (self->gesture, "pressed", G_CALLBACK (multipress_pressed_cb), self); /* * Register to be notified of IdeWorkbench:context set. */ ide_widget_set_context_handler (self, ide_omni_bar_context_set); }