SF.net SVN: geany: [467] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Mon Jun 19 18:31:30 UTC 2006


Revision: 467
Author:   eht16
Date:     2006-06-19 11:31:17 -0700 (Mon, 19 Jun 2006)
ViewCVS:  http://svn.sourceforge.net/geany/?rev=467&view=rev

Log Message:
-----------
Implemented encoding support to switch between different encodings.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/geany.glade
    trunk/src/callbacks.c
    trunk/src/callbacks.h
    trunk/src/document.c
    trunk/src/encodings.c
    trunk/src/encodings.h
    trunk/src/interface.c
    trunk/src/utils.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2006-06-19 16:21:52 UTC (rev 466)
+++ trunk/ChangeLog	2006-06-19 18:31:17 UTC (rev 467)
@@ -1,6 +1,9 @@
 2006-06-19  Enrico Troeger  <enrico.troeger at uvena.de>
 
   * THANKS, src/about.c: Added translator credits.
+  * src/callbacks.c, src/encodings.c, src/utils.c, src/document.c,
+    geany.glade, src/interface.c:
+    Implemented encoding support to switch between different encodings.
 
 
 2006-06-19  Frank Lanitz  <frank at frank.uvena.de>

Modified: trunk/geany.glade
===================================================================
--- trunk/geany.glade	2006-06-19 16:21:52 UTC (rev 466)
+++ trunk/geany.glade	2006-06-19 18:31:17 UTC (rev 467)
@@ -57,7 +57,7 @@
 		      <property name="use_underline">True</property>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image722">
+			<widget class="GtkImage" id="image738">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-new</property>
 			  <property name="icon_size">1</property>
@@ -150,7 +150,7 @@
 		      <signal name="activate" handler="on_save_all1_activate" last_modification_time="Thu, 02 Jun 2005 14:15:30 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image723">
+			<widget class="GtkImage" id="image739">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-save</property>
 			  <property name="icon_size">1</property>
@@ -211,7 +211,7 @@
 		      <signal name="activate" handler="on_close_all1_activate" last_modification_time="Thu, 02 Jun 2005 14:15:30 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image724">
+			<widget class="GtkImage" id="image740">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-close</property>
 			  <property name="icon_size">1</property>
@@ -327,7 +327,7 @@
 		      <property name="use_underline">True</property>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image725">
+			<widget class="GtkImage" id="image741">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-add</property>
 			  <property name="icon_size">1</property>
@@ -359,7 +359,7 @@
 		      <property name="use_underline">True</property>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image726">
+			<widget class="GtkImage" id="image742">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-add</property>
 			  <property name="icon_size">1</property>
@@ -537,7 +537,7 @@
 		      <signal name="activate" handler="on_replace1_activate" last_modification_time="Sun, 23 Oct 2005 13:22:36 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image727">
+			<widget class="GtkImage" id="image743">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-find-and-replace</property>
 			  <property name="icon_size">1</property>
@@ -564,7 +564,7 @@
 		      <signal name="activate" handler="on_go_to_line1_activate" last_modification_time="Tue, 23 May 2006 17:10:49 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image728">
+			<widget class="GtkImage" id="image744">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-jump-to</property>
 			  <property name="icon_size">1</property>
@@ -599,7 +599,7 @@
 		      <signal name="activate" handler="on_change_font1_activate" last_modification_time="Fri, 22 Apr 2005 18:58:45 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image729">
+			<widget class="GtkImage" id="image745">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-select-font</property>
 			  <property name="icon_size">1</property>
@@ -621,7 +621,7 @@
 		      <signal name="activate" handler="on_show_color_chooser1_activate" last_modification_time="Wed, 22 Jun 2005 18:10:21 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image730">
+			<widget class="GtkImage" id="image746">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-select-color</property>
 			  <property name="icon_size">1</property>
@@ -799,6 +799,26 @@
 		  </child>
 
 		  <child>
+		    <widget class="GtkMenuItem" id="set_encoding1">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">Set encoding</property>
+		      <property name="use_underline">True</property>
+
+		      <child>
+			<widget class="GtkMenu" id="set_encoding1_menu">
+
+			  <child>
+			    <widget class="GtkMenuItem" id="invisible6">
+			      <property name="label" translatable="yes">invisible</property>
+			      <property name="use_underline">True</property>
+			    </widget>
+			  </child>
+			</widget>
+		      </child>
+		    </widget>
+		  </child>
+
+		  <child>
 		    <widget class="GtkMenuItem" id="menu_line_endings1">
 		      <property name="visible">True</property>
 		      <property name="label" translatable="yes">Line endings</property>

Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c	2006-06-19 16:21:52 UTC (rev 466)
+++ trunk/src/callbacks.c	2006-06-19 18:31:17 UTC (rev 467)
@@ -47,21 +47,18 @@
 #include "templates.h"
 #include "treeviews.h"
 #include "keybindings.h"
+#include "encodings.h"
 
 
 #ifdef GEANY_WIN32
 # include "win32.h"
 #endif
 
-// include vte.h on non-Win32 systems, else define fake vte_init
-#if defined(GEANY_WIN32) || ! defined(HAVE_VTE)
-# define vte_close() ;
-#else
+#ifdef HAVE_VTE
 # include "vte.h"
 #endif
 
 
-
 // represents the word under the mouse pointer when right button(no. 3) is pressed
 gchar current_word[GEANY_MAX_WORD_LENGTH];
 
@@ -2381,3 +2378,21 @@
 	document_clear_indicators(idx);
 }
 
+
+void
+on_encoding_change                     (GtkMenuItem     *menuitem,
+                                        gpointer         user_data)
+{
+	gint idx = document_get_cur_idx();
+	guint i = GPOINTER_TO_INT(user_data);
+	
+	if (idx < 0 || encodings[i].charset == NULL) return;
+
+	g_free(doc_list[idx].encoding);
+	doc_list[idx].encoding = g_strdup(encodings[i].charset);
+	doc_list[idx].changed = TRUE;
+	document_set_text_changed(idx);
+	utils_update_statusbar(idx, -1);
+}
+
+

Modified: trunk/src/callbacks.h
===================================================================
--- trunk/src/callbacks.h	2006-06-19 16:21:52 UTC (rev 466)
+++ trunk/src/callbacks.h	2006-06-19 18:31:17 UTC (rev 467)
@@ -15,7 +15,7 @@
  *
  *      You should have received a copy of the GNU General Public License
  *      along with this program; if not, write to the Free Software
- *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  * $Id$
  */
@@ -582,3 +582,7 @@
 void
 on_menu_remove_indicators1_activate    (GtkMenuItem     *menuitem,
                                         gpointer         user_data);
+
+void
+on_encoding_change                     (GtkMenuItem     *menuitem,
+                                        gpointer         user_data);

Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c	2006-06-19 16:21:52 UTC (rev 466)
+++ trunk/src/document.c	2006-06-19 18:31:17 UTC (rev 467)
@@ -613,6 +613,29 @@
 	data = (gchar*) g_malloc(len);
 	sci_get_text(doc_list[idx].sci, len, data);
 
+	// save in original encoding
+	if (doc_list[idx].encoding != NULL)
+	{
+		GError *conv_error = NULL;
+		gchar* conv_file_contents = NULL;
+	
+		// try to convert it from UTF-8 to original encoding
+		conv_file_contents = g_convert(data, -1, doc_list[idx].encoding, "UTF-8",
+													NULL, NULL, &conv_error); 
+	
+		if (conv_error != NULL)
+		{
+			g_error_free(conv_error);
+			geany_debug("error while converting the file to its orinial encoding");
+		}
+		else
+		{
+			g_free(data);
+			data = conv_file_contents;
+			len = strlen(conv_file_contents);
+		}
+	}
+
 	locale_filename = g_locale_from_utf8(doc_list[idx].file_name, -1, NULL, NULL, NULL);
 	fp = fopen(locale_filename, "w");
 	if (fp == NULL)

