Class: Tk::BLT::Tabset

Inherits:
TkWindow show all
Includes:
XScrollable, TkItemConfigMethod
Defined in:
lib/tkextlib/blt/tabset.rb

Direct Known Subclasses

Tabnotebook

Defined Under Namespace

Classes: NamedTab, Tab

Constant Summary collapse

TkCommandNames =
['::blt::tabset'.freeze].freeze
WidgetClassName =
'Tabset'.freeze

Constants included from TkUtil

TkUtil::None, TkUtil::RELEASE_DATE

Constants included from Tk

AUTO_PATH, Checkbutton, CloneMenu, INTERP, JAPANIZED_TK, LIBRARY_PATH, Labelframe, MAINLOOP, 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::ENCODING_TABLE, Encoding::RubyEncoding, Encoding::UNKNOWN, Encoding::UTF8_NAME

Constants included from TkCore

TkCore::EventFlag, TkCore::INTERP, TkCore::INTERP_MUTEX, TkCore::INTERP_ROOT_CHECK, TkCore::INTERP_THREAD, 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 TkDND::Shape

TkDND::Shape::PACKAGE_NAME

Instance Method Summary collapse

Methods included from TkItemConfigMethod

__IGNORE_UNKNOWN_CONFIGURE_OPTION__, #__check_available_itemconfigure_options, #__current_itemconfiginfo, __set_IGNORE_UNKNOWN_CONFIGURE_OPTION__!, #current_itemconfiginfo, #itemcget, #itemcget_strict, #itemconfiginfo, #itemconfigure

Methods included from TkItemConfigOptkeys

#__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_str, #num_or_str, number, #number, string, #string, uninstall_cmd

Methods included from TkTreatItemFont

#kanjifont_copy, #kanjitagfont_configure, #latintagfont_configure, #latintagfont_copy, #tagfont_configinfo, #tagfont_configure, #tagfont_copy

Methods included from XScrollable

#xscrollbar, #xview_moveto, #xview_scroll

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_columnconfig, #grid_columnconfiginfo, #grid_config, #grid_forget, #grid_in, #grid_info, #grid_location, #grid_propagate, #grid_remove, #grid_rowconfig, #grid_rowconfiginfo, #grid_size, #grid_slaves, #initialize, #inspect, #lower, #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, #raise, #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 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, __set_toplevel_aliases__, 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, ungrid, unload_tcllibrary, unpack, unplace, #update, update, update_idletasks, utf_to_backslash, utf_to_backslash_sequence, wakeup

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 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_str, number, procedure, simplelist, string, #subst, tk_tcl2ruby, uninstall_cmd, #uninstall_cmd, window

Methods included from TkEvent

#install_bind, #install_bind_for_event_class

Methods included from TkDND::DND

#dnd_bindsource, #dnd_bindsource_info, #dnd_bindtarget, #dnd_bindtarget_info, #dnd_clearsource, #dnd_cleartarget, #dnd_drag, version

Methods included from TkDND::Shape

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

Methods included from TkConfigMethod

#[], #[]=, __IGNORE_UNKNOWN_CONFIGURE_OPTION__, #__check_available_configure_options, __set_IGNORE_UNKNOWN_CONFIGURE_OPTION__!, #cget, #cget_strict, #config_hash_kv, #configinfo, #configure, #configure_cmd, #current_configinfo

Methods included from TkTreatFont

#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

#__boolval_optkeysObject



216
217
218
# File 'lib/tkextlib/blt/tabset.rb', line 216

def __boolval_optkeys
  super() << 'samewidth' << 'tearoff'
end

#__destroy_hook__Object



208
209
210
211
212
# File 'lib/tkextlib/blt/tabset.rb', line 208

def __destroy_hook__
  Tk::BLT::Tabset::Tab::TabID_TBL.mutex.synchronize{
    Tk::BLT::Tabset::Tab::TabID_TBL.delete(@path)
  }
end

#activate(index) ⇒ Object Also known as: highlight



274
275
276
277
# File 'lib/tkextlib/blt/tabset.rb', line 274

def activate(index)
  tk_send('activate', tagindex(index))
  self
end

#delete(first, last = None) ⇒ Object



316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
# File 'lib/tkextlib/blt/tabset.rb', line 316

def delete(first, last=None)
  tk_send('delete', tagindex(first), tagindex(last))
  if first.kind_of?(Tk::BLT::Tabset::Tab)
    TabID_TBL.mutex.synchronize{
      TabID_TBL[@path].delete(first.id)
    }
  end
  # middle tabs of the range are unknown
  if last.kind_of?(Tk::BLT::Tabset::Tab)
    TabID_TBL.mutex.synchronize{
      TabID_TBL[@path].delete(last.id)
    }
  end
  self
end

#focus(index) ⇒ Object



332
333
334
335
# File 'lib/tkextlib/blt/tabset.rb', line 332

def focus(index)
  tk_send('focus', tagindex(index))
  self
end

#get_tab(index) ⇒ Object



337
338
339
# File 'lib/tkextlib/blt/tabset.rb', line 337

def get_tab(index)
  Tk::BLT::Tabset::Tab.id2obj(tk_send_without_enc('get', tagindex(index)))
end

#index(str) ⇒ Object



341
342
343
# File 'lib/tkextlib/blt/tabset.rb', line 341

def index(str)
  num_or_str(tk_send('index', str))
end

#index_name(tab) ⇒ Object



344
345
346
# File 'lib/tkextlib/blt/tabset.rb', line 344

def index_name(tab)
  num_or_str(tk_send('index', '-mame', tagid(tab)))
end

#insert(pos, tab, keys = {}) ⇒ Object



348
349
350
# File 'lib/tkextlib/blt/tabset.rb', line 348

