In Files

  • tk/lib/tkextlib/tile.rb
  • tk/lib/tkextlib/tile/dialog.rb
  • tk/lib/tkextlib/tile/sizegrip.rb
  • tk/lib/tkextlib/tile/style.rb
  • tk/lib/tkextlib/tile/tbutton.rb
  • tk/lib/tkextlib/tile/tcheckbutton.rb
  • tk/lib/tkextlib/tile/tcombobox.rb
  • tk/lib/tkextlib/tile/tentry.rb
  • tk/lib/tkextlib/tile/tframe.rb
  • tk/lib/tkextlib/tile/tlabel.rb
  • tk/lib/tkextlib/tile/tlabelframe.rb
  • tk/lib/tkextlib/tile/tmenubutton.rb
  • tk/lib/tkextlib/tile/tnotebook.rb
  • tk/lib/tkextlib/tile/tpaned.rb
  • tk/lib/tkextlib/tile/tprogressbar.rb
  • tk/lib/tkextlib/tile/tradiobutton.rb
  • tk/lib/tkextlib/tile/treeview.rb
  • tk/lib/tkextlib/tile/tscale.rb
  • tk/lib/tkextlib/tile/tscrollbar.rb
  • tk/lib/tkextlib/tile/tseparator.rb
  • tk/lib/tkextlib/tile/tspinbox.rb
  • tk/lib/tkextlib/tile/tsquare.rb

Class/Module Index [+]

Quicksearch

Tk::Ttk

Public Class Methods

__Import_Tile_Widgets__!() click to toggle source
 
               # File tk/lib/tkextlib/tile.rb, line 128
def self.__Import_Tile_Widgets__!
  warn 'Warning: "Tk::Tile::__Import_Tile_Widgets__!" is obsolete.' <<
       ' To control default widget set, use "Tk.default_widget_set = :Ttk"'
  Tk.tk_call('namespace', 'import', '-force', 'ttk::*')
end
            
__define_LoadImages_proc_for_compatibility__!() click to toggle source
 
               # File tk/lib/tkextlib/tile.rb, line 134
    def self.__define_LoadImages_proc_for_compatibility__!
      # Ttk 8.5 (Tile 0.8) lost 'LoadImages' utility procedure.
      # So, some old scripts don't work, because those scripts use the
      # procedure to define local styles.
      # Of course, rewriting such Tcl/Tk scripts isn't difficult for
      # Tcl/Tk users. However, it may be troublesome for Ruby/Tk users
      # who use such Tcl/Tk scripts as it is.
      # This method may help Ruby/Tk users who don't want to modify old
      # Tcl/Tk scripts for the latest version of Ttk (Tile) extension.
      # This method defines a compatible 'LoadImages' procedure on the
      # Tcl/Tk interpreter working under Ruby/Tk.
      # Please give attention to use this method. It may conflict with
      # some definitions on Tcl/Tk scripts.
      klass_name = self.name
      proc_name = 'LoadImages'
      if Tk::Tile::USE_TTK_NAMESPACE
        ns_list = ['::tile']
        if Tk.info(:commands, "::ttk::#{proc_name}").empty?
          ns_list << '::ttk'
        end
      else # Tk::Tile::USE_TILE_NAMESPACE
        ns_list = ['::ttk']
        if Tk.info(:commands, "::tile::#{proc_name}").empty?
          ns_list << '::tile'
        end
      end

      ns_list.each{|ns|
        cmd = "#{ns}::#{proc_name}"
        unless Tk.info(:commands, cmd).empty?
          #fail RuntimeError, "can't define '#{cmd}' command (already exist)"

          # do nothing !!!
          warn "Warning: can't define '#{cmd}' command (already exist)" if $DEBUG
          next
        end
        TkNamespace.eval(ns){
          TkCore::INTERP.add_tk_procs(proc_name, 'imgdir {patterns {*.gif}}',
                                      "            foreach pattern $patterns {
              foreach file [glob -directory $imgdir $pattern] {
                set img [file tail [file rootname $file]]
                if {![info exists images($img)]} {
                  set images($img) [image create photo -file $file]
                }
              }
            }
            return [array get images]
")
        }
      }
    end
            