Modified: trunk/src/encodings.c
===================================================================
--- trunk/src/encodings.c	2006-06-19 16:21:52 UTC (rev 466)
+++ trunk/src/encodings.c	2006-06-19 18:31:17 UTC (rev 467)
@@ -1,7 +1,7 @@
 /*
  *      encodings.c - this file is part of Geany, a fast and lightweight IDE
  *
- *      Copyright 2005 Enrico Troeger <enrico.troeger at uvena.de>
+ *      Copyright 2006 Enrico Troeger <enrico.troeger at uvena.de>
  *
  *      This program is free software; you can redistribute it and/or modify
  *      it under the terms of the GNU General Public License as published by
@@ -15,7 +15,7 @@
  *
  *      You should have received a copy of the GNU General Public License
  *      along with this program; if not, write to the Free Software
- *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  */
 
@@ -34,224 +34,83 @@
 #include "support.h"
 #include "msgwindow.h"
 #include "encodings.h"
+#include "callbacks.h"
 
-struct _GeanyEncoding
-{
-  gint   idx;
-  gchar *charset;
-  gchar *name;
-};
 
 
-/*
- * The original versions of the following tables are taken from profterm
- *
- * Copyright (C) 2002 Red Hat, Inc.
- */
-
-typedef enum
+#define fill(x, y, z) encodings[x].idx = x;encodings[x].charset = y;encodings[x].name = z;
+static void init_encodings(void)
 {
+	fill(GEANY_ENCODING_ISO_8859_1, "ISO-8859-1", "Western");
+	fill(GEANY_ENCODING_ISO_8859_2, "ISO-8859-2", "Central European");
+	fill(GEANY_ENCODING_ISO_8859_3, "ISO-8859-3", "South European");
+	fill(GEANY_ENCODING_ISO_8859_4, "ISO-8859-4", "Baltic");
+	fill(GEANY_ENCODING_ISO_8859_5, "ISO-8859-5", "Cyrillic");
+	fill(GEANY_ENCODING_ISO_8859_6, "ISO-8859-6", "Arabic");
+	fill(GEANY_ENCODING_ISO_8859_7, "ISO-8859-7", "Greek");
+	fill(GEANY_ENCODING_ISO_8859_8, "ISO-8859-8", "Hebrew Visual");
+	fill(GEANY_ENCODING_ISO_8859_8_I, "ISO-8859-8-I", "Hebrew");
+	fill(GEANY_ENCODING_ISO_8859_9, "ISO-8859-9", "Turkish");
+	fill(GEANY_ENCODING_ISO_8859_10, "ISO-8859-10", "Nordic");
+	fill(GEANY_ENCODING_ISO_8859_13, "ISO-8859-13", "Baltic");
+	fill(GEANY_ENCODING_ISO_8859_14, "ISO-8859-14", "Celtic");
+	fill(GEANY_ENCODING_ISO_8859_15, "ISO-8859-15", "Western");
+	fill(GEANY_ENCODING_ISO_8859_16, "ISO-8859-16", "Romanian");
 
-  GEANY_ENCODING_ISO_8859_1,
-  GEANY_ENCODING_ISO_8859_2,
-  GEANY_ENCODING_ISO_8859_3,
-  GEANY_ENCODING_ISO_8859_4,
-  GEANY_ENCODING_ISO_8859_5,
-  GEANY_ENCODING_ISO_8859_6,
-  GEANY_ENCODING_ISO_8859_7,
-  GEANY_ENCODING_ISO_8859_8,
-  GEANY_ENCODING_ISO_8859_8_I,
-  GEANY_ENCODING_ISO_8859_9,
-  GEANY_ENCODING_ISO_8859_10,
-  GEANY_ENCODING_ISO_8859_13,
-  GEANY_ENCODING_ISO_8859_14,
-  GEANY_ENCODING_ISO_8859_15,
-  GEANY_ENCODING_ISO_8859_16,
+	fill(GEANY_ENCODING_UTF_7, "UTF-7", "Unicode");
+	fill(GEANY_ENCODING_UTF_8, "UTF-8", "Unicode");
+	fill(GEANY_ENCODING_UTF_16, "UTF-16", "Unicode");
+	fill(GEANY_ENCODING_UCS_2, "UCS-2", "Unicode");
+	fill(GEANY_ENCODING_UCS_4, "UCS-4", "Unicode");
+	
+	fill(GEANY_ENCODING_ARMSCII_8, "ARMSCII-8", "Armenian");
+	fill(GEANY_ENCODING_BIG5, "BIG5", "Chinese Traditional");
+	fill(GEANY_ENCODING_BIG5_HKSCS, "BIG5-HKSCS", "Chinese Traditional");
+	fill(GEANY_ENCODING_CP_866, "CP866", "Cyrillic/Russian");
+	
+	fill(GEANY_ENCODING_EUC_JP, "EUC-JP", "Japanese");
+	fill(GEANY_ENCODING_EUC_KR, "EUC-KR", "Korean");
+	fill(GEANY_ENCODING_EUC_TW, "EUC-TW", "Chinese Traditional");
 
-  GEANY_ENCODING_UTF_7,
-  GEANY_ENCODING_UTF_16,
-  GEANY_ENCODING_UCS_2,
-  GEANY_ENCODING_UCS_4,
+	fill(GEANY_ENCODING_GB18030, "GB18030", "Chinese Simplified");
+	fill(GEANY_ENCODING_GB2312, "GB2312", "Chinese Simplified");
+	fill(GEANY_ENCODING_GBK, "GBK", "Chinese Simplified");
+	fill(GEANY_ENCODING_GEOSTD8, "GEORGIAN-ACADEMY", "Georgian");
+	fill(GEANY_ENCODING_HZ, "HZ", "Chinese Simplified");
+	
+	fill(GEANY_ENCODING_IBM_850, "IBM850", "Western");
+	fill(GEANY_ENCODING_IBM_852, "IBM852", "Central European");
+	fill(GEANY_ENCODING_IBM_855, "IBM855", "Cyrillic");
+	fill(GEANY_ENCODING_IBM_857, "IBM857", "Turkish");
+	fill(GEANY_ENCODING_IBM_862, "IBM862", "Hebrew");
+	fill(GEANY_ENCODING_IBM_864, "IBM864", "Arabic");
+	
+	fill(GEANY_ENCODING_ISO_2022_JP, "ISO-2022-JP", "Japanese");
+	fill(GEANY_ENCODING_ISO_2022_KR, "ISO-2022-KR", "Korean");
+	fill(GEANY_ENCODING_ISO_IR_111, "ISO-IR-111", "Cyrillic");
+	fill(GEANY_ENCODING_JOHAB, "JOHAB", "Korean");
+	fill(GEANY_ENCODING_KOI8_R, "KOI8R", "Cyrillic");
+	fill(GEANY_ENCODING_KOI8_U, "KOI8U", "Cyrillic/Ukrainian");
+	
+	fill(GEANY_ENCODING_SHIFT_JIS, "SHIFT_JIS", "Japanese");
+	fill(GEANY_ENCODING_TCVN, "TCVN", "Vietnamese");
+	fill(GEANY_ENCODING_TIS_620, "TIS-620", "Thai");
+	fill(GEANY_ENCODING_UHC, "UHC", "Korean");
+	fill(GEANY_ENCODING_VISCII, "VISCII", "Vietnamese");
 
-  GEANY_ENCODING_ARMSCII_8,
-  GEANY_ENCODING_BIG5,
-  GEANY_ENCODING_BIG5_HKSCS,
-  GEANY_ENCODING_CP_866,
+	fill(GEANY_ENCODING_WINDOWS_1250, "WINDOWS-1250", "Central European");
+	fill(GEANY_ENCODING_WINDOWS_1251, "WINDOWS-1251", "Cyrillic");
+	fill(GEANY_ENCODING_WINDOWS_1252, "WINDOWS-1252", "Western");
+	fill(GEANY_ENCODING_WINDOWS_1253, "WINDOWS-1253", "Greek");
+	fill(GEANY_ENCODING_WINDOWS_1254, "WINDOWS-1254", "Turkish");
+	fill(GEANY_ENCODING_WINDOWS_1255, "WINDOWS-1255", "Hebrew");
+	fill(GEANY_ENCODING_WINDOWS_1256, "WINDOWS-1256", "Arabic");
+	fill(GEANY_ENCODING_WINDOWS_1257, "WINDOWS-1257", "Baltic");
+	fill(GEANY_ENCODING_WINDOWS_1258, "WINDOWS-1258", "Vietnamese");
+}
 
