Sha256: e5ff5f5f24a1788bf0050deead39f17a079ad4537fb020da1bf59a2240e8c0de

Contents?: true

Size: 1.48 KB

Versions: 6

Compression:

Stored size: 1.48 KB

Contents

# Copyright (c) 2023 M.J.N. Corino, The Netherlands
#
# This software is released under the MIT license.
# 
# Some parts are
# Copyright 2004-2007, wxRuby development team
# released under the MIT-like wxRuby2 license

require_relative 'ext'

module Wx

  Wx.add_delayed_constant(self, :TRANSPARENT_COLOUR, 'Wx::Colour.new(0, 0, 0, Wx::ALPHA_TRANSPARENT)') { Wx::Colour.new(0, 0, 0, Wx::ALPHA_TRANSPARENT) }

  class Colour
    # Redefine the initialize method so it raises an exception if an
    # invalid colour value is given. This might be an unknown colour
    # string (eg 'dark blue') or out-of-bounds integer values (<0 or >255)
    wx_init = self.instance_method(:initialize)
    define_method(:initialize) do | *args |
      begin
        wx_init.bind(self).call(*args)
      # Invalid integer values raise SWIG 'no matching func'
      rescue ArgumentError, TypeError
        Kernel.raise ArgumentError, "Invalid colour values #{args.inspect}"
      end
    end

    # Missing Standard colour
    Wx::MAGENTA = new(255, 0, 255)

    # Colours are equal to one another if they have the same red, green
    # and blue intensity, and the same alpha
    def ==(other)
      case other
      when Wx::Colour
        [  self.red,  self.green,  self.blue,  self.alpha ] ==
        [ other.red, other.green, other.blue, other.alpha ]
      else
        false
      end
    end

    # More informative output for inspect etc
    def to_s
      "#<Wx::Colour: (#{red}, #{green}, #{blue} *#{alpha})>"
    end
  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
wxruby3-1.2.1 lib/wx/core/colour.rb
wxruby3-1.2.0 lib/wx/core/colour.rb
wxruby3-1.1.2 lib/wx/core/colour.rb
wxruby3-1.1.1 lib/wx/core/colour.rb
wxruby3-1.1.0 lib/wx/core/colour.rb
wxruby3-1.0.1 lib/wx/core/colour.rb