const_missing(sym) click to toggle source
 
               # File tk/lib/tkextlib/tile.rb, line 39
def self.const_missing(sym)
  TkPackage.require(PACKAGE_NAME)
end
            
load_images(imgdir, pat=nil) click to toggle source
 
               # File tk/lib/tkextlib/tile.rb, line 187
def self.load_images(imgdir, pat=nil)
  if Tk::Tile::TILE_SPEC_VERSION_ID < 8
    if Tk::Tile::USE_TTK_NAMESPACE
      cmd = '::ttk::LoadImages'
    else # Tk::Tile::USE_TILE_NAMESPACE
      cmd = '::tile::LoadImages'
    end
    pat ||= TkComm::None
    images = Hash[*TkComm.simplelist(Tk.tk_call(cmd, imgdir, pat))]
    images.keys.each{|k|
      images[k] = TkPhotoImage.new(:imagename=>images[k],
                                   :without_creating=>true)
    }
  else ## TILE_SPEC_VERSION_ID >= 8
    pat ||= '*.gif'
    if pat.kind_of?(Array)
      pat_list = pat
    else
      pat_list = [ pat ]
    end
    Dir.chdir(imgdir){
      pat_list.each{|pat|
        Dir.glob(pat).each{|f|
          img = File.basename(f, '.*')
          unless TkComm.bool(Tk.info('exists', "images(#{img})"))
            Tk.tk_call('set', "images(#{img})",
                       Tk.tk_call('image', 'create', 'photo', '-file', f))
          end
        }
      }
    }
    images = Hash[*TkComm.simplelist(Tk.tk_call('array', 'get', 'images'))]
    images.keys.each{|k|
      images[k] = TkPhotoImage.new(:imagename=>images[k],
                                   :without_creating=>true)
    }
  end

  images
end
            
method_missing(*args) click to toggle source
 
               # File tk/lib/tkextlib/tile.rb, line 42
def self.method_missing(*args)
  TkPackage.require(PACKAGE_NAME)
end
            
package_name() click to toggle source
 
               # File tk/lib/tkextlib/tile.rb, line 116
def self.package_name
  PACKAGE_NAME
end
            
package_version() click to toggle source
 
               # File tk/lib/tkextlib/tile.rb, line 120
def self.package_version
  begin
    TkPackage.require(PACKAGE_NAME)
  rescue
    ''
  end
end
            
set_theme(theme) click to toggle source
 
               # File tk/lib/tkextlib/tile.rb, line 250
def self.set_theme(theme)
  if TILE_SPEC_VERSION_ID < 8 && Tk.info(:commands, '::ttk::setTheme').empty?
    cmd = '::tile::setTheme'
  else
    cmd = '::ttk::setTheme'
  end

  begin
    Tk.tk_call_without_enc(cmd, theme)
  rescue
    Tk::Tile::Style.theme_use(theme)
  end
end
            
style(*args) click to toggle source
 
               # File tk/lib/tkextlib/tile.rb, line 228
def self.style(*args)
  args.map!{|arg| TkComm._get_eval_string(arg)}.join('.')
end
            
themes(glob_ptn = nil) click to toggle source
 
               # File tk/lib/tkextlib/tile.rb, line 232
def self.themes(glob_ptn = nil)
  if TILE_SPEC_VERSION_ID < 8 && Tk.info(:commands, '::ttk::themes').empty?
    fail RuntimeError, 'not support glob option' if glob_ptn
    cmd = ['::tile::availableThemes']
  else
    glob_ptn = '*' unless glob_ptn
    cmd = ['::ttk::themes', glob_ptn]
  end

  begin
    TkComm.simplelist(Tk.tk_call_without_enc(*cmd))
  rescue
    TkComm.simplelist(Tk.tk_call('lsearch', '-all', '-inline',
                                 Tk::Tile::Style.theme_names,
                                 glob_ptn))
  end
end
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.