-  GEANY_ENCODING_EUC_JP,
-  GEANY_ENCODING_EUC_KR,
-  GEANY_ENCODING_EUC_TW,
 
-  GEANY_ENCODING_GB18030,
-  GEANY_ENCODING_GB2312,
-  GEANY_ENCODING_GBK,
-  GEANY_ENCODING_GEOSTD8,
-  GEANY_ENCODING_HZ,
-
-  GEANY_ENCODING_IBM_850,
-  GEANY_ENCODING_IBM_852,
-  GEANY_ENCODING_IBM_855,
-  GEANY_ENCODING_IBM_857,
-  GEANY_ENCODING_IBM_862,
-  GEANY_ENCODING_IBM_864,
-
-  GEANY_ENCODING_ISO_2022_JP,
-  GEANY_ENCODING_ISO_2022_KR,
-  GEANY_ENCODING_ISO_IR_111,
-  GEANY_ENCODING_JOHAB,
-  GEANY_ENCODING_KOI8_R,
-  GEANY_ENCODING_KOI8_U,
-
-  GEANY_ENCODING_SHIFT_JIS,
-  GEANY_ENCODING_TCVN,
-  GEANY_ENCODING_TIS_620,
-  GEANY_ENCODING_UHC,
-  GEANY_ENCODING_VISCII,
-
-  GEANY_ENCODING_WINDOWS_1250,
-  GEANY_ENCODING_WINDOWS_1251,
-  GEANY_ENCODING_WINDOWS_1252,
-  GEANY_ENCODING_WINDOWS_1253,
-  GEANY_ENCODING_WINDOWS_1254,
-  GEANY_ENCODING_WINDOWS_1255,
-  GEANY_ENCODING_WINDOWS_1256,
-  GEANY_ENCODING_WINDOWS_1257,
-  GEANY_ENCODING_WINDOWS_1258,
-
-  GEANY_ENCODING_LAST
-
-} GeanyEncodingIndex;
-
-#undef _
-#define _(String) String
-static GeanyEncoding encodings [] = {
-
-  { GEANY_ENCODING_ISO_8859_1,
-    "ISO-8859-1", "Western" },
-  { GEANY_ENCODING_ISO_8859_2,
-   "ISO-8859-2", "Central European" },
-  { GEANY_ENCODING_ISO_8859_3,
-    "ISO-8859-3", "South European" },
-  { GEANY_ENCODING_ISO_8859_4,
-    "ISO-8859-4", "Baltic" },
-  { GEANY_ENCODING_ISO_8859_5,
-    "ISO-8859-5", "Cyrillic" },
-  { GEANY_ENCODING_ISO_8859_6,
-    "ISO-8859-6", "Arabic" },
-  { GEANY_ENCODING_ISO_8859_7,
-    "ISO-8859-7", "Greek" },
-  { GEANY_ENCODING_ISO_8859_8,
-    "ISO-8859-8", "Hebrew Visual" },
-  { GEANY_ENCODING_ISO_8859_8_I,
-    "ISO-8859-8-I", "Hebrew" },
-  { GEANY_ENCODING_ISO_8859_9,
-    "ISO-8859-9", "Turkish" },
-  { GEANY_ENCODING_ISO_8859_10,
-    "ISO-8859-10", "Nordic" },
-  { GEANY_ENCODING_ISO_8859_13,
-    "ISO-8859-13", "Baltic" },
-  { GEANY_ENCODING_ISO_8859_14,
-    "ISO-8859-14", "Celtic" },
-  { GEANY_ENCODING_ISO_8859_15,
-    "ISO-8859-15", "Western" },
-  { GEANY_ENCODING_ISO_8859_16,
-    "ISO-8859-16", "Romanian" },
-
-  { GEANY_ENCODING_UTF_7,
-    "UTF-7", "Unicode" },
-  { GEANY_ENCODING_UTF_16,
-    "UTF-16", "Unicode" },
-  { GEANY_ENCODING_UCS_2,
-    "UCS-2", "Unicode" },
-  { GEANY_ENCODING_UCS_4,
-    "UCS-4", "Unicode" },
-
-  { GEANY_ENCODING_ARMSCII_8,
-    "ARMSCII-8", "Armenian" },
-  { GEANY_ENCODING_BIG5,
-    "BIG5", "Chinese Traditional" },
-  { GEANY_ENCODING_BIG5_HKSCS,
-    "BIG5-HKSCS", "Chinese Traditional" },
-  { GEANY_ENCODING_CP_866,
-    "CP866", "Cyrillic/Russian" },
-
-  { GEANY_ENCODING_EUC_JP,
-    "EUC-JP", "Japanese" },
-  { GEANY_ENCODING_EUC_KR,
-    "EUC-KR", "Korean" },
-  { GEANY_ENCODING_EUC_TW,
-    "EUC-TW", "Chinese Traditional" },
-
-  { GEANY_ENCODING_GB18030,
-    "GB18030", "Chinese Simplified" },
-  { GEANY_ENCODING_GB2312,
-    "GB2312", "Chinese Simplified" },
-  { GEANY_ENCODING_GBK,
-    "GBK", "Chinese Simplified" },
-  { GEANY_ENCODING_GEOSTD8,
-    "GEORGIAN-ACADEMY", "Georgian" }, /* FIXME GEOSTD8 ? */
-  { GEANY_ENCODING_HZ,
-    "HZ", "Chinese Simplified" },
-
-  { GEANY_ENCODING_IBM_850,
-    "IBM850", "Western" },
-  { GEANY_ENCODING_IBM_852,
-    "IBM852", "Central European" },
-  { GEANY_ENCODING_IBM_855,
-    "IBM855", "Cyrillic" },
-  { GEANY_ENCODING_IBM_857,
-    "IBM857", "Turkish" },
-  { GEANY_ENCODING_IBM_862,
-    "IBM862", "Hebrew" },
-  { GEANY_ENCODING_IBM_864,
-    "IBM864", "Arabic" },
-
-  { GEANY_ENCODING_ISO_2022_JP,
-    "ISO-2022-JP", "Japanese" },
-  { GEANY_ENCODING_ISO_2022_KR,
-    "ISO-2022-KR", "Korean" },
-  { GEANY_ENCODING_ISO_IR_111,
-    "ISO-IR-111", "Cyrillic" },
-  { GEANY_ENCODING_JOHAB,
-    "JOHAB", "Korean" },
-  { GEANY_ENCODING_KOI8_R,
-    "KOI8R", "Cyrillic" },
-  { GEANY_ENCODING_KOI8_U,
-    "KOI8U", "Cyrillic/Ukrainian" },
-
-  { GEANY_ENCODING_SHIFT_JIS,
-    "SHIFT_JIS", "Japanese" },
-  { GEANY_ENCODING_TCVN,
-    "TCVN", "Vietnamese" },
-  { GEANY_ENCODING_TIS_620,
-    "TIS-620", "Thai" },
-  { GEANY_ENCODING_UHC,
-    "UHC", "Korean" },
-  { GEANY_ENCODING_VISCII,
-    "VISCII", "Vietnamese" },
-
-  { GEANY_ENCODING_WINDOWS_1250,
-    "WINDOWS-1250", "Central European" },
-  { GEANY_ENCODING_WINDOWS_1251,
-    "WINDOWS-1251", "Cyrillic" },
-  { GEANY_ENCODING_WINDOWS_1252,
-    "WINDOWS-1252", "Western" },
-  { GEANY_ENCODING_WINDOWS_1253,
-    "WINDOWS-1253", "Greek" },
-  { GEANY_ENCODING_WINDOWS_1254,
-    "WINDOWS-1254", "Turkish" },
-  { GEANY_ENCODING_WINDOWS_1255,
-    "WINDOWS-1255", "Hebrew" },
-  { GEANY_ENCODING_WINDOWS_1256,
-    "WINDOWS-1256", "Arabic" },
-  { GEANY_ENCODING_WINDOWS_1257,
-    "WINDOWS-1257", "Baltic" },
-  { GEANY_ENCODING_WINDOWS_1258,
-    "WINDOWS-1258", "Vietnamese" }
-};
-
-
-static void encoding_lazy_init(void)
+static void encodings_lazy_init(void)
 {
 	static gboolean initialized = FALSE;
 	gint i;
@@ -276,11 +135,11 @@
 }
 
 
