static void gbp_git_buffer_change_monitor_init (GbpGitBufferChangeMonitor *self) { self->buffer_signals = dzl_signal_group_new (IDE_TYPE_BUFFER); dzl_signal_group_connect_object (self->buffer_signals, "insert-text", G_CALLBACK (buffer_insert_text_after_cb), self, G_CONNECT_SWAPPED | G_CONNECT_AFTER); dzl_signal_group_connect_object (self->buffer_signals, "delete-range", G_CALLBACK (buffer_delete_range_cb), self, G_CONNECT_SWAPPED); dzl_signal_group_connect_object (self->buffer_signals, "delete-range", G_CALLBACK (buffer_delete_range_after_cb), self, G_CONNECT_SWAPPED | G_CONNECT_AFTER); dzl_signal_group_connect_object (self->buffer_signals, "changed", G_CALLBACK (buffer_changed_after_cb), self, G_CONNECT_SWAPPED | G_CONNECT_AFTER); }
static void gbp_editor_workspace_addin_load (IdeWorkspaceAddin *addin, IdeWorkspace *workspace) { GbpEditorWorkspaceAddin *self = (GbpEditorWorkspaceAddin *)addin; IdeBufferManager *buffer_manager; IdeHeaderBar *header_bar; IdeContext *context; g_assert (GBP_IS_EDITOR_WORKSPACE_ADDIN (self)); g_assert (IDE_IS_WORKSPACE (workspace)); g_assert (IDE_IS_PRIMARY_WORKSPACE (workspace) || IDE_IS_EDITOR_WORKSPACE (workspace)); self->workspace = workspace; /* Get our buffer manager for future use */ context = ide_widget_get_context (GTK_WIDGET (workspace)); buffer_manager = ide_buffer_manager_from_context (context); /* Monitor buffer manager for new buffers */ self->buffer_manager_signals = dzl_signal_group_new (IDE_TYPE_BUFFER_MANAGER); g_signal_connect_swapped (self->buffer_manager_signals, "bind", G_CALLBACK (bind_buffer_manager), self); dzl_signal_group_connect_swapped (self->buffer_manager_signals, "load-buffer", G_CALLBACK (on_load_buffer), self); dzl_signal_group_set_target (self->buffer_manager_signals, buffer_manager); /* Add buttons to the header bar */ header_bar = ide_workspace_get_header_bar (workspace); add_buttons (self, header_bar); /* Add the editor surface to the workspace */ self->surface = g_object_new (IDE_TYPE_EDITOR_SURFACE, "name", "editor", "restore-panel", IDE_IS_PRIMARY_WORKSPACE (workspace), "visible", TRUE, NULL); g_signal_connect (self->surface, "destroy", G_CALLBACK (gtk_widget_destroyed), &self->surface); ide_workspace_add_surface (IDE_WORKSPACE (workspace), IDE_SURFACE (self->surface)); ide_workspace_set_visible_surface_name (IDE_WORKSPACE (workspace), "editor"); }
static void ide_debugger_editor_addin_load (IdeEditorAddin *addin, IdeEditorSurface *editor) { IdeDebuggerEditorAddin *self = (IdeDebuggerEditorAddin *)addin; IdeContext *context; IdeRunManager *run_manager; IdeDebugManager *debug_manager; IDE_ENTRY; g_assert (IDE_IS_DEBUGGER_EDITOR_ADDIN (self)); g_assert (IDE_IS_EDITOR_SURFACE (editor)); self->editor = editor; self->workbench = ide_widget_get_workbench (GTK_WIDGET (editor)); if (!ide_workbench_has_project (self->workbench)) return; context = ide_widget_get_context (GTK_WIDGET (editor)); run_manager = ide_run_manager_from_context (context); debug_manager = ide_debug_manager_from_context (context); ide_debugger_editor_addin_add_ui (self); ide_run_manager_add_handler (run_manager, "debugger", _("Run with Debugger"), "builder-debugger-symbolic", "F5", debugger_run_handler, g_object_ref (self), g_object_unref); self->debugger_signals = dzl_signal_group_new (IDE_TYPE_DEBUGGER); dzl_signal_group_connect_swapped (self->debugger_signals, "log", G_CALLBACK (debugger_log), self); dzl_signal_group_connect_swapped (self->debugger_signals, "stopped", G_CALLBACK (debugger_stopped), self); self->debug_manager_signals = dzl_signal_group_new (IDE_TYPE_DEBUG_MANAGER); dzl_signal_group_connect_swapped (self->debug_manager_signals, "notify::active", G_CALLBACK (debug_manager_notify_active), self); dzl_signal_group_connect_swapped (self->debug_manager_signals, "notify::debugger", G_CALLBACK (debug_manager_notify_debugger), self); dzl_signal_group_set_target (self->debug_manager_signals, debug_manager); IDE_EXIT; }
static void ide_source_map_init (IdeSourceMap *self) { GtkSourceGutter *gutter; gtk_widget_add_events (GTK_WIDGET (self), GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); /* Buffer */ self->buffer_signals = dzl_signal_group_new (IDE_TYPE_BUFFER); dzl_signal_group_connect_object (self->buffer_signals, "line-flags-changed", G_CALLBACK (ide_source_map__buffer_line_flags_changed), self, G_CONNECT_SWAPPED); /* View */ self->view_signals = dzl_signal_group_new (GTK_SOURCE_TYPE_VIEW); dzl_signal_group_connect_object (self->view_signals, "notify::buffer", G_CALLBACK (ide_source_map__view_notify_buffer), self, G_CONNECT_SWAPPED); dzl_signal_group_connect_object (self->view_signals, "enter-notify-event", G_CALLBACK (ide_source_map__enter_notify_event), self, G_CONNECT_SWAPPED); dzl_signal_group_connect_object (self->view_signals, "leave-notify-event", G_CALLBACK (ide_source_map__leave_notify_event), self, G_CONNECT_SWAPPED); dzl_signal_group_connect_object (self->view_signals, "motion-notify-event", G_CALLBACK (ide_source_map__motion_notify_event), self, G_CONNECT_SWAPPED); dzl_signal_group_connect_object (self->view_signals, "scroll-event", G_CALLBACK (ide_source_map__scroll_event), self, G_CONNECT_SWAPPED); g_signal_connect_object (self, "notify::view", G_CALLBACK (ide_source_map__view_changed), self, G_CONNECT_SWAPPED); gutter = gtk_source_view_get_gutter (GTK_SOURCE_VIEW (self), GTK_TEXT_WINDOW_LEFT); self->line_renderer = g_object_new (IDE_TYPE_LINE_CHANGE_GUTTER_RENDERER, "size", 2, "visible", TRUE, NULL); gtk_source_gutter_insert (gutter, self->line_renderer, 0); g_signal_connect_object (self, "enter-notify-event", G_CALLBACK (ide_source_map__enter_notify_event), self, G_CONNECT_SWAPPED); g_signal_connect_object (self, "leave-notify-event", G_CALLBACK (ide_source_map__leave_notify_event), self, G_CONNECT_SWAPPED); g_signal_connect_object (self, "motion-notify-event", G_CALLBACK (ide_source_map__motion_notify_event), self, G_CONNECT_SWAPPED); g_signal_connect_object (self, "scroll-event", G_CALLBACK (ide_source_map__scroll_event), self, G_CONNECT_SWAPPED); }
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); }