Class: Tk::OptionMenubutton

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

Defined Under Namespace

Classes: OptionMenu

Constant Summary collapse

TkCommandNames =
['tk_optionMenu'.freeze].freeze

Constants inherited from Menubutton

Menubutton::WidgetClassName

Constants inherited from Label

Label::WidgetClassName

Constants inherited from TkWindow

TkWindow::WidgetClassName

Constants included from Tk

AUTO_PATH, Checkbutton, CloneMenu, 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

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 TkUtil

TkUtil::None, TkUtil::RELEASE_DATE

Constants included from TkDND::Shape

TkDND::Shape::PACKAGE_NAME

Instance Method Summary collapse

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, #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, 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 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 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

#initialize(*args) ⇒ OptionMenubutton

Returns a new instance of OptionMenubutton.



558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
# File 'ext/lib/tk/menu.rb', line 558

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.empty? && (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.empty? && (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



610
611
612
613
# File 'ext/lib/tk/menu.rb', line 610

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

#add(value) ⇒ Object



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

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

#current_entryconfiginfo(index, key = nil) ⇒ Object



672
673
674
# File 'ext/lib/tk/menu.rb', line 672

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

#current_menuconfiginfo(key = nil) ⇒ Object



656
657
658
# File 'ext/lib/tk/menu.rb', line 656

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

#delete(index, last = None) ⇒ Object



630
631
632
633
# File 'ext/lib/tk/menu.rb', line 630

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

#entrycget(index, key) ⇒ Object



659
660
661
# File 'ext/lib/tk/menu.rb', line 659

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

#entrycget_strict(index, key) ⇒ Object



662
663
664
# File 'ext/lib/tk/menu.rb', line 662

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

#entryconfiginfo(index, key = nil) ⇒ Object



669
670
671
# File 'ext/lib/tk/menu.rb', line 669

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

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



665
666
667
668
# File 'ext/lib/tk/menu.rb', line 665

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

#index(index) ⇒ Object



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

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

#insert(index, value) ⇒ Object



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

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

#invoke(index) ⇒ Object



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

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


640
641
642
# File 'ext/lib/tk/menu.rb', line 640

def menu
  @menu
end


643
644
645
# File 'ext/lib/tk/menu.rb', line 643

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


646
647
648
# File 'ext/lib/tk/menu.rb', line 646

def menucget_strict(key)
  @menu.cget_strict(key)
end


653
654
655
# File 'ext/lib/tk/menu.rb', line 653

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


649
650
651
652
# File 'ext/lib/tk/menu.rb', line 649

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

#valueObject



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

def value
  @variable.value
end

#value=(val) ⇒ Object



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

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

#xposition(index) ⇒ Object



634
635
636
# File 'ext/lib/tk/menu.rb', line 634

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

#yposition(index) ⇒ Object



637
638
639
# File 'ext/lib/tk/menu.rb', line 637

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