Type:
Class
Constants:
TYPE_NAME_TBL
:
Hash.new
TYPE_ID_TBL
:
Hash.new
TYPE_GROUP_TBL
:
Hash.new
FIELD_FLAG
:
{
# key => flag
'above' => Grp::CONFIG,
'borderwidth' => (Grp::CREATE|Grp::CONFIG),
'button' => Grp::BUTTON,
'count' => Grp::EXPOSE,
'data' => (Grp::VIRTUAL|Grp::STRING_DATA),
'delta' => Grp::MWHEEL,
'detail' => (Grp::FOCUS|Grp::CROSSING),
'focus' => Grp::CROSSING,
'height' => (Grp::EXPOSE|Grp::CONFIG),
'keycode' => Grp::KEY,
'keysym' => Grp::KEY,
'mode' => (Grp::CROSSING|Grp::FOCUS),
'override' => (Grp::CREATE|Grp::MAP|Grp::REPARENT|Grp::CONFIG),
'place' => Grp::CIRC,
'root' => (Grp::KEY_BUTTON_MOTION_VIRTUAL|Grp::CROSSING),
'rootx' => (Grp::KEY_BUTTON_MOTION_VIRTUAL|Grp::CROSSING),
'rooty' => (Grp::KEY_BUTTON_MOTION_VIRTUAL|Grp::CROSSING),
'sendevent' => Grp::ALL,
'serial' => Grp::ALL,
'state' => (Grp::KEY_BUTTON_MOTION_VIRTUAL|
Grp::CROSSING|Grp::VISIBILITY),
'subwindow' => (Grp::KEY_BUTTON_MOTION_VIRTUAL|Grp::CROSSING),
'time' => (Grp::KEY_BUTTON_MOTION_VIRTUAL|Grp::CROSSING|
Grp::PROP),
'warp' => Grp::KEY_BUTTON_MOTION_VIRTUAL,
'width' => (Grp::EXPOSE|Grp::CREATE|Grp::CONFIG),
'window' => (Grp::CREATE|Grp::UNMAP|Grp::MAP|Grp::REPARENT|
Grp::CONFIG|Grp::GRAVITY|Grp::CIRC),
'when' => Grp::ALL,
'x' => (Grp::KEY_BUTTON_MOTION_VIRTUAL|Grp::CROSSING|
Grp::EXPOSE|Grp::CREATE|Grp::CONFIG|Grp::GRAVITY|
Grp::REPARENT),
'y' => (Grp::KEY_BUTTON_MOTION_VIRTUAL|Grp::CROSSING|
Grp::EXPOSE|Grp::CREATE|Grp::CONFIG|Grp::GRAVITY|
Grp::REPARENT),
}
FIELD_OPERATION
:
{
'root' => proc{|val|
begin
Tk.tk_call_without_enc('winfo', 'pathname', val)
val
rescue
nil
end
},
'subwindow' => proc{|val|
begin
Tk.tk_call_without_enc('winfo', 'pathname', val)
val
rescue
nil
end
},
'window' => proc{|val| nil}
}
KEY_TBL
:
[
[ ?#, ?n, :serial ],
[ ?a, ?s, :above ],
[ ?b, ?n, :num ],
[ ?c, ?n, :count ],
[ ?d, ?s, :detail ],
# ?e
[ ?f, ?b, :focus ],
# ?g
[ ?h, ?n, :height ],
[ ?i, ?s, :win_hex ],
# ?j
[ ?k, ?n, :keycode ],
# ?l
[ ?m, ?s, :mode ],
# ?n
[ ?o, ?b, :override ],
[ ?p, ?s, :place ],
# ?q
# ?r
[ ?s, ?x, :state ],
[ ?t, ?n, :time ],
# ?u
[ ?v, ?n, :value_mask ],
[ ?w, ?n, :width ],
[ ?x, ?n, :x ],
[ ?y, ?n, :y ],
# ?z
[ ?A, ?s, :char ],
[ ?B, ?n, :borderwidth ],
# ?C
[ ?D, ?n, :wheel_delta ],
[ ?E, ?b, :send_event ],
# ?F
# ?G
# ?H
# ?I
# ?J
[ ?K, ?s, :keysym ],
# ?L
# ?M
[ ?N, ?n, :keysym_num ],
# ?O
[ ?P, ?s, :property ],
# ?Q
[ ?R, ?s, :rootwin_id ],
[ ?S, ?s, :subwindow ],
[ ?T, ?n, :type ],
# ?U
# ?V
[ ?W, ?w, :widget ],
[ ?X, ?n, :x_root ],
[ ?Y, ?n, :y_root ],
# ?Z
nil
]
- <'%' subst-key char>, <proc type char>, <instance var (accessor) name>
LONGKEY_TBL
:
[
# for example, for %CTT and %CST subst-key on tkdnd-2.0
# ['CTT', ?l, :drop_target_type],
# ['CST', ?l, :drop_source_type],
]
- <'%' subst-key str>, <proc type char>, <instance var (accessor) name>
-
the subst-key string will be converted to a bytecode (128+idx).
PROC_TBL
:
[
[ ?n, TkComm.method(:num_or_str) ],
[ ?s, TkComm.method(:string) ],
[ ?b, TkComm.method(:bool) ],
[ ?w, TkComm.method(:window) ],
[ ?x, proc{|val|
begin
TkComm::number(val)
rescue ArgumentError
val
end
}
],
nil
]
- <proc type char>, <proc/method to convert tcl-str to ruby-obj>
ALIAS_TBL
:
{
:button => :num,
:data => :detail,
:delta => :wheel_delta,
:root => :rootwin_id,
:rootx => :x_root,
:root_x => :x_root,
:rooty => :y_root,
:root_y => :y_root,
:sendevent => :send_event,
:window => :widget
}
alias button num alias delta wheel_delta alias root rootwin_id alias
rootx x_root alias root_x x_root alias rooty y_root alias root_y y_root
alias sendevent send_event