Sha256: 62e695bd5744ecd756aff5ded05694ed2e6f5c5acf96cac43d44eb87de23868d

Contents?: true

Size: 1.43 KB

Versions: 18

Compression:

Stored size: 1.43 KB

Contents

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

/*
 * WxRuby3 wxRubyValidatorBinding class
 */

#ifndef _WXRUBY_VALIDATOR_BINDING_H
#define _WXRUBY_VALIDATOR_BINDING_H

class WXRUBY_EXPORT wxRubyValidatorBinding
{
public:
  wxRubyValidatorBinding ()
    : self_(Qnil)
    , on_transfer_from_win_proc_(Qnil)
    , on_transfer_to_win_proc_(Qnil)
  {}

  void SetOnTransferFromWindow(VALUE proc)
  {
    this->on_transfer_from_win_proc_ = proc;
  }
  void SetOnTransferToWindow(VALUE proc)
  {
    this->on_transfer_to_win_proc_ = proc;
  }

  VALUE DoOnTransferToWindow();
  bool DoOnTransferFromWindow(VALUE data);

  bool OnTransferFromWindow(VALUE data);
  VALUE OnTransferToWindow();

  void GC_Mark()
  {
    rb_gc_mark(this->on_transfer_from_win_proc_);
    rb_gc_mark(this->on_transfer_to_win_proc_);
  }

protected:
  static WxRuby_ID do_on_transfer_from_window_id;
  static WxRuby_ID do_on_transfer_to_window_id;
  static WxRuby_ID call_id;

  wxRubyValidatorBinding (const wxRubyValidatorBinding& vb)
    : self_(Qnil)
    , on_transfer_from_win_proc_(vb.on_transfer_from_win_proc_)
    , on_transfer_to_win_proc_(vb.on_transfer_to_win_proc_)
  {}

  void CopyBindings(const wxRubyValidatorBinding* val_bind);

  virtual VALUE get_self() = 0;

  VALUE self_;

private:
  VALUE on_transfer_from_win_proc_;
  VALUE on_transfer_to_win_proc_;
};

#endif /* #define _WXRUBY_VALIDATOR_BINDING_H */

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
wxruby3-1.5.1 ext/wxruby3/include/wxruby-ValidatorBinding.h
wxruby3-1.5.0 ext/wxruby3/include/wxruby-ValidatorBinding.h
wxruby3-1.4.2 ext/wxruby3/include/wxruby-ValidatorBinding.h
wxruby3-1.4.1 ext/wxruby3/include/wxruby-ValidatorBinding.h
wxruby3-1.4.0 ext/wxruby3/include/wxruby-ValidatorBinding.h
wxruby3-1.3.1 ext/wxruby3/include/wxruby-ValidatorBinding.h
wxruby3-1.3.0 ext/wxruby3/include/wxruby-ValidatorBinding.h
wxruby3-1.2.1 ext/wxruby3/include/wxruby-ValidatorBinding.h
wxruby3-1.2.0 ext/wxruby3/include/wxruby-ValidatorBinding.h
wxruby3-1.1.2 ext/wxruby3/include/wxruby-ValidatorBinding.h
wxruby3-1.1.1 ext/wxruby3/include/wxruby-ValidatorBinding.h
wxruby3-1.1.0 ext/wxruby3/include/wxruby-ValidatorBinding.h
wxruby3-1.0.1 ext/wxruby3/include/wxruby-ValidatorBinding.h
wxruby3-0.9.8 ext/wxruby3/include/wxruby-ValidatorBinding.h
wxruby3-0.9.7 ext/wxruby3/include/wxruby-ValidatorBinding.h
wxruby3-0.9.5 ext/wxruby3/include/wxruby-ValidatorBinding.h
wxruby3-0.9.4 ext/wxruby3/include/wxruby-ValidatorBinding.h
wxruby3-0.9.3 ext/wxruby3/include/wxruby-ValidatorBinding.h