class Plugin::Gtk::DialogContainer

Constants

EXIT

Attributes

state[R]

Public Class Methods

new(plugin, default=Hash.new) click to toggle source
Calls superclass method
# File core/plugin/gtk/dialog_window.rb, line 120
def initialize(plugin, default=Hash.new)
  super()
  @state = :init
  @plugin = plugin
  @values = default
  @proc = Proc.new
  run
end

Public Instance Methods

[](key) click to toggle source
# File core/plugin/gtk/dialog_window.rb, line 161
def [](key)
  @values[key.to_sym]
end
[]=(key, value) click to toggle source
# File core/plugin/gtk/dialog_window.rb, line 165
def []=(key, value)
  @values[key.to_sym] = value
end
await_input() click to toggle source

dialog DSLから利用するメソッド。 dialogウィンドウのエレメントの配置を、ユーザが次へボタンを押すまで中断する。 次へボタンが押されたら、 その時点で各エレメントに入力された内容を格納した Plugin::Gtk::DialogWindow::Response::Ok のインスタンスを返す

# File core/plugin/gtk/dialog_window.rb, line 103
def await_input
  Fiber.yield
end
create_inner_setting() click to toggle source
# File core/plugin/gtk/dialog_window.rb, line 116
def create_inner_setting
  self.class.new(@plugin, @values)
end
method_missing(*args, &block) click to toggle source
# File core/plugin/gtk/dialog_window.rb, line 177
def method_missing(*args, &block)
  @plugin.__send__(*args, &block)
end
method_missing_at_select_dsl(*args, &block) click to toggle source
# File core/plugin/gtk/dialog_window.rb, line 173
def method_missing_at_select_dsl(*args, &block)
  @plugin.__send__(*args, &block)
end
resume(response) click to toggle source
# File core/plugin/gtk/dialog_window.rb, line 145
def resume(response)
  @state = :run
  result = @fiber.resume(response)
  show_all
  case result
  when EXIT
    @state = :exit
  else
    @state = :wait
  end
end
run(response=nil) click to toggle source
# File core/plugin/gtk/dialog_window.rb, line 129
def run(response=nil)
  Delayer.new do
    case state
    when :init
      @fiber = Fiber.new do
        instance_eval(&@proc)
        EXIT
      end
      resume(response)
    when :wait
      children.each(&method(:remove))
      resume(response)
    end
  end
end
set_value(v={}) click to toggle source

dialog DSLから利用するメソッド。 初期値を動的に設定するためのメソッド。 {エレメントのキー: 値} のように書くことで、複数同時に設定できる。 既に置かれたエレメントの内容がこのメソッドによって書き換わることはないので、 エレメントを配置する前に呼び出す必要がある。

# File core/plugin/gtk/dialog_window.rb, line 112
def set_value(v={})
  @values.merge!(v)
end
to_h() click to toggle source
# File core/plugin/gtk/dialog_window.rb, line 169
def to_h
  @values.dup
end
wait?() click to toggle source
# File core/plugin/gtk/dialog_window.rb, line 157
def wait?
  @state == :wait
end