Sha256: 384a7b235cd557158d04b3070e545f35ede4ba8dd550d0ea852a9fad8cdbf253

Contents?: true

Size: 1.12 KB

Versions: 5

Compression:

Stored size: 1.12 KB

Contents

module Wx

  # Mixin module to provide convenience method for defining Windows/Control ids.
  # @example Define an ID module
  #   module MyIDS
  #     include Wx::IDHelper
  #     # by default the offset for the next id is Wx::ID_HIGHEST which makes 'Wx::ID_HIGHEST+1'
  #     # the first id value returned.
  #     MY_FIRST_ID = self.next_id
  #     MY_SECOND_ID = self.next_id   # MY_SECOND_ID will have value Wx::ID_HIGHEST+2
  #
  #     # optionally a user defined offset can be specified like this:
  #     MY_OTHER_ID = self.next_id(MY_FIRST_ID+1000)  # MY_OTHER_ID will have value MY_FIRST_ID+1001
  #     MY_OTHER_ID2 = self.next_id                   # MY_OTHER_ID2 will have value MY_FIRST_ID+1002
  #   end
  #
  module IDHelper

    def self.included(base)
      base.singleton_class.class_eval do
        def next_id(offset = nil)
          # set the offset if @next_id still unset or a user defined offset has been specified
          @next_id = (offset || Wx::ID_HIGHEST) if @next_id.nil? || offset
          @next_id += 1 # increment and return next id
        end
      end
    end

  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
wxruby3-0.9.0.pre.rc.3-x64-mingw-ucrt lib/wx/core/id_helper.rb
wxruby3-0.9.0.pre.rc.2-x64-mingw-ucrt lib/wx/core/id_helper.rb
wxruby3-0.9.0.pre.rc.1-x64-mingw-ucrt lib/wx/core/id_helper.rb
wxruby3-0.9.0.pre.beta.14-x64-mingw-ucrt lib/wx/core/id_helper.rb
wxruby3-0.9.0.pre.beta.13-x64-mingw-ucrt lib/wx/core/id_helper.rb