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); }
static void ide_frame_init (IdeFrame *self) { IdeFramePrivate *priv = ide_frame_get_instance_private (self); gtk_widget_init_template (GTK_WIDGET (self)); _ide_frame_init_actions (self); _ide_frame_init_shortcuts (self); priv->pages = g_ptr_array_new (); priv->in_transition = g_ptr_array_new_with_free_func (g_object_unref); priv->signals = dzl_signal_group_new (IDE_TYPE_PAGE); dzl_signal_group_connect_swapped (priv->signals, "notify::failed", G_CALLBACK (ide_frame_page_failed), self); priv->bindings = dzl_binding_group_new (); g_signal_connect_object (priv->bindings, "notify::source", G_CALLBACK (ide_frame_bindings_notify_source), self, G_CONNECT_SWAPPED); dzl_binding_group_bind (priv->bindings, "title", priv->header, "title", G_BINDING_SYNC_CREATE); dzl_binding_group_bind (priv->bindings, "modified", priv->header, "modified", G_BINDING_SYNC_CREATE); dzl_binding_group_bind (priv->bindings, "primary-color-bg", priv->header, "background-rgba", G_BINDING_SYNC_CREATE); dzl_binding_group_bind (priv->bindings, "primary-color-fg", priv->header, "foreground-rgba", G_BINDING_SYNC_CREATE); g_signal_connect_object (priv->stack, "notify::visible-child", G_CALLBACK (ide_frame_notify_visible_child), self, G_CONNECT_SWAPPED); g_signal_connect_object (priv->stack, "add", G_CALLBACK (ide_frame_page_added), self, G_CONNECT_SWAPPED | G_CONNECT_AFTER); g_signal_connect_object (priv->stack, "remove", G_CALLBACK (ide_frame_page_removed), self, G_CONNECT_SWAPPED); _ide_frame_header_set_pages (priv->header, G_LIST_MODEL (self)); _ide_frame_header_update (priv->header, NULL); }