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