Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > tk/variableライブラリ > TkVariableクラス

class TkVariable

クラスの継承リスト: TkVariable < Tk < TkCore < TkComm < TkUtil < TkEvent < Comparable < Object < Kernel < BasicObject
extend: TkCore

Abstract

Tclの変数をアクセスするためのクラスです。 ((-Tclの配列としての振る舞いは仕様が不安定のようです-))

require "tk"
p TkVariable.new(0).value                     # => "0"
p TkVariable.new(1.2).value                   # => "1.2"
p TkVariable.new(["a", "b"]).value            # => {"0"=>"a", "1"=>"b"}
p TkVariable.new(1=>"a", 2=>"b").value        # => {"1"=>"a", "2"=>"b"}

特異メソッド

callback(args)

TkVariable#traceにより登録されたProcオブジェクトを実行します。 args は、 [TkVariableのインスタンス, "キー", "操作"] である配列です。

new(val="")

値がvalであるTkVariableオブジェクトを生成します。valが Array または Hash のオブジェクトである場合、生成されたインス タンスは Tclの配列として振る舞います。

new_hash(val = {})

インスタンスメソッド

self % other
self & other
self * other
self ** other
self + other
self - other
self / other
self <=> other
self == other

値がotherと同じである場合に真です。otherは、 TkVariable, String, Integer, Float, Arrayのいずれかです。

self =~ other
self[index]

index番目の値を返します。 selfはTclの配列でなければなりません。

self[index] = val

index番目の要素をvalにします。 selfはTclの配列でなければなりません。

bool
bool=
set_bool
bool_element
bool_type=
set_bool_type(val)
clear
coerce(other)
default_element_value_type(idxs)
default_proc(cmd = Proc.new)
default_value(val = nil)
default_value(val = nil) { .... }
default_value=
default_value_type
default_value_type=
set_default_value_type(type)
element_lappend(idxs, *elems)
element_lindex(elem_idxs, idx)
element_lget(elem_idxs, idx)
element_lget_f(elem_idxs, idx)
element_lget_i(elem_idxs, idx)
element_lset(elem_idxs, idx, val)
list_element(*idxs)
element_to_a(*idxs)
element_to_f(*idxs)
element_to_i(*idxs)
element_to_s(*idxs)
string_element(*idxs)
element_to_sym(*idxs)
eventloop_tkwait
eventloop_wait(check_root = false)
exist?(*elems)
id
is_hash?
is_scalar?
keys
lappend(*elems)
lindex(idx)
lget(idx)
lget_f(idx)
lget_i(idx)
list
list=
list_type=
set_list_type(val)
lset(idx, val)
nonzero?
numeric
numeric=
numeric_element(*idxs)
set_numeric_type(val)
numeric_type=
numlist
set_numlist(val)
numlist=
numlist_element(*idxs)
set_numlist_type(val)
numlist_type=
procedure
set_procedure(cmd)
procedure=
procedure_element(*idxs)
procedure_type=
set_procedure_type(cmd)
ref(*idxs)
unset(elem=nil)
remove(elem=nil)

値がTcl配列であるとき、elemの値を削除します。

set_bool_element
set_bool_element_type(idxs, val)
set_default_element_value_type(idxs, type)
set_default_value(val)
set_element_value(idxs, val)
set_element_value_type(idxs, val)
set_list(val)
set_list_element(idxs, val)
set_numlist_element(idxs, val)
set_list_element_type(idxs, val)
set_numeric(val)
set_numeric_element(idxs, val)
set_numeric_element_type(idxs, val)
set_numlist_element_type(idxs, val)
set_procedure_element(idxs, cmd)
set_procedure_element_type(idxs, cmd)
string=
set_string(val)
set_string_element(idxs, val)
set_string_element_type(idxs, val)
string_type=
set_string_type(val)
symbol=
set_symbol(val)
set_symbol_element(idxs, val)
set_symbol_element_type(idxs, val)
symbol_type=
set_symbol_type(val)
set_value(val)

値を val に設定し、self を返します。

set_value_type(val)
value_type=
set_variable(var)
variable=
set_variable_element(*idxs)
set_variable_element_type(idxs, var)
set_variable_type(var)
variable_type=
set_window(win)
window=
set_window_element(idxs, win)
set_window_element_type(idxs, win)
set_window_type(win)
window_type=
size
string
symbol
to_sym
symbol_element
thread_tkwait
thread_wait(check_root = false)
tkwait(on_thread = true)
to_a

値を配列(Array)として返します。

to_eval
to_f

値を数値(Float)として返します。

to_i

値を数値(Fixnum)として返します。(現状のTkVariableは、 Bignumを値にすることはできません)

to_s

値を文字列(String)として返します。

trace(opts, cmd)

optsは、"r", "w", "u" のいずれか、またはこれらの組み合わせで、それぞれ 変数が参照、設定、削除 されたときにProcオブジェクト cmd を 呼び出します。2回目以降の呼び出しでは、opts が以前の設定と異なれ ばcmdを再設定します。

cmdは、引数に、self、空配列、"操作" を渡されて呼ばれ ます。"配列のキー" は、変数が配列の場合以外は空文字列です。"操作"は、 "r","w","u" のいずれかです。

require "tk"

var = TkVariable.new(0)

var.trace "rwu", proc {|arg| puts "callback called with #{arg.inspect}"}

p var.value
p var.value = 1
p var.unset

=>callback called with [<TkVariable: v00000>, [], "r"]
  "0"
  callback called with [<TkVariable: v00000>, [], "w"]
  "1"
  callback called with [<TkVariable: v00000>, [], "u"]
  ""
trace_callback(elem, op)

TkVariable#traceにより登録されたProcオブジェクトを引数にself, elem, opを指定して実行します。

require "tk"

var = TkVariable.new(0)

var.trace "rwu", proc {|arg| puts "callback called with #{arg.inspect}"}
var.trace_callback([], "r")
trace_element(elem, opts, cmd)
trace_vdelete(opts, cmd)

TkVariable#trace で設定したcmdを削除します。opts が TkVariable#trace で 設定したときと一致しなければ何もしません。

trace_vdelete_for_element(elem, opts, cmd)
trace_vinfo
undef_default
update(hash)
value

値を返します。selfがTclの配列ならば(Tclの配列は連想配列な ので) Hashとして返します。それ以外では常に文字列を返します。

value=(val)

値をvalに設定します。

variable
variable_element(*idxs)
wait

値が変化するまで待ちます。

window
window_element(*idxs)
zero?
self | other

定数

TkCommandNames
TkVar_CB_TBL

コールバック関数を記録するハッシュです。内部で利用しています。

TkVar_ID_TBL
Tk_VARIABLE_ID

Tclレベルの変数名をインスタンスに割り当てるために内部で利用されています。

Tk_VARIABLE_IDは、配列ですが0番目の要素しか使われていません。 Rubyにおける定数が値を変更できないためです。

USE_TCLs_SET_VARIABLE_FUNCTIONS

Methods

Classes