Class: Tk::BWidget::Dialog

Inherits:
TkWindow show all
Includes:
TkItemConfigMethod
Defined in:
lib/tkextlib/bwidget/dialog.rb,
lib/tkextlib/bwidget/dialog.rb

Constant Summary collapse

TkCommandNames =
['Dialog'.freeze].freeze
WidgetClassName =
'Dialog'.freeze

Constants included from TkUtil

TkUtil::None, TkUtil::RELEASE_DATE

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 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 TkDND::Shape

TkDND::Shape::PACKAGE_NAME

Instance Method Summary collapse

Methods included from TkItemConfigMethod

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

#[], #[]=, #config_hash_kv, #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(parent = nil, keys = nil) ⇒ Dialog

Returns a new instance of Dialog.



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/tkextlib/bwidget/dialog.rb', line 35

def initialize(parent=nil, keys=nil)
  @relative = ''
  if parent.kind_of?(Hash)
    keys = _symbolkey2str(parent)
    @relative = keys['parent'] if keys.key?('parent')
    @relative = keys.delete('relative') if keys.key?('relative')
    super(keys)
  elsif keys
    keys = _symbolkey2str(keys)
    @relative = keys.delete('parent') if keys.key?('parent')
    @relative = keys.delete('relative') if keys.key?('relative')
    super(parent, keys)
  else
    super(parent)
  end
end

Dynamic Method Handling

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

Instance Method Details

#add(keys = {}, &b) ⇒ Object



113
114
115
116
117
# File 'lib/tkextlib/bwidget/dialog.rb', line 113

def add(keys={}, &b)
  win = window(tk_send('add', *hash_kv(keys)))
  win.instance_eval(&b) if b
  win
end

#cget(slot) ⇒ Object



62
63
64
65
66
67
68
# File 'lib/tkextlib/bwidget/dialog.rb', line 62

def cget(slot)
  if slot.to_s == 'relative'
    super('parent')
  else
    super(slot)
  end
end

#configinfo(slot = nil) ⇒ Object



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/tkextlib/bwidget/dialog.rb', line 84

def configinfo(slot=nil)
  if slot
    if slot.to_s == 'relative'
      super('parent')
    else
      super(slot)
    end
  else
    ret = super()
    if TkComm::GET_CONFIGINFO_AS_ARRAY
      ret << ['relative', 'parent']
    else
      ret['relative'] = 'parent'
    end
  end
end

#configure(slot, value = None) ⇒ Object



70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/tkextlib/bwidget/dialog.rb', line 70

def configure(slot, value=None)
  if slot.kind_of?(Hash)
    slot = _symbolkey2str(slot)
    slot['parent'] = slot.delete('relative') if slot.key?('relative')
    super(slot)
  else
    if slot.to_s == 'relative'
      super('parent', value)
    else
      super(slot, value)
    end
  end
end

#create_self(keys) ⇒ Object



52
53
54
55
56
57
58
59
60
# File 'lib/tkextlib/bwidget/dialog.rb', line 52

def create_self(keys)
  cmd = self.class::TkCommandNames[0]
  if keys and keys != None
    tk_call_without_enc(cmd, @path, '-parent', @relative, 
                        *hash_kv(keys, true))
  else
    tk_call_without_enc(cmd, @path, '-parent', @relative)
  end
end

#draw(focus_win = None) ⇒ Object



131
132
133
# File 'lib/tkextlib/bwidget/dialog.rb', line 131

def draw(focus_win=None)
  tk_send('draw', focus_win)
end

#enddialog(ret) ⇒ Object



135
136
137
# File 'lib/tkextlib/bwidget/dialog.rb', line 135

def enddialog(ret)
  tk_send('enddialog', ret)
end

#get_buttonbox(&b) ⇒ Object



125
126
127
128
129
# File 'lib/tkextlib/bwidget/dialog.rb', line 125

def get_buttonbox(&b)
  win = window(@path + '.bbox')
  win.instance_eval(&b) if b
  win
end

#get_frame(&b) ⇒ Object



119
120
121
122
123
# File 'lib/tkextlib/bwidget/dialog.rb', line 119

def get_frame(&b)
  win = window(tk_send('getframe'))
  win.instance_eval(&b) if b
  win
end

#index(idx) ⇒ Object



139
140
141
# File 'lib/tkextlib/bwidget/dialog.rb', line 139

def index(idx)
  get_buttonbox.index(idx)
end

#invoke(idx) ⇒ Object



143
144
145
146
# File 'lib/tkextlib/bwidget/dialog.rb', line 143

def invoke(idx)
  tk_send('invoke', tagid(idx))
  self
end

#set_focus(idx) ⇒ Object



148
149
150
151
# File 'lib/tkextlib/bwidget/dialog.rb', line 148

def set_focus(idx)
  tk_send('setfocus', tagid(idx))
  self
end

#tagid(tagOrId) ⇒ Object



101
102
103
104
105
106
107
108
109
110
111
# File 'lib/tkextlib/bwidget/dialog.rb', line 101

def tagid(tagOrId)
  if tagOrId.kind_of?(Tk::BWidget::Button)
    name = tagOrId[:name]
    return index(name) unless name.empty?
  end
  if tagOrId.kind_of?(TkButton)
    return index(tagOrId[:text])
  end
  # index(tagOrId.to_s)
  index(_get_eval_string(tagOrId))
end

#withdrawObject



153
154
155
156
# File 'lib/tkextlib/bwidget/dialog.rb', line 153

def withdraw
  tk_send('withdraw')
  self
end