def insert(pos, tab, keys={})
  Tk::BLT::Tabset::Tab.new(self, tagindex(pos), tagid(tab), keys)
end

#invoke(index) ⇒ Object



352
353
354
# File 'lib/tkextlib/blt/tabset.rb', line 352

def invoke(index)
  tk_send('invoke', tagindex(index))
end

#move_after(index, base_idx) ⇒ Object



360
361
362
363
# File 'lib/tkextlib/blt/tabset.rb', line 360

def move_after(index, base_idx)
  tk_send('move', tagindex(index), 'after', tagindex(base_idx))
  self
end

#move_before(index, base_idx) ⇒ Object



356
357
358
359
# File 'lib/tkextlib/blt/tabset.rb', line 356

def move_before(index, base_idx)
  tk_send('move', tagindex(index), 'before', tagindex(base_idx))
  self
end

#nearest(x, y) ⇒ Object



365
366
367
# File 'lib/tkextlib/blt/tabset.rb', line 365

def nearest(x, y)
  Tk::BLT::Tabset::Tab.id2obj(num_or_str(tk_send_without_enc('nearest', x, y)))
end

#perforation_highlight(index, mode) ⇒ Object



369
370
371
372
# File 'lib/tkextlib/blt/tabset.rb', line 369

def perforation_highlight(index, mode)
  tk_send('perforation', 'highlight', tagindex(index), mode)
  self
end

#perforation_invoke(index) ⇒ Object



373
374
375
# File 'lib/tkextlib/blt/tabset.rb', line 373

def perforation_invoke(index)
  tk_send('perforation', 'invoke', tagindex(index))
end

#scan_dragto(x, y) ⇒ Object



381
382
383
384
# File 'lib/tkextlib/blt/tabset.rb', line 381

def scan_dragto(x, y)
  tk_send_without_enc('scan', 'dragto', x, y)
  self
end

#scan_mark(x, y) ⇒ Object



377
378
379
380
# File 'lib/tkextlib/blt/tabset.rb', line 377

def scan_mark(x, y)
  tk_send_without_enc('scan', 'mark', x, y)
  self
end

#see(index) ⇒ Object



386
387
388
389
# File 'lib/tkextlib/blt/tabset.rb', line 386

def see(index)
  tk_send('see', tagindex(index))
  self
end

#select(index) ⇒ Object



395
396
397
398
# File 'lib/tkextlib/blt/tabset.rb', line 395

def select(index)
  tk_send('select', tagindex(index))
  self
end

#sizeObject



391
392
393
# File 'lib/tkextlib/blt/tabset.rb', line 391

def size()
  number(tk_send_without_enc('size'))
end

#tab_names(pat = None) ⇒ Object



400
401
402
403
404
# File 'lib/tkextlib/blt/tabset.rb', line 400

def tab_names(pat=None)
  simplelist(tk_send('tab', 'names', pat)).collect{|name|
    Tk::BLT::Tabset::Tab.id2obj(name)
  }
end

#tab_tearoff(index, name = None) ⇒ Object



406
407
408
# File 'lib/tkextlib/blt/tabset.rb', line 406

def tab_tearoff(index, name=None)
  window(tk_send('tab', 'tearoff', tagindex(index), name))
end

#tabbind(tag, context, *args) ⇒ Object

def tabbind(tag, context, cmd=Proc.new, *args)

_bind([path, "bind", tagid(tag)], context, cmd, *args)
self

end



284
285
286
287
288
289
290
291
292
293
# File 'lib/tkextlib/blt/tabset.rb', line 284

def tabbind(tag, context, *args)
  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
  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

#tabbind_append(tag, context, *args) ⇒ Object

def tabbind_append(tag, context, cmd=Proc.new, *args)

_bind_append([path, "bind", tagid(tag)], context, cmd, *args)
self

end



298
299
300
301
302
303
304
305
306
307
# File 'lib/tkextlib/blt/tabset.rb', line 298

def tabbind_append(tag, context, *args)
  # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
  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

#tabbind_remove(tag, context) ⇒ Object



308
309
310
311
# File 'lib/tkextlib/blt/tabset.rb', line 308

def tabbind_remove(tag, context)
  _bind_remove([path, "bind", tagid(tag)], context)
  self
end

#tabbindinfo(tag, context = nil) ⇒ Object



312
313
314
# File 'lib/tkextlib/blt/tabset.rb', line 312

def tabbindinfo(tag, context=nil)
  _bindinfo([path, "bind", tagid(tag)], context)
end

#tagid(tab) ⇒ Object



256
257
258
259
260
261
262
# File 'lib/tkextlib/blt/tabset.rb', line 256

def tagid(tab)
  if tab.kind_of?(Tk::BLT::Tabset::Tab)
    tab.id
  else
    tab
  end
end

#tagindex(tab) ⇒ Object



264
265
266
267
268
269
270
# File 'lib/tkextlib/blt/tabset.rb', line 264

def tagindex(tab)
  if tab.kind_of?(Tk::BLT::Tabset::Tab)
    tab.index
  else
    tab
  end
end

#xscrollcommand(cmd = Proc.new) ⇒ Object Also known as: scrollcommand



410
411
412
413
# File 'lib/tkextlib/blt/tabset.rb', line 410

def xscrollcommand(cmd=Proc.new)
  configure_cmd 'scrollcommand', cmd
  self
end

#xview(*index) ⇒ Object Also known as: view



416
417
418
419
420
421
422
423
# File 'lib/tkextlib/blt/tabset.rb', line 416

def xview(*index)
  if index.empty?
    list(tk_send_without_enc('view'))
  else
    tk_send_without_enc('view', *index)
    self
  end
end