Class: Tk::Canvas
Direct Known Subclasses
Tcllib::Plotchart::Barchart, Tcllib::Plotchart::Barchart3D, Tcllib::Plotchart::Boxplot, Tcllib::Plotchart::Ganttchart, Tcllib::Plotchart::IsometricPlot, Tcllib::Plotchart::Piechart, Tcllib::Plotchart::Plot3D, Tcllib::Plotchart::PolarPlot, Tcllib::Plotchart::Radialchart, Tcllib::Plotchart::RibbonChart3D, Tcllib::Plotchart::RightAxis, Tcllib::Plotchart::Timechart, Tcllib::Plotchart::XYPlot, Tcllib::Widget::Canvas_Sqmap, Tcllib::Widget::Canvas_Zoom
Constant Summary
collapse
- TkCommandNames =
['canvas'.freeze].freeze
- WidgetClassName =
'Canvas'.freeze
Constants included
from TkUtil
TkUtil::None, TkUtil::RELEASE_DATE
Constants included
from TkCore
TkCore::EventFlag, TkCore::INTERP, TkCore::INTERP_MUTEX, TkCore::INTERP_ROOT_CHECK, TkCore::INTERP_THREAD, TkCore::INTERP_THREAD_STATUS, TkCore::RUN_EVENTLOOP_ON_MAIN_THREAD, TkCore::WIDGET_DESTROY_HOOK, TkCore::WITH_ENCODING, TkCore::WITH_RUBY_VM
Constants included
from TkComm
TkComm::GET_CONFIGINFO_AS_ARRAY, TkComm::GET_CONFIGINFOwoRES_AS_ARRAY, TkComm::TkExtlibAutoloadModule, TkComm::Tk_CMDTBL, TkComm::Tk_IDs, TkComm::Tk_WINDOWS, TkComm::USE_TCLs_LIST_FUNCTIONS, TkComm::WidgetClassNames
Constants included
from Tk
AUTO_PATH, INTERP, JAPANIZED_TK, LIBRARY_PATH, MAINLOOP, PACKAGE_PATH, RELEASE_DATE, TCL_LIBRARY_PATH, TCL_MAJOR_VERSION, TCL_MINOR_VERSION, TCL_PACKAGE_PATH, TCL_PATCHLEVEL, TCL_PRECISION, TCL_VERSION, TK_MAJOR_VERSION, TK_MINOR_VERSION, TK_PATCHLEVEL, TK_VERSION, Tkextlib_RELEASE_DATE, TreeCtrl_Widget, X_Scrollable, Y_Scrollable
Constants included
from Encoding
Encoding::BINARY, Encoding::BINARY_NAME, Encoding::DEFAULT_EXTERNAL_NAME, Encoding::DEFAULT_INTERNAL_NAME, Encoding::ENCODING_TABLE, Encoding::RubyEncoding, Encoding::UNKNOWN, Encoding::UTF8_NAME
TkDND::Shape::PACKAGE_NAME
Instance Method Summary
collapse
-
#__BLT_EPS_item_boolval_optkeys ⇒ Object
-
#__BLT_EPS_item_strval_optkeys ⇒ Object
-
#__destroy_hook__ ⇒ Object
-
#addtag(tag, mode, *args) ⇒ Object
-
#addtag_above(tagOrId, target) ⇒ Object
-
#addtag_all(tagOrId) ⇒ Object
-
#addtag_below(tagOrId, target) ⇒ Object
-
#addtag_closest(tagOrId, x, y, halo = None, start = None) ⇒ Object
-
#addtag_enclosed(tagOrId, x1, y1, x2, y2) ⇒ Object
-
#addtag_overlapping(tagOrId, x1, y1, x2, y2) ⇒ Object
-
#addtag_withtag(tagOrId, tag) ⇒ Object
-
#bbox(tagOrId, *tags) ⇒ Object
-
#canvasx(screen_x, *args) ⇒ Object
(also: #canvas_x)
-
#canvasy(screen_y, *args) ⇒ Object
(also: #canvas_y)
-
#coords(tag, *args) ⇒ Object
-
#create(type, *args) ⇒ Object
create a canvas item without creating a TkcItem object.
-
#create_itemobj_from_id(idnum) ⇒ Object
-
#dchars(tag, first, last = None) ⇒ Object
-
#delete(*args) ⇒ Object
(also: #remove)
-
#dtag(tag, tag_to_del = None) ⇒ Object
(also: #deltag)
-
#find(mode, *args) ⇒ Object
-
#find_above(target) ⇒ Object
-
#find_all ⇒ Object
-
#find_below(target) ⇒ Object
-
#find_closest(x, y, halo = None, start = None) ⇒ Object
-
#find_enclosed(x1, y1, x2, y2) ⇒ Object
-
#find_overlapping(x1, y1, x2, y2) ⇒ Object
-
#find_withtag(tag) ⇒ Object
-
#gettags(tagOrId) ⇒ Object
-
#icursor(tagOrId, index) ⇒ Object
-
#imove(tagOrId, idx, x, y) ⇒ Object
(also: #i_move)
-
#index(tagOrId, idx) ⇒ Object
-
#insert(tagOrId, index, string) ⇒ Object
-
#itembind(tag, context, *args) ⇒ Object
def itembind(tag, context, cmd=Proc.new, *args) _bind([path, "bind", tagid(tag)], context, cmd, *args) self end.
-
#itembind_append(tag, context, *args) ⇒ Object
def itembind_append(tag, context, cmd=Proc.new, *args) _bind_append([path, "bind", tagid(tag)], context, cmd, *args) self end.
-
#itembind_remove(tag, context) ⇒ Object
-
#itembindinfo(tag, context = nil) ⇒ Object
-
#itemfocus(tagOrId = nil) ⇒ Object
-
#itemtype(tag) ⇒ Object
-
#lower(tag, below = nil) ⇒ Object
def itemcget(tagOrId, option) case option.to_s when 'dash', 'activedash', 'disableddash' conf = tk_send_without_enc('itemcget', tagid(tagOrId), "-#option") if conf =~ /^[0-9]/ list(conf) else conf end when 'text', 'label', 'show', 'data', 'file', 'maskdata', 'maskfile' _fromUTF8(tk_send_without_enc('itemcget', tagid(tagOrId), "-#option")) when 'font', 'kanjifont' #fnt = tk_tcl2ruby(tk_send('itemcget', tagid(tagOrId), "-#option")) fnt = tk_tcl2ruby(_fromUTF8(tk_send_with_enc('itemcget', tagid(tagOrId), '-font'))) unless fnt.kind_of?(TkFont) fnt = tagfontobj(tagid(tagOrId), fnt) end if option.to_s == 'kanjifont' && JAPANIZED_TK && TK_VERSION =~ /^4.*/ # obsolete; just for compatibility fnt.kanji_font else fnt end else tk_tcl2ruby(_fromUTF8(tk_send_without_enc('itemcget', tagid(tagOrId), "-#option"))) end end.
-
#move(tag, dx, dy) ⇒ Object
-
#moveto(tag, x, y) ⇒ Object
(also: #move_to)
-
#postscript(keys) ⇒ Object
-
#raise(tag, above = nil) ⇒ Object
-
#rchars(tag, first, last, str_or_coords) ⇒ Object
(also: #replace_chars, #replace_coords)
-
#scale(tag, x, y, xs, ys) ⇒ Object
-
#scan_dragto(x, y, gain = None) ⇒ Object
-
#scan_mark(x, y) ⇒ Object
-
#select(mode, *args) ⇒ Object
-
#select_adjust(tagOrId, index) ⇒ Object
-
#select_clear ⇒ Object
-
#select_from(tagOrId, index) ⇒ Object
-
#select_item ⇒ Object
-
#select_to(tagOrId, index) ⇒ Object
Methods included from Scrollable
#autoscroll, #unautoscroll
#yscrollbar, #yscrollcommand, #yview, #yview_moveto, #yview_scroll
#xscrollbar, #xscrollcommand, #xview, #xview_moveto, #xview_scroll
__IGNORE_UNKNOWN_CONFIGURE_OPTION__, #__check_available_itemconfigure_options, #__current_itemconfiginfo, __set_IGNORE_UNKNOWN_CONFIGURE_OPTION__!, #current_itemconfiginfo, #itemcget, #itemcget_strict, #itemcget_tkstring, #itemconfiginfo, #itemconfigure
#__conv_item_keyonly_opts, #itemconfig_hash_kv
Methods included from TkUtil
#_conv_args, _conv_args, #_fromUTF8, #_get_eval_enc_str, _get_eval_enc_str, #_get_eval_string, _get_eval_string, _symbolkey2str, #_symbolkey2str, #_toUTF8, #bool, bool, callback, eval_cmd, #hash_kv, hash_kv, install_cmd, #num_or_nil, num_or_nil, num_or_str, #num_or_str, number, #number, string, #string, uninstall_cmd, untrust
#kanjifont_copy, #kanjitagfont_configure, #latintagfont_configure, #latintagfont_copy, #tagfont_configinfo, #tagfont_configure, #tagfont_copy
Methods inherited from TkWindow
_widget_inspect_full_=, _widget_inspect_full_?, #bind_class, #bindtags, #bindtags=, #bindtags_shift, #bindtags_unshift, #caret, #colormodel, #command, #cursor_propagate, #cursor_restore, database_class, #database_class, #database_classname, database_classname, #destroy, #eventloop_wait_destroy, #eventloop_wait_visibility, #exist?, #grab, #grab_current, #grab_release, #grab_set, #grab_set_global, #grab_status, #grid, #grid_anchor, #grid_bbox, #grid_column, #grid_columnconfig, #grid_columnconfiginfo, #grid_config, #grid_forget, #grid_in, #grid_info, #grid_location, #grid_propagate, #grid_remove, #grid_row, #grid_rowconfig, #grid_rowconfiginfo, #grid_size, #grid_slaves, #initialize, #inspect, #pack, #pack_config, #pack_forget, #pack_in, #pack_info, #pack_propagate, #pack_slaves, #place, #place_config, #place_configinfo, #place_forget, #place_in, #place_info, #place_slaves, #set_focus, #thread_wait_destroy, #thread_wait_visibility, #tktrans_get_image, #tktrans_set_image, to_eval, #wait_destroy, #wait_visibility
Methods included from TkBindCore
#bind, #bind_append, #bind_remove, #bindinfo
Methods included from Busy
#busy, #busy_cget, #busy_configinfo, #busy_configure, #busy_current?, #busy_current_configinfo, #busy_forget, #busy_status, current, forget, hold, method_missing, status
Methods included from TkCore
#_tk_call_to_list_core, #after, #after_cancel, #after_idle, #appname, #appsend, #appsend_deny, #appsend_displayof, callback, #callback_break, #callback_continue, #callback_return, #chooseColor, #chooseDirectory, #do_one_event, #event_generate, #getMultipleOpenFile, #getMultipleSaveFile, #getOpenFile, #getSaveFile, #get_eventloop_tick, #get_eventloop_weight, #get_no_event_wait, #inactive, #inactive_displayof, #info, #ip_eval, #ip_eval_with_enc, #ip_eval_without_enc, #ip_invoke, #ip_invoke_with_enc, #ip_invoke_without_enc, #is_mainloop?, #load_cmd_on_ip, #mainloop, #mainloop_exist?, #mainloop_thread?, #mainloop_watchdog, #messageBox, #rb_appsend, #rb_appsend_displayof, #reset_inactive, #reset_inactive_displayof, #restart, #scaling, #scaling_displayof, #set_eventloop_tick, #set_eventloop_weight, #set_no_event_wait, #tk_call, #tk_call_to_list, #tk_call_to_list_with_enc, #tk_call_to_list_without_enc, #tk_call_to_simplelist, #tk_call_to_simplelist_with_enc, #tk_call_to_simplelist_without_enc, #tk_call_with_enc, #tk_call_without_enc, #windowingsystem
Methods included from TkComm
_at, _callback_entry?, _callback_entry_class?, _curr_cmd_id, _fromUTF8, _genobj_for_tkwidget, _next_cmd_id, _toUTF8, array2tk_list, #bind, #bind_all, #bind_append, #bind_append_all, #bind_remove, #bind_remove_all, #bindinfo, #bindinfo_all, bool, image_obj, #install_cmd, install_cmd, list, num_or_nil, num_or_str, number, procedure, simplelist, slice_ary, string, #subst, tk_split_escstr, tk_split_list, tk_split_simplelist, tk_split_sublist, tk_tcl2ruby, uninstall_cmd, #uninstall_cmd, window
Methods included from TkEvent
#install_bind, #install_bind_for_event_class
Methods included from TkWinfo
appname, atom, atomname, cells, children, classname, colormapfull, containing, depth, exist?, fpixels, geometry, height, id, interps, manager, mapped?, parent, pixels, pointerx, pointerxy, pointery, reqheight, reqwidth, rgb, rootx, rooty, screen, screencells, screendepth, screenheight, screenmmheight, screenmmwidth, screenvisual, screenwidth, server, toplevel, viewable, visual, visualid, visualsavailable, vrootheight, vrootwidth, vrootx, vrooty, widget, width, #winfo_appname, #winfo_atom, #winfo_atomname, #winfo_cells, #winfo_children, #winfo_classname, #winfo_colormapfull, #winfo_containing, #winfo_depth, #winfo_exist?, #winfo_fpixels, #winfo_geometry, #winfo_height, #winfo_id, #winfo_interps, #winfo_manager, #winfo_mapped?, #winfo_parent, #winfo_pixels, #winfo_pointerx, #winfo_pointerxy, #winfo_pointery, #winfo_reqheight, #winfo_reqwidth, #winfo_rgb, #winfo_rootx, #winfo_rooty, #winfo_screen, #winfo_screencells, #winfo_screendepth, #winfo_screenheight, #winfo_screenmmheight, #winfo_screenmmwidth, #winfo_screenvisual, #winfo_screenwidth, #winfo_server, #winfo_toplevel, #winfo_viewable, #winfo_visual, #winfo_visualid, #winfo_visualsavailable, #winfo_vrootheight, #winfo_vrootwidth, #winfo_vrootx, #winfo_vrooty, #winfo_widget, #winfo_width, #winfo_x, #winfo_y, x, y
Methods included from Tk
BinaryString, EncodedString, #Grid, #Pack, #Place, UTF8_String, __create_widget_set__, __disable_toplevel_control__, __import_toplevel_aliases__, __regist_toplevel_aliases__, __remove_toplevel_aliases__, __reset_toplevel_owner__, __set_loaded_toplevel_aliases__, __set_toplevel_aliases__, __toplevel_alias_setup_proc__, add_kinsoku, bell, bell_on_display, const_missing, current_grabs, cursor_display, default_widget_set, default_widget_set=, delete_kinsoku, destroy, #encoding, #encoding=, errorCode, errorInfo, exit, focus, focus_lastfor, focus_next, focus_prev, focus_to, fromUTF8, grid, grid_forget, has_mainwindow?, load_tcllibrary, load_tclscript, load_tclscript_rsrc, load_tclscript_rsrcid, lower_window, pack, pack_forget, pkgconfig_get, pkgconfig_list, place, place_forget, raise_window, #root, show_kinsoku, sleep, strictMotif, subst_tk_backslash, subst_utf_backslash, tcl_pkgconfig_get, tcl_pkgconfig_list, thread_update, thread_update_idletasks, tk_pkgconfig_get, tk_pkgconfig_list, toUTF8, to_backslash_sequence, toplevel_aliases_on_widget_set, ungrid, unload_tcllibrary, unpack, unplace, update, #update, update_idletasks, utf_to_backslash, utf_to_backslash_sequence, wakeup, widget_set_symbols
Methods included from Encoding
#default_encoding=, #encoding=, #encoding_convertfrom, #encoding_convertto, #encoding_dirs, #encoding_dirs=, #encoding_name, #encoding_names, #encoding_obj, #encoding_objs, #encoding_system=, #encoding_system_name, #encoding_system_obj, #force_default_encoding, #force_default_encoding=, #force_default_encoding?, #tk_encoding_names
package_name, package_patchlevel, package_version, #shape_bounds, #shape_get, #shape_offset, #shape_set, #shape_update, version
Methods included from TkDND::DND
#dnd_bindsource, #dnd_bindsource_info, #dnd_bindtarget, #dnd_bindtarget_info, #dnd_clearsource, #dnd_cleartarget, #dnd_drag, version
Methods inherited from TkObject
#destroy, #epath, #event_generate, #method_missing, #path, #tk_send, #tk_send_to_list, #tk_send_to_list_with_enc, #tk_send_to_list_without_enc, #tk_send_to_simplelist, #tk_send_to_simplelist_with_enc, #tk_send_to_simplelist_without_enc, #tk_send_with_enc, #tk_send_without_enc, #to_eval
#[], #[]=, __IGNORE_UNKNOWN_CONFIGURE_OPTION__, #__check_available_configure_options, __set_IGNORE_UNKNOWN_CONFIGURE_OPTION__!, #cget, #cget_strict, #cget_tkstring, #config_hash_kv, #configinfo, #configure, #configure_cmd, #current_configinfo
#font_configinfo, #font_configure, #font_copy, #kanjifont_configure, #kanjifont_copy, #latinfont_configure, #latinfont_copy
Methods inherited from TkKernel
new
Constructor Details
This class inherits a constructor from TkWindow
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
in the class TkObject
Instance Method Details
#__BLT_EPS_item_boolval_optkeys ⇒ Object
26
|
# File 'lib/tkextlib/blt/eps.rb', line 26
alias __BLT_EPS_item_boolval_optkeys __item_boolval_optkeys
|
#__BLT_EPS_item_strval_optkeys ⇒ Object
18
|
# File 'lib/tkextlib/blt/eps.rb', line 18
alias __BLT_EPS_item_strval_optkeys __item_strval_optkeys
|
#addtag(tag, mode, *args) ⇒ Object
93
94
95
96
97
98
99
100
|
# File 'lib/tk/canvas.rb', line 93
def addtag(tag, mode, *args)
mode = mode.to_s
if args[0] && mode =~ /^(above|below|with(tag)?)$/
args[0] = tagid(args[0])
end
tk_send_without_enc('addtag', tagid(tag), mode, *args)
self
end
|
#addtag_above(tagOrId, target) ⇒ Object
101
102
103
|
# File 'lib/tk/canvas.rb', line 101
def addtag_above(tagOrId, target)
addtag(tagOrId, 'above', tagid(target))
end
|
#addtag_all(tagOrId) ⇒ Object
104
105
106
|
# File 'lib/tk/canvas.rb', line 104
def addtag_all(tagOrId)
addtag(tagOrId, 'all')
end
|
#addtag_below(tagOrId, target) ⇒ Object
107
108
109
|
# File 'lib/tk/canvas.rb', line 107
def addtag_below(tagOrId, target)
addtag(tagOrId, 'below', tagid(target))
end
|
#addtag_closest(tagOrId, x, y, halo = None, start = None) ⇒ Object
110
111
112
|
# File 'lib/tk/canvas.rb', line 110
def addtag_closest(tagOrId, x, y, halo=None, start=None)
addtag(tagOrId, 'closest', x, y, halo, start)
end
|
#addtag_enclosed(tagOrId, x1, y1, x2, y2) ⇒ Object
113
114
115
|
# File 'lib/tk/canvas.rb', line 113
def addtag_enclosed(tagOrId, x1, y1, x2, y2)
addtag(tagOrId, 'enclosed', x1, y1, x2, y2)
end
|
#addtag_overlapping(tagOrId, x1, y1, x2, y2) ⇒ Object
116
117
118
|
# File 'lib/tk/canvas.rb', line 116
def addtag_overlapping(tagOrId, x1, y1, x2, y2)
addtag(tagOrId, 'overlapping', x1, y1, x2, y2)
end
|
#addtag_withtag(tagOrId, tag) ⇒ Object
119
120
121
|
# File 'lib/tk/canvas.rb', line 119
def addtag_withtag(tagOrId, tag)
addtag(tagOrId, 'withtag', tagid(tag))
end
|
#bbox(tagOrId, *tags) ⇒ Object
123
124
125
126
|
# File 'lib/tk/canvas.rb', line 123
def bbox(tagOrId, *tags)
list(tk_send_without_enc('bbox', tagid(tagOrId),
*tags.collect{|t| tagid(t)}))
end
|
#canvasx(screen_x, *args) ⇒ Object
Also known as:
canvas_x
167
168
169
170
|
# File 'lib/tk/canvas.rb', line 167
def canvasx(screen_x, *args)
number(tk_send_without_enc('canvasx', screen_x, *args))
end
|
#canvasy(screen_y, *args) ⇒ Object
Also known as:
canvas_y
171
172
173
174
|
# File 'lib/tk/canvas.rb', line 171
def canvasy(screen_y, *args)
number(tk_send_without_enc('canvasy', screen_y, *args))
end
|
#coords(tag, *args) ⇒ Object
178
179
180
181
182
183
184
185
|
# File 'lib/tk/canvas.rb', line 178
def coords(tag, *args)
if args.empty?
tk_split_list(tk_send_without_enc('coords', tagid(tag)))
else
tk_send_without_enc('coords', tagid(tag), *(args.flatten))
self
end
end
|
#create(type, *args) ⇒ Object
create a canvas item without creating a TkcItem object
87
88
89
90
|
# File 'lib/tk/canvas.rb', line 87
def create(type, *args)
type = TkcItem.type2class(type.to_s) unless type.kind_of?(TkcItem)
type.create(self, *args)
end
|
#create_itemobj_from_id(idnum) ⇒ Object
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
|
# File 'lib/tk/canvas.rb', line 608
def create_itemobj_from_id(idnum)
id = TkcItem.id2obj(self, idnum.to_i)
return id if id.kind_of?(TkcItem)
typename = tk_send('type', id)
unless type = TkcItem.type2class(typename)
(itemclass = typename.dup)[0,1] = typename[0,1].upcase
type = TkcItem.const_set(itemclass, Class.new(TkcItem))
type.const_set("CItemTypeName", typename.freeze)
TkcItem::CItemTypeToClass[typename] = type
end
canvas = self
(obj = type.allocate).instance_eval{
@parent = @c = canvas
@path = canvas.path
@id = id
TkcItem::CItemID_TBL.mutex.synchronize{
TkcItem::CItemID_TBL[@path] = {} unless TkcItem::CItemID_TBL[@path]
TkcItem::CItemID_TBL[@path][@id] = self
}
}
end
|
#dchars(tag, first, last = None) ⇒ Object
187
188
189
190
191
|
# File 'lib/tk/canvas.rb', line 187
def dchars(tag, first, last=None)
tk_send_without_enc('dchars', tagid(tag),
_get_eval_enc_str(first), _get_eval_enc_str(last))
self
end
|
#delete(*args) ⇒ Object
Also known as:
remove
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
|
# File 'lib/tk/canvas.rb', line 193
def delete(*args)
tbl = nil
TkcItem::CItemID_TBL.mutex.synchronize{
tbl = TkcItem::CItemID_TBL[self.path]
}
if tbl
args.each{|tag|
find('withtag', tag).each{|item|
if item.kind_of?(TkcItem)
TkcItem::CItemID_TBL.mutex.synchronize{
tbl.delete(item.id)
}
end
}
}
end
tk_send_without_enc('delete', *args.collect{|t| tagid(t)})
self
end
|
#dtag(tag, tag_to_del = None) ⇒ Object
Also known as:
deltag
214
215
216
217
|
# File 'lib/tk/canvas.rb', line 214
def dtag(tag, tag_to_del=None)
tk_send_without_enc('dtag', tagid(tag), tagid(tag_to_del))
self
end
|
#find(mode, *args) ⇒ Object
220
221
222
223
224
|
# File 'lib/tk/canvas.rb', line 220
def find(mode, *args)
list(tk_send_without_enc('find', mode, *args)).collect!{|id|
TkcItem.id2obj(self, id)
}
end
|
#find_above(target) ⇒ Object
225
226
227
|
# File 'lib/tk/canvas.rb', line 225
def find_above(target)
find('above', tagid(target))
end
|
228
229
230
|
# File 'lib/tk/canvas.rb', line 228
def find_all
find('all')
end
|
#find_below(target) ⇒ Object
231
232
233
|
# File 'lib/tk/canvas.rb', line 231
def find_below(target)
find('below', tagid(target))
end
|
#find_closest(x, y, halo = None, start = None) ⇒ Object
234
235
236
|
# File 'lib/tk/canvas.rb', line 234
def find_closest(x, y, halo=None, start=None)
find('closest', x, y, halo, start)
end
|
#find_enclosed(x1, y1, x2, y2) ⇒ Object
237
238
239
|
# File 'lib/tk/canvas.rb', line 237
def find_enclosed(x1, y1, x2, y2)
find('enclosed', x1, y1, x2, y2)
end
|
#find_overlapping(x1, y1, x2, y2) ⇒ Object
240
241
242
|
# File 'lib/tk/canvas.rb', line 240
def find_overlapping(x1, y1, x2, y2)
find('overlapping', x1, y1, x2, y2)
end
|
#find_withtag(tag) ⇒ Object
243
244
245
|
# File 'lib/tk/canvas.rb', line 243
def find_withtag(tag)
find('withtag', tag)
end
|
261
262
263
264
265
|
# File 'lib/tk/canvas.rb', line 261
def gettags(tagOrId)
list(tk_send_without_enc('gettags', tagid(tagOrId))).collect{|tag|
TkcTag.id2obj(self, tag)
}
end
|
#icursor(tagOrId, index) ⇒ Object
267
268
269
270
|
# File 'lib/tk/canvas.rb', line 267
def icursor(tagOrId, index)
tk_send_without_enc('icursor', tagid(tagOrId), index)
self
end
|
#imove(tagOrId, idx, x, y) ⇒ Object
Also known as:
i_move
272
273
274
275
|
# File 'lib/tk/canvas.rb', line 272
def imove(tagOrId, idx, x, y)
tk_send_without_enc('imove', tagid(tagOrId), idx, x, y)
self
end
|
#index(tagOrId, idx) ⇒ Object
278
279
280
|
# File 'lib/tk/canvas.rb', line 278
def index(tagOrId, idx)
number(tk_send_without_enc('index', tagid(tagOrId), idx))
end
|
#insert(tagOrId, index, string) ⇒ Object
282
283
284
285
286
|
# File 'lib/tk/canvas.rb', line 282
def insert(tagOrId, index, string)
tk_send_without_enc('insert', tagid(tagOrId), index,
_get_eval_enc_str(string))
self
end
|
#itembind(tag, context, *args) ⇒ Object
def itembind(tag, context, cmd=Proc.new, *args)
_bind([path, "bind", tagid(tag)], context, cmd, *args)
self
end
132
133
134
135
136
137
138
139
140
141
|
# File 'lib/tk/canvas.rb', line 132
def itembind(tag, context, *args)
if TkComm._callback_entry?(args[0]) || !block_given?
cmd = args.shift
else
cmd = Proc.new
end
_bind([path, "bind", tagid(tag)], context, cmd, *args)
self
end
|
#itembind_append(tag, context, *args) ⇒ Object
def itembind_append(tag, context, cmd=Proc.new, *args)
_bind_append([path, "bind", tagid(tag)], context, cmd, *args)
self
end
147
148
149
150
151
152
153
154
155
156
|
# File 'lib/tk/canvas.rb', line 147
def itembind_append(tag, context, *args)
if TkComm._callback_entry?(args[0]) || !block_given?
cmd = args.shift
else
cmd = Proc.new
end
_bind_append([path, "bind", tagid(tag)], context, cmd, *args)
self
end
|
#itembind_remove(tag, context) ⇒ Object
158
159
160
161
|
# File 'lib/tk/canvas.rb', line 158
def itembind_remove(tag, context)
_bind_remove([path, "bind", tagid(tag)], context)
self
end
|
#itembindinfo(tag, context = nil) ⇒ Object
163
164
165
|
# File 'lib/tk/canvas.rb', line 163
def itembindinfo(tag, context=nil)
_bindinfo([path, "bind", tagid(tag)], context)
end
|
#itemfocus(tagOrId = nil) ⇒ Object
247
248
249
250
251
252
253
254
255
256
257
258
259
|
# File 'lib/tk/canvas.rb', line 247
def itemfocus(tagOrId=nil)
if tagOrId
tk_send_without_enc('focus', tagid(tagOrId))
self
else
ret = tk_send_without_enc('focus')
if ret == ""
nil
else
TkcItem.id2obj(self, ret)
end
end
end
|
#itemtype(tag) ⇒ Object
604
605
606
|
# File 'lib/tk/canvas.rb', line 604
def itemtype(tag)
TkcItem.type2class(tk_send('type', tagid(tag)))
end
|
#lower(tag, below = nil) ⇒ Object
def itemcget(tagOrId, option)
case option.to_s
when 'dash', 'activedash', 'disableddash'
conf = tk_send_without_enc('itemcget', tagid(tagOrId), "-#{option}")
if conf =~ /^[0-9]/
list(conf)
else
conf
end
when 'text', 'label', 'show', 'data', 'file', 'maskdata', 'maskfile'
_fromUTF8(tk_send_without_enc('itemcget', tagid(tagOrId), "-#{option}"))
when 'font', 'kanjifont'
#fnt = tk_tcl2ruby(tk_send('itemcget', tagid(tagOrId), "-#{option}"))
fnt = tk_tcl2ruby(_fromUTF8(tk_send_with_enc('itemcget', tagid(tagOrId), '-font')))
unless fnt.kind_of?(TkFont)
fnt = tagfontobj(tagid(tagOrId), fnt)
end
if option.to_s == 'kanjifont' && JAPANIZED_TK && TK_VERSION =~ /^4\.*/
# obsolete; just for compatibility
fnt.kanji_font
else
fnt
end
else
tk_tcl2ruby(_fromUTF8(tk_send_without_enc('itemcget', tagid(tagOrId),
"-#{option}")))
end
end
def itemconfigure(tagOrId, key, value=None)
if key.kind_of? Hash
key = _symbolkey2str(key)
coords = key.delete('coords')
self.coords(tagOrId, coords) if coords
if ( key['font'] || key['kanjifont'] \
|| key['latinfont'] || key['asciifont'] )
tagfont_configure(tagid(tagOrId), key.dup)
else
_fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId),
*hash_kv(key, true)))
end
else
if ( key == 'coords' || key == :coords )
self.coords(tagOrId, value)
elsif ( key == 'font' || key == :font ||
key == 'kanjifont' || key == :kanjifont ||
key == 'latinfont' || key == :latinfont ||
key == 'asciifont' || key == :asciifont )
if value == None
tagfontobj(tagid(tagOrId))
else
tagfont_configure(tagid(tagOrId), {key=>value})
end
else
_fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId),
"-#{key}", _get_eval_enc_str(value)))
end
end
self
end
# def itemconfigure(tagOrId, key, value=None) # if key.kind_of? Hash # tk_send 'itemconfigure', tagid(tagOrId), *hash_kv(key) # else # tk_send 'itemconfigure', tagid(tagOrId), "-#key", value # end # end # def itemconfigure(tagOrId, keys) # tk_send 'itemconfigure', tagid(tagOrId), *hash_kv(keys) # end
def itemconfiginfo(tagOrId, key=nil)
if TkComm::GET_CONFIGINFO_AS_ARRAY
if key
case key.to_s
when 'coords'
return ['coords', '', '', '', self.coords(tagOrId)]
when 'dash', 'activedash', 'disableddash'
conf = tk_split_simplelist(tk_send_without_enc('itemconfigure', tagid(tagOrId), "-#{key}"))
if conf[3] && conf[3] =~ /^[0-9]/
conf[3] = list(conf[3])
end
if conf[4] && conf[4] =~ /^[0-9]/
conf[4] = list(conf[4])
end
when 'text', 'label', 'show', 'data', 'file', 'maskdata', 'maskfile'
conf = tk_split_simplelist(_fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId), "-#{key}")))
when 'font', 'kanjifont'
conf = tk_split_simplelist(_fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId),"-#{key}")))
conf[4] = tagfont_configinfo(tagid(tagOrId), conf[4])
else
conf = tk_split_list(_fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId), "-#{key}")))
end
conf[0] = conf[0][1..-1]
conf
else
ret = tk_split_simplelist(_fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId)))).collect{|conflist|
conf = tk_split_simplelist(conflist)
conf[0] = conf[0][1..-1]
case conf[0]
when 'text', 'label', 'show', 'data', 'file', 'maskdata', 'maskfile'
when 'dash', 'activedash', 'disableddash'
if conf[3] && conf[3] =~ /^[0-9]/
conf[3] = list(conf[3])
end
if conf[4] && conf[4] =~ /^[0-9]/
conf[4] = list(conf[4])
end
else
if conf[3]
if conf[3].index('{')
conf[3] = tk_split_list(conf[3])
else
conf[3] = tk_tcl2ruby(conf[3])
end
end
if conf[4]
if conf[4].index('{')
conf[4] = tk_split_list(conf[4])
else
conf[4] = tk_tcl2ruby(conf[4])
end
end
end
conf[1] = conf[1][1..-1] if conf.size == 2 conf
}
fontconf = ret.assoc('font')
if fontconf
ret.delete_if{|item| item[0] == 'font' || item[0] == 'kanjifont'}
fontconf[4] = tagfont_configinfo(tagid(tagOrId), fontconf[4])
ret.push(fontconf)
end
ret << ['coords', '', '', '', self.coords(tagOrId)]
end
else if key
case key.to_s
when 'coords'
{'coords' => ['', '', '', self.coords(tagOrId)]}
when 'dash', 'activedash', 'disableddash'
conf = tk_split_simplelist(tk_send_without_enc('itemconfigure',
tagid(tagOrId),
"-#{key}"))
if conf[3] && conf[3] =~ /^[0-9]/
conf[3] = list(conf[3])
end
if conf[4] && conf[4] =~ /^[0-9]/
conf[4] = list(conf[4])
end
when 'text', 'label', 'show', 'data', 'file', 'maskdata', 'maskfile'
conf = tk_split_simplelist(_fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId), "-#{key}")))
when 'font', 'kanjifont'
conf = tk_split_simplelist(_fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId),"-#{key}")))
conf[4] = tagfont_configinfo(tagid(tagOrId), conf[4])
else
conf = tk_split_list(_fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId), "-#{key}")))
end
key = conf.shift[1..-1]
{ key => conf }
else
ret = {}
tk_split_simplelist(_fromUTF8(tk_send_without_enc('itemconfigure', tagid(tagOrId)))).each{|conflist|
conf = tk_split_simplelist(conflist)
key = conf.shift[1..-1]
case key
when 'text', 'label', 'show', 'data', 'file', 'maskdata', 'maskfile'
when 'dash', 'activedash', 'disableddash'
if conf[2] && conf[2] =~ /^[0-9]/
conf[2] = list(conf[2])
end
if conf[3] && conf[3] =~ /^[0-9]/
conf[3] = list(conf[3])
end
else
if conf[2]
if conf[2].index('{')
conf[2] = tk_split_list(conf[2])
else
conf[2] = tk_tcl2ruby(conf[2])
end
end
if conf[3]
if conf[3].index('{')
conf[3] = tk_split_list(conf[3])
else
conf[3] = tk_tcl2ruby(conf[3])
end
end
end
if conf.size == 1
ret[key] = conf[0][1..-1] else
ret[key] = conf
end
}
fontconf = ret['font']
if fontconf
ret.delete('font')
ret.delete('kanjifont')
fontconf[3] = tagfont_configinfo(tagid(tagOrId), fontconf[3])
ret['font'] = fontconf
end
ret['coords'] = ['', '', '', self.coords(tagOrId)]
ret
end
end
end
def current_itemconfiginfo(tagOrId, key=nil)
if TkComm::GET_CONFIGINFO_AS_ARRAY
if key
conf = itemconfiginfo(tagOrId, key)
{conf[0] => conf[4]}
else
ret = {}
itemconfiginfo(tagOrId).each{|conf|
ret[conf[0]] = conf[4] if conf.size > 2
}
ret
end
else ret = {}
itemconfiginfo(tagOrId, key).each{|k, conf|
ret[k] = conf[-1] if conf.kind_of?(Array)
}
ret
end
end
527
528
529
530
531
532
533
534
|
# File 'lib/tk/canvas.rb', line 527
def lower(tag, below=nil)
if below
tk_send_without_enc('lower', tagid(tag), tagid(below))
else
tk_send_without_enc('lower', tagid(tag))
end
self
end
|
#move(tag, dx, dy) ⇒ Object
536
537
538
539
|
# File 'lib/tk/canvas.rb', line 536
def move(tag, dx, dy)
tk_send_without_enc('move', tagid(tag), dx, dy)
self
end
|
#moveto(tag, x, y) ⇒ Object
Also known as:
move_to
541
542
543
544
545
|
# File 'lib/tk/canvas.rb', line 541
def moveto(tag, x, y)
tk_send_without_enc('moveto', tagid(tag), x, y)
self
end
|
#postscript(keys) ⇒ Object
548
549
550
|
# File 'lib/tk/canvas.rb', line 548
def postscript(keys)
tk_send("postscript", *hash_kv(keys))
end
|
#raise(tag, above = nil) ⇒ Object
552
553
554
555
556
557
558
559
|
# File 'lib/tk/canvas.rb', line 552
def raise(tag, above=nil)
if above
tk_send_without_enc('raise', tagid(tag), tagid(above))
else
tk_send_without_enc('raise', tagid(tag))
end
self
end
|
#rchars(tag, first, last, str_or_coords) ⇒ Object
Also known as:
replace_chars, replace_coords
561
562
563
564
565
566
|
# File 'lib/tk/canvas.rb', line 561
def rchars(tag, first, last, str_or_coords)
str_or_coords = str_or_coords.flatten if str_or_coords.kinad_of? Array
tk_send_without_enc('rchars', tagid(tag), first, last, str_or_coords)
self
end
|
#scale(tag, x, y, xs, ys) ⇒ Object
570
571
572
573
|
# File 'lib/tk/canvas.rb', line 570
def scale(tag, x, y, xs, ys)
tk_send_without_enc('scale', tagid(tag), x, y, xs, ys)
self
end
|
#scan_dragto(x, y, gain = None) ⇒ Object
579
580
581
582
|
# File 'lib/tk/canvas.rb', line 579
def scan_dragto(x, y, gain=None)
tk_send_without_enc('scan', 'dragto', x, y, gain)
self
end
|
#scan_mark(x, y) ⇒ Object
575
576
577
578
|
# File 'lib/tk/canvas.rb', line 575
def scan_mark(x, y)
tk_send_without_enc('scan', 'mark', x, y)
self
end
|
#select(mode, *args) ⇒ Object
584
585
586
587
|
# File 'lib/tk/canvas.rb', line 584
def select(mode, *args)
r = tk_send_without_enc('select', mode, *args)
(mode == 'item')? TkcItem.id2obj(self, r): self
end
|
#select_adjust(tagOrId, index) ⇒ Object
588
589
590
|
# File 'lib/tk/canvas.rb', line 588
def select_adjust(tagOrId, index)
select('adjust', tagid(tagOrId), index)
end
|
#select_clear ⇒ Object
591
592
593
|
# File 'lib/tk/canvas.rb', line 591
def select_clear
select('clear')
end
|
#select_from(tagOrId, index) ⇒ Object
594
595
596
|
# File 'lib/tk/canvas.rb', line 594
def select_from(tagOrId, index)
select('from', tagid(tagOrId), index)
end
|
#select_item ⇒ Object
597
598
599
|
# File 'lib/tk/canvas.rb', line 597
def select_item
select('item')
end
|
#select_to(tagOrId, index) ⇒ Object
600
601
602
|
# File 'lib/tk/canvas.rb', line 600
def select_to(tagOrId, index)
select('to', tagid(tagOrId), index)
end
|