CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
EBCONF_EBINCS = @EBCONF_EBINCS@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
g_printf("failed to load glade ui\n");
gtk_main_quit();
}
- printf("builder = %.8X\n", (gint)self);
}
void builder_grab_focus(Builder *self, gchar *name)
{
- GtkWidget *w = gtk_builder_get_object(GTK_BUILDER(self), name);
+ GtkWidget *w = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(self), name));
if(w)
{
gtk_widget_grab_focus(w);
gint builder_get_int(Builder *self, const gchar *name)
{
gint ret = 0;
- GtkWidget *w = gtk_builder_get_object(GTK_BUILDER(self), name);
+ GtkWidget *w = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(self), name));
if(GTK_IS_SPIN_BUTTON(w))
{
ret = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
void builder_set_int(Builder *self, const gchar *name, gint value)
{
- GtkWidget *w = gtk_builder_get_object(self, name);
+ GtkWidget *w = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(self), name));
if(GTK_IS_SPIN_BUTTON(w))
{
gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), value);
{
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), value);
}
-}
-
-#if 0
-gboolean builder_get_iter_n(GtkTreeModel *m, GtkTreeIter *iter, gint n)
-{
- GtkTreeIter iter1;
- if(!gtk_tree_model_get_iter_first(m, iter))
- return;
- gint i;
- for(i = 0; i < n; i++)
+ if(GTK_IS_ENTRY(w))
{
- if(!gtk_tree_model_iter_next(m, iter))
- return FALSE;
+ gchar *buf[16];
+ sprintf(buf, "%d", value);
+ return gtk_entry_set_text(GTK_ENTRY(w), (value >= 0) ? buf : "");
}
- return TRUE;
}
-#endif
-gchar* builder_get_str(Builder *self, const gchar *name)
+const gchar* builder_get_str(Builder *self, const gchar *name)
{
- GtkWidget *w = gtk_builder_get_object(self, name);
+ GtkWidget *w = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(self), name));
if(GTK_IS_ENTRY(w))
{
return gtk_entry_get_text(GTK_ENTRY(w));
}
}
}
+ if(GTK_IS_COLOR_BUTTON(w))
+ {
+ GdkColor color;
+ gtk_color_button_get_color(GTK_COLOR_BUTTON(w), &color);
+ return gtk_color_selection_palette_to_string(&color, 1);
+ }
+ return NULL;
}
-void builder_set_str(Builder *self, const gchar *name, gchar *value)
+void builder_set_str(Builder *self, const gchar *name, const gchar *value)
{
- GtkWidget *w = gtk_builder_get_object(self, name);
+ GtkWidget *w = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(self), name));
if(GTK_IS_ENTRY(w))
{
gtk_entry_set_text(GTK_ENTRY(w), value);
}
+ if(GTK_IS_COLOR_BUTTON(w))
+ {
+ GdkColor color;
+ gdk_color_parse(value, &color);
+ gtk_color_button_set_color(GTK_COLOR_BUTTON(w), &color);
+ }
}
void builder_install_text_cellrenderer(Builder *self, gchar *box)
{
- GtkWidget *w = gtk_builder_get_object(GTK_BUILDER(self), box);
- if(GTK_IS_COMBO_BOX(w) || GTK_IS_TREE_VIEW(w) && !GTK_IS_COMBO_BOX_TEXT(w))
+ GtkWidget *w = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(self), box));
+ if((GTK_IS_COMBO_BOX(w) || GTK_IS_TREE_VIEW(w)) && !GTK_IS_COMBO_BOX_TEXT(w))
{
GtkCellRenderer *cell = gtk_cell_renderer_text_new();
gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(w), cell, TRUE);
gint builder_get_int(Builder *self, const gchar *name);
void builder_set_int(Builder *self, const gchar *name, gint value);
-gchar* builder_get_str(Builder *self, const gchar *name);
-void builder_set_str(Builder *self, const gchar *name, gchar *value);
+const gchar* builder_get_str(Builder *self, const gchar *name);
+void builder_set_str(Builder *self, const gchar *name, const gchar *value);
GType builder_get_type (void);
mainwnd_dicts_update();
}
+static void dicts_selection_changed_cb(GtkTreeSelection *selection, gpointer data)
+{
+ gint n;
+ gchar buff[128];
+ GtkTreeIter iter;
+ GtkTreePath *path;
+ GtkTreeModel *store;
+ BOOK_INFO *binfo = NULL;
+ Mainwnd *mainwnd = MAINWND(data);
+
+ if(gtk_tree_selection_get_selected(selection, &store, &iter))
+ {
+ path = gtk_tree_model_get_path(store, &iter);
+ n = gtk_tree_path_get_depth(path);
+ gtk_tree_path_free(path);
+ if(n == 2)
+ gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, DICT_BINFO, &binfo, -1);
+ }
+ builder_set_str(mainwnd->builder, "dicts_book_title", binfo ? binfo->title : "");
+ builder_set_str(mainwnd->builder, "dicts_book_path", binfo ? binfo->path : "");
+ builder_set_int(mainwnd->builder, "dicts_subbook_no", binfo ? binfo->subbook_no : -1);
+ builder_set_str(mainwnd->builder, "dicts_appendix_path", binfo ? (binfo->appendix_path ? binfo->appendix_path : "") : "");
+ builder_set_int(mainwnd->builder, "dicts_appendix_subbook_no", binfo ? binfo->appendix_subbook_no : -1);
+ //gtk_container_foreach(GTK_CONTAINER(searches), dicts_info_update_search, binfo ? (gpointer)binfo->book : NULL);
+}
+
void on_btn_dicts_clicked(GtkWidget *widget, gpointer data)
{
- GtkWidget *wnd = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(_builder), "dictionaries"));
+ Mainwnd *mainwnd = MAINWND(data);
+ GtkWidget *wnd = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(mainwnd->builder), "dictionaries"));
gtk_widget_hide_on_delete(wnd);
GtkTreeIter iter1;
- GtkTreeView *dicts_tree = GTK_TREE_VIEW(gtk_builder_get_object(GTK_BUILDER(_builder), "dicts_tree"));
- GtkTreeStore *dicts_store = GTK_TREE_STORE(gtk_builder_get_object(GTK_BUILDER(_builder), "dicts_store"));
+ GtkTreeView *dicts_tree = GTK_TREE_VIEW(gtk_builder_get_object(GTK_BUILDER(mainwnd->builder), "dicts_tree"));
+ GtkTreeStore *dicts_store = GTK_TREE_STORE(gtk_builder_get_object(GTK_BUILDER(mainwnd->builder), "dicts_store"));
GtkTreeSelection *select = gtk_tree_view_get_selection(dicts_tree);
static gboolean preparewnd = True;
if(preparewnd)
GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
gtk_tree_view_insert_column_with_attributes(dicts_tree, -1, _("Name"), renderer, "text", DICT_ALIAS, "editable", DICT_EDITABLE, NULL);
gtk_tree_selection_set_mode(select, GTK_SELECTION_SINGLE);
+ g_signal_connect(G_OBJECT(select), "changed", G_CALLBACK(dicts_selection_changed_cb), data);
preparewnd = False;
}
if(gtk_tree_model_get_iter_first(GTK_TREE_MODEL(dicts_store), &iter1))
</packing>
</child>
<child>
- <object class="GtkEntry" id="entry2">
+ <object class="GtkEntry" id="dicts_book_title">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">False</property>
</packing>
</child>
<child>
- <object class="GtkEntry" id="entry3">
+ <object class="GtkEntry" id="dicts_book_path">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">False</property>
</packing>
</child>
<child>
- <object class="GtkEntry" id="entry4">
+ <object class="GtkEntry" id="dicts_subbook_no">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">False</property>
</packing>
</child>
<child>
- <object class="GtkEntry" id="entry5">
+ <object class="GtkEntry" id="dicts_appendix_path">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">False</property>
</packing>
</child>
<child>
- <object class="GtkEntry" id="entry6">
+ <object class="GtkEntry" id="dicts_appendix_subbook_no">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">False</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <object class="GtkButton" id="button1">
+ <object class="GtkButton" id="mainwnd_search_clear">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_action_appearance">False</property>
<property name="relief">none</property>
+ <signal name="clicked" handler="mainwnd_search_clear_clicked_cb" swapped="no"/>
<child>
<object class="GtkImage" id="image5">
<property name="visible">True</property>
</packing>
</child>
<child>
- <object class="GtkButton" id="button2">
+ <object class="GtkButton" id="mainwnd_about_btn">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_action_appearance">False</property>
<property name="relief">none</property>
<property name="image_position">top</property>
+ <signal name="clicked" handler="mainwnd_about_btn_clicked_cb" swapped="no"/>
<child>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="column_spacing">10</property>
<property name="row_spacing">10</property>
<child>
- <object class="GtkColorButton" id="colorbutton1">
+ <object class="GtkColorButton" id="color.link">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</packing>
</child>
<child>
- <object class="GtkColorButton" id="colorbutton2">
+ <object class="GtkColorButton" id="color.keyword">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</packing>
</child>
<child>
- <object class="GtkColorButton" id="colorbutton3">
+ <object class="GtkColorButton" id="color.title">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
#define MAX_BUFSIZE 65535
#endif
-extern Builder *_builder;
-
struct _search_method methods[] = {
{SEARCH_METHOD_FORWARD, SEARCH_FORWARD, eb_have_word_search, eb_search_word},
{SEARCH_METHOD_BACKWARD, SEARCH_BACKWARD, eb_have_endword_search, eb_search_endword},
{SEARCH_METHOD_COPYRIGHT, SEARCH_COPYRIGHT, eb_have_copyright, NULL},
};
-gint ebook_search_method()
+gint ebook_search_method(gint index)
{
- gint i = builder_get_int(_builder, "mainwnd_search");
- if(i < 0)
- return SEARCH_METHOD_UNKNOWN;
- struct _search_method m = methods[i];
+ g_assert(index < 0);
+ g_assert(index >= SZ(methods));
+ struct _search_method m = methods[index];
return m.code;
-#if 0
- const gchar *method_name = builder_get_str(_builder, "mainwnd_search");
- for(i = 0; i < SZ(methods); i++)
- if(!g_strcmp0(method_name, methods[i].name))
- return methods[i].code;
- return SEARCH_METHOD_UNKNOWN;
-#endif
}
BOOK_INFO *ebook_load(const gchar *path, int subbook_no)
#ifndef __EBOOK_H_
#define __EBOOK_H_
-gint ebook_search_method();
+gint ebook_search_method(gint index);
BOOK_INFO* ebook_load(const gchar *path, int subbook_no);
GdkPixbuf* ebook_load_image(BOOK_INFO *binfo, EB_Position *pos);
void ebook_free(BOOK_INFO *binfo);
mainwnd_exit();
}
+void mainwnd_search_clear_clicked_cb(GtkWidget *widget, gpointer data)
+{
+ Mainwnd *wnd = MAINWND(data);
+ GtkComboBox *combo = GTK_COMBO_BOX(gtk_builder_get_object(GTK_BUILDER(wnd->builder), "mainwnd_search"));
+ GtkEntry *entry = GTK_ENTRY(gtk_bin_get_child(GTK_BIN(combo)));
+ gtk_entry_set_text(entry, "");
+ gtk_widget_grab_focus(GTK_WIDGET(entry));
+}
+
void mainwnd_search(Mainwnd *self, const gchar *word)
{
gchar *euc_str = iconv_convert(ENC_UTF8, ENC_EUC_JP, word);
- gint method = ebook_search_method();
+ gint i = builder_get_int(self->builder, "mainwnd_search");
+ gint method = ebook_search_method(i);
g_strstrip(euc_str);
if(!strlen(euc_str))
{
}
#endif
-void mainwnd_show_about(GtkWidget *w, gpointer data)
+void mainwnd_about_btn_clicked_cb(GtkWidget *w, gpointer data)
{
gtk_show_about_dialog(GTK_WINDOW(data),
"program-name", "eb123",
{
if(event->keyval == GDK_BackSpace)
{
- GtkWidget *mainwnd_search = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(_mainwnd->builder), "mainwnd_search"));
- if(!gtk_widget_has_focus(GTK_BIN(mainwnd_search)->child))
+ GtkWidget *combo = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(_mainwnd->builder), "mainwnd_search"));
+ GtkEntry *entry = GTK_ENTRY(gtk_bin_get_child(GTK_BIN(combo)));
+ if(!gtk_widget_has_focus(entry))
{
gtk_widget_grab_focus(mainwnd_search);
- gtk_editable_set_position(GTK_EDITABLE(GTK_BIN(mainwnd_search)->child), -1);
+ gtk_editable_set_position(GTK_EDITABLE(entry), -1);
return TRUE;
}
}
extern Builder *_builder;
-static void prefs_selection_changed(GtkTreeSelection *selection, gpointer data)
+static void prefs_selection_changed_cb(GtkTreeSelection *selection, gpointer data)
{
GtkTreeIter iter;
GtkTreeModel *model;
void prefs_ok_btn_clicked_cb(GtkWidget *widget, gpointer data)
{
+ Mainwnd *mainwnd = MAINWND(data);
GtkWidget *wnd = gtk_widget_get_toplevel(widget);
gtk_widget_hide(wnd);
- prefs_get_widget_data(_prefs, _builder, "mainwnd.remember_pos");
- prefs_get_widget_data(_prefs, _builder, "headword.maxhits");
- prefs_get_widget_data(_prefs, _builder, "dictbar.word_hist");
- prefs_save(_prefs);
+ gint i;
+ for(i = 0; i < SZ(prefs_list); i++)
+ {
+ pref1 *p1 = &(prefs_list[i]);
+ prefs_get_widget_data(mainwnd->prefs, mainwnd->builder, p1->name);
+ }
+ prefs_save(mainwnd->prefs);
}
void prefs_cancel_btn_clicked_cb(GtkWidget *widget, gpointer data)
Mainwnd *mainwnd = MAINWND(data);
Prefs *prefs = mainwnd->prefs;
- GtkWidget *wnd = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(_builder), "preferences"));
+ GtkWidget *wnd = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(mainwnd->builder), "preferences"));
gtk_widget_hide_on_delete(wnd);
- GtkTreeView *prefs_tree = GTK_TREE_VIEW(gtk_builder_get_object(GTK_BUILDER(_builder), "prefs_tree"));
- GtkTreeStore *prefs_store = GTK_TREE_STORE(gtk_builder_get_object(GTK_BUILDER(_builder), "prefs_store"));
+ GtkTreeView *prefs_tree = GTK_TREE_VIEW(gtk_builder_get_object(GTK_BUILDER(mainwnd->builder), "prefs_tree"));
+ GtkTreeStore *prefs_store = GTK_TREE_STORE(gtk_builder_get_object(GTK_BUILDER(mainwnd->builder), "prefs_store"));
GtkTreeSelection *select = gtk_tree_view_get_selection(prefs_tree);
GtkTreeIter iter1, iter2;
static gboolean preparewnd = True;
GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes(_("Items"), renderer, "text", 0, NULL);
gtk_tree_view_append_column(prefs_tree, column);
- GtkNotebook *notebook = GTK_NOTEBOOK(gtk_builder_get_object(GTK_BUILDER(_builder), "notebook1"));
+ GtkNotebook *notebook = GTK_NOTEBOOK(gtk_builder_get_object(GTK_BUILDER(mainwnd->builder), "notebook1"));
gtk_tree_selection_set_mode(select, GTK_SELECTION_SINGLE);
- g_signal_connect(G_OBJECT(select), "changed", G_CALLBACK (prefs_selection_changed), notebook);
+ g_signal_connect(G_OBJECT(select), "changed", G_CALLBACK(prefs_selection_changed_cb), notebook);
gint n = gtk_notebook_get_n_pages(notebook);
gint i;
gtk_tree_store_set(prefs_store, &iter2, 0, _(&(text[1])), 1, i, -1);
}
}
+ for(i = 0; i < SZ(prefs_list); i++)
+ {
+ pref1 *p1 = &(prefs_list[i]);
+ prefs_set_widget_data(prefs, mainwnd->builder, p1->name);
+ }
preparewnd = False;
}
- prefs_set_widget_data(prefs, _builder, "mainwnd.remember_pos");
- prefs_set_widget_data(prefs, _builder, "dictbar.word_hist");
- prefs_set_widget_data(prefs, _builder, "headword.maxhits");
if(gtk_tree_model_get_iter_first(GTK_TREE_MODEL(prefs_store), &iter1))
{
gtk_tree_selection_select_iter(select, &iter1);
prefs_set_int(prefs, (const gchar*)name, atoi((gchar*)atts[1]));
break;
case G_TYPE_STRING:
+ g_printf("%s, %s\n", (const gchar*)name, (gchar*)atts[1]);
prefs_set_str(prefs, (const gchar*)name, strdup((gchar*)atts[1]));
+ g_printf("%s\n", prefs_get_str(prefs, (const gchar*)name));
break;
case G_TYPE_FLOAT:
break;