Sha256: ab8d9297d498a10ca78606a445418381eeacfcb079ebbba854c8f94d6eb18d3f

Contents?: true

Size: 1.12 KB

Versions: 25

Compression:

Stored size: 1.12 KB

Contents

# Specific type of platform-dependent image used for frames on Windows and
# Linux. Normally Bitmap is used
class Wx::Icon
  # Load the type-guessing hash from Wx::Bitmap
  require 'wx/classes/bitmap'
  BITMAP_TYPE_GUESS = Wx::Bitmap::BITMAP_TYPE_GUESS

  # Analogous to Image.from_bitmap
  def self.from_bitmap(bmp)
    ico = new
    ico.copy_from_bitmap(bmp)
    ico
  end

  # Redefine the initialize method so it raises an exception if a
  # non-existent file is given to the constructor; otherwise, wx Widgets
  # just carries on with an empty icon, which may cause faults
  # later. Also guess icon type from filename, if not specified.
  wx_init = self.instance_method(:initialize)
  define_method(:initialize) do | *args |
    if args[0].kind_of? String
      if not File.exist?( File.expand_path(args[0]) )
        Kernel.raise(ArgumentError, "Icon file does not exist: #{args[0]}")
      end
      # If type not specified, try to guess it from the file extension
      if not args[1] and ( file_ext = args[0][/\w+$/] )
        args[1] = BITMAP_TYPE_GUESS[file_ext.downcase]
      end
    end
    wx_init.bind(self).call(*args)
  end
end

Version data entries

25 entries across 25 versions & 3 rubygems

Version Path
wxruby64-2.0.1-x64-mingw32 lib/wx/classes/icon.rb
wxruby-ruby19-2.0.1-x86-mingw32 lib/wx/classes/icon.rb
wxruby-ruby19-2.0.1-x86-linux lib/wx/classes/icon.rb
wxruby-ruby19-2.0.1-x86-darwin-9 lib/wx/classes/icon.rb
wxruby-2.0.1-x86-mswin32-60 lib/wx/classes/icon.rb
wxruby-2.0.1-x86-mingw32 lib/wx/classes/icon.rb
wxruby-2.0.1-x86-linux lib/wx/classes/icon.rb
wxruby-2.0.1-universal-darwin-9 lib/wx/classes/icon.rb
wxruby-1.9.10-universal-darwin-9 lib/wx/classes/icon.rb
wxruby-1.9.10-x86-linux lib/wx/classes/icon.rb
wxruby-1.9.10-x86-mswin32-60 lib/wx/classes/icon.rb
wxruby-1.9.10-x86-mingw32 lib/wx/classes/icon.rb
wxruby-1.9.10-x86_64-linux lib/wx/classes/icon.rb
wxruby-2.0.0-universal-darwin-9 lib/wx/classes/icon.rb
wxruby-2.0.0-x86-linux lib/wx/classes/icon.rb
wxruby-2.0.0-x86-mingw32 lib/wx/classes/icon.rb
wxruby-2.0.0-x86-mswin32-60 lib/wx/classes/icon.rb
wxruby-2.0.0-x86_64-linux lib/wx/classes/icon.rb
wxruby-ruby19-1.9.10-x86-darwin-9 lib/wx/classes/icon.rb
wxruby-ruby19-1.9.10-x86-mingw32 lib/wx/classes/icon.rb