static void pls_lang_active(GtkAction* action, GtkSourceLanguage* lang) { gint page_num; GtkTextBuffer* buf; page_num = gtk_notebook_get_current_page(puss_get_doc_panel(g_self->app)); if( page_num < 0 ) return; buf = g_self->app->doc_get_buffer_from_page_num(page_num); #if GTK_MAJOR_VERSION==2 if( !buf || !GTK_IS_SOURCE_BUFFER(buf) ) return; #else if( !buf || !GTK_SOURCE_IS_BUFFER(buf) ) return; #endif if( lang ) { gtk_source_buffer_set_language(GTK_SOURCE_BUFFER(buf), lang); add_fill_favory_language(lang); } else { gtk_source_buffer_set_language(GTK_SOURCE_BUFFER(buf), g_self->last_favory_lang); } }
static void cedit_prefs_manager_source_style_scheme_changed (GSettings *settings, gchar *key, gpointer user_data) { cedit_debug (DEBUG_PREFS); if (strcmp (key, GPM_SOURCE_STYLE_SCHEME) == 0) { static gchar *old_scheme = NULL; gchar *scheme; GtkSourceStyleScheme *style; GList *docs; GList *l; scheme = g_settings_get_string (settings, key); if (old_scheme != NULL && (strcmp (scheme, old_scheme) == 0)) return; g_free (old_scheme); old_scheme = scheme; style = gtk_source_style_scheme_manager_get_scheme ( cedit_get_style_scheme_manager (), scheme); if (style == NULL) { g_warning ("Default style scheme '%s' not found, falling back to 'classic'", scheme); style = gtk_source_style_scheme_manager_get_scheme ( cedit_get_style_scheme_manager (), "classic"); if (style == NULL) { g_warning ("Style scheme 'classic' cannot be found, check your GtkSourceView installation."); return; } } docs = cedit_app_get_documents (cedit_app_get_default ()); for (l = docs; l != NULL; l = l->next) { #if GTK_CHECK_VERSION (3, 0, 0) g_return_if_fail (GTK_SOURCE_IS_BUFFER (l->data)); #else g_return_if_fail (GTK_IS_SOURCE_BUFFER (l->data)); #endif gtk_source_buffer_set_style_scheme (GTK_SOURCE_BUFFER (l->data), style); } g_list_free (docs); } }
static void cedit_prefs_manager_syntax_hl_enable_changed (GSettings *settings, gchar *key, gpointer user_data) { cedit_debug (DEBUG_PREFS); if (strcmp (key, GPM_SYNTAX_HL_ENABLE) == 0) { gboolean enable; GList *docs; GList *l; const GList *windows; enable = g_settings_get_boolean (settings, key); docs = cedit_app_get_documents (cedit_app_get_default ()); l = docs; while (l != NULL) { #if GTK_CHECK_VERSION (3, 0, 0) g_return_if_fail (GTK_SOURCE_IS_BUFFER (l->data)); #else g_return_if_fail (GTK_IS_SOURCE_BUFFER (l->data)); #endif gtk_source_buffer_set_highlight_syntax (GTK_SOURCE_BUFFER (l->data), enable); l = l->next; } g_list_free (docs); /* update the sensitivity of the Higlight Mode menu item */ windows = cedit_app_get_windows (cedit_app_get_default ()); while (windows != NULL) { GtkUIManager *ui; GtkAction *a; ui = cedit_window_get_ui_manager (CEDIT_WINDOW (windows->data)); a = gtk_ui_manager_get_action (ui, "/MenuBar/ViewMenu/ViewHighlightModeMenu"); gtk_action_set_sensitive (a, enable); windows = g_list_next (windows); } } }