Sha256: 4be93356651c434b95183b3d91085e02a8e699622246c1f71a56f09af89896bb

Contents?: true

Size: 1.18 KB

Versions: 5

Compression:

Stored size: 1.18 KB

Contents

# Copyright (c) 2023 M.J.N. Corino, The Netherlands
#
# This software is released under the MIT license.

module Wx

  class OwnerDrawnComboBox

    # make sure to honor the inherited common overloads
    wx_get_client_object = instance_method :get_client_object
    wx_redefine_method :get_client_object do |*args|
      if args.empty?
        super()
      else
        wx_get_client_object.bind(self).call(*args)
      end
    end
    wx_set_client_object = instance_method :set_client_object
    wx_redefine_method :set_client_object do |*args|
      if args.size < 2
        super(*args)
      else
        wx_set_client_object.bind(self).call(*args)
      end
    end
    # redefine aliases
    alias :client_object :get_client_object
    alias :client_object= :set_client_object

    alias :get_client_data :get_client_object
    alias :set_client_data :set_client_object

    # Overload to provide Enumerator without block
    wx_each_string = instance_method :each_string
    wx_redefine_method :each_string do |&block|
      if block
        wx_each_string.bind(self).call(&block)
      else
        ::Enumerator.new { |y| wx_each_string.bind(self).call { |ln| y << ln } }
      end
    end

  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
wxruby3-1.5.1 lib/wx/core/owner_drawn_combobox.rb
wxruby3-1.5.0 lib/wx/core/owner_drawn_combobox.rb
wxruby3-1.4.2 lib/wx/core/owner_drawn_combobox.rb
wxruby3-1.4.1 lib/wx/core/owner_drawn_combobox.rb
wxruby3-1.4.0 lib/wx/core/owner_drawn_combobox.rb