Sha256: 4acf0bd5b419ad07ba759332d6e8716aed688cff760fe90ac6acd5236902a3eb

Contents?: true

Size: 1.57 KB

Versions: 21

Compression:

Stored size: 1.57 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 './event'

module WXRuby3

  class Director

    class RibbonButtonBarEvent < Event

      def setup
        super
        # map opaque wxRibbonButtonBarButtonBase* to the integer tool ID
        spec.map 'wxRibbonButtonBarButtonBase*' => 'Integer' do
          map_out code: '$result = (($1) && (arg1)->GetBar()) ? INT2NUM((arg1)->GetBar()->GetItemId($1)) : Qnil;'
          map_in code: <<~__CODE
            if ((arg1)->GetBar() == 0) rb_raise(rb_eRuntimeError, "Cannot set button before bar has been set.");
            $1 = NIL_P($input) ? 0 : (arg1)->GetBar()->GetItemById(NUM2INT($input));
            __CODE
          map_typecheck precedence: 'INTEGER', code: '$1 = (TYPE($input) == T_FIXNUM);'
        end
        # customize ctor
        spec.ignore 'wxRibbonButtonBarEvent::wxRibbonButtonBarEvent', ignore_doc: false
        spec.add_extend_code 'wxRibbonButtonBarEvent', <<~__CODE
          wxRibbonButtonBarEvent(wxEventType command_type=wxEVT_NULL, int win_id=0, wxRibbonButtonBar *bar=NULL, VALUE button_id=Qnil)
          {
            wxRibbonButtonBarButtonBase* button = (!NIL_P(button_id) && bar) ? bar->GetItemById(NUM2INT(button_id)) : 0;
            return new wxRibbonButtonBarEvent(command_type, win_id, bar, button); 
          }
          __CODE
        spec.do_not_generate :variables, :enums, :defines, :functions
      end
    end # class RibbonButtonBarEvent

  end # class Director

end # module WXRuby3

Version data entries

21 entries across 21 versions & 1 rubygems

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