-const GeanyEncoding *encoding_get_from_charset(const gchar *charset)
+const GeanyEncoding *encodings_get_from_charset(const gchar *charset)
 {
 	gint i;
 
-	encoding_lazy_init ();
+	encodings_lazy_init ();
 
 	i = 0;
 	while (i < GEANY_ENCODING_LAST)
@@ -295,46 +154,46 @@
 }
 
 
-const GeanyEncoding *encoding_get_from_index(gint index)
+const GeanyEncoding *encodings_get_from_index(gint index)
 {
 	g_return_val_if_fail(index >= 0, NULL);
 
 	if (index >= GEANY_ENCODING_LAST)
 		return NULL;
 
-	encoding_lazy_init();
+	encodings_lazy_init();
 
 	return &encodings[index];
 }
 
 
-gchar *encoding_to_string(const GeanyEncoding* enc)
+gchar *encodings_to_string(const GeanyEncoding* enc)
 {
 	g_return_val_if_fail(enc != NULL, NULL);
 	g_return_val_if_fail(enc->name != NULL, NULL);
 	g_return_val_if_fail(enc->charset != NULL, NULL);
 
-	encoding_lazy_init();
+	encodings_lazy_init();
 
     return g_strdup_printf("%s (%s)", enc->name, enc->charset);
 }
 
 
-const gchar *encoding_get_charset(const GeanyEncoding* enc)
+const gchar *encodings_get_charset(const GeanyEncoding* enc)
 {
 /*	g_return_val_if_fail(enc != NULL, NULL);
 	g_return_val_if_fail(enc->charset != NULL, NULL);
 */
 	if (enc == NULL) return NULL;
 
-	encoding_lazy_init();
+	encodings_lazy_init();
 
 	return enc->charset;
 }
 
 
 /* Encodings */
-GList *encoding_get_encodings(GList *encoding_strings)
+GList *encodings_get_encodings(GList *encoding_strings)
 {
 	GList *res = NULL;
 
@@ -353,7 +212,7 @@
 			      g_get_charset(&charset);
 
 		      g_return_val_if_fail(charset != NULL, NULL);
-		      enc = encoding_get_from_charset(charset);
+		      enc = encodings_get_from_charset(charset);
 
 		      if (enc != NULL)
 				res = g_list_append(res, (gpointer)enc);
@@ -365,394 +224,29 @@
 }
 
 
-typedef struct
+void encodings_init(void)
 {
-	GtkWidget *add_button;
-	GtkWidget *remove_button;
-	GtkWidget *up_button;
-	GtkWidget *down_button;
-	GtkWidget *supported_treeview;
-	GtkWidget *stock_treeview;
-} GeanyEncodingsDialog;
+	GtkWidget *item;
+	GtkWidget *menu;
+	gchar *label;
+	guint i = 0;
+	
+	init_encodings();
+	encodings_lazy_init();
 
