Exemplo n.º 1
0
// This method append OREGANO_LANGDIR directory where the netlist.lang file
// is located to the search path of GtkSourceLanguageManager.
void
setup_language_manager_path (GtkSourceLanguageManager *lm)
{
	gchar **lang_files;
	const gchar * const * temp;
	GPtrArray *dirs;
	int i, lang_files_count;
	char **new_langs;

	dirs = g_ptr_array_new ();

	// Stolen from gtranslator
	for (temp = gtk_source_language_manager_get_search_path(lm);
            temp != NULL && *temp != NULL; ++temp)
                g_ptr_array_add (dirs, g_strdup(*temp));

	g_ptr_array_add (dirs, NULL);
	lang_files = (gchar **) g_ptr_array_free (dirs, FALSE);
	lang_files_count = g_strv_length (lang_files);
	new_langs = g_new (char*, lang_files_count + 2);

	for (i = 0; lang_files[i]; i++)
		new_langs[i] = g_strdup (lang_files[i]);

	new_langs[lang_files_count] = g_strdup (OREGANO_LANGDIR);
	new_langs[lang_files_count+1] = NULL;

	g_strfreev (lang_files);

	gtk_source_language_manager_set_search_path (lm, new_langs);
}
Exemplo n.º 2
0
Arquivo: gitg.c Projeto: epronk/gitg
static void
set_language_search_path ()
{
	GtkSourceLanguageManager *manager = gtk_source_language_manager_get_default ();
	gchar const * const *orig = gtk_source_language_manager_get_search_path (manager);
	gchar const **dirs = g_new0 (gchar const *, g_strv_length ((gchar **)orig) + 2);
	guint i = 0;

	while (orig[i])
	{
		dirs[i + 1] = orig[i];
		++i;
	}

	gchar *path = gitg_dirs_get_data_filename ("language-specs", NULL);
	dirs[0] = path;
	gtk_source_language_manager_set_search_path (manager, (gchar **)dirs);
	g_free (path);

	g_free (dirs);
}
Exemplo n.º 3
0
/* This method append OREGANO_LANGDIR directory where the netlist.lang file
 * is located to the search path of GtkSourceLanguageManager.
 */
void
setup_language_manager_path(GtkSourceLanguageManager *lm)
{
	gchar **lang_files;
	int i, lang_files_count;
	char **new_langs;

	lang_files = g_strdupv (gtk_source_language_manager_get_search_path (lm));

	lang_files_count = g_strv_length (lang_files);
	new_langs = g_new (char*, lang_files_count + 2);

	for (i = 0; lang_files[i]; i++)
		new_langs[i] = lang_files[i];

	new_langs[lang_files_count] = g_strdup (OREGANO_LANGDIR);
	new_langs[lang_files_count+1] = NULL;

	g_free (lang_files);

	gtk_source_language_manager_set_search_path (lm, new_langs);
}
Exemplo n.º 4
0
GUIEditor *
gui_editor_new (void)
{
  GUIEditor *self;
  GPtrArray *dirs;
  const gchar * const *current_search_path;
  gchar **lang_spec_search_path;

  self = g_malloc0 (sizeof (GUIEditor));

  self->buffer = gtk_source_buffer_new (NULL);

  self->widget = gtk_source_view_new_with_buffer (self->buffer);

  self->scroll = gtk_scrolled_window_new (NULL, NULL);

  gtk_container_add (GTK_CONTAINER (self->scroll), self->widget);

  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (self->scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);

  gui_editor_set_font (self, DEFAULT_EDITOR_FONT);

  self->hltag = gtk_text_buffer_create_tag (GTK_TEXT_BUFFER(self->buffer),
											HIGHLIGHT_TAG,
											"background", COLOUR_BG_HL,
											NULL);
	
  self->lang_manager = gtk_source_language_manager_new ();

  self->style_scheme_manager = gtk_source_style_scheme_manager_get_default ();

  dirs = g_ptr_array_new();

  current_search_path = gtk_source_language_manager_get_search_path(self->lang_manager);

  for (; current_search_path != NULL && *current_search_path != NULL; ++current_search_path)
    g_ptr_array_add(dirs, g_strdup(*current_search_path));

  // look for spec file in our own directory
  g_ptr_array_add(dirs, g_strdup(PACKAGE_DATA_DIR));
  // look for spec file in data directory when running from svn
  g_ptr_array_add(dirs, g_strdup("data"));
  // look for spec file in current directory, when running on windows
  g_ptr_array_add(dirs, g_strdup("."));
  g_ptr_array_add(dirs, g_strdup(NULL));

  lang_spec_search_path = (gchar **)g_ptr_array_free(dirs, FALSE);

  gtk_source_language_manager_set_search_path (self->lang_manager, lang_spec_search_path);
  
  gtk_source_style_scheme_manager_append_search_path (self->style_scheme_manager, "data");
  gtk_source_style_scheme_manager_append_search_path (self->style_scheme_manager, ".");

#if GTK_CHECK_VERSION(3, 0, 0)
  GtkSourceMarkAttributes *mark_attributes = gtk_source_mark_attributes_new ();
  gtk_source_mark_attributes_set_icon_name (mark_attributes, "gtk-no");
  gtk_source_view_set_mark_attributes (GTK_SOURCE_VIEW (self->widget), MARKER_BREAKPOINT, mark_attributes, 0);
#else
  GdkPixbuf *pixbuf;
  pixbuf = gui_editor_get_stock_icon (GTK_WIDGET(self->widget), GTK_STOCK_NO, GTK_ICON_SIZE_MENU);
  if (pixbuf)
	{
	  gtk_source_view_set_mark_category_icon_from_pixbuf (GTK_SOURCE_VIEW (self->widget), MARKER_BREAKPOINT, pixbuf);
	  g_object_unref (pixbuf);
	}
#endif

  return self;
}