# class Tk::Winico

### Constants

PACKAGE_NAME
WinicoID_TBL

### Public Class Methods

icon_info(id) click to toggle source

    # File lib/tkextlib/winico/winico.rb, line 55
    def self.icon_info(id)
      simplelist(Tk.tk_call('winico', 'info', id)).collect{|inf|
        h = Hash[*list(inf)]
        h.keys.each{|k| h[k[1..-1]] = h.delete(k)}
      }
    end

id2obj(id) click to toggle source

    # File lib/tkextlib/winico/winico.rb, line 43
    def self.id2obj(id)
      WinicoID_TBL.mutex.synchronize{
        (WinicoID_TBL.key?(id))? WinicoID_TBL[id] : id
      }
    end

info() click to toggle source

    # File lib/tkextlib/winico/winico.rb, line 49
    def self.info
      simplelist(Tk.tk_call('winico', 'info')).collect{|id|
        Tk::Winico.id2obj(id)
      }
    end

new(file_name, resource_name=nil, winico_id=nil) click to toggle source

    # File lib/tkextlib/winico/winico.rb, line 72
    def initialize(file_name, resource_name=nil, winico_id=nil)
      if resource_name
        # from resource
        if file_name
          @id = Tk.tk_call('winico', 'load', resource_name, file_name)
        else
          @id = Tk.tk_call('winico', 'load', resource_name)
        end
      elsif file_name
        # from .ico file
        @id = Tk.tk_call('winico', 'createfrom', file_name)
      elsif winico_id
        @id = winico_id
      else
        fail ArgumentError,
             "must be given proper information from where loading icons"
      end
      @path = @id
      WinicoID_TBL.mutex.synchronize{
        WinicoID_TBL[@id] = self
      }
    end

new_from_file(file_name) click to toggle source

    # File lib/tkextlib/winico/winico.rb, line 64
    def self.new_from_file(file_name)
      self.new(file_name)
    end

new_from_resource(resource_name, file_name = nil) click to toggle source

    # File lib/tkextlib/winico/winico.rb, line 68
    def self.new_from_resource(resource_name, file_name = nil)
      self.new(file_name, resource_name)
    end

package_name() click to toggle source

    # File lib/tkextlib/winico/winico.rb, line 22
    def self.package_name
      PACKAGE_NAME
    end

package_version() click to toggle source

    # File lib/tkextlib/winico/winico.rb, line 26
    def self.package_version
      begin
        TkPackage.require('winico')
      rescue
        ''
      end
    end

### Public Instance Methods

add_to_taskbar(keys = {}) click to toggle source

    # File lib/tkextlib/winico/winico.rb, line 186
    def add_to_taskbar(keys = {})
      keys = _symbolkey2str(keys)
      Winico_callback._config_keys.each{|k|
        if keys[k].kind_of?(Array)
          cmd, *args = keys[k]
          #keys[k] = Winico_callback.new(cmd, args.join(' '))
          keys[k] = Winico_callback.new(cmd, *args)
         # elsif keys[k].kind_of?(Proc)
        elsif TkComm._callback_entry?(keys[k])
          keys[k] = Winico_callback.new(keys[k])
        end
      }
      tk_call('winico', 'taskbar', 'add', @id, *(hash_kv(keys)))
      self
    end

Also aliased as: taskbar_add
delete() click to toggle source

    # File lib/tkextlib/winico/winico.rb, line 105
    def delete
      tk_call('winico', 'delete', @id)
      WinicoID_TBL.mutex.synchronize{
        WinicoID_TBL.delete(@id)
      }
      self
    end

Also aliased as: destroy
delete_from_taskbar() click to toggle source

    # File lib/tkextlib/winico/winico.rb, line 220
    def delete_from_taskbar
      tk_call('winico', 'taskbar', 'delete', @id)
      self
    end

Also aliased as: taskbar_delete
destroy()
Alias for: delete
id() click to toggle source

    # File lib/tkextlib/winico/winico.rb, line 95
    def id
      @id
    end

info() click to toggle source

    # File lib/tkextlib/winico/winico.rb, line 114
    def info
      Tk::Winico.icon_info(@id)
    end

modify_taskbar(keys = {}) click to toggle source

    # File lib/tkextlib/winico/winico.rb, line 203
    def modify_taskbar(keys = {})
      keys = _symbolkey2str(keys)
      Winico_callback._config_keys.each{|k|
        if keys[k].kind_of?(Array)
          cmd, *args = keys[k]
          #keys[k] = Winico_callback.new(cmd, args.join(' '))
          keys[k] = Winico_callback.new(cmd, *args)
        # elsif keys[k].kind_of?(Proc)
        elsif TkComm._callback_entry?(keys[k])
          keys[k] = Winico_callback.new(keys[k])
        end
      }
      tk_call('winico', 'taskbar', 'modify', @id, *(hash_kv(keys)))
      self
    end

Also aliased as: taskbar_modify
set_window(win_id, *opts) click to toggle source

    # File lib/tkextlib/winico/winico.rb, line 99
    def set_window(win_id, *opts) # opts := ?'big'|'small'?, ?pos?
      # NOTE:: the window, which is denoted by win_id, MUST BE MAPPED.
      #        If not, then this may fail or crash.
      tk_call('winico', 'setwindow', win_id, @id, *opts)
    end

taskbar_add(keys = {})
Alias for: add_to_taskbar
taskbar_delete()
Alias for: delete_from_taskbar
taskbar_modify(keys = {})
Alias for: modify_taskbar