void audio_render(Audio *self)
{
- GtkTextIter iter1, iter2;
#if 0
+ GtkTextIter iter1, iter2;
if(render_get_last_mark("wave", &iter1, &iter2))
{
gtk_text_buffer_delete(render.buf, &iter1, &iter2);
if(GTK_IS_COMBO_BOX(w))
{
ret = gtk_combo_box_get_active(GTK_COMBO_BOX(w));
- g_printf("combobox_active = %d\n", ret);
GtkTreeModel *m = gtk_combo_box_get_model(w);
- //if(ret < 0) ret = 0;
}
if(GTK_IS_TOGGLE_BUTTON(w))
{
#include "../config.h"
-#define SEARCH_METHOD_FORWARD 0
-#define SEARCH_METHOD_BACKWARD 1
-#define SEARCH_METHOD_EXACTWORD 2
-#define SEARCH_METHOD_KEYWORD 3
-#define SEARCH_METHOD_MENU 10
-#define SEARCH_METHOD_COPYRIGHT 11
-#define SEARCH_METHOD_UNKNOWN 99
-
-#define SEARCH_FORWARD _("Forward")
-#define SEARCH_BACKWARD _("Backward")
-#define SEARCH_EXACTWORD _("Exactword")
-#define SEARCH_KEYWORD _("Keyword")
-#define SEARCH_MENU _("Menu")
-#define SEARCH_COPYRIGHT _("Copyright")
-
#define ENC_UTF8 "utf-8"
#define ENC_EUC_JP "euc-jp"
#define ENC_SHIFT_JIS "shift-jis"
gchar *filename;
} RESULT;
+#if 0
+#define SEARCH_METHOD_FORWARD 0
+#define SEARCH_METHOD_BACKWARD 1
+#define SEARCH_METHOD_EXACTWORD 2
+#define SEARCH_METHOD_KEYWORD 3
+#define SEARCH_METHOD_MENU 10
+#define SEARCH_METHOD_COPYRIGHT 11
+#define SEARCH_METHOD_UNKNOWN 99
+#else
+enum
+{
+ SEARCH_METHOD_FORWARD,
+ SEARCH_METHOD_BACKWARD,
+ SEARCH_METHOD_EXACTWORD,
+ SEARCH_METHOD_KEYWORD,
+ SEARCH_METHOD_MENU,
+ SEARCH_METHOD_COPYRIGHT,
+ SEARCH_METHOD_UNKNOWN
+};
+#endif
+
enum
{
COLOR_LINK,
#endif
#if 0
-static void dicts_view_scroll_down()
-{
- while(gtk_events_pending())
- gtk_main_iteration();
- GdkScreen *screen = gdk_screen_get_default();
- gint h = gdk_screen_get_width(screen);
- gtk_tree_view_scroll_to_point(GTK_TREE_VIEW(dicts.view), 0, h);
-}
-
static void dicts_item_up_cb(GtkWidget *w, gpointer data)
{
dicts_item_move(w, data, TRUE);
#endif
#if 0
-static void dicts_search_disk(GtkWidget *w, gpointer data)
-{
- if(!gtk_entry_get_text_length(GTK_ENTRY(dicts.path)))
- return;
- gchar *dirname = (gchar*)gtk_entry_get_text(GTK_ENTRY(dicts.path));
- dirname = g_strdup(dirname);
- //dicts_search_recursive(dirname, 0);
- g_free(dirname);
- gtk_entry_set_text(GTK_ENTRY(dicts.path), "");
- dicts_view_scroll_down();
-}
-#endif
-
-#if 0
static gboolean dicts_drag_data_received(GtkTreeDragDest *drag_dest, GtkTreePath *dest, GtkSelectionData *selection_data)
{
return FALSE;
g_free(order);
}
+#if 0
void my_gtk_combo_box_set_active_text(GtkComboBox *combo, const gchar *text)
{
if(!text) return;
if(gtk_combo_box_get_active(combo) < 0)
gtk_combo_box_set_active(combo, 0);
}
+#endif
+
+static void dicts_scroll_down(Dicts *dicts)
+{
+ while(gtk_events_pending())
+ gtk_main_iteration();
+ GdkScreen *screen = gdk_screen_get_default();
+ gint h = gdk_screen_get_height(screen);
+ GtkTreeView *tree = GTK_TREE_VIEW(gtk_builder_get_object(GTK_BUILDER(dicts->builder), "dicts_tree"));
+ gtk_tree_view_scroll_to_point((tree), 0, h);
+}
void dicts_info_update_search(GtkWidget *w, gpointer data)
{
const gchar *name = NULL;
for(i = 0; (name = ebook_index_to_method_name(i)); i++)
{
- code = ebook_index_to_method_code(i);
if(!g_strcmp0(gtk_label_get_text(GTK_LABEL(w)), name))
{
- (book ? ebook_has_method(book, code) : FALSE) ? gtk_widget_show(w) : gtk_widget_hide(w);
+ (book ? ebook_has_method(book, i) : FALSE) ? gtk_widget_show(w) : gtk_widget_hide(w);
break;
}
}
void dicts_close_btn_clicked_cb(GtkWidget *widget, gpointer data)
{
+ Mainwnd *mw = MAINWND(data);
GtkWidget *wnd = gtk_widget_get_toplevel(widget);
gtk_widget_hide(wnd);
- dicts_save(_dicts);
- mainwnd_dicts_update();
+ dicts_save(mw->dicts);
+ mainwnd_dicts_update(mw);
}
static void dicts_selection_changed_cb(GtkTreeSelection *selection, gpointer data)
GtkTreePath *path;
GtkTreeModel *store;
BOOK_INFO *binfo = NULL;
- Mainwnd *mainwnd = MAINWND(data);
+ Mainwnd *mw = MAINWND(data);
if(gtk_tree_selection_get_selected(selection, &store, &iter))
{
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);
+ builder_set_str(mw->builder, "dicts_book_title", binfo ? binfo->title : "");
+ builder_set_str(mw->builder, "dicts_book_path", binfo ? binfo->path : "");
+ builder_set_int(mw->builder, "dicts_subbook_no", binfo ? binfo->subbook_no : -1);
+ builder_set_str(mw->builder, "dicts_appendix_path", binfo ? (binfo->appendix_path ? binfo->appendix_path : "") : "");
+ builder_set_int(mw->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 dicts_btn_clicked_cb(GtkWidget *widget, gpointer data)
{
- Mainwnd *mainwnd = MAINWND(data);
- GtkWidget *wnd = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(mainwnd->builder), "dictionaries"));
+ Mainwnd *mw = MAINWND(data);
+ GtkWidget *wnd = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(mw->builder), "dictionaries"));
gtk_widget_hide_on_delete(wnd);
GtkTreeIter iter1;
- 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"));
+ GtkTreeView *dicts_tree = GTK_TREE_VIEW(gtk_builder_get_object(GTK_BUILDER(mw->builder), "dicts_tree"));
+ GtkTreeStore *dicts_store = GTK_TREE_STORE(gtk_builder_get_object(GTK_BUILDER(mw->builder), "dicts_store"));
GtkTreeSelection *select = gtk_tree_view_get_selection(dicts_tree);
static gboolean preparewnd = True;
if(preparewnd)
}
}
-gint dicts_load(Dicts *self)
+gint dicts_load(Dicts *self, Builder *builder)
{
+ self->builder = builder;
gchar filename[PATH_MAX];
xmlSAXHandler cb;
gint active = 0;
void dicts_delete_btn_clicked_cb(GtkWidget *widget, gpointer data)
{
- g_printf("remove\n");
gboolean b;
gchar *title;
GtkTreeIter iter, iter2;
#ifndef __DICTS_H__
#define __DICTS_H__
+#include "builder.h"
+
G_BEGIN_DECLS
#define TYPE_DICTS (dicts_get_type ())
GObject parent_instance;
GData *data;
GtkTreeStore *store;
+ Builder *builder;
};
struct _DictsClass {
GObjectClass parent_class;
};
-gint dicts_load(Dicts *self);
+gint dicts_load(Dicts *self, Builder *builder);
void dicts_save(Dicts *self);
gboolean dicts_get_nth(Dicts *self, gint n, GtkTreeIter *iter);
#define __PREF_DICTGROUP_H__
void dicts_show(GtkWidget *w, gpointer data);
-//void dicts_save();
-//void dicts_load();
GtkWidget* dicts_info(gboolean create);
GtkTreePath* dicts_find_path(EB_Book *book);
void my_gtk_tree_store_swap(GtkTreeStore *tree_store, GtkTreeIter *a, GtkTreeIter *b);
-void my_gtk_combo_box_set_active_text(GtkComboBox *combo, const gchar *text);
-
-#if 0
-struct _dicts
-{
- gboolean show_info;
- GtkTreeStore *store;
- GtkWidget *dlg, *view, *path, *search_depth;
-} dicts;
-#endif
#endif /* __PREF_DICTGROUP_H__ */
<object class="GtkWindow" id="mainwnd">
<property name="can_focus">False</property>
<property name="window_position">center</property>
+ <signal name="delete-event" handler="mainwnd_delete_event_cb" swapped="no"/>
<child>
<object class="GtkVBox" id="vbox1">
<property name="visible">True</property>
#define MAX_BUFSIZE 65535
#endif
+#define SEARCH_FORWARD _("Forward")
+#define SEARCH_BACKWARD _("Backward")
+#define SEARCH_EXACTWORD _("Exactword")
+#define SEARCH_KEYWORD _("Keyword")
+#define SEARCH_MENU _("Menu")
+#define SEARCH_COPYRIGHT _("Copyright")
+
typedef struct
{
- gint code;
gchar *name;
int (* have_method)(EB_Book *book);
EB_Error_Code (* search)(EB_Book *book, const gchar* input_word);
static const 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_EXACTWORD, SEARCH_EXACTWORD, eb_have_exactword_search, eb_search_exactword},
- {SEARCH_METHOD_KEYWORD, SEARCH_KEYWORD, eb_have_keyword_search, ebook_search_keyword},
- {SEARCH_METHOD_MENU, SEARCH_MENU, eb_have_menu, NULL},
- {SEARCH_METHOD_COPYRIGHT, SEARCH_COPYRIGHT, eb_have_copyright, NULL},
+ {SEARCH_FORWARD, eb_have_word_search, eb_search_word},
+ {SEARCH_BACKWARD, eb_have_endword_search, eb_search_endword},
+ {SEARCH_EXACTWORD, eb_have_exactword_search, eb_search_exactword},
+ {SEARCH_KEYWORD, eb_have_keyword_search, ebook_search_keyword},
+ {SEARCH_MENU, eb_have_menu, NULL},
+ {SEARCH_COPYRIGHT, eb_have_copyright, NULL},
};
const gchar* ebook_index_to_method_name(gint index)
return m.name;
}
-gint ebook_index_to_method_code(gint index)
+gboolean ebook_has_method(EB_Book *book, gint index)
{
if(index < 0)
- index = 0;
+ return False;
if(index >= SZ(methods))
- index = 0;
- SEARCH_METHOD m = methods[index];
- return m.code;
-}
-
-gboolean ebook_has_method(BOOK_INFO *binfo, gint method)
-{
- gboolean ret = False;
- gint i;
- for(i = 0; i < SZ(methods); i++)
- {
- if(methods[i].code == method)
- ret = methods[i].have_method(binfo->book);
- }
- return ret;
+ return False;
+ return methods[index].have_method(book);
}
BOOK_INFO *ebook_load(const gchar *path, int subbook_no)
gboolean ebook_search_book(const gchar *word, gint method, GSequence *results, gint maxhits, BOOK_INFO *binfo, gboolean jap_only)
{
- gint i;
- gboolean have_method = False;
- for(i = 0; i < SZ(methods); i++)
- {
- if(methods[i].code == method)
- have_method = methods[i].have_method(binfo->book);
- }
- if(!have_method)
+ if(!methods[method].have_method(binfo->book))
return False;
gchar *euc_str = NULL;
if(word)
return ret;
}
-#if 0
-void ebook_search_menu_or_copyright(gboolean menu, GSequence *results)
-{
- GtkTreeIter iter;
- GtkTreeModel *store;
- BOOK_INFO *binfo;
-
- if(!mainwnd_get_dicts(&store, &iter))
- return;
-
- GtkTreeIter iter;
- GtkTreeModel *store;
- EB_Position pos;
- RESULT *rp;
- BOOK_INFO *binfo;
- EB_Error_Code err;
- ebook.results = results;
-
- mainwnd_clear_text();
- //headword_clear();
- ebook_clear_results(results);
-
- if(!mainwnd_get_dicts(&store, &iter))
- return;
-
- do {
- gtk_tree_model_get(GTK_TREE_MODEL(dicts.store), &iter, DICT_BINFO, &binfo, -1);
- if(!binfo->active)
- continue;
- if(menu ? !eb_have_menu(binfo->book) : !eb_have_copyright(binfo->book))
- continue;
- err = menu ? eb_menu(binfo->book, &pos) : eb_copyright(binfo->book, &pos);
- if(err != EB_SUCCESS)
- continue;
- rp = (RESULT *)calloc(sizeof(RESULT), 1);
- rp->heading = g_strdup_printf("%s : %s", menu ? _("menu") : _("copyright"), binfo->title);
- rp->binfo = binfo;
- rp->pos = pos;
- g_sequence_append(ebook.results, rp);
- } while(gtk_tree_model_iter_next(GTK_TREE_MODEL(dicts.store), &iter));
- ebook.results = NULL;
-
- //headword_show_results();
-}
-#endif
-
GdkPixbuf *ebook_load_image(BOOK_INFO *binfo, EB_Position *pos)
{
EB_Book *book = binfo->book;
#ifndef __EBOOK_H_
#define __EBOOK_H_
-gint ebook_index_to_method_code(gint index);
+gboolean ebook_has_method(EB_Book *book, gint method);
const gchar* ebook_index_to_method_name(gint index);
-const gchar* ebook_have_method(BOOK_INFO *binfo, gint method);
BOOK_INFO* ebook_load(const gchar *path, int subbook_no);
GdkPixbuf* ebook_load_image(BOOK_INFO *binfo, EB_Position *pos);
self->text = g_object_new(TYPE_TEXTVIEW, "prefs", self->prefs, NULL);
gtk_container_add(scroll, GTK_WIDGET(self->text));
self->popupwnd = g_object_new(TYPE_POPUPWND, "mainwnd", self, "type", GTK_WINDOW_POPUP, NULL);
- GtkToggleButton *scan = GTK_TOGGLE_BUTTON(gtk_builder_get_object(GTK_BUILDER(self->builder), "mainwnd_scan"));
- gboolean b = prefs_get_int(self->prefs, "selection.lookup_started");
- gtk_toggle_button_set_active(scan, b);
}
void mainwnd_headword_append(gpointer data, gpointer user_data)
mainwnd_exit();
}
+gboolean mainwnd_delete_event_cb(GtkWidget *widget, GdkEvent *event, gpointer user_data)
+{
+ g_printf("delete-event\n");
+ gtk_widget_hide(widget);
+ return TRUE;
+}
+
void mainwnd_search_clear_clicked_cb(GtkWidget *widget, gpointer data)
{
Mainwnd *wnd = MAINWND(data);
gtk_widget_grab_focus(GTK_WIDGET(entry));
}
-void mainwnd_search(Mainwnd *self, const gchar *word)
+void mainwnd_search(Mainwnd *self, const gchar *word, gint method)
{
- gint i = builder_get_int(self->builder, "mainwnd_search");
- g_printf("method ? = %d\n", i);
- gint method = ebook_index_to_method_code(i);
- //history_insert_word(word);
+ if(method == -1)
+ method = builder_get_int(self->builder, "mainwnd_search_method");
+ //history_insert_word(word);
gint maxhits = prefs_get_int(self->prefs, "headword.maxhits");
- g_printf("maxhits = %d\n", maxhits);
ebook_search(word, method, self->results, maxhits, False);
- g_printf("results len: %d\n", g_sequence_get_length(self->results));
mainwnd_update_results(self);
gtk_window_deiconify(GTK_WINDOW(self));
gtk_widget_show_all(GTK_WIDGET(self));
void mainwnd_search_()
{
const gchar *word = builder_get_str(_mainwnd->builder, "mainwnd_search");
- mainwnd_search(_mainwnd, word);
+ mainwnd_search(_mainwnd, word, -1);
}
void mainwnd_about_btn_clicked_cb(GtkWidget *w, gpointer data)
gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 0, gtk_get_current_event_time());
}
-void mainwnd_iconify_restore()
+void mainwnd_iconify_restore(Mainwnd *mw)
{
- if(gtk_widget_get_visible(GTK_WIDGET(mainwnd_get_wnd())))
+ if(gtk_widget_get_visible(GTK_WIDGET(mw)))
{
- prefs_close_wnd();
- gtk_widget_hide(GTK_WIDGET(mainwnd_get_wnd()));
+ prefs_close_wnd(mw->prefs);
+ gtk_widget_hide(GTK_WIDGET(mw));
}
else
- gtk_window_present(mainwnd_get_wnd());
+ gtk_window_present(mw);
}
void mainwnd_iconify_cb(GtkWidget *widget, gpointer data)
{
- mainwnd_iconify_restore();
+ Mainwnd *mw = MAINWND(data);
+ mainwnd_iconify_restore(mw);
}
void mainwnd_status_icon_add(Mainwnd *self)
{
Mainwnd *mw = MAINWND(data);
const gchar *word = builder_get_str(mw->builder, "mainwnd_search");
- mainwnd_search(mw, word);
+ mainwnd_search(mw, word, -1);
}
void mainwnd_dict_buttons_add(Mainwnd *self)
{
gint n = builder_get_int(self->builder, "mainwnd_dict_group");
- g_printf("group %d\n", n);
+ if(n < 0)
+ return;
GtkTreeIter iter;
if(!dicts_get_nth(self->dicts, n, &iter))
return;
GdkPixbuf *pixbuf = gdk_pixbuf_new_from_xpm_data((const char **)icon_xpm);
gtk_window_set_default_icon(pixbuf);
g_object_unref(pixbuf);
+ gtk_widget_hide_on_delete(GTK_WIDGET(self));
+
+ prefs_load(self->prefs, self->builder);
builder_install_text_cellrenderer(self->builder, "mainwnd_search_method");
builder_install_text_cellrenderer(self->builder, "mainwnd_dict_group");
mainwnd_status_icon_add(self);
- gint active = dicts_load(self->dicts);
+ gint active = dicts_load(self->dicts, self->builder);
mainwnd_dict_groups_update(self);
mainwnd_dict_buttons_update(self);
builder_set_int(self->builder, "mainwnd_dict_group", active);
builder_set_int(self->builder, "mainwnd_search", 0);
- GtkListStore *store = GTK_LIST_STORE(gtk_builder_get_object(GTK_BUILDER(self->builder), "mainwnd_search_store"));
- GtkTreeIter iter;
- gtk_list_store_clear(store);
+ gboolean b = prefs_get_int(self->prefs, "selection.lookup_started");
+ builder_set_int(self->builder, "mainwnd_scan", b);
+
gint i;
- const gchar *name;
+ GtkTreeIter iter;
+ GtkListStore *store = GTK_LIST_STORE(gtk_builder_get_object(GTK_BUILDER(self->builder), "mainwnd_search_store"));
for(i = 0; i < 4; i++)
{
- name = ebook_index_to_method_name(i);
+ const gchar *name = ebook_index_to_method_name(i);
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter, 0, name, -1);
}
builder_grab_focus(self->builder, "mainwnd_search");
}
-void mainwnd_dicts_update()
+void mainwnd_dicts_update(Mainwnd *self)
{
- mainwnd_dict_groups_update(_mainwnd);
- mainwnd_dict_buttons_update(_mainwnd);
+ mainwnd_dict_groups_update(self);
+ mainwnd_dict_buttons_update(self);
}
gboolean mainwnd_get_dicts(GtkTreeModel **store, GtkTreeIter *iter)
void mainwnd_menu_btn_clicked_cb(GtkWidget *widget, gpointer data)
{
Mainwnd *mw = MAINWND(data);
- gint maxhits = prefs_get_int(mw->prefs, "headword.maxhits");
- ebook_search(NULL, SEARCH_METHOD_MENU, mw->results, maxhits, False);
- mainwnd_update_results(mw);
+ mainwnd_search(mw, NULL, SEARCH_METHOD_MENU);
}
void mainwnd_copyright_btn_clicked_cb(GtkWidget *widget, gpointer data)
{
Mainwnd *mw = MAINWND(data);
- gint maxhits = prefs_get_int(mw->prefs, "headword.maxhits");
- ebook_search(NULL, SEARCH_METHOD_COPYRIGHT, mw->results, maxhits, False);
- mainwnd_update_results(mw);
+ mainwnd_search(mw, NULL, SEARCH_METHOD_COPYRIGHT);
}
void mainwnd_dict_group_changed_cb(GtkComboBox *widget, gpointer data)
void mainwnd_show_about(GtkWidget *w, gpointer data);
void mainwnd_prepare(Mainwnd *self);
-void mainwnd_dicts_update();
+void mainwnd_dicts_update(Mainwnd *self);
GtkWindow* mainwnd_get_wnd();
GSequence* mainwnd_get_results();
gint mainwnd_get_search_method();
gboolean mainwnd_get_dicts(GtkTreeModel **store, GtkTreeIter *iter);
void mainwnd_insert_text(gchar *txt, gboolean clear);
void mainwnd_clear_text();
-void mainwnd_search(Mainwnd *self, const gchar *word);
+void mainwnd_search(Mainwnd *self, const gchar *word, gint method);
void mainwnd_open(Mainwnd *self, RESULT *res);
void mainwnd_exit();
void popupwnd_find_btn_clicked_cb(GtkWidget *widget, gpointer data)
{
- Mainwnd *mainwnd = MAINWND(data);
- GtkLabel *label = GTK_LABEL(gtk_builder_get_object(GTK_BUILDER(_popupwnd->builder), "popupwnd_label"));
- const gchar *str = gtk_label_get_text(label);
- gtk_window_deiconify(GTK_WINDOW(mainwnd));
- mainwnd_search(mainwnd, str);
+ Mainwnd *mw = MAINWND(data);
+ const gchar *str = builder_get_str(mw->builder, "popupwnd_label");
+ gtk_window_deiconify(GTK_WINDOW(mw));
+ mainwnd_search(mw, str, -1);
}
void popupwnd_close_btn_clicked_cb(GtkWidget *widget, gpointer data)
}
else
g_dir_close(dir);
-
- prefs_load(self);
}
enum
PREF_N
};
-extern Builder *_builder;
-
static void prefs_selection_changed_cb(GtkTreeSelection *selection, gpointer data)
{
GtkTreeIter iter;
prefs_save(mainwnd->prefs);
}
-void prefs_cancel_btn_clicked_cb(GtkWidget *widget, gpointer data)
+void prefs_close_wnd(Prefs *prefs)
{
- GtkWidget *wnd = gtk_widget_get_toplevel(widget);
- gtk_widget_hide(wnd);
+ GtkWidget *w = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(prefs->builder), "preferences"));
+ gtk_widget_hide(w);
}
-void prefs_close_wnd()
+void prefs_cancel_btn_clicked_cb(GtkWidget *widget, gpointer data)
{
- GtkWidget *w = GTK_WIDGET(gtk_builder_get_object(GTK_BUILDER(_builder), "btn_prefs_cancel"));
- prefs_cancel_btn_clicked_cb(w, NULL);
+ Mainwnd *mw = MAINWND(data);
+ prefs_close_wnd(mw->prefs);
}
void prefs_btn_clicked_cb(GtkWidget *widget, gpointer data)
}
}
-void prefs_load(Prefs *self)
+void prefs_load(Prefs *self, Builder *builder)
{
+ self->builder = builder;
gchar filename[PATH_MAX];
xmlSAXHandler cb;
gchar *userdir = prefs_get_str(self, "userdir");
#ifndef __PREFS_H__
#define __PREFS_H__
+#include "builder.h"
+
G_BEGIN_DECLS
#define TYPE_PREFS (prefs_get_type ())
struct _Prefs {
GObject parent_instance;
GData *data;
+ Builder *builder;
};
struct _PrefsClass {
GObjectClass parent_class;
};
-void prefs_load(Prefs *self);
+void prefs_load(Prefs *self, Builder *builder);
void prefs_save(Prefs *self);
-void prefs_close_wnd();
+void prefs_close_wnd(Prefs *prefs);
gchar* prefs_get_userdir();
gint prefs_get_int(Prefs *self, const gchar *name);
GtkTextIter start, end;
GtkTextView *text = GTK_TEXT_VIEW(data);
GtkTextBuffer *buf = gtk_text_view_get_buffer(text);
- Mainwnd *mw = MAINWND(gtk_widget_get_toplevel(text));
+ Mainwnd *mw = MAINWND(gtk_widget_get_toplevel(GTK_WIDGET(text)));
gtk_text_buffer_get_selection_bounds(buf, &start, &end);
str = gtk_text_buffer_get_text(buf, &start, &end, FALSE);
- mainwnd_search(mw, str);
+ mainwnd_search(mw, str, -1);
}
static GtkTextTag *textview_get_link_under_cursor(TextView *self, gint ex, gint ey)
void video_render(Video *self)
{
- GtkTextIter iter1, iter2;
#if 0
+ GtkTextIter iter1, iter2;
if(render_get_last_mark("mpeg", &iter1, &iter2))
{
gtk_text_buffer_delete(render.buf, &iter1, &iter2);