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 127
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 133
    def self.__define_LoadImages_proc_for_compatibility__!
      # Ttk 8.5 (Tile 0.8) lost 'LoadImages' utility procedure.
      # So, some old scripts doen'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 comaptible '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}}',
                                      <<-'EOS')
            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]
          EOS
        }
      }
    end
            
const_missing(sym) click to toggle source
 
               # File tk/lib/tkextlib/tile.rb, line 38
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 186
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 41
def self.method_missing(*args)
  TkPackage.require(PACKAGE_NAME)
end
            
package_name() click to toggle source
 
               # File tk/lib/tkextlib/tile.rb, line 115
def self.package_name
  PACKAGE_NAME
end
            
package_version() click to toggle source
 
               # File tk/lib/tkextlib/tile.rb, line 119
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 249
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 227
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 231
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