Sha256: b1ca5489544946806cd415e924b6e39c2bbdc8ffa85097eabf45fe233c8586fc

Contents?: true

Size: 1.34 KB

Versions: 21

Compression:

Stored size: 1.34 KB

Contents

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

###
# wxRuby3 wxWidgets interface director
###

module WXRuby3

  class Director

    class EventBlocker < Director

      def setup
        super
        spec.gc_as_untracked # no tracking
        spec.make_abstract('wxEventBlocker')
        spec.ignore 'wxEventBlocker::wxEventBlocker'
        spec.no_proxy 'wxEventBlocker'
        # needs construction on stack so make abstract and add factory class method for block execution
        spec.add_extend_code 'wxEventBlocker', <<~__HEREDOC
          static VALUE blocked_for(wxWindow* win, wxEventType evt_type = wxEVT_ANY) 
          {
              if (!wxRuby_IsAppRunning()) 
                rb_raise(rb_eRuntimeError, "A running Wx::App is required.");
              VALUE rc = Qnil;
              if (rb_block_given_p ())
              {
                wxEventBlocker blkr(win, evt_type);
                wxEventBlocker *blk_p = &blkr;
                VALUE rb_blkr = SWIG_NewPointerObj(SWIG_as_voidptr(blk_p), SWIGTYPE_p_wxEventBlocker, 0);
                rc = rb_yield(rb_blkr);
              }
              return rc;
          }
          __HEREDOC
        spec.do_not_generate :variables, :defines, :enums, :functions
      end
    end # class EventBlocker

  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/event_blocker.rb
wxruby3-1.5.0 rakelib/lib/director/event_blocker.rb
wxruby3-1.4.2 rakelib/lib/director/event_blocker.rb
wxruby3-1.4.1 rakelib/lib/director/event_blocker.rb
wxruby3-1.4.0 rakelib/lib/director/event_blocker.rb
wxruby3-1.3.1 rakelib/lib/director/event_blocker.rb
wxruby3-1.3.0 rakelib/lib/director/event_blocker.rb
wxruby3-1.2.1 rakelib/lib/director/event_blocker.rb
wxruby3-1.2.0 rakelib/lib/director/event_blocker.rb
wxruby3-1.1.2 rakelib/lib/director/event_blocker.rb
wxruby3-1.1.1 rakelib/lib/director/event_blocker.rb
wxruby3-1.1.0 rakelib/lib/director/event_blocker.rb
wxruby3-1.0.1 rakelib/lib/director/event_blocker.rb
wxruby3-0.9.8 rakelib/lib/director/event_blocker.rb
wxruby3-0.9.7 rakelib/lib/director/event_blocker.rb
wxruby3-0.9.5 rakelib/lib/director/event_blocker.rb
wxruby3-0.9.4 rakelib/lib/director/event_blocker.rb
wxruby3-0.9.3 rakelib/lib/director/event_blocker.rb
wxruby3-0.9.2 rakelib/lib/director/event_blocker.rb
wxruby3-0.9.1 rakelib/lib/director/event_blocker.rb