-
-//static GeanyEncodingsDialog *encodings_dialog = NULL;
-
-
-enum
-{
-	COLUMN_ENCODING_NAME = 0,
-	COLUMN_ENCODING_INDEX,
-	ENCODING_NUM_COLS
-};
-
-
-enum
-{
-	COLUMN_SUPPORTED_ENCODING_NAME = 0,
-	COLUMN_SUPPORTED_ENCODING,
-	SUPPORTED_ENCODING_NUM_COLS
-};
-
-
-/*
-static GtkTreeModel *create_encodings_treeview_model(void)
-{
-	GtkListStore *store;
-	GtkTreeIter iter;
-	gint i;
-	const GeanyEncoding* enc;
-
-	// create list store
-	store = gtk_list_store_new(ENCODING_NUM_COLS, G_TYPE_STRING, G_TYPE_INT);
-
-	i = 0;
-	while ((enc = encoding_get_from_index(i)) != NULL)
+	// create encodings submenu in document menu
+	menu = lookup_widget(app->window, "set_encoding1_menu");
+	while (i < GEANY_ENCODING_LAST)
 	{
-		gchar *name;
-		enc = encoding_get_from_index(i);
-		name = encoding_to_string(enc);
-		gtk_list_store_append(store, &iter);
-		gtk_list_store_set(store, &iter, COLUMN_ENCODING_NAME, name,
-				    		COLUMN_ENCODING_INDEX, i, -1);
-		g_free(name);
-		++i;
-	}
-	return GTK_TREE_MODEL(store);
-}
+		if (encodings[i].idx != i) break;
 
-static void on_add_encodings(GtkButton *button)
-{
-	GValue value = {0, };
-	const GeanyEncoding* enc;
-	GSList *encs = NULL;
-
-	GtkTreeIter iter;
-	GtkTreeSelection *selection;
-	GtkTreeModel *model;
-
-	selection =
-		gtk_tree_view_get_selection(GTK_TREE_VIEW
-									 (encodings_dialog->stock_treeview));
-	g_return_if_fail(selection != NULL);
-
-	model =	gtk_tree_view_get_model(GTK_TREE_VIEW
-							 (encodings_dialog->stock_treeview));
-	if (!gtk_tree_model_get_iter_first(model, &iter))
-		return;
-
-	if (gtk_tree_selection_iter_is_selected(selection, &iter))
-	{
-		gtk_tree_model_get_value(model, &iter,
-								  COLUMN_ENCODING_INDEX, &value);
-		enc = encoding_get_from_index(g_value_get_int(&value));
-		g_return_if_fail(enc != NULL);
-		encs = g_slist_prepend(encs, (gpointer)enc);
-
-		g_value_unset(&value);
-	}
-
-	while (gtk_tree_model_iter_next(model, &iter))
-	{
-		if (gtk_tree_selection_iter_is_selected(selection, &iter))
-		{
-			gtk_tree_model_get_value(model, &iter,
-				    COLUMN_ENCODING_INDEX, &value);
-
-			enc = encoding_get_from_index(g_value_get_int (&value));
-			g_return_if_fail (enc != NULL);
-
-			encs = g_slist_prepend(encs, (gpointer)enc);
-
-			g_value_unset(&value);
-		}
-	}
-
-	if (encs != NULL)
-	{
-		GSList *node;
-		model =	gtk_tree_view_get_model(GTK_TREE_VIEW
-							 (encodings_dialog->supported_treeview));
-		encs = g_slist_reverse(encs);
-		node = encs;
-		while (node)
-		{
-			const GeanyEncoding *enc;
-			gchar *name;
-			GtkTreeIter iter;
-			enc = (const GeanyEncoding *) node->data;
-
-			name = encoding_to_string(enc);
-
-			gtk_list_store_append(GTK_LIST_STORE(model), &iter);
-			gtk_list_store_set(GTK_LIST_STORE(model), &iter,
-						COLUMN_SUPPORTED_ENCODING_NAME, name,
-						COLUMN_SUPPORTED_ENCODING, enc,
-						-1);
-			g_free(name);
-
-			node = g_slist_next(node);
-		}
-		g_slist_free(encs);
-	}
+		label = encodings_to_string(&encodings[i]);
+		item = gtk_menu_item_new_with_label(label);
+		gtk_widget_show(item);
+		gtk_container_add(GTK_CONTAINER(menu), item);
+		g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_encoding_change),
+													GINT_TO_POINTER(encodings[i].idx));
+		g_free(label);
+		i++;
+    }
 }
-
-static void on_remove_encodings(GtkButton *button)
-{
-	GtkTreeSelection *selection;
-	GtkTreeModel *model;
-	GtkTreeIter iter;
-	GtkTreeView *treeview;
-
-	treeview = GTK_TREE_VIEW(encodings_dialog->supported_treeview);
-	selection = gtk_tree_view_get_selection(treeview);
-	if (selection &&
-		gtk_tree_selection_get_selected(selection, &model, &iter))
-	{
-		gtk_list_store_remove(GTK_LIST_STORE(model), &iter);
-	}
-}
-
-static void on_up_encoding(GtkButton *button)
-{
-	GtkTreeSelection *selection;
-	GtkTreeModel *model;
-	GtkTreeIter iter;
-	GtkTreeView *treeview;
-
-	treeview = GTK_TREE_VIEW(encodings_dialog->supported_treeview);
-	selection = gtk_tree_view_get_selection(treeview);
-	if (selection &&
-		gtk_tree_selection_get_selected(selection, &model, &iter))
-	{
-		GtkTreePath *path;
-
-		path = gtk_tree_model_get_path(model, &iter);
-		if (gtk_tree_path_prev(path))
-		{
-			GtkTreeIter prev_iter;
-			gtk_tree_model_get_iter(model, &prev_iter, path);
-			gtk_list_store_swap(GTK_LIST_STORE(model), &prev_iter, &iter);
-		}
-		gtk_tree_path_free(path);
-	}
-}
-
-static void on_down_encoding(GtkButton *button)
-{
-	GtkTreeSelection *selection;
-	GtkTreeModel *model;
-	GtkTreeIter iter;
-	GtkTreeView *treeview;
-
-	treeview = GTK_TREE_VIEW(encodings_dialog->supported_treeview);
-	selection = gtk_tree_view_get_selection(treeview);
-	if (selection &&
-		gtk_tree_selection_get_selected(selection, &model, &iter))
-	{
-		GtkTreeIter next_iter = iter;
-		if (gtk_tree_model_iter_next(model, &next_iter))
-		{
-			gtk_list_store_swap(GTK_LIST_STORE(model), &iter, &next_iter);
-		}
-	}
-}
-
-static void on_stock_selection_changed(GtkTreeSelection *selection)
-{
-	if (gtk_tree_selection_count_selected_rows(selection) > 0)
-		gtk_widget_set_sensitive(encodings_dialog->add_button, TRUE);
-	else
-		gtk_widget_set_sensitive(encodings_dialog->add_button, FALSE);
-}
-
-static void on_supported_selection_changed(GtkTreeSelection *selection)
-{
-	GtkTreeModel *model;
-	GtkTreeIter iter;
-
-	if (gtk_tree_selection_get_selected(selection, &model, &iter) > 0)
-	{
-		GtkTreePath *path;
-		gtk_widget_set_sensitive(encodings_dialog->remove_button, TRUE);
-		path = gtk_tree_model_get_path(model, &iter);
-		if (gtk_tree_path_prev(path))
-			gtk_widget_set_sensitive(encodings_dialog->up_button, TRUE);
-		else
-			gtk_widget_set_sensitive(encodings_dialog->up_button, FALSE);
-		gtk_tree_path_free(path);
-
-		if (gtk_tree_model_iter_next(model, &iter))
-			gtk_widget_set_sensitive(encodings_dialog->down_button, TRUE);
-		else
-			gtk_widget_set_sensitive(encodings_dialog->down_button, FALSE);
-	}
-	else
-	{
-		gtk_widget_set_sensitive(encodings_dialog->remove_button, FALSE);
-		gtk_widget_set_sensitive(encodings_dialog->up_button, FALSE);
-		gtk_widget_set_sensitive(encodings_dialog->down_button, FALSE);
-	}
-}
-
-
-static gchar *get_property(void)
-{
-	GtkTreeView *treeview;
-	GString *str;
-	GtkTreeIter iter;
-	GtkTreeModel *model;
-	gboolean valid;
-	gchar *value;
-
-	treeview = GTK_TREE_VIEW(app->tagbar);
-
-	str = g_string_new("");
-
-	model =	gtk_tree_view_get_model(GTK_TREE_VIEW(treeview));
-	valid = gtk_tree_model_get_iter_first(model, &iter);
-	while (valid)
-	{
-		GeanyEncoding *enc;
-		gtk_tree_model_get(model, &iter, COLUMN_SUPPORTED_ENCODING, &enc, -1);
-		g_assert(enc != NULL);
-		g_assert(enc->charset != NULL);
-		str = g_string_append(str, enc->charset);
-		str = g_string_append(str, " ");
-		valid = gtk_tree_model_iter_next(model, &iter);
-	}
-	value = g_string_free(str, FALSE);
-	return value;
-}
-
-
-static void set_property(const gchar *value)
-{
-	GtkTreeView *treeview;
-	GtkTreeModel *model;
-	GList *list, *node;
-
-	treeview = GTK_TREE_VIEW(app->tagbar);
-	model = gtk_tree_view_get_model(treeview);
-	gtk_list_store_clear(GTK_LIST_STORE(model));
-
-	if (!value || strlen(value) <= 0)
-		return;
-
-	// Fill the model
-	list = utils_glist_from_string(value);
-	node = list;
-	while (node)
-	{
-		const GeanyEncoding *enc;
-		gchar *name;
-		GtkTreeIter iter;
-
-		enc = encoding_get_from_charset((gchar *) node->data);
-		name = encoding_to_string(enc);
-
-		gtk_list_store_append(GTK_LIST_STORE(model), &iter);
-		gtk_list_store_set(GTK_LIST_STORE(model), &iter,
-				    COLUMN_SUPPORTED_ENCODING_NAME, name,
-					COLUMN_SUPPORTED_ENCODING, enc,
-				    -1);
-		g_free(name);
-
-		node = g_list_next(node);
-	}
-	utils_glist_strings_free(list);
-}
-*/
-
-
-void encodings_init(void)
-{
-	encoding_lazy_init();
-/*	GtkWidget *add_button;
-	GtkWidget *remove_button;
-	GtkWidget *up_button;
-	GtkWidget *down_button;
-	GtkWidget *supported_treeview;
-	GtkWidget *stock_treeview = msgwindow.tree_msg;
-	GtkTreeModel *model;
-	GtkCellRenderer *cell;
-	GtkTreeViewColumn *column;
-	GtkTreeSelection *selection;
-
-	g_return_if_fail(encodings_dialog == NULL);
-
-	// Create the Encodings preferences page
-	gxml = glade_xml_new(PACKAGE_DATA_DIR"/glade/anjuta.glade",
-						  "preferences_dialog_encodings",
-						  NULL);
-	anjuta_preferences_add_page(pref, gxml,
-								"Encodings",
-								"preferences-encodings.png");
-	supported_treeview = glade_xml_get_widget(gxml, "supported_treeview");
-	stock_treeview =  glade_xml_get_widget(gxml, "stock_treeview");
-	add_button = glade_xml_get_widget(gxml, "add_button");
-	remove_button = glade_xml_get_widget(gxml, "remove_button");
-	up_button = glade_xml_get_widget(gxml, "up_button");
-	down_button = glade_xml_get_widget(gxml, "down_button");
-
-	// Add the encoding column for stock treeview
-	cell = gtk_cell_renderer_text_new();
-	column = gtk_tree_view_column_new_with_attributes(_("Stock Encodings"),
-													  cell, "text",
-													  COLUMN_ENCODING_NAME,
-													  NULL);
-	gtk_tree_view_append_column(GTK_TREE_VIEW(msgwindow.tree_msg), column);
-	gtk_tree_view_set_search_column(GTK_TREE_VIEW(stock_treeview),
-									 COLUMN_ENCODING_NAME);
-	selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(stock_treeview));
-	g_return_if_fail(selection != NULL);
-	gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
-	g_signal_connect(G_OBJECT(selection), "changed",
-					  G_CALLBACK(on_stock_selection_changed), NULL);
-
-	model = create_encodings_treeview_model();
-	gtk_tree_view_set_model(GTK_TREE_VIEW(stock_treeview), model);
-	g_object_unref(model);
-
-	// Add the encoding column for supported treeview
-	cell = gtk_cell_renderer_text_new();
-	column = gtk_tree_view_column_new_with_attributes(_("Supported Encodings"),
-								cell, "text", COLUMN_ENCODING_NAME, NULL);
-	gtk_tree_view_append_column(GTK_TREE_VIEW(supported_treeview), column);
-	gtk_tree_view_set_search_column(GTK_TREE_VIEW(supported_treeview),
-									 COLUMN_ENCODING_NAME);
-	selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(supported_treeview));
-	g_return_if_fail(selection != NULL);
-	gtk_tree_selection_set_mode(selection, GTK_SELECTION_BROWSE);
-	g_signal_connect(G_OBJECT(selection), "changed",
-					  G_CALLBACK(on_supported_selection_changed), NULL);
-
-	// create list store
-	model = GTK_TREE_MODEL(gtk_list_store_new(SUPPORTED_ENCODING_NUM_COLS,
-												G_TYPE_STRING, G_TYPE_POINTER));
-	gtk_tree_view_set_model(GTK_TREE_VIEW(supported_treeview), model);
-	g_object_unref(model);
-
-	g_signal_connect(G_OBJECT(add_button), "clicked",
-					  G_CALLBACK(on_add_encodings), NULL);
-	g_signal_connect(G_OBJECT(remove_button), "clicked",
-					  G_CALLBACK(on_remove_encodings), NULL);
-	g_signal_connect(G_OBJECT(up_button), "clicked",
-					  G_CALLBACK(on_up_encoding), NULL);
-	g_signal_connect(G_OBJECT(down_button), "clicked",
-					  G_CALLBACK(on_down_encoding), NULL);
-
-	gtk_widget_set_sensitive(add_button, FALSE);
-	gtk_widget_set_sensitive(remove_button, FALSE);
-	gtk_widget_set_sensitive(up_button, FALSE);
-	gtk_widget_set_sensitive(down_button, FALSE);
-
-	encodings_dialog = g_new0(GeanyEncodingsDialog, 1);
-	encodings_dialog->add_button = add_button;
-	encodings_dialog->remove_button = remove_button;
-	encodings_dialog->up_button = up_button;
-	encodings_dialog->down_button = down_button;
-	encodings_dialog->supported_treeview = supported_treeview;
-	encodings_dialog->stock_treeview = stock_treeview;
-*/
-}

