lib/jldrill/views/gtk/widgets/ExampleWindow.rb in jldrill-0.5.1.7 vs lib/jldrill/views/gtk/widgets/ExampleWindow.rb in jldrill-0.6.0.1
- old
+ new
@@ -1,5 +1,6 @@
+# encoding: utf-8
require 'Context/Gtk/Widget'
require 'jldrill/views/gtk/widgets/KanjiPopupFactory'
require 'jldrill/views/gtk/widgets/VocabPopupFactory'
require 'gtk2'
@@ -33,12 +34,14 @@
createTags
end
def createTags
@contents.buffer.create_tag("normal",
+ "size" => 12 * Pango::SCALE,
"background" => "#ffffff")
@contents.buffer.create_tag("checked",
+ "size" => 12 * Pango::SCALE,
"background" => "#e0f0ff")
@contents.buffer.create_tag("h1",
"size" => 20 * Pango::SCALE,
"justification" => Gtk::JUSTIFY_CENTER)
@contents.buffer.create_tag("h2",
@@ -104,46 +107,83 @@
self.destroy
end
def sortExamples(examples)
return examples.sort do |x, y|
- retVal = x.sense <=> y.sense
- if y.checked && !x.checked
+ retVal = x.key.sense <=> y.key.sense
+ if y.key.checked && !x.key.checked
retVal = 1
end
- if x.checked && !y.checked
+ if x.key.checked && !y.key.checked
retVal = -1
end
retVal
end
end
-
+
+ def insertHeader(section, example)
+ if example.key.checked
+ if section == -2
+ section = -1
+ insert("Checked Examples\n", "h1")
+ insertVSpace
+ end
+ else
+ if section < 0
+ insert("Unchecked Examples\n", "h1")
+ insertVSpace
+ end
+ if section != example.key.sense
+ section = example.key.sense
+ if section != 0
+ insertVSpace
+ insert("Examples for sense ##{section}\n", "h2")
+ end
+ end
+ end
+ return section
+ end
+
+ def getTag(example)
+ if (example.key.checked)
+ tag = "checked"
+ else
+ tag = "normal"
+ end
+ end
+
+ def updateNativeOnly(examples)
+ @contents.buffer.text = ""
+ if !examples.nil?
+ section = -2
+ sortExamples(examples).each do |example|
+ section = insertHeader(section, example)
+ insert(example.nativeOnly_to_s + "\n", getTag(example))
+ insertVSpace
+ end
+ end
+ end
+
+ def updateTargetOnly(examples)
+ @contents.buffer.text = ""
+ if !examples.nil?
+ section = -2
+ sortExamples(examples).each do |example|
+ section = insertHeader(section, example)
+ insert(example.targetOnly_to_s + "\n", getTag(example))
+ insertVSpace
+ end
+ end
+ end
+
def updateContents(examples)
@contents.buffer.text = ""
if !examples.nil?
section = -2
sortExamples(examples).each do |example|
- if example.checked
- if section == -2
- section = -1
- insert("Checked Examples\n", "h1")
- insertVSpace
- end
- else
- if section < 0
- insert("Unchecked Examples\n", "h1")
- insertVSpace
- end
- if section != example.sense
- section = example.sense
- if section != 0
- insertVSpace
- insert("Examples for sense ##{section}\n", "h2")
- end
- end
- end
- insert(example.to_s + "\n", "normal")
+ section = insertHeader(section, example)
+ insert(example.to_s + "\n", getTag(example))
insertVSpace
end
end
end
@@ -151,8 +191,19 @@
@contents.buffer.insert(@contents.buffer.end_iter, text, tag)
end
def insertVSpace
insert("\n", "normal")
+ end
+
+ def showBusy(bool)
+ # TextViews have a hidden subwindow that houses the cursor
+ subwindow = @contents.get_window(Gtk::TextView::WINDOW_TEXT)
+ if bool
+ subwindow.set_cursor(Gdk::Cursor.new(Gdk::Cursor::WATCH))
+ else
+ subwindow.set_cursor(nil)
+ end
+ Gdk::flush()
end
end
end