static void
gb_view_source_update_style (GbViewSource *source)
{
    g_return_if_fail(GB_IS_VIEW_SOURCE(source));
    gtk_source_buffer_set_style_scheme(source->priv->buffer,
                                       gb_view_source_get_scheme(NULL));
}
Esempio n. 2
0
File: main.c Progetto: tadeboro/hip
static GtkWidget *
setup_editor (AppData *data)
{
  GtkSourceBuffer *buffer;
  GtkSourceLanguageManager *manager;
  GtkSourceLanguage *lang;
  GtkWidget *view;


  manager = gtk_source_language_manager_get_default ();
  lang = gtk_source_language_manager_get_language (manager, "hip");
  buffer = gtk_source_buffer_new_with_language (lang);
  view = gtk_source_view_new_with_buffer (buffer);
  gtk_widget_modify_font (view,
			  pango_font_description_from_string ("monospace"));
  g_object_set (view, "auto-indent", TRUE,
		      "indent-on-tab", TRUE,
		      "indent-width", 8,
		      "show-line-numbers", TRUE,
		      NULL);

  /* Make it pretty ;) */
  gtk_source_buffer_set_style_scheme (buffer,
	gtk_source_style_scheme_manager_get_scheme (
		gtk_source_style_scheme_manager_get_default (), "tango"));


  gtk_widget_show (view);
  g_object_unref (buffer);

  data->text_buffer = GTK_TEXT_BUFFER (buffer);

  return view;
}
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);
	}
}
Esempio n. 4
0
static void
gedit_document_init (GeditDocument *doc)
{
	GeditDocumentPrivate *priv;
	GtkSourceStyleScheme *style_scheme;

	gedit_debug (DEBUG_DOCUMENT);

	doc->priv = gedit_document_get_instance_private (doc);
	priv = doc->priv;

	priv->editor_settings = g_settings_new ("org.gnome.gedit.preferences.editor");

	priv->untitled_number = get_untitled_number ();

	priv->content_type = get_default_content_type ();

	priv->readonly = FALSE;

	priv->language_set_by_user = FALSE;

	priv->empty_search = TRUE;

	g_get_current_time (&doc->priv->time_of_last_save_or_load);

	priv->file = gtk_source_file_new ();

	g_signal_connect_object (priv->file,
				 "notify::location",
				 G_CALLBACK (on_location_changed),
				 doc,
				 0);

	g_settings_bind (priv->editor_settings,
	                 GEDIT_SETTINGS_MAX_UNDO_ACTIONS,
	                 doc,
	                 "max-undo-levels",
	                 G_SETTINGS_BIND_GET);

	g_settings_bind (priv->editor_settings,
	                 GEDIT_SETTINGS_BRACKET_MATCHING,
	                 doc,
	                 "highlight-matching-brackets",
	                 G_SETTINGS_BIND_GET);

	style_scheme = get_default_style_scheme (priv->editor_settings);
	if (style_scheme != NULL)
	{
		gtk_source_buffer_set_style_scheme (GTK_SOURCE_BUFFER (doc), style_scheme);
	}

	g_signal_connect (doc,
			  "notify::content-type",
			  G_CALLBACK (on_content_type_changed),
			  NULL);
}
Esempio n. 5
0
void
gui_editor_show (GUIEditor * self)
{
  gtk_widget_show (GTK_WIDGET (self->widget));
  gtk_widget_show (GTK_WIDGET (self->scroll));
  gtk_source_view_set_show_line_numbers (GTK_SOURCE_VIEW(self->widget), TRUE);
  self->language = gtk_source_language_manager_get_language(self->lang_manager,"8085_asm");
  if (self->language != NULL){
	gtk_source_buffer_set_language (self->buffer, self->language);
	gtk_source_buffer_set_style_scheme (self->buffer, gtk_source_style_scheme_manager_get_scheme(self->style_scheme_manager,"classic"));
	gtk_source_buffer_set_highlight_syntax (self->buffer, TRUE);
  }
  self->mark = gtk_text_buffer_get_insert (GTK_TEXT_BUFFER(self->buffer));
  gtk_source_view_set_show_line_marks (GTK_SOURCE_VIEW(self->widget), TRUE);
}
Esempio n. 6
0
static void
gb_editor_tab_set_style_scheme_name (GbEditorTab *tab,
                                     const gchar *style_scheme_name)
{
   GtkSourceStyleSchemeManager *manager;
   GtkSourceStyleScheme *style_scheme;
   GbEditorTabPrivate *priv;

   g_return_if_fail(GB_IS_EDITOR_TAB(tab));

   priv = tab->priv;

   if (!style_scheme_name)
      style_scheme_name = "tango";

   manager = gtk_source_style_scheme_manager_get_default ();
   style_scheme = gtk_source_style_scheme_manager_get_scheme (manager, style_scheme_name);
   gtk_source_buffer_set_style_scheme (GTK_SOURCE_BUFFER (priv->document), style_scheme);
}
Esempio n. 7
0
static IAnjutaEditor*
ieditor_factory_new_editor(IAnjutaEditorFactory* factory,
								GFile* file,
								const gchar* filename,
								GError** error)
{
	AnjutaPlugin* plugin = ANJUTA_PLUGIN(factory);
	SourceviewPlugin* splugin = ANJUTA_PLUGIN_SOURCEVIEW (plugin);
	gchar* current_style = g_settings_get_string (splugin->settings, SOURCEVIEW_STYLE);
	GtkSourceStyleSchemeManager* manager = gtk_source_style_scheme_manager_get_default();
	Sourceview* sv;
	sv = sourceview_new(file, filename, plugin);
	if (current_style)
		gtk_source_buffer_set_style_scheme (GTK_SOURCE_BUFFER (sv->priv->document),
											gtk_source_style_scheme_manager_get_scheme (manager,
																						current_style));
	g_free (current_style);
	return IANJUTA_EDITOR (sv);
}
Esempio n. 8
0
static void parse_puss_editor_style_option(const Option* option, const gchar* old, gpointer tag) {
	GtkSourceStyleSchemeManager* ssm;
	GtkSourceStyleScheme* style;
	GtkSourceBuffer* buf;
	gint num;
	gint i;

	if( !option->value || option->value[0]=='\0' )
		return;

	ssm = gtk_source_style_scheme_manager_get_default();
	style = gtk_source_style_scheme_manager_get_scheme(ssm, option->value);
	if( style ) {
		num = gtk_notebook_get_n_pages(puss_app->doc_panel);
		for( i=0; i<num; ++i ) {
			buf = GTK_SOURCE_BUFFER(puss_doc_get_buffer_from_page_num(i));
			if( buf )
				gtk_source_buffer_set_style_scheme(buf, style);
		}
	}
}
Esempio n. 9
0
static void
on_style_changed (GtkComboBox* combo, SourceviewPlugin* plugin)
{
	GtkTreeIter iter;
	gchar* id;
	GtkSourceStyleSchemeManager* manager = gtk_source_style_scheme_manager_get_default();
	GtkSourceStyleScheme* scheme;
	IAnjutaDocumentManager* docman;
	AnjutaShell* shell = ANJUTA_PLUGIN (plugin)->shell;
	gtk_combo_box_get_active_iter (combo, &iter);
	gtk_tree_model_get (gtk_combo_box_get_model(combo), &iter,
						COLUMN_ID, &id, -1);
	scheme = gtk_source_style_scheme_manager_get_scheme (manager, id);

	g_settings_set_string (plugin->settings,
	                       SOURCEVIEW_STYLE,
	                       id);
	g_free (id);


	docman = anjuta_shell_get_interface (shell,
										 IAnjutaDocumentManager, NULL);
	if (docman)
	{
		GList* editors = ianjuta_document_manager_get_doc_widgets (docman, NULL);
		GList* node;
		for (node = editors; node != NULL; node = g_list_next (node))
		{
			IAnjutaDocument* editor = IANJUTA_DOCUMENT (node->data);
			if (ANJUTA_IS_SOURCEVIEW (editor))
			{
				Sourceview* sv = ANJUTA_SOURCEVIEW (editor);
				gtk_source_buffer_set_style_scheme (GTK_SOURCE_BUFFER (sv->priv->document),
													scheme);
			}
		}
	}
}
Esempio n. 10
0
static module_t *add_module(const char *Name) {
//	printf("Adding module: %s\n", Name);
	gdk_threads_enter();
	module_t *Module = new(module_t);
	Module->Name = Name;
	Module->Source = gtk_source_buffer_new(SourceTags);
	gtk_source_buffer_set_language(Module->Source, SourceLanguage);
	gtk_source_buffer_set_style_scheme(Module->Source, StyleScheme);
	gtk_text_view_set_buffer(SourceView, Module->Source);
	GtkTreeIter Iter;
	gtk_list_store_append(Modules, &Iter);
	gtk_list_store_set(Modules, &Iter, 0, Name, 1, Module, -1);
	Module->ModulePath = gtk_tree_model_get_path(Modules, &Iter);
	DisplayedModule = Module;
	gtk_tree_store_append(Globals, &Iter, 0);
	gtk_tree_store_set(Globals, &Iter, 0, Module->Name, 1, 0, 2, 0, 3, 0, 5, -1, -1);
	Module->GlobalsPath = gtk_tree_model_get_path(Globals, &Iter);
	//Module->Breakpoints = Riva$Memory$alloc_atomic(1);
	//Module->Breakpoints[0] = BreakOnNewModule;
	//Module->MaxBreakpoint = 1;
	gdk_threads_leave();
	return Module;
};
Esempio n. 11
0
static void mape_edit_view_set_filename(MapeEditView* view,
                                        const gchar* filename)
{
	MapeMapgenType new_type;
	GtkSourceBuffer* buf;

	gchar* basename;
	gchar* utf8_file;
	gchar* utf8_file_casefold;
	gchar* utf8_landscape_txt_casefold;

	const gchar* lang_name;
	const gchar* lang_filename;
	GtkSourceLanguage* lang;
	GtkSourceStyleScheme* style;
	GtkWidget* error_dialog;

	buf = GTK_SOURCE_BUFFER(
		gtk_text_view_get_buffer(GTK_TEXT_VIEW(view->view) )
	);

	if (view->file_path != filename)
	{
		if(filename != NULL)
		{
			view->file_path = g_strdup(filename);
		}
		else
		{
			view->file_path = NULL;
		}
	}

	if(filename != NULL)
	{
		basename = g_path_get_basename(filename);

		/* Determine document type */
		utf8_file = g_filename_to_utf8(
			basename,
			-1,
			NULL,
			NULL,
			NULL
		);

		g_free(basename);

		if(utf8_file != NULL)
		{
			utf8_file_casefold = g_utf8_casefold(utf8_file, -1);
			utf8_landscape_txt_casefold = g_utf8_casefold("landscape.txt", -1);
			g_free(utf8_file);

			if(g_utf8_collate(utf8_file_casefold, utf8_landscape_txt_casefold) == 0)
				new_type = MAPE_MAPGEN_LANDSCAPE_TXT;
			else
				new_type = MAPE_MAPGEN_MAP_C;
			g_free(utf8_file_casefold);
			g_free(utf8_landscape_txt_casefold);
		}
	}
	else
	{
		new_type = MAPE_MAPGEN_MAP_C;
	}

	if(new_type != view->type)
	{
		view->type = new_type;
		switch(view->type)
		{
		case MAPE_MAPGEN_LANDSCAPE_TXT:
			lang_name = "c4landscape";
			lang_filename = "Landscape.txt";
			break;
		case MAPE_MAPGEN_MAP_C:
			lang_name = "c4mapscript";
			lang_filename = "Map.c";
			break;
		default:
			lang_name = NULL;
			g_assert_not_reached();
			break;
		}

		/* Set language according to document type */
		lang = gtk_source_language_manager_get_language(
			view->lang_manager,
			lang_name
		);

		style = gtk_source_style_scheme_manager_get_scheme(
			view->style_manager,
			"mape"
		);

		if(lang == NULL || style == NULL)
		{
			/* TODO: Show location where we search in */
			error_dialog = gtk_message_dialog_new(
				NULL,
				GTK_DIALOG_MODAL,
				GTK_MESSAGE_ERROR,
				GTK_BUTTONS_OK,
				"Syntax Highlighting Not Available"
			);

			gtk_message_dialog_format_secondary_text(
				GTK_MESSAGE_DIALOG(error_dialog),
				"The syntax highlighting file for %s files "
				"could not be located. Perhaps mape has not "
				"been properly installed. Syntax "
				"highlighting is disabled.",
				lang_filename
			);

			gtk_window_set_title(GTK_WINDOW(error_dialog), "Mape");

			gtk_dialog_run(GTK_DIALOG(error_dialog) );
			gtk_widget_destroy(error_dialog);
		}
		else
		{
			gtk_source_buffer_set_language(buf, lang);
			gtk_source_buffer_set_style_scheme(buf, style);
		}
	}
}
Esempio n. 12
0
/* Update the highlighting styles for this buffer */
gboolean
update_style(GtkSourceBuffer *buffer)
{
	gtk_source_buffer_set_style_scheme(buffer, i7_app_get_current_color_scheme(i7_app_get()));
	return FALSE; /* one-shot idle function */
}