Class: TkToplevel

Inherits:
TkWindow show all
Includes:
TkMenuSpec, Wm
Defined in:
lib/tk/toplevel.rb,
lib/tkextlib/tktrans/tktrans.rb

Constant Summary collapse

TkCommandNames =
['toplevel'.freeze].freeze
WidgetClassName =
'Toplevel'.freeze

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

Class Method Summary collapse

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_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, 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, #bind, #bind_all, #bind_append, #bind_append_all, #bind_remove, #bind_remove_all, #bindinfo, #bindinfo_all, #image_obj, #install_cmd, #subst, #uninstall_cmd

Methods included from TkEvent

#install_bind, #install_bind_for_event_class

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

package_name, package_patchlevel, package_version, #shape_bounds, #shape_get, #shape_offset, #shape_set, #shape_update, version

Methods included from Tk::TkDND::DND

#dnd_bindsource, #dnd_bindsource_info, #dnd_bindtarget, #dnd_bindtarget_info, #dnd_clearsource, #dnd_cleartarget, #dnd_drag, 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(parent = nil, screen = nil, classname = nil, keys = nil) ⇒ TkToplevel

Returns a new instance of TkToplevel.



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# File 'lib/tk/toplevel.rb', line 98

def initialize(parent=nil, screen=nil, classname=nil, keys=nil)
  my_class_name = nil
  if self.class < WidgetClassNames[WidgetClassName]
    my_class_name = self.class.name
    my_class_name = nil if my_class_name == ''
  end
  if parent.kind_of? Hash
    keys = _symbolkey2str(parent)
    if keys.key?('classname')
      keys['class'] = keys.delete('classname')
    end
    @classname = keys['class']
    @colormap  = keys['colormap']
    @container = keys['container']
    @screen    = keys['screen']
    @use       = keys['use']
    @visual    = keys['visual']
    if !@classname && my_class_name
      keys['class'] = @classname = my_class_name 
    end
    if @classname.kind_of? TkBindTag
      @db_class = @classname
      @classname = @classname.id
    elsif @classname
      @db_class = TkDatabaseClass.new(@classname)
    else
      @db_class = self.class
      @classname = @db_class::WidgetClassName
    end
    keys, cmds = _wm_command_option_chk(keys)
    super(keys)
    cmds.each{|k,v| 
      if v.kind_of? Array
        self.__send__(k,*v)
      else
        self.__send__(k,v)
      end
    }
    return
  end

  if screen.kind_of? Hash
    keys = screen
  else
    @screen = screen
    if classname.kind_of? Hash
      keys = classname
    else
      @classname = classname
    end
  end
  if keys.kind_of? Hash
    keys = _symbolkey2str(keys)
    if keys.key?('classname')
      keys['class'] = keys.delete('classname')
    end
    @classname = keys['class']  unless @classname
    @colormap  = keys['colormap']
    @container = keys['container']
    @screen    = keys['screen'] unless @screen
    @use       = keys['use']
    @visual    = keys['visual']
  else
    keys = {}
  end
  if !@classname && my_class_name
    keys['class'] = @classname = my_class_name 
  end
  if @classname.kind_of? TkBindTag
    @db_class = @classname
    @classname = @classname.id
  elsif @classname
    @db_class = TkDatabaseClass.new(@classname)
  else
    @db_class = self.class
    @classname = @db_class::WidgetClassName
  end
  keys, cmds = _wm_command_option_chk(keys)
  super(parent, keys)
  cmds.each{|k,v| 
    if v.kind_of? Array
      self.send(k,*v)
    else
      self.send(k,v)
    end
  }
end

Dynamic Method Handling

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

Class Method Details

.bind(*args, &b) ⇒ Object



229
230
231
232
233
234
235
# File 'lib/tk/toplevel.rb', line 229

def self.bind(*args, &b)
  if self == WidgetClassNames[WidgetClassName] || self.name == ''
    super(*args, &b)
  else
    TkDatabaseClass.new(self.name).bind(*args, &b)
  end
end

.bind_append(*args, &b) ⇒ Object



236
237
238
239
240
241
242
# File 'lib/tk/toplevel.rb', line 236

def self.bind_append(*args, &b)
  if self == WidgetClassNames[WidgetClassName] || self.name == ''
    super(*args, &b)
  else
    TkDatabaseClass.new(self.name).bind_append(*args, &b)
  end
end

.bind_remove(*args) ⇒ Object



243
244
245
246
247
248
249
# File 'lib/tk/toplevel.rb', line 243

def self.bind_remove(*args)
  if self == WidgetClassNames[WidgetClassName] || self.name == ''
    super(*args)
  else
    TkDatabaseClass.new(self.name).bind_remove(*args)
  end
end

.bindinfo(*args) ⇒ Object



250
251
252
253
254
255
256
# File 'lib/tk/toplevel.rb', line 250

def self.bindinfo(*args)
  if self == WidgetClassNames[WidgetClassName] || self.name == ''
    super(*args)
  else
    TkDatabaseClass.new(self.name).bindinfo(*args)
  end
end

.database_classObject



218
219
220
221
222
223
224
# File 'lib/tk/toplevel.rb', line 218

def self.database_class
  if self == WidgetClassNames[WidgetClassName] || self.name == ''
    self
  else
    TkDatabaseClass.new(self.name)
  end
end

.database_classnameObject



225
226
227
# File 'lib/tk/toplevel.rb', line 225

def self.database_classname
  self.database_class.name
end

Instance Method Details

#add_menu(menu_info, tearoff = false, opts = nil) ⇒ Object



199
200
201
202
203
204
205
206
207
208
# File 'lib/tk/toplevel.rb', line 199

def add_menu(menu_info, tearoff=false, opts=nil)
  # See tk/menuspec.rb for menu_info.
  # opts is a hash of default configs for all of cascade menus. 
  # Configs of menu_info can override it. 
  if tearoff.kind_of?(Hash)
    opts = tearoff
    tearoff = false
  end
  _create_menubutton(self, menu_info, tearoff, opts)
end

#add_menubar(menu_spec, tearoff = false, opts = nil) ⇒ Object



210
211
212
213
214
215
216
# File 'lib/tk/toplevel.rb', line 210

def add_menubar(menu_spec, tearoff=false, opts=nil)
  # See tk/menuspec.rb for menu_spec.
  # opts is a hash of default configs for all of cascade menus.
  # Configs of menu_spec can override it. 
  menu_spec.each{|info| add_menu(info, tearoff, opts)}
  self.menu
end

#specific_classObject

def create_self(keys)

if keys and keys != None
  tk_call_without_enc('toplevel', @path, *hash_kv(keys, true))
else
  tk_call_without_enc('toplevel', @path)
end

end private :create_self



195
196
197
# File 'lib/tk/toplevel.rb', line 195

def specific_class
  @classname
end

#tktrans_get_imageObject



61
62
63
# File 'lib/tkextlib/tktrans/tktrans.rb', line 61

def tktrans_get_image()
  tk_send('tktrans::settoplevel', @path)
end

#tktrans_set_image(img) ⇒ Object



57
58
59
60
# File 'lib/tkextlib/tktrans/tktrans.rb', line 57

def tktrans_set_image(img)
  tk_send('tktrans::settoplevel', @path, img)
  self
end