Sha256: 752ef2df021b73871846bc66f69bed738df55bb4f017e50cf0ff53882553749d

Contents?: true

Size: 1.84 KB

Versions: 6

Compression:

Stored size: 1.84 KB

Contents

#include "reflex/ruby/event.h"


#include <rucy.h>
#include "reflex/ruby/view.h"
#include "defs.h"


using namespace Rucy;


RUCY_DEFINE_VALUE_FROM_TO(Reflex::FocusEvent)

#define THIS  to<Reflex::FocusEvent*>(self)

#define CHECK RUCY_CHECK_OBJ(Reflex::FocusEvent, self)


static
VALUE alloc(VALUE klass)
{
	return new_type<Reflex::FocusEvent>(klass);
}

static
VALUE initialize(VALUE self, VALUE type, VALUE focus, VALUE last)
{
	CHECK;

	THIS->focus = to<Reflex::View*>(focus);
	THIS->focus = to<Reflex::View*>(focus);
	THIS->last  = to<Reflex::View*>(last);

	return rb_call_super(0, NULL);
}

static
VALUE initialize_copy(VALUE self, VALUE obj)
{
	CHECK;
	*THIS = to<Reflex::FocusEvent&>(obj);
	return self;
}

static
VALUE get_type(VALUE self)
{
	CHECK;
	return value(THIS->type);
}

static
VALUE focus(VALUE self)
{
	CHECK;
	return THIS->focus ? value(THIS->focus) : nil();
}

static
VALUE last(VALUE self)
{
	CHECK;
	return THIS->last ? value(THIS->last) : nil();
}


static Class cFocusEvent;

void
Init_focus_event ()
{
	Module mReflex = rb_define_module("Reflex");

	cFocusEvent = mReflex.define_class("FocusEvent", Reflex::event_class());
	rb_define_alloc_func(cFocusEvent, alloc);
	rb_define_private_method(cFocusEvent, "initialize", RUBY_METHOD_FUNC(initialize), 3);
	rb_define_private_method(cFocusEvent, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
	rb_define_method(cFocusEvent, "get_type", RUBY_METHOD_FUNC(get_type), 0);
	rb_define_method(cFocusEvent, "focus", RUBY_METHOD_FUNC(focus), 0);
	rb_define_method(cFocusEvent, "last", RUBY_METHOD_FUNC(last), 0);
	cFocusEvent.define_const("TYPE_NONE",  Reflex::FocusEvent::NONE);
	cFocusEvent.define_const("TYPE_FOCUS", Reflex::FocusEvent::FOCUS);
	cFocusEvent.define_const("TYPE_BLUR",  Reflex::FocusEvent::BLUR);
}


namespace Reflex
{


	Class
	focus_event_class ()
	{
		return cFocusEvent;
	}


}// Reflex

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
reflexion-0.1.12 .doc/ext/reflex/focus_event.cpp
reflexion-0.1.11 .doc/ext/reflex/focus_event.cpp
reflexion-0.1.10 .doc/ext/reflex/focus_event.cpp
reflexion-0.1.9.1 .doc/ext/reflex/focus_event.cpp
reflexion-0.1.9 .doc/ext/reflex/focus_event.cpp
reflexion-0.1.8 .doc/ext/reflex/focus_event.cpp