Font selection added. Preference saving/loading improved.
[jben2_gui.git] / dialog_kanjilisteditor.py
bloba754869d1af2679302b4fec26d6347f7f4f2e8c5
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
4 # Project: J-Ben, Python front-end
5 # File: dialog_kanjilisteditor.py
6 # Author: Paul Goins
7 # Created on: 26 Nov 2008
9 import gtk
10 from widget_storedsize import StoredSizeDialog
12 class DialogKanjiListEditor(StoredSizeDialog):
13 def __init__(self, parent):
14 StoredSizeDialog.__init__(self, "gui.kanjilisteditor.size", -1, -1,
15 _("Kanji List Editor"), parent)
17 self.edit_box = gtk.TextView()
18 self.edit_box.set_accepts_tab(False)
19 self.edit_box.set_wrap_mode(gtk.WRAP_WORD_CHAR)
20 self.edit_box.get_buffer().connect("changed", self.on_text_changed)
22 edit_window = gtk.ScrolledWindow()
23 edit_window.set_shadow_type(gtk.SHADOW_IN)
24 edit_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
25 edit_window.add(self.edit_box)
27 add_frame = gtk.Frame(_("Add Kanji"))
28 add_frame.set_shadow_type(gtk.SHADOW_IN)
29 sort_frame = gtk.Frame(_("Sort Kanji"))
30 sort_frame.set_shadow_type(gtk.SHADOW_IN)
32 self.add_from_file = gtk.Button(_("From File"))
33 self.add_by_jouyou = gtk.Button(_("By Jouyou Grade"))
34 self.add_by_jlpt = gtk.Button(_("By JLPT Level"))
35 self.add_by_freq = gtk.Button(_("By Frequency"))
36 add_box = gtk.VBox()
37 add_box.pack_start(self.add_from_file, expand = False)
38 add_box.pack_start(self.add_by_jouyou, expand = False)
39 add_box.pack_start(self.add_by_jlpt, expand = False)
40 add_box.pack_start(self.add_by_freq, expand = False)
41 add_frame.add(add_box)
43 self.sort_by_jouyou = gtk.Button(_("By Jouyou Grade"))
44 self.sort_by_jlpt = gtk.Button(_("By JLPT Level"))
45 self.sort_by_freq = gtk.Button(_("By Frequency"))
46 sort_box = gtk.VBox()
47 sort_box.pack_start(self.sort_by_jouyou, expand = False)
48 sort_box.pack_start(self.sort_by_jlpt, expand = False)
49 sort_box.pack_start(self.sort_by_freq, expand = False)
50 sort_frame.add(sort_box)
52 side_buttons = gtk.VBox(spacing = 5)
53 side_buttons.pack_start(add_frame, expand = False)
54 side_buttons.pack_start(sort_frame, expand = False)
56 main_box = gtk.HBox(spacing = 5)
57 main_box.pack_start(side_buttons, expand = False)
58 main_box.pack_start(edit_window)
60 self.vbox.set_spacing(5)
61 self.vbox.pack_start(main_box)
62 self.vbox.show_all()
64 self.ok_button = gtk.Button(stock = gtk.STOCK_OK)
65 self.ok_button.connect("clicked", self.on_ok_clicked)
66 self.cancel_button = gtk.Button(stock = gtk.STOCK_CANCEL)
67 self.cancel_button.connect("clicked", self.on_cancel_clicked)
68 self.apply_button = gtk.Button(stock = gtk.STOCK_APPLY)
69 self.apply_button.connect("clicked", self.on_apply_clicked)
71 self.action_area.pack_start(self.cancel_button)
72 self.action_area.pack_start(self.apply_button)
73 self.action_area.pack_start(self.ok_button)
74 self.action_area.show_all()
76 self.set_has_separator(False)
78 def on_text_changed(self, widget):
79 print "DialogKanjiListEditor.on_text_changed"
81 def on_cancel_clicked(self, widget):
82 print "DialogKanjiListEditor.on_cancel_clicked"
83 self.response(gtk.RESPONSE_CANCEL)
85 def on_apply_clicked(self, widget):
86 print "DialogKanjiListEditor.on_apply_clicked"
88 def on_ok_clicked(self, widget):
89 print "DialogKanjiListEditor.on_ok_clicked"
90 self.response(gtk.RESPONSE_OK)