Modified: trunk/src/encodings.h
===================================================================
--- trunk/src/encodings.h	2006-06-19 16:21:52 UTC (rev 466)
+++ trunk/src/encodings.h	2006-06-19 18:31:17 UTC (rev 467)
@@ -1,7 +1,7 @@
 /*
  *      encodings.h - this file is part of Geany, a fast and lightweight IDE
  *
- *      Copyright 2005 Enrico Troeger <enrico.troeger at uvena.de>
+ *      Copyright 2006 Enrico Troeger <enrico.troeger at uvena.de>
  *
  *      This program is free software; you can redistribute it and/or modify
  *      it under the terms of the GNU General Public License as published by
@@ -15,7 +15,7 @@
  *
  *      You should have received a copy of the GNU General Public License
  *      along with this program; if not, write to the Free Software
- *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  *  $Id$
  */
@@ -32,16 +32,108 @@
 #ifndef GEANY_ENCODINGS_H
 #define GEANY_ENCODINGS_H
 
-typedef struct _GeanyEncoding GeanyEncoding;
 
-const GeanyEncoding* encoding_get_from_charset(const gchar *charset);
-const GeanyEncoding* encoding_get_from_index(gint index);
+typedef struct
+{
+  gint   idx;
+  gchar *charset;
+  gchar *name;
+} GeanyEncoding;
 
-gchar* encoding_to_string(const GeanyEncoding* enc);
-const gchar* encoding_get_charset(const GeanyEncoding* enc);
 
-GList* encoding_get_encodings(GList *encoding_strings);
 
+const GeanyEncoding* encodings_get_from_charset(const gchar *charset);
+const GeanyEncoding* encodings_get_from_index(gint index);
+
+gchar* encodings_to_string(const GeanyEncoding* enc);
+const gchar* encodings_get_charset(const GeanyEncoding* enc);
+
+GList* encodings_get_encodings(GList *encoding_strings);
+
 void encodings_init(void);
 
+
+/*
+ * The original versions of the following tables are taken from profterm
+ *
+ * Copyright (C) 2002 Red Hat, Inc.
+ */
+
+typedef enum
+{
+
+  GEANY_ENCODING_ISO_8859_1,
+  GEANY_ENCODING_ISO_8859_2,
+  GEANY_ENCODING_ISO_8859_3,
+  GEANY_ENCODING_ISO_8859_4,
+  GEANY_ENCODING_ISO_8859_5,
+  GEANY_ENCODING_ISO_8859_6,
+  GEANY_ENCODING_ISO_8859_7,
+  GEANY_ENCODING_ISO_8859_8,
+  GEANY_ENCODING_ISO_8859_8_I,
+  GEANY_ENCODING_ISO_8859_9,
+  GEANY_ENCODING_ISO_8859_10,
+  GEANY_ENCODING_ISO_8859_13,
+  GEANY_ENCODING_ISO_8859_14,
+  GEANY_ENCODING_ISO_8859_15,
+  GEANY_ENCODING_ISO_8859_16,
+
+  GEANY_ENCODING_UTF_7,
+  GEANY_ENCODING_UTF_8,
+  GEANY_ENCODING_UTF_16,
+  GEANY_ENCODING_UCS_2,
+  GEANY_ENCODING_UCS_4,
+
+  GEANY_ENCODING_ARMSCII_8,
+  GEANY_ENCODING_BIG5,
+  GEANY_ENCODING_BIG5_HKSCS,
+  GEANY_ENCODING_CP_866,
+
+  GEANY_ENCODING_EUC_JP,
+  GEANY_ENCODING_EUC_KR,
+  GEANY_ENCODING_EUC_TW,
+
+  GEANY_ENCODING_GB18030,
+  GEANY_ENCODING_GB2312,
+  GEANY_ENCODING_GBK,
+  GEANY_ENCODING_GEOSTD8,
+  GEANY_ENCODING_HZ,
+
+  GEANY_ENCODING_IBM_850,
+  GEANY_ENCODING_IBM_852,
+  GEANY_ENCODING_IBM_855,
+  GEANY_ENCODING_IBM_857,
+  GEANY_ENCODING_IBM_862,
+  GEANY_ENCODING_IBM_864,
+
+  GEANY_ENCODING_ISO_2022_JP,
+  GEANY_ENCODING_ISO_2022_KR,
+  GEANY_ENCODING_ISO_IR_111,
+  GEANY_ENCODING_JOHAB,
+  GEANY_ENCODING_KOI8_R,
+  GEANY_ENCODING_KOI8_U,
+
+  GEANY_ENCODING_SHIFT_JIS,
+  GEANY_ENCODING_TCVN,
+  GEANY_ENCODING_TIS_620,
+  GEANY_ENCODING_UHC,
+  GEANY_ENCODING_VISCII,
+
+  GEANY_ENCODING_WINDOWS_1250,
+  GEANY_ENCODING_WINDOWS_1251,
+  GEANY_ENCODING_WINDOWS_1252,
+  GEANY_ENCODING_WINDOWS_1253,
+  GEANY_ENCODING_WINDOWS_1254,
+  GEANY_ENCODING_WINDOWS_1255,
+  GEANY_ENCODING_WINDOWS_1256,
+  GEANY_ENCODING_WINDOWS_1257,
+  GEANY_ENCODING_WINDOWS_1258,
+
+  GEANY_ENCODING_LAST
+
+} GeanyEncodingIndex;
+
+
+GeanyEncoding encodings[GEANY_ENCODING_LAST];
+
 #endif

Modified: trunk/src/interface.c
===================================================================
--- trunk/src/interface.c	2006-06-19 16:21:52 UTC (rev 466)
+++ trunk/src/interface.c	2006-06-19 18:31:17 UTC (rev 467)
@@ -37,7 +37,7 @@
   GtkWidget *menuitem1_menu;
   GtkWidget *menu_new1;
   GtkWidget *menu_new_with_template1;
-  GtkWidget *image722;
+  GtkWidget *image738;
   GtkWidget *menu_new_with_template1_menu;
   GtkWidget *invisible2;
   GtkWidget *separator12;
