mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* ext/tk/lib/tkextlib/tcllib: based on Tcllib 1.7
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7046 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									af6061e50b
								
							
						
					
					
						commit
						64422ae494
					
				
					 3 changed files with 118 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -1,3 +1,9 @@
 | 
			
		|||
2004-10-16  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>
 | 
			
		||||
 | 
			
		||||
	* tcllib/ico.rb: new library (Tk::Tcllib:ICO)
 | 
			
		||||
 | 
			
		||||
	* tcllib.rb: add Tk::Tcllib::ICO (based on tcllib 1.7)
 | 
			
		||||
 | 
			
		||||
2004-10-06  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>
 | 
			
		||||
 | 
			
		||||
	* bwidget.rb (BWidget.grab): bug fix
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -49,6 +49,9 @@ module Tk
 | 
			
		|||
    autoload :Datefield,  'tkextlib/tcllib/datefield'
 | 
			
		||||
    autoload :DateField,  'tkextlib/tcllib/datefield'
 | 
			
		||||
 | 
			
		||||
    # package:: ico
 | 
			
		||||
    autoload :ICO,        'tkextlib/tcllib/ico'
 | 
			
		||||
 | 
			
		||||
    # package:: ipentry
 | 
			
		||||
    autoload :IP_Entry,   'tkextlib/tcllib/ip_entry'
 | 
			
		||||
    autoload :IPEntry,    'tkextlib/tcllib/ip_entry'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										109
									
								
								ext/tk/lib/tkextlib/tcllib/ico.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								ext/tk/lib/tkextlib/tcllib/ico.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,109 @@
 | 
			
		|||
#
 | 
			
		||||
#  tkextlib/tcllib/ico.rb
 | 
			
		||||
#                               by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
 | 
			
		||||
#
 | 
			
		||||
#   * Part of tcllib extension
 | 
			
		||||
#   * Reading and writing windows icons
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
require 'tk'
 | 
			
		||||
require 'tk/image'
 | 
			
		||||
require 'tkextlib/tcllib.rb'
 | 
			
		||||
 | 
			
		||||
# TkPackage.require('ico', '0.3')
 | 
			
		||||
TkPackage.require('ico')
 | 
			
		||||
 | 
			
		||||
module Tk
 | 
			
		||||
  module Tcllib
 | 
			
		||||
    class ICO < TkImage
 | 
			
		||||
      def self.package_version
 | 
			
		||||
        begin
 | 
			
		||||
          TkPackage.require('ico')
 | 
			
		||||
        rescue
 | 
			
		||||
          ''
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
class Tk::Tcllib::ICO
 | 
			
		||||
  def self.list(file, keys=nil)
 | 
			
		||||
    tk_split_list(tk_call_without_enc('::ico::getIconList', file,
 | 
			
		||||
                                      *hash_kv(keys, true)))
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.get(file, index, keys=nil)
 | 
			
		||||
    tk_call_without_enc('::ico::getIcon', file, index, *hash_kv(keys, true))
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.get_image(file, index, keys={})
 | 
			
		||||
    keys = _symbolkey2str(keys)
 | 
			
		||||
    keys.delete('format')
 | 
			
		||||
    self.new(file, index, keys)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.get_data(file, index, keys={})
 | 
			
		||||
    keys['format'] = 'data'
 | 
			
		||||
    tk_split_list(tk_call_without_enc('::ico::getIcon', file, index, 
 | 
			
		||||
                                      *hash_kv(keys, true)))
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.write(file, index, depth, data, keys=nil)
 | 
			
		||||
    tk_call_without_enc('::ico::writeIcon', file, index, depth, data, 
 | 
			
		||||
                        *hash_kv(keys, true))
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.copy(from_file, from_index, to_file, to_index, keys=nil)
 | 
			
		||||
    tk_call_without_enc('::ico::copyIcon', 
 | 
			
		||||
                        from_file, from_index, to_file, to_index, 
 | 
			
		||||
                        *hash_kv(keys, true))
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.exe_to_ico(exe_file, ico_file, keys=nil)
 | 
			
		||||
    tk_call_without_enc('::ico::copyIcon', exe_file, ico_file, 
 | 
			
		||||
                        *hash_kv(keys, true))
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.clear_cache(file=None)
 | 
			
		||||
    tk_call_without_enc('::ico::clearCache', file)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.transparent_color(image, color)
 | 
			
		||||
    if image.kind_of?(Array)
 | 
			
		||||
      tk_split_list(tk_call_without_enc('::ico::transparentColor', 
 | 
			
		||||
                                        image, color))
 | 
			
		||||
    else
 | 
			
		||||
      tk_call_without_enc('::ico::transparentColor', image, color)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.show(file, keys=nil)
 | 
			
		||||
    tk_call_without_enc('::ico::Show', file, *hash_kv(keys, true))
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  ###########################
 | 
			
		||||
 | 
			
		||||
  def initialize(file, index, keys=nil)
 | 
			
		||||
    keys = _symbolkey2str(keys)
 | 
			
		||||
    if keys.key?('name')
 | 
			
		||||
      @path = keys['name'].to_s
 | 
			
		||||
    else
 | 
			
		||||
      @path = Tk_Image_ID.join(TkCore::INTERP._ip_id_)
 | 
			
		||||
      Tk_Image_ID[1].succ!
 | 
			
		||||
    end
 | 
			
		||||
    tk_call_without_enc('::ico::getIcon', file, index, '-name', @path, 
 | 
			
		||||
                        '-format', 'image', *hash_kv(keys, true))
 | 
			
		||||
    Tk_IMGTBL[@path] = self
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def write(file, index, depth, keys=nil)
 | 
			
		||||
    Tk::Tcllib::ICO.write(file, index, depth, @path, keys=nil)
 | 
			
		||||
    self
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def transparent_color(color)
 | 
			
		||||
    tk_call_without_enc('::ico::transparentColor', @path, color)
 | 
			
		||||
    self
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue