2013-09-26 17:14:40 +02:00

230 lines
8.1 KiB
Plaintext

$NetBSD: patch-aa,v 1.1 2010/05/14 11:02:20 obache Exp $
support gucharmap-2 (taken from upstream revision 1627).
--- src/tomoe-gucharmap.c.orig 2007-04-27 05:41:40.000000000 +0000
+++ src/tomoe-gucharmap.c
@@ -24,6 +24,10 @@
#include <glib/gi18n-lib.h>
#include "tomoe-gucharmap.h"
+#ifdef GUCHARMAP_TYPE_CHAPTERS
+# define GUCHARMAP_CHAPTERS_MODEL_COLUMN_LABEL CHAPTERS_LABEL_COL
+#endif
+
enum {
SELECTED_SIGNAL,
LAST_SIGNAL
@@ -34,7 +38,11 @@ struct _TomoeGucharmapPrivate
{
GtkWidget *chapters_type_combobox;
GtkWidget *chapters_combobox;
+#ifdef GUCHARMAP_TYPE_CHAPTERS
GucharmapChapters *chapters;
+#else
+ GucharmapChaptersModel *chapters_model;
+#endif
GucharmapCharmap *charmap;
gchar *selected;
};
@@ -50,7 +58,9 @@ static void on_chapters_type_combo_chang
static void on_chapters_combo_changed (GtkComboBox *combobox,
gpointer data);
static void on_gucharmap_activate (GucharmapCharmap *charmap,
+#ifdef GUCHARMAP_TABLE
gunichar ch,
+#endif
gpointer data);
static void on_gucharmap_button_release (GtkWidget *widget,
GdkEventButton *event,
@@ -90,6 +100,7 @@ tomoe_gucharmap_init (TomoeGucharmap *pa
{
TomoeGucharmapPrivate *priv = TOMOE_GUCHARMAP_GET_PRIVATE (page);
GtkWidget *vbox, *hbox, *combobox, *widget;
+ GtkCellRenderer *cell;
priv->selected = NULL;
@@ -114,20 +125,35 @@ tomoe_gucharmap_init (TomoeGucharmap *pa
gtk_box_pack_start (GTK_BOX (hbox), combobox, FALSE, FALSE, 2);
gtk_widget_show (combobox);
- combobox = gtk_combo_box_new_text ();
+ combobox = gtk_combo_box_new ();
+ cell = gtk_cell_renderer_text_new ();
+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox), cell, TRUE);
+ gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), cell,
+ "text", GUCHARMAP_CHAPTERS_MODEL_COLUMN_LABEL,
+ NULL);
priv->chapters_combobox = combobox;
gtk_box_pack_start (GTK_BOX (hbox), combobox, FALSE, FALSE, 2);
gtk_widget_show (combobox);
/* gucharmap */
+#ifdef GUCHARMAP_TYPE_CHAPTERS
priv->chapters = GUCHARMAP_CHAPTERS (gucharmap_block_chapters_new ());
priv->charmap = GUCHARMAP_CHARMAP (gucharmap_charmap_new (priv->chapters));
+#else
+ priv->chapters_model = gucharmap_block_chapters_model_new ();
+ priv->charmap = GUCHARMAP_CHARMAP (gucharmap_charmap_new ());
+ gucharmap_charmap_set_chapters_model (priv->charmap, priv->chapters_model);
+#endif
widget = GTK_WIDGET (priv->charmap);
gtk_box_pack_start (GTK_BOX (vbox), widget, TRUE, TRUE, 2);
gtk_widget_show (widget);
/* Hide chapters page by default. Usually use combo box instead. */
+#ifdef GUCHARMAP_TYPE_CHAPTERS
gtk_widget_hide (GTK_WIDGET (priv->chapters));
+#else
+ gtk_widget_hide (gtk_paned_get_child1 (GTK_PANED (priv->charmap)));
+#endif
#if 0
/* CharDetails view will be here */
@@ -139,20 +165,21 @@ tomoe_gucharmap_init (TomoeGucharmap *pa
#endif
/* setup */
- setup_chapters_combo_box (page);
g_signal_connect (G_OBJECT (priv->chapters_type_combobox), "changed",
G_CALLBACK (on_chapters_type_combo_changed),
(gpointer) page);
g_signal_connect (G_OBJECT (priv->chapters_combobox), "changed",
G_CALLBACK (on_chapters_combo_changed),
(gpointer) page);
- g_signal_connect (G_OBJECT (priv->charmap->chartable), "activate",
+ g_signal_connect (G_OBJECT (gucharmap_charmap_get_chartable (priv->charmap)),
+ "activate",
G_CALLBACK (on_gucharmap_activate),
(gpointer) page);
- g_signal_connect (G_OBJECT (priv->charmap->chartable),
+ g_signal_connect (G_OBJECT (gucharmap_charmap_get_chartable (priv->charmap)),
"button-release-event",
G_CALLBACK (on_gucharmap_button_release),
(gpointer) page);
+ setup_chapters_combo_box (page);
}
static void
@@ -162,7 +189,11 @@ dispose (GObject *object)
priv->chapters_type_combobox = NULL;
priv->chapters_combobox = NULL;
+#ifdef GUCHARMAP_TYPE_CHAPTERS
priv->chapters = NULL;
+#else
+ priv->chapters_model = NULL;
+#endif
priv->charmap = NULL;
if (priv->selected) {
g_free (priv->selected);
@@ -188,7 +219,11 @@ const gchar *
tomoe_gucharmap_get_selected_char (TomoeGucharmap *page)
{
TomoeGucharmapPrivate *priv;
+#ifdef GUCHARMAP_TABLE
GucharmapTable *table;
+#else
+ GucharmapChartable *table;
+#endif
gunichar c;
gchar buf[7];
gint bytes;
@@ -196,10 +231,18 @@ tomoe_gucharmap_get_selected_char (Tomoe
g_return_val_if_fail (TOMOE_IS_GUCHARMAP (page), NULL);
priv = TOMOE_GUCHARMAP_GET_PRIVATE (page);
+#ifdef GUCHARMAP_TABLE
table = GUCHARMAP_TABLE (priv->charmap->chartable);
+#else
+ table = gucharmap_charmap_get_chartable (priv->charmap);
+#endif
+#ifdef GUCHARMAP_TABLE
c = gucharmap_table_get_active_character (table);
- bytes = g_unichar_to_utf8(c, buf);
+#else
+ c = gucharmap_chartable_get_active_character (table);
+#endif
+ bytes = g_unichar_to_utf8 (c, buf);
if (bytes > 0 && bytes < 7) {
buf[bytes] = '\0';
@@ -222,7 +265,13 @@ static void
setup_chapters_combo_box (TomoeGucharmap *page)
{
TomoeGucharmapPrivate *priv = TOMOE_GUCHARMAP_GET_PRIVATE (page);
- GtkTreeModel *model = priv->chapters->tree_model;
+ GtkTreeModel *model;
+
+#ifdef GUCHARMAP_TYPE_CHAPTERS
+ model = priv->chapters->tree_model;
+#else
+ model = GTK_TREE_MODEL (priv->chapters_model);
+#endif
gtk_combo_box_set_model (GTK_COMBO_BOX (priv->chapters_combobox), model);
gtk_combo_box_set_active (GTK_COMBO_BOX (priv->chapters_combobox), 0);
@@ -235,12 +284,25 @@ on_chapters_type_combo_changed (GtkCombo
TomoeGucharmapPrivate *priv = TOMOE_GUCHARMAP_GET_PRIVATE (page);
gint idx = gtk_combo_box_get_active (combobox);
- if (idx == 1)
+ if (idx == 1) {
+#ifdef GUCHARMAP_TYPE_CHAPTERS
priv->chapters = GUCHARMAP_CHAPTERS (gucharmap_script_chapters_new ());
- else
+#else
+ priv->chapters_model = gucharmap_script_chapters_model_new ();
+#endif
+ } else {
+#ifdef GUCHARMAP_TYPE_CHAPTERS
priv->chapters = GUCHARMAP_CHAPTERS (gucharmap_block_chapters_new ());
+#else
+ priv->chapters_model = gucharmap_block_chapters_model_new ();
+#endif
+ }
+#ifdef GUCHARMAP_TYPE_CHAPTERS
gucharmap_charmap_set_chapters (priv->charmap, priv->chapters);
gtk_widget_hide (GTK_WIDGET (priv->chapters));
+#else
+ gucharmap_charmap_set_chapters_model (priv->charmap, priv->chapters_model);
+#endif
setup_chapters_combo_box (page);
}
@@ -249,6 +311,7 @@ on_chapters_combo_changed (GtkComboBox *
{
TomoeGucharmap *page = data;
TomoeGucharmapPrivate *priv = TOMOE_GUCHARMAP_GET_PRIVATE (page);
+ GtkTreeView *tree_view;
GtkTreePath *path;
gchar buf[8];
gint idx;
@@ -256,13 +319,21 @@ on_chapters_combo_changed (GtkComboBox *
idx = gtk_combo_box_get_active (combobox);
g_snprintf (buf, 8 , "%d", idx);
path = gtk_tree_path_new_from_string (buf);
- gtk_tree_view_set_cursor (GTK_TREE_VIEW (priv->chapters->tree_view),
- path, NULL, FALSE);
+#ifdef GUCHARMAP_TYPE_CHAPTERS
+ tree_view = GTK_TREE_VIEW (priv->chapters->tree_view);
+#else
+ tree_view =
+ GTK_TREE_VIEW (gucharmap_charmap_get_chapters_view (priv->charmap));
+#endif
+ gtk_tree_view_set_cursor (tree_view, path, NULL, FALSE);
gtk_tree_path_free (path);
}
static void
-on_gucharmap_activate (GucharmapCharmap *charmap, gunichar ch,
+on_gucharmap_activate (GucharmapCharmap *charmap,
+#ifdef GUCHARMAP_TABLE
+ gunichar ch,
+#endif
gpointer data)
{
TomoeGucharmap *gucharmap = TOMOE_GUCHARMAP (data);