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_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
Methods included from TkDND::DND
#dnd_bindsource, #dnd_bindsource_info, #dnd_bindtarget, #dnd_bindtarget_info, #dnd_clearsource, #dnd_cleartarget, #dnd_drag, version
package_name, package_patchlevel, package_version, #shape_bounds, #shape_get, #shape_offset, #shape_set, #shape_update, 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
98
99
100
101
102
103
104
105
|
# File 'lib/tk/canvas.rb', line 98
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
106
107
108
|
# File 'lib/tk/canvas.rb', line 106
def addtag_above(tagOrId, target)
addtag(tagOrId, 'above', tagid(target))
end
|
#addtag_all(tagOrId) ⇒ Object
109
110
111
|
# File 'lib/tk/canvas.rb', line 109
def addtag_all(tagOrId)
addtag(tagOrId, 'all')
end
|
#addtag_below(tagOrId, target) ⇒ Object
112
113
114
|
# File 'lib/tk/canvas.rb', line 112
def addtag_below(tagOrId, target)
addtag(tagOrId, 'below', tagid(target))
end
|
#addtag_closest(tagOrId, x, y, halo = None, start = None) ⇒ Object
115
116
117
|
# File 'lib/tk/canvas.rb', line 115
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
118
119
120
|
# File 'lib/tk/canvas.rb', line 118
def addtag_enclosed(tagOrId, x1, y1, x2, y2)
addtag(tagOrId, 'enclosed', x1, y1, x2, y2)
end
|
#addtag_overlapping(tagOrId, x1, y1, x2, y2) ⇒ Object
121
122
123
|
# File 'lib/tk/canvas.rb', line 121
def addtag_overlapping(tagOrId, x1, y1, x2, y2)
addtag(tagOrId, 'overlapping', x1, y1, x2, y2)
end
|
#addtag_withtag(tagOrId, tag) ⇒ Object
124
125
126
|
# File 'lib/tk/canvas.rb', line 124
def addtag_withtag(tagOrId, tag)
addtag(tagOrId, 'withtag', tagid(tag))
end
|
#bbox(tagOrId, *tags) ⇒ Object
128
129
130
131
|
# File 'lib/tk/canvas.rb', line 128
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
172
173
174
175
|
# File 'lib/tk/canvas.rb', line 172
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
176
177
178
179
|
# File 'lib/tk/canvas.rb', line 176
def canvasy(screen_y, *args)
number(tk_send_without_enc('canvasy', screen_y, *args))
end
|
#coords(tag, *args) ⇒ Object
183
184
185
186
187
188
189
190
|
# File 'lib/tk/canvas.rb', line 183
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
91
92
93
94
95
96
|
# File 'lib/tk/canvas.rb', line 87
def create(type, *args)
if type.kind_of?(Class) && type < TkcItem
elsif TkcItem.type2class(type.to_s)
type = TkcItem.type2class(type.to_s)
else
fail ArgumentError, "type must a subclass of TkcItem class, or a string in CItemTypeToClass"
end
type.create(self, *args)
end
|
#create_itemobj_from_id(idnum) ⇒ Object
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
|
# File 'lib/tk/canvas.rb', line 613
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
192
193
194
195
196
|
# File 'lib/tk/canvas.rb', line 192
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
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
|
# File 'lib/tk/canvas.rb', line 198
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
219
220
221
222
|
# File 'lib/tk/canvas.rb', line 219
def dtag(tag, tag_to_del=None)
tk_send_without_enc('dtag', tagid(tag), tagid(tag_to_del))
self
end
|
#find(mode, *args) ⇒ Object
225
226
227
228
229
|
# File 'lib/tk/canvas.rb', line 225
def find(mode, *args)
list(tk_send_without_enc('find', mode, *args)).collect!{|id|
TkcItem.id2obj(self, id)
}
end
|
#find_above(target) ⇒ Object
230
231
232
|
# File 'lib/tk/canvas.rb', line 230
def find_above(target)
find('above', tagid(target))
end
|
233
234
235
|
# File 'lib/tk/canvas.rb', line 233
def find_all
find('all')
end
|
#find_below(target) ⇒ Object
236
237
238
|
# File 'lib/tk/canvas.rb', line 236
def find_below(target)
find('below', tagid(target))
end
|
#find_closest(x, y, halo = None, start = None) ⇒ Object
239
240
241
|
# File 'lib/tk/canvas.rb', line 239
def find_closest(x, y, halo=None, start=None)
find('closest', x, y, halo, start)
end
|
#find_enclosed(x1, y1, x2, y2) ⇒ Object
242
243
244
|
# File 'lib/tk/canvas.rb', line 242
def find_enclosed(x1, y1, x2, y2)
find('enclosed', x1, y1, x2, y2)
end
|
#find_overlapping(x1, y1, x2, y2) ⇒ Object
245
246
247
|
# File 'lib/tk/canvas.rb', line 245
def find_overlapping(x1, y1, x2, y2)
find('overlapping', x1, y1, x2, y2)
end
|
#find_withtag(tag) ⇒ Object
248
249
250
|
# File 'lib/tk/canvas.rb', line 248
def find_withtag(tag)
find('withtag', tag)
end
|
266
267
268
269
270
|
# File 'lib/tk/canvas.rb', line 266
def gettags(tagOrId)
list(tk_send_without_enc('gettags', tagid(tagOrId))).collect{|tag|
TkcTag.id2obj(self, tag)
}
end
|
#icursor(tagOrId, index) ⇒ Object
272
273
274
275
|
# File 'lib/tk/canvas.rb', line 272
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
277
278
279
280
|
# File 'lib/tk/canvas.rb', line 277
def imove(tagOrId, idx, x, y)
tk_send_without_enc('imove', tagid(tagOrId), idx, x, y)
self
end
|
#index(tagOrId, idx) ⇒ Object
283
284
285
|
# File 'lib/tk/canvas.rb', line 283
def index(tagOrId, idx)
number(tk_send_without_enc('index', tagid(tagOrId), idx))
end
|
#insert(tagOrId, index, string) ⇒ Object
287
288
289
290
291
|
# File 'lib/tk/canvas.rb', line 287
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
137
138
139
140
141
142
143
144
145
146
|
# File 'lib/tk/canvas.rb', line 137
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
152
153
154
155
156
157
158
159
160
161
|
# File 'lib/tk/canvas.rb', line 152
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
163
164
165
166
|
# File 'lib/tk/canvas.rb', line 163
def itembind_remove(tag, context)
_bind_remove([path, "bind", tagid(tag)], context)
self
end
|
#itembindinfo(tag, context = nil) ⇒ Object
168
169
170
|
# File 'lib/tk/canvas.rb', line 168
def itembindinfo(tag, context=nil)
_bindinfo([path, "bind", tagid(tag)], context)
end
|
#itemfocus(tagOrId = nil) ⇒ Object
252
253
254
255
256
257
258
259
260
261
262
263
264
|
# File 'lib/tk/canvas.rb', line 252
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
609
610
611
|
# File 'lib/tk/canvas.rb', line 609
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
532
533
534
535
536
537
538
539
|
# File 'lib/tk/canvas.rb', line 532
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
541
542
543
544
|
# File 'lib/tk/canvas.rb', line 541
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
546
547
548
549
550
|
# File 'lib/tk/canvas.rb', line 546
def moveto(tag, x, y)
tk_send_without_enc('moveto', tagid(tag), x, y)
self
end
|
#postscript(keys) ⇒ Object
553
554
555
|
# File 'lib/tk/canvas.rb', line 553
def postscript(keys)
tk_send("postscript", *hash_kv(keys))
end
|
#raise(tag, above = nil) ⇒ Object
557
558
559
560
561
562
563
564
|
# File 'lib/tk/canvas.rb', line 557
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
566
567
568
569
570
571
|
# File 'lib/tk/canvas.rb', line 566
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
575
576
577
578
|
# File 'lib/tk/canvas.rb', line 575
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
584
585
586
587
|
# File 'lib/tk/canvas.rb', line 584
def scan_dragto(x, y, gain=None)
tk_send_without_enc('scan', 'dragto', x, y, gain)
self
end
|
#scan_mark(x, y) ⇒ Object
580
581
582
583
|
# File 'lib/tk/canvas.rb', line 580
def scan_mark(x, y)
tk_send_without_enc('scan', 'mark', x, y)
self
end
|
#select(mode, *args) ⇒ Object
589
590
591
592
|
# File 'lib/tk/canvas.rb', line 589
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
593
594
595
|
# File 'lib/tk/canvas.rb', line 593
def select_adjust(tagOrId, index)
select('adjust', tagid(tagOrId), index)
end
|
#select_clear ⇒ Object
596
597
598
|
# File 'lib/tk/canvas.rb', line 596
def select_clear
select('clear')
end
|
#select_from(tagOrId, index) ⇒ Object
599
600
601
|
# File 'lib/tk/canvas.rb', line 599
def select_from(tagOrId, index)
select('from', tagid(tagOrId), index)
end
|
#select_item ⇒ Object
602
603
604
|
# File 'lib/tk/canvas.rb', line 602
def select_item
select('item')
end
|
#select_to(tagOrId, index) ⇒ Object
605
606
607
|
# File 'lib/tk/canvas.rb', line 605
def select_to(tagOrId, index)
select('to', tagid(tagOrId), index)
end
|