-
-
Save mikoto2000/42d6dc3732a35bb216bf to your computer and use it in GitHub Desktop.
mikutter の settings で listener を使う。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ArgumentError ArgumentError | |
{MIKUTTER_DIR}/core/plugin/settings/select.rb:38:in `build' | |
{MIKUTTER_DIR}/core/plugin/settings/builder.rb:256:in `select' | |
/home/mikoto/.mikutter_dev/plugin/setting_listenre/setting_listenre.rb:17:in `block (3 levels) in <top (required)>' | |
{MIKUTTER_DIR}/core/plugin/settings/builder.rb:190:in `instance_eval' | |
{MIKUTTER_DIR}/core/plugin/settings/builder.rb:190:in `settings' | |
/home/mikoto/.mikutter_dev/plugin/setting_listenre/setting_listenre.rb:5:in `block (2 levels) in <top (required)>' | |
{MIKUTTER_DIR}/core/plugin/settings/settings.rb:35:in `instance_eval' | |
{MIKUTTER_DIR}/core/plugin/settings/settings.rb:35:in `block in setting_window' | |
{MIKUTTER_DIR}/core/plugin/settings/settings.rb:30:in `each' | |
{MIKUTTER_DIR}/core/plugin/settings/settings.rb:30:in `setting_window' | |
{MIKUTTER_DIR}/core/plugin/settings/settings.rb:18:in `block (2 levels) in <top (required)>' | |
{MIKUTTER_DIR}/core/event_listener.rb:25:in `call' | |
{MIKUTTER_DIR}/core/event_listener.rb:25:in `update' | |
/usr/lib/ruby/1.9.1/observer.rb:195:in `block in notify_observers' | |
/usr/lib/ruby/1.9.1/observer.rb:194:in `each' | |
/usr/lib/ruby/1.9.1/observer.rb:194:in `notify_observers' | |
{MIKUTTER_DIR}/core/event.rb:46:in `block (2 levels) in call' | |
{MIKUTTER_DIR}/core/event.rb:46:in `catch' | |
{MIKUTTER_DIR}/core/event.rb:46:in `block in call' | |
{MIKUTTER_DIR}/vendor/bundle/ruby/1.9.1/gems/delayer-0.0.2/lib/delayer/procedure.rb:24:in `call' | |
{MIKUTTER_DIR}/vendor/bundle/ruby/1.9.1/gems/delayer-0.0.2/lib/delayer/procedure.rb:24:in `run' | |
{MIKUTTER_DIR}/vendor/bundle/ruby/1.9.1/gems/delayer-0.0.2/lib/delayer/extend.rb:58:in `run_once' | |
{MIKUTTER_DIR}/vendor/bundle/ruby/1.9.1/gems/delayer-0.0.2/lib/delayer/extend.rb:30:in `run' | |
{MIKUTTER_DIR}/vendor/bundle/ruby/1.9.1/gems/delayer-0.0.2/lib/delayer.rb:43:in `method_missing' | |
{MIKUTTER_DIR}/core/plugin/gtk/delayer.rb:10:in `block in boot' | |
{MIKUTTER_DIR}/core/plugin/gtk/mainloop.rb:10:in `call' | |
{MIKUTTER_DIR}/core/plugin/gtk/mainloop.rb:10:in `main' | |
{MIKUTTER_DIR}/core/plugin/gtk/mainloop.rb:10:in `mainloop' | |
./mikutter.rb:63:in `boot!' | |
./mikutter.rb:92:in `<main>' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Plugin::Settings::Select#build 内の type_strict を削除する。 | |
# 他の項目で type_strict を使っているものはないので、 | |
# 多分こちらのほうが良いのだと思う。 | |
diff --git a/core/plugin/settings/select.rb b/core/plugin/settings/select.r | |
index 289f5b6..04fbab2 100644 | |
--- a/core/plugin/settings/select.rb | |
+++ b/core/plugin/settings/select.rb | |
@@ -35,7 +35,6 @@ class Plugin::Settings::Select | |
# ==== Return | |
# ウィジェット | |
def build(label, config) | |
- type_strict label => String, config => Symbol | |
if has_widget? | |
group = Gtk::Frame.new.set_border_width(8) | |
group.set_label(label) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Plugin::Settings::Select#build 内の type_strict で、 | |
# Symbol と Plugin::Settings::Listener を許可するように修正 | |
# 他ではやっていないのに select だけやる必要があるのか? | |
diff --git a/core/plugin/settings/select.rb b/core/plugin/settings/select.rb | |
index 289f5b6..5221c25 100644 | |
--- a/core/plugin/settings/select.rb | |
+++ b/core/plugin/settings/select.rb | |
@@ -35,7 +35,7 @@ class Plugin::Settings::Select | |
# ==== Return | |
# ウィジェット | |
def build(label, config) | |
- type_strict label => String, config => Symbol | |
+ type_strict label => String, config => tcor(Symbol, Plugin::Settings::Listener) | |
if has_widget? | |
group = Gtk::Frame.new.set_border_width(8) | |
group.set_label(label) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
Plugin.create(:setting_listenre) do | |
settings("setting_listener") { | |
settings("基本設定") { | |
multitext("複数行テキスト", listener(:setting_listener_multitext)) | |
adjustment("特定範囲の数値入力", listener(:setting_listener_adjustment), 1, 600) | |
boolean("真偽値入力", listener(:setting_listener_boolean)) | |
fileselect("ファイルを選択する", listener(:setting_listener_fileselect)) | |
input("一行テキストボックス", listener(:setting_listener_input)) | |
inputpass("一行テキストボックス(非表示)", listener(:setting_listener_inputpass)) | |
multi("複数テキストボックス", listener(:setting_listener_multi)) | |
font("フォント", listener(:setting_listener_font)) | |
color("カラー", listener(:setting_listener_color)) | |
fontcolor("フォントカラー", listener(:setting_listener_fontcolor_font), listener(:setting_listener_fontcolor_color)) | |
# 落ちる | |
#select("アイコンの色", listener(:setting_listener_select), { | |
# "1" => "1", | |
# "2" => "2", | |
# "3" => "3", | |
# "4" => "4", | |
# "5" => "5"}) | |
multiselect("要素を複数個選択させる", listener(:setting_listener_multiselect), { | |
"1" => "1", | |
"2" => "2", | |
"3" => "3", | |
"4" => "4", | |
"5" => "5"}) | |
} | |
} | |
# リスナ作成 | |
def listener(key) | |
Plugin::Settings::Listener.new( | |
:set => lambda { |new| | |
UserConfig[key] = new | |
}, | |
:get => lambda { | |
UserConfig[key] | |
} | |
) | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment