Sha256: 1b01efaa6107060a0013413a2db82256e98fbdb1110c51f8b089502c40e9fb34

Contents?: true

Size: 1.4 KB

Versions: 5

Compression:

Stored size: 1.4 KB

Contents

###
# wxRuby3 wxWidgets interface director
# Copyright (c) M.J.N. Corino, The Netherlands
###

module WXRuby3

  class Director

    class RegionIterator < Director

      def setup
        super
        spec.gc_never
        spec.disable_proxies
        spec.make_abstract 'wxRegionIterator'
        # not useful in wxRuby
        spec.ignore 'wxRegionIterator::Reset(const wxRegion &)',
                    'wxRegionIterator::operator bool'
        # add iteration control methods
        spec.add_extend_code 'wxRegionIterator', <<~__HEREDOC
          void next_rect()
          {
            $self->operator ++();
          }
          __HEREDOC
        # add custom factory method
        spec.add_extend_code 'wxRegionIterator', <<~__HEREDOC
          static void for_region(const wxRegion& region) 
          {
            wxRegionIterator region_it(region);
            if (rb_block_given_p())
            {
              wxRegionIterator *p_region_it = &region_it;
              VALUE rb_region_it = SWIG_NewPointerObj(SWIG_as_voidptr(p_region_it), SWIGTYPE_p_wxRegionIterator, 0);
              rb_yield(rb_region_it);
              SWIG_RubyRemoveTracking((void *)p_region_it);
              DATA_PTR(rb_region_it) = NULL;
            }
          }
          __HEREDOC
        spec.do_not_generate :functions, :variables, :defines, :enums
      end
    end # class RegionIterator

  end # class Director

end # module WXRuby3

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
wxruby3-0.9.0.pre.rc.3 rakelib/lib/director/region_iterator.rb
wxruby3-0.9.0.pre.rc.2 rakelib/lib/director/region_iterator.rb
wxruby3-0.9.0.pre.rc.1 rakelib/lib/director/region_iterator.rb
wxruby3-0.9.0.pre.beta.14 rakelib/lib/director/region_iterator.rb
wxruby3-0.9.0.pre.beta.13 rakelib/lib/director/region_iterator.rb