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, Checkbutton, CloneMenu, Fontchooser, JAPANIZED_TK, LIBRARY_PATH, Labelframe, MenuButton, OptionMenuButton, PACKAGE_PATH, Panedwindow, RELEASE_DATE, Radiobutton, 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, &block) ⇒ Object
-
#itembind_append(tag, context, *args, &block) ⇒ Object
-
#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
__item_cget_cmd, __item_config_cmd, __item_confinfo_cmd, #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__, _replace_toplevel_aliases, add_kinsoku, backup_current_topdef, bell, bell_on_display, const_missing, current_grabs, cursor_display, default_widget_set, default_widget_set=, define_topalias, define_topobj, delete_kinsoku, destroy, 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, regist_sym_for_loaded_file, replace_topalias, replace_topobj, #root, set_topalias, 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, topalias_defined?, toplevel_aliases_on_widget_set, topobj_defined?, 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
27
|
# File 'lib/tkextlib/blt/eps.rb', line 27
alias __BLT_EPS_item_boolval_optkeys __item_boolval_optkeys
|
#__BLT_EPS_item_strval_optkeys ⇒ Object
19
|
# File 'lib/tkextlib/blt/eps.rb', line 19
alias __BLT_EPS_item_strval_optkeys __item_strval_optkeys
|
#addtag(tag, mode, *args) ⇒ Object
99
100
101
102
103
104
105
106
|
# File 'lib/tk/canvas.rb', line 99
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
107
108
109
|
# File 'lib/tk/canvas.rb', line 107
def addtag_above(tagOrId, target)
addtag(tagOrId, 'above', tagid(target))
end
|
#addtag_all(tagOrId) ⇒ Object
110
111
112
|
# File 'lib/tk/canvas.rb', line 110
def addtag_all(tagOrId)
addtag(tagOrId, 'all')
end
|
#addtag_below(tagOrId, target) ⇒ Object
113
114
115
|
# File 'lib/tk/canvas.rb', line 113
def addtag_below(tagOrId, target)
addtag(tagOrId, 'below', tagid(target))
end
|
#addtag_closest(tagOrId, x, y, halo = None, start = None) ⇒ Object
116
117
118
|
# File 'lib/tk/canvas.rb', line 116
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
119
120
121
|
# File 'lib/tk/canvas.rb', line 119
def addtag_enclosed(tagOrId, x1, y1, x2, y2)
addtag(tagOrId, 'enclosed', x1, y1, x2, y2)
end
|
#addtag_overlapping(tagOrId, x1, y1, x2, y2) ⇒ Object
122
123
124
|
# File 'lib/tk/canvas.rb', line 122
def addtag_overlapping(tagOrId, x1, y1, x2, y2)
addtag(tagOrId, 'overlapping', x1, y1, x2, y2)
end
|
#addtag_withtag(tagOrId, tag) ⇒ Object
125
126
127
|
# File 'lib/tk/canvas.rb', line 125
def addtag_withtag(tagOrId, tag)
addtag(tagOrId, 'withtag', tagid(tag))
end
|
#bbox(tagOrId, *tags) ⇒ Object
129
130
131
132
|
# File 'lib/tk/canvas.rb', line 129
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
165
166
167
168
|
# File 'lib/tk/canvas.rb', line 165
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
169
170
171
172
|
# File 'lib/tk/canvas.rb', line 169
def canvasy(screen_y, *args)
number(tk_send_without_enc('canvasy', screen_y, *args))
end
|
#coords(tag, *args) ⇒ Object
176
177
178
179
180
181
182
183
|
# File 'lib/tk/canvas.rb', line 176
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
88
89
90
91
92
93
94
95
96
97
|
# File 'lib/tk/canvas.rb', line 88
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
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
|
# File 'lib/tk/canvas.rb', line 606
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
185
186
187
188
189
|
# File 'lib/tk/canvas.rb', line 185
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
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
# File 'lib/tk/canvas.rb', line 191
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
212
213
214
215
|
# File 'lib/tk/canvas.rb', line 212
def dtag(tag, tag_to_del=None)
tk_send_without_enc('dtag', tagid(tag), tagid(tag_to_del))
self
end
|
#find(mode, *args) ⇒ Object
218
219
220
221
222
|
# File 'lib/tk/canvas.rb', line 218
def find(mode, *args)
list(tk_send_without_enc('find', mode, *args)).collect!{|id|
TkcItem.id2obj(self, id)
}
end
|
#find_above(target) ⇒ Object
223
224
225
|
# File 'lib/tk/canvas.rb', line 223
def find_above(target)
find('above', tagid(target))
end
|
226
227
228
|
# File 'lib/tk/canvas.rb', line 226
def find_all
find('all')
end
|
#find_below(target) ⇒ Object
229
230
231
|
# File 'lib/tk/canvas.rb', line 229
def find_below(target)
find('below', tagid(target))
end
|
#find_closest(x, y, halo = None, start = None) ⇒ Object
232
233
234
|
# File 'lib/tk/canvas.rb', line 232
def find_closest(x, y, halo=None, start=None)
find('closest', x, y, halo, start)
end
|
#find_enclosed(x1, y1, x2, y2) ⇒ Object
235
236
237
|
# File 'lib/tk/canvas.rb', line 235
def find_enclosed(x1, y1, x2, y2)
find('enclosed', x1, y1, x2, y2)
end
|
#find_overlapping(x1, y1, x2, y2) ⇒ Object
238
239
240
|
# File 'lib/tk/canvas.rb', line 238
def find_overlapping(x1, y1, x2, y2)
find('overlapping', x1, y1, x2, y2)
end
|
#find_withtag(tag) ⇒ Object
241
242
243
|
# File 'lib/tk/canvas.rb', line 241
def find_withtag(tag)
find('withtag', tag)
end
|
259
260
261
262
263
|
# File 'lib/tk/canvas.rb', line 259
def gettags(tagOrId)
list(tk_send_without_enc('gettags', tagid(tagOrId))).collect{|tag|
TkcTag.id2obj(self, tag)
}
end
|
#icursor(tagOrId, index) ⇒ Object
265
266
267
268
|
# File 'lib/tk/canvas.rb', line 265
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
270
271
272
273
|
# File 'lib/tk/canvas.rb', line 270
def imove(tagOrId, idx, x, y)
tk_send_without_enc('imove', tagid(tagOrId), idx, x, y)
self
end
|
#index(tagOrId, idx) ⇒ Object
276
277
278
|
# File 'lib/tk/canvas.rb', line 276
def index(tagOrId, idx)
number(tk_send_without_enc('index', tagid(tagOrId), idx))
end
|
#insert(tagOrId, index, string) ⇒ Object
280
281
282
283
284
|
# File 'lib/tk/canvas.rb', line 280
def insert(tagOrId, index, string)
tk_send_without_enc('insert', tagid(tagOrId), index,
_get_eval_enc_str(string))
self
end
|
#itembind(tag, context, *args, &block) ⇒ Object
134
135
136
137
138
139
140
141
142
143
|
# File 'lib/tk/canvas.rb', line 134
def itembind(tag, context, *args, &block)
if TkComm._callback_entry?(args[0]) || !block
cmd = args.shift
else
cmd = block
end
_bind([path, "bind", tagid(tag)], context, cmd, *args)
self
end
|
#itembind_append(tag, context, *args, &block) ⇒ Object
145
146
147
148
149
150
151
152
153
154
|
# File 'lib/tk/canvas.rb', line 145
def itembind_append(tag, context, *args, &block)
if TkComm._callback_entry?(args[0]) || !block
cmd = args.shift
else
cmd = block
end
_bind_append([path, "bind", tagid(tag)], context, cmd, *args)
self
end
|
#itembind_remove(tag, context) ⇒ Object
156
157
158
159
|
# File 'lib/tk/canvas.rb', line 156
def itembind_remove(tag, context)
_bind_remove([path, "bind", tagid(tag)], context)
self
end
|
#itembindinfo(tag, context = nil) ⇒ Object
161
162
163
|
# File 'lib/tk/canvas.rb', line 161
def itembindinfo(tag, context=nil)
_bindinfo([path, "bind", tagid(tag)], context)
end
|
#itemfocus(tagOrId = nil) ⇒ Object
245
246
247
248
249
250
251
252
253
254
255
256
257
|
# File 'lib/tk/canvas.rb', line 245
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
602
603
604
|
# File 'lib/tk/canvas.rb', line 602
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
525
526
527
528
529
530
531
532
|
# File 'lib/tk/canvas.rb', line 525
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
534
535
536
537
|
# File 'lib/tk/canvas.rb', line 534
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
539
540
541
542
543
|
# File 'lib/tk/canvas.rb', line 539
def moveto(tag, x, y)
tk_send_without_enc('moveto', tagid(tag), x, y)
self
end
|
#postscript(keys) ⇒ Object
546
547
548
|
# File 'lib/tk/canvas.rb', line 546
def postscript(keys)
tk_send("postscript", *hash_kv(keys))
end
|
#raise(tag, above = nil) ⇒ Object
550
551
552
553
554
555
556
557
|
# File 'lib/tk/canvas.rb', line 550
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
559
560
561
562
563
564
|
# File 'lib/tk/canvas.rb', line 559
def rchars(tag, first, last, str_or_coords)
str_or_coords = str_or_coords.flatten if str_or_coords.kind_of? Array
tk_send_without_enc('rchars', tagid(tag), first, last, str_or_coords)
self
end
|
#scale(tag, x, y, xs, ys) ⇒ Object
568
569
570
571
|
# File 'lib/tk/canvas.rb', line 568
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
577
578
579
580
|
# File 'lib/tk/canvas.rb', line 577
def scan_dragto(x, y, gain=None)
tk_send_without_enc('scan', 'dragto', x, y, gain)
self
end
|
#scan_mark(x, y) ⇒ Object
573
574
575
576
|
# File 'lib/tk/canvas.rb', line 573
def scan_mark(x, y)
tk_send_without_enc('scan', 'mark', x, y)
self
end
|
#select(mode, *args) ⇒ Object
582
583
584
585
|
# File 'lib/tk/canvas.rb', line 582
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
586
587
588
|
# File 'lib/tk/canvas.rb', line 586
def select_adjust(tagOrId, index)
select('adjust', tagid(tagOrId), index)
end
|
#select_clear ⇒ Object
589
590
591
|
# File 'lib/tk/canvas.rb', line 589
def select_clear
select('clear')
end
|
#select_from(tagOrId, index) ⇒ Object
592
593
594
|
# File 'lib/tk/canvas.rb', line 592
def select_from(tagOrId, index)
select('from', tagid(tagOrId), index)
end
|
#select_item ⇒ Object
595
596
597
|
# File 'lib/tk/canvas.rb', line 595
def select_item
select('item')
end
|
#select_to(tagOrId, index) ⇒ Object
598
599
600
|
# File 'lib/tk/canvas.rb', line 598
def select_to(tagOrId, index)
select('to', tagid(tagOrId), index)
end
|