@@ -49,14 +49,14 @@
   GtkWidget *menu_save1;
   GtkWidget *menu_save_as1;
   GtkWidget *menu_save_all1;
-  GtkWidget *image723;
+  GtkWidget *image739;
   GtkWidget *revert1;
   GtkWidget *separator21;
   GtkWidget *preferences2;
   GtkWidget *separator14;
   GtkWidget *menu_close1;
   GtkWidget *menu_close_all1;
-  GtkWidget *image724;
+  GtkWidget *image740;
   GtkWidget *menu_separatormenuitem1;
   GtkWidget *menu_quit1;
   GtkWidget *edit1;
@@ -70,11 +70,11 @@
   GtkWidget *menu_delete1;
   GtkWidget *menu_seperator2;
   GtkWidget *insert_include2;
-  GtkWidget *image725;
+  GtkWidget *image741;
   GtkWidget *insert_include2_menu;
   GtkWidget *invisible4;
   GtkWidget *add_comments1;
-  GtkWidget *image726;
+  GtkWidget *image742;
   GtkWidget *add_comments1_menu;
   GtkWidget *menu_add_changelog_entry1;
   GtkWidget *insert_file_header1;
@@ -95,16 +95,16 @@
   GtkWidget *find_next1;
   GtkWidget *find_previous1;
   GtkWidget *replace1;
-  GtkWidget *image727;
+  GtkWidget *image743;
   GtkWidget *separator11;
   GtkWidget *go_to_line1;
-  GtkWidget *image728;
+  GtkWidget *image744;
   GtkWidget *menuitem3;
   GtkWidget *menuitem3_menu;
   GtkWidget *menu_change_font1;
-  GtkWidget *image729;
+  GtkWidget *image745;
   GtkWidget *menu_choose_color1;
-  GtkWidget *image730;
+  GtkWidget *image746;
   GtkWidget *menu_separator4;
   GtkWidget *menu_fullscreen1;
   GtkWidget *menu_show_messages_window1;
@@ -124,6 +124,9 @@
   GtkWidget *set_filetype1;
   GtkWidget *set_filetype1_menu;
   GtkWidget *invisible1;
+  GtkWidget *set_encoding1;
+  GtkWidget *set_encoding1_menu;
+  GtkWidget *invisible6;
   GtkWidget *menu_line_endings1;
   GtkWidget *menu_line_endings1_menu;
   GtkWidget *crlf;
@@ -232,9 +235,9 @@
   gtk_widget_show (menu_new_with_template1);
   gtk_container_add (GTK_CONTAINER (menuitem1_menu), menu_new_with_template1);
 
-  image722 = gtk_image_new_from_stock ("gtk-new", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image722);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_new_with_template1), image722);
+  image738 = gtk_image_new_from_stock ("gtk-new", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image738);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_new_with_template1), image738);
 
   menu_new_with_template1_menu = gtk_menu_new ();
   gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_new_with_template1), menu_new_with_template1_menu);
@@ -279,9 +282,9 @@
   gtk_container_add (GTK_CONTAINER (menuitem1_menu), menu_save_all1);
   gtk_tooltips_set_tip (tooltips, menu_save_all1, _("Saves all open files"), NULL);
 
-  image723 = gtk_image_new_from_stock ("gtk-save", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image723);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_save_all1), image723);
+  image739 = gtk_image_new_from_stock ("gtk-save", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image739);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_save_all1), image739);
 
   revert1 = gtk_image_menu_item_new_from_stock ("gtk-revert-to-saved", accel_group);
   gtk_widget_show (revert1);
@@ -310,9 +313,9 @@
   gtk_container_add (GTK_CONTAINER (menuitem1_menu), menu_close_all1);
   gtk_tooltips_set_tip (tooltips, menu_close_all1, _("Closes all open files"), NULL);
 
-  image724 = gtk_image_new_from_stock ("gtk-close", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image724);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_close_all1), image724);
+  image740 = gtk_image_new_from_stock ("gtk-close", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image740);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_close_all1), image740);
 
   menu_separatormenuitem1 = gtk_separator_menu_item_new ();
   gtk_widget_show (menu_separatormenuitem1);
@@ -369,9 +372,9 @@
   gtk_widget_show (insert_include2);
   gtk_container_add (GTK_CONTAINER (edit1_menu), insert_include2);
 
-  image725 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image725);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (insert_include2), image725);
+  image741 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image741);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (insert_include2), image741);
 
   insert_include2_menu = gtk_menu_new ();
   gtk_menu_item_set_submenu (GTK_MENU_ITEM (insert_include2), insert_include2_menu);
@@ -383,9 +386,9 @@
   gtk_widget_show (add_comments1);
   gtk_container_add (GTK_CONTAINER (edit1_menu), add_comments1);
 
-  image726 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image726);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (add_comments1), image726);
+  image742 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image742);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (add_comments1), image742);
 
   add_comments1_menu = gtk_menu_new ();
   gtk_menu_item_set_submenu (GTK_MENU_ITEM (add_comments1), add_comments1_menu);
@@ -472,9 +475,9 @@
   gtk_widget_show (replace1);
   gtk_container_add (GTK_CONTAINER (search1_menu), replace1);
 
-  image727 = gtk_image_new_from_stock ("gtk-find-and-replace", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image727);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (replace1), image727);
+  image743 = gtk_image_new_from_stock ("gtk-find-and-replace", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image743);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (replace1), image743);
 
   separator11 = gtk_separator_menu_item_new ();
   gtk_widget_show (separator11);
@@ -485,9 +488,9 @@
   gtk_widget_show (go_to_line1);
   gtk_container_add (GTK_CONTAINER (search1_menu), go_to_line1);
 
-  image728 = gtk_image_new_from_stock ("gtk-jump-to", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image728);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (go_to_line1), image728);
+  image744 = gtk_image_new_from_stock ("gtk-jump-to", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image744);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (go_to_line1), image744);
 
   menuitem3 = gtk_menu_item_new_with_mnemonic (_("_View"));
   gtk_widget_show (menuitem3);
@@ -501,18 +504,18 @@
   gtk_container_add (GTK_CONTAINER (menuitem3_menu), menu_change_font1);
   gtk_tooltips_set_tip (tooltips, menu_change_font1, _("Change the default font"), NULL);
 
-  image729 = gtk_image_new_from_stock ("gtk-select-font", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image729);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_change_font1), image729);
+  image745 = gtk_image_new_from_stock ("gtk-select-font", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image745);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_change_font1), image745);
 
   menu_choose_color1 = gtk_image_menu_item_new_with_mnemonic (_("Show _Colour Chooser"));
   gtk_widget_show (menu_choose_color1);
   gtk_container_add (GTK_CONTAINER (menuitem3_menu), menu_choose_color1);
   gtk_tooltips_set_tip (tooltips, menu_choose_color1, _("Open a color chooser dialog, to interactively pick colors from a palette."), NULL);
 
-  image730 = gtk_image_new_from_stock ("gtk-select-color", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image730);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_choose_color1), image730);
+  image746 = gtk_image_new_from_stock ("gtk-select-color", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image746);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_choose_color1), image746);
 
   menu_separator4 = gtk_separator_menu_item_new ();
   gtk_widget_show (menu_separator4);
@@ -602,6 +605,16 @@
   invisible1 = gtk_menu_item_new_with_mnemonic (_("invisible"));
   gtk_container_add (GTK_CONTAINER (set_filetype1_menu), invisible1);
 
+  set_encoding1 = gtk_menu_item_new_with_mnemonic (_("Set encoding"));
+  gtk_widget_show (set_encoding1);
+  gtk_container_add (GTK_CONTAINER (menu_item4_menu), set_encoding1);
+
+  set_encoding1_menu = gtk_menu_new ();
+  gtk_menu_item_set_submenu (GTK_MENU_ITEM (set_encoding1), set_encoding1_menu);
+
+  invisible6 = gtk_menu_item_new_with_mnemonic (_("invisible"));
+  gtk_container_add (GTK_CONTAINER (set_encoding1_menu), invisible6);
+
   menu_line_endings1 = gtk_menu_item_new_with_mnemonic (_("Line endings"));
   gtk_widget_show (menu_line_endings1);
   gtk_container_add (GTK_CONTAINER (menu_item4_menu), menu_line_endings1);
