Sha256: 2e8ab8bc38f2b1330122b9215c3da3ca242328e05eeba2f1707e5414e8a7a95a

Contents?: true

Size: 1.95 KB

Versions: 18

Compression:

Stored size: 1.95 KB

Contents

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

###
# wxRuby3 wxWidgets interface director
###

require_relative './ctrl_with_items'

module WXRuby3

  class Director

    class ComboBox < ControlWithItems

      def setup
        super
        setup_ctrl_with_items('wxComboBox')
        # mixin TextEntry
        spec.include_mixin 'wxComboBox', { 'Wx::TextEntry' => 'wxTextEntryBase' }
        spec.override_inheritance_chain('wxComboBox',
                                        %w[wxControlWithItems
                                           wxControl
                                           wxWindow
                                           wxEvtHandler
                                           wxObject])
        spec.ignore('wxComboBox::IsEmpty')    # ambiguous ControlWithItems<>TextEntry
        spec.rename_for_ruby(
          'SetTextSelectionRange' => 'wxComboBox::SetSelection(long, long)',
          'GetTextSelectionRange' => 'wxComboBox::GetSelection(long *, long *) const')
        spec.ignore 'wxComboBox::SetSelection(long, long)',
                    'wxComboBox::GetSelection(long *, long *) const',
                    ignore_doc: false
        # workaround because renaming and alias definitions clash
        spec.add_extend_code 'wxComboBox', <<~__HEREDOC
          void SetTextSelectionRange(long from, long to)
          {
            $self->SetSelection(from, to);
          }

          void GetTextSelectionRange(long *from, long *to)
          {
            $self->GetSelection(from, to);
          }
          __HEREDOC
        # fix override of TextEntry#clear; to be finished in pure Ruby
        spec.add_extend_code 'wxComboBox', <<~__HEREDOC
          void ClearItems()
          {
            $self->Clear();
          }
          __HEREDOC
        spec.map_apply 'long * OUTPUT' => [ 'long *from', 'long *to' ]
      end

    end # class ComboBox

  end # class Director

end # module WXRuby3

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
wxruby3-1.5.1 rakelib/lib/director/combobox.rb
wxruby3-1.5.0 rakelib/lib/director/combobox.rb
wxruby3-1.4.2 rakelib/lib/director/combobox.rb
wxruby3-1.4.1 rakelib/lib/director/combobox.rb
wxruby3-1.4.0 rakelib/lib/director/combobox.rb
wxruby3-1.3.1 rakelib/lib/director/combobox.rb
wxruby3-1.3.0 rakelib/lib/director/combobox.rb
wxruby3-1.2.1 rakelib/lib/director/combobox.rb
wxruby3-1.2.0 rakelib/lib/director/combobox.rb
wxruby3-1.1.2 rakelib/lib/director/combobox.rb
wxruby3-1.1.1 rakelib/lib/director/combobox.rb
wxruby3-1.1.0 rakelib/lib/director/combobox.rb
wxruby3-1.0.1 rakelib/lib/director/combobox.rb
wxruby3-0.9.8 rakelib/lib/director/combobox.rb
wxruby3-0.9.7 rakelib/lib/director/combobox.rb
wxruby3-0.9.5 rakelib/lib/director/combobox.rb
wxruby3-0.9.4 rakelib/lib/director/combobox.rb
wxruby3-0.9.3 rakelib/lib/director/combobox.rb