Class: TkOptionMenubutton

Inherits:
TkMenubutton show all
Defined in:
lib/tk/menu.rb

Defined Under Namespace

Classes: OptionMenu

Constant Summary collapse

TkCommandNames =
['tk_optionMenu'.freeze].freeze

Constants inherited from TkMenubutton

TkMenubutton::WidgetClassName

Constants inherited from TkLabel

TkLabel::WidgetClassName

Constants inherited from TkWindow

TkWindow::WidgetClassName

Constants included from Tk

Tk::AUTO_PATH, Tk::INTERP, Tk::JAPANIZED_TK, Tk::LIBRARY_PATH, Tk::MAINLOOP, Tk::PACKAGE_PATH, Tk::RELEASE_DATE, Tk::TCL_LIBRARY_PATH, Tk::TCL_MAJOR_VERSION, Tk::TCL_MINOR_VERSION, Tk::TCL_PACKAGE_PATH, Tk::TCL_PATCHLEVEL, Tk::TCL_PRECISION, Tk::TCL_VERSION, Tk::TK_MAJOR_VERSION, Tk::TK_MINOR_VERSION, Tk::TK_PATCHLEVEL, Tk::TK_VERSION, Tk::Tkextlib_RELEASE_DATE, Tk::TreeCtrl_Widget, Tk::X_Scrollable, Tk::Y_Scrollable

Constants included from TkCore

TkCore::EventFlag, TkCore::INTERP, TkCore::WIDGET_DESTROY_HOOK

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 TkUtil

TkUtil::None, TkUtil::RELEASE_DATE

Constants included from Tk::TkDND::Shape

Tk::TkDND::Shape::PACKAGE_NAME

Instance Method Summary collapse

Methods inherited from TkWindow

#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_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, #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, UTF8_String, add_kinsoku, bell, bell_on_display, const_missing, current_grabs, cursor_display, 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, 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

Methods included from Tk::Encoding

#encoding, #encoding=, #encoding_convertfrom, #encoding_convertto, #encoding_dirs, #encoding_dirs=, #encoding_names, #encoding_system, #encoding_system=

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

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 TkEvent

#install_bind, #install_bind_for_event_class

Methods included from Tk::TkDND::DND

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

Methods included from Tk::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

#[], #[]=, #cget, #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

#initialize(*args) ⇒ TkOptionMenubutton

Returns a new instance of TkOptionMenubutton.



523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
# File 'lib/tk/menu.rb', line 523

def initialize(*args)
  # args :: [parent,] [var,] [value[, ...],] [keys]
  #    parent --> TkWindow or nil
  #    var    --> TkVariable or nil
  #    keys   --> Hash
  #       keys[:parent] or keys['parent']     --> parent
  #       keys[:variable] or keys['variable'] --> var
  #       keys[:values] or keys['values']     --> value, ...
  #       other Hash keys are menubutton options
  keys = {}
  keys = args.pop if args[-1].kind_of?(Hash)
  keys = _symbolkey2str(keys)

  parent = nil
  if args[0].kind_of?(TkWindow) || args[0] == nil
    keys.delete('parent') # ignore
    parent = args.shift 
  else
    parent = keys.delete('parent')
  end

  @variable = nil
  if args[0].kind_of?(TkVariable) || args[0] == nil
    keys.delete('variable') # ignore
    @variable = args.shift 
  else
    @variable = keys.delete('variable')
  end
  @variable = TkVariable.new unless @variable

  (args = keys.delete('values') || []) if args.empty?
  if args.empty?
    args << @variable.value
  else
    @variable.value = args[0]
  end

  install_win(if parent then parent.path end)
  @menu = OptionMenu.new(tk_call('tk_optionMenu', 
                                 @path, @variable.id, *args))

  configure(keys) if keys
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class TkObject

Instance Method Details

#activate(index) ⇒ Object



575
576
577
578
# File 'lib/tk/menu.rb', line 575

def activate(index)
  @menu.activate(index)
  self
end

#add(value) ⇒ Object



579
580
581
582
583
# File 'lib/tk/menu.rb', line 579

def add(value)
  @menu.add('radiobutton', 'variable'=>@variable, 
            'label'=>value, 'value'=>value)
  self
end

#current_entryconfiginfo(index, key = nil) ⇒ Object



628
629
630
# File 'lib/tk/menu.rb', line 628

def current_entryconfiginfo(index, key=nil)
  @menu.current_entryconfiginfo(index, key)
end

#current_menuconfiginfo(key = nil) ⇒ Object



615
616
617
# File 'lib/tk/menu.rb', line 615

def current_menuconfiginfo(key=nil)
  @menu.current_configinfo(key)
end

#delete(index, last = None) ⇒ Object



595
596
597
598
# File 'lib/tk/menu.rb', line 595

def delete(index, last=None)
  @menu.delete(index, last)
  self
end

#entrycget(index, key) ⇒ Object



618
619
620
# File 'lib/tk/menu.rb', line 618

def entrycget(index, key)
  @menu.entrycget(index, key)
end

#entryconfiginfo(index, key = nil) ⇒ Object



625
626
627
# File 'lib/tk/menu.rb', line 625

def entryconfiginfo(index, key=nil)
  @menu.entryconfiginfo(index, key)
end

#entryconfigure(index, key, val = None) ⇒ Object



621
622
623
624
# File 'lib/tk/menu.rb', line 621

def entryconfigure(index, key, val=None)
  @menu.entryconfigure(index, key, val)
  self
end

#index(index) ⇒ Object



584
585
586
# File 'lib/tk/menu.rb', line 584

def index(index)
  @menu.index(index)
end

#insert(index, value) ⇒ Object



590
591
592
593
594
# File 'lib/tk/menu.rb', line 590

def insert(index, value)
  @menu.insert(index, 'radiobutton', 'variable'=>@variable, 
            'label'=>value, 'value'=>value)
  self
end

#invoke(index) ⇒ Object



587
588
589
# File 'lib/tk/menu.rb', line 587

def invoke(index)
  @menu.invoke(index)
end


602
603
604
# File 'lib/tk/menu.rb', line 602

def menu
  @menu
end


605
606
607
# File 'lib/tk/menu.rb', line 605

def menucget(key)
  @menu.cget(key)
end


612
613
614
# File 'lib/tk/menu.rb', line 612

def menuconfiginfo(key=nil)
  @menu.configinfo(key)
end


608
609
610
611
# File 'lib/tk/menu.rb', line 608

def menuconfigure(key, val=None)
  @menu.configure(key, val)
  self
end

#valueObject



567
568
569
# File 'lib/tk/menu.rb', line 567

def value
  @variable.value
end

#value=(val) ⇒ Object



571
572
573
# File 'lib/tk/menu.rb', line 571

def value=(val)
  @variable.value = val
end

#yposition(index) ⇒ Object



599
600
601
# File 'lib/tk/menu.rb', line 599

def yposition(index)
  @menu.yposition(index)
end