@@ -1184,7 +1197,7 @@
   GLADE_HOOKUP_OBJECT (window1, menuitem1_menu, "menuitem1_menu");
   GLADE_HOOKUP_OBJECT (window1, menu_new1, "menu_new1");
   GLADE_HOOKUP_OBJECT (window1, menu_new_with_template1, "menu_new_with_template1");
-  GLADE_HOOKUP_OBJECT (window1, image722, "image722");
+  GLADE_HOOKUP_OBJECT (window1, image738, "image738");
   GLADE_HOOKUP_OBJECT (window1, menu_new_with_template1_menu, "menu_new_with_template1_menu");
   GLADE_HOOKUP_OBJECT (window1, invisible2, "invisible2");
   GLADE_HOOKUP_OBJECT (window1, separator12, "separator12");
@@ -1196,14 +1209,14 @@
   GLADE_HOOKUP_OBJECT (window1, menu_save1, "menu_save1");
   GLADE_HOOKUP_OBJECT (window1, menu_save_as1, "menu_save_as1");
   GLADE_HOOKUP_OBJECT (window1, menu_save_all1, "menu_save_all1");
-  GLADE_HOOKUP_OBJECT (window1, image723, "image723");
+  GLADE_HOOKUP_OBJECT (window1, image739, "image739");
   GLADE_HOOKUP_OBJECT (window1, revert1, "revert1");
   GLADE_HOOKUP_OBJECT (window1, separator21, "separator21");
   GLADE_HOOKUP_OBJECT (window1, preferences2, "preferences2");
   GLADE_HOOKUP_OBJECT (window1, separator14, "separator14");
   GLADE_HOOKUP_OBJECT (window1, menu_close1, "menu_close1");
   GLADE_HOOKUP_OBJECT (window1, menu_close_all1, "menu_close_all1");
-  GLADE_HOOKUP_OBJECT (window1, image724, "image724");
+  GLADE_HOOKUP_OBJECT (window1, image740, "image740");
   GLADE_HOOKUP_OBJECT (window1, menu_separatormenuitem1, "menu_separatormenuitem1");
   GLADE_HOOKUP_OBJECT (window1, menu_quit1, "menu_quit1");
   GLADE_HOOKUP_OBJECT (window1, edit1, "edit1");
@@ -1217,11 +1230,11 @@
   GLADE_HOOKUP_OBJECT (window1, menu_delete1, "menu_delete1");
   GLADE_HOOKUP_OBJECT (window1, menu_seperator2, "menu_seperator2");
   GLADE_HOOKUP_OBJECT (window1, insert_include2, "insert_include2");
-  GLADE_HOOKUP_OBJECT (window1, image725, "image725");
+  GLADE_HOOKUP_OBJECT (window1, image741, "image741");
   GLADE_HOOKUP_OBJECT (window1, insert_include2_menu, "insert_include2_menu");
   GLADE_HOOKUP_OBJECT (window1, invisible4, "invisible4");
   GLADE_HOOKUP_OBJECT (window1, add_comments1, "add_comments1");
-  GLADE_HOOKUP_OBJECT (window1, image726, "image726");
+  GLADE_HOOKUP_OBJECT (window1, image742, "image742");
   GLADE_HOOKUP_OBJECT (window1, add_comments1_menu, "add_comments1_menu");
   GLADE_HOOKUP_OBJECT (window1, menu_add_changelog_entry1, "menu_add_changelog_entry1");
   GLADE_HOOKUP_OBJECT (window1, insert_file_header1, "insert_file_header1");
@@ -1242,16 +1255,16 @@
   GLADE_HOOKUP_OBJECT (window1, find_next1, "find_next1");
   GLADE_HOOKUP_OBJECT (window1, find_previous1, "find_previous1");
   GLADE_HOOKUP_OBJECT (window1, replace1, "replace1");
-  GLADE_HOOKUP_OBJECT (window1, image727, "image727");
+  GLADE_HOOKUP_OBJECT (window1, image743, "image743");
   GLADE_HOOKUP_OBJECT (window1, separator11, "separator11");
   GLADE_HOOKUP_OBJECT (window1, go_to_line1, "go_to_line1");
-  GLADE_HOOKUP_OBJECT (window1, image728, "image728");
+  GLADE_HOOKUP_OBJECT (window1, image744, "image744");
   GLADE_HOOKUP_OBJECT (window1, menuitem3, "menuitem3");
   GLADE_HOOKUP_OBJECT (window1, menuitem3_menu, "menuitem3_menu");
   GLADE_HOOKUP_OBJECT (window1, menu_change_font1, "menu_change_font1");
-  GLADE_HOOKUP_OBJECT (window1, image729, "image729");
+  GLADE_HOOKUP_OBJECT (window1, image745, "image745");
   GLADE_HOOKUP_OBJECT (window1, menu_choose_color1, "menu_choose_color1");
-  GLADE_HOOKUP_OBJECT (window1, image730, "image730");
+  GLADE_HOOKUP_OBJECT (window1, image746, "image746");
   GLADE_HOOKUP_OBJECT (window1, menu_separator4, "menu_separator4");
   GLADE_HOOKUP_OBJECT (window1, menu_fullscreen1, "menu_fullscreen1");
   GLADE_HOOKUP_OBJECT (window1, menu_show_messages_window1, "menu_show_messages_window1");
@@ -1271,6 +1284,9 @@
   GLADE_HOOKUP_OBJECT (window1, set_filetype1, "set_filetype1");
   GLADE_HOOKUP_OBJECT (window1, set_filetype1_menu, "set_filetype1_menu");
   GLADE_HOOKUP_OBJECT (window1, invisible1, "invisible1");
+  GLADE_HOOKUP_OBJECT (window1, set_encoding1, "set_encoding1");
+  GLADE_HOOKUP_OBJECT (window1, set_encoding1_menu, "set_encoding1_menu");
+  GLADE_HOOKUP_OBJECT (window1, invisible6, "invisible6");
   GLADE_HOOKUP_OBJECT (window1, menu_line_endings1, "menu_line_endings1");
   GLADE_HOOKUP_OBJECT (window1, menu_line_endings1_menu, "menu_line_endings1_menu");
   GLADE_HOOKUP_OBJECT (window1, crlf, "crlf");

Modified: trunk/src/utils.c
===================================================================
--- trunk/src/utils.c	2006-06-19 16:21:52 UTC (rev 466)
+++ trunk/src/utils.c	2006-06-19 18:31:17 UTC (rev 467)
@@ -810,10 +810,10 @@
 	gchar *locale_charset = NULL;
 	GList *encoding_strings;
 
-	encoding_strings = utils_glist_from_string("UTF-8 ISO-8859-1 ISO-8859-15");
-	encodings = encoding_get_encodings(encoding_strings);
+	encoding_strings = utils_glist_from_string("UTF-8");
+	encodings = encodings_get_encodings(encoding_strings);
 	utils_glist_strings_free(encoding_strings);
-
+	
 	if (g_get_charset((const gchar**)&locale_charset) == FALSE)
 	{
 		const GeanyEncoding *locale_encoding;
@@ -821,12 +821,11 @@
 		// not using an UTF-8 locale, so try converting from that first
 		if (locale_charset != NULL)
 		{
-			locale_encoding = encoding_get_from_charset(locale_charset);
+			locale_encoding = encodings_get_from_charset(locale_charset);
 
 			encodings = g_list_prepend(encodings,
 						(gpointer) locale_encoding);
 			geany_debug("Current charset = %s", locale_charset);
-			//geany_debug("Current encoding = %s", locale_encoding->name);
 		}
 	}
 
@@ -840,7 +839,7 @@
 
 		enc = (GeanyEncoding*)encodings->data;
 
-		charset = encoding_get_charset(enc);
+		charset = encodings_get_charset(enc);
 		geany_debug("Trying to convert %d bytes of data into UTF-8.", size);
 		utf8_content = utils_convert_to_utf8_from_charset(buffer, size, charset);
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Commits mailing list