Пример #1
0
IoObject *IoSkipDBCursor_previous(IoObject *self, IoObject *locals, IoMessage *m)
{
	/*doc SkipDBCursor previous
	Move cursor to previous item. Returns self.
	*/

	IOASSERT(CURSOR(self), "SkipDBCursor invalid");
	SkipDBCursor_previous(CURSOR(self));
	return self;
}
Пример #2
0
IoObject *IoSkipDBCursor_next(IoObject *self, IoObject *locals, IoMessage *m)
{
	/*doc SkipDBCursor next
	Move cursor to next item. Returns self.
	*/

	IOASSERT(CURSOR(self), "SkipDBCursor invalid");
	SkipDBCursor_next(CURSOR(self));
	return self;
}
Пример #3
0
IoObject *IoSkipDBCursor_goto(IoObject *self, IoObject *locals, IoMessage *m)
{
	/*doc SkipDBCursor goto(aKey)
	Move cursor to the specified key or nearest preceeding key. Returns self
	*/

	IoSeq *key = IoMessage_locals_seqArgAt_(m, locals, 0);
	IOASSERT(CURSOR(self), "SkipDBCursor invalid");
	SkipDBCursor_goto_(CURSOR(self), IoSeq_asDatum(key));
	return self;
}
Пример #4
0
IoObject *IoSkipDBCursor_value(IoObject *self, IoObject *locals, IoMessage *m)
{
	/*doc SkipDBCursor value
	Returns the current cursor key, or nil if the cursor is out of range.
	*/

	IOASSERT(CURSOR(self), "SkipDBCursor invalid");

	{
	SkipDBRecord *r = SkipDBCursor_current(CURSOR(self));

	if (r)
	{
		Datum v = SkipDBRecord_valueDatum(r);
		return IoSeq_newWithDatum_(IOSTATE, &v);
	}

	return IONIL(self);
	}
}
Пример #5
0
int open(lua_State* L)
{
	FLAT_LUA_EXPECT_STACK_GROWTH(L, 0);

	static const luaL_Reg Mouse_lib_s[] = {
		{"getPosition",      l_Mouse_getPosition},

		{"setCursor",        l_Mouse_setCursor},
		{"setDefaultCursor", l_Mouse_setDefaultCursor},

		{nullptr, nullptr}
	};
	luaL_newlib(L, Mouse_lib_s);

	lua_pushstring(L, "Cursor");
	static const flat::lua::table::KeyValuePair<int> cursorTypesTable[] = {
		{"ARROW",     CURSOR(ARROW)},
		{"IBEAM",     CURSOR(IBEAM)},
		{"WAIT",      CURSOR(WAIT)},
		{"CROSSHAIR", CURSOR(CROSSHAIR)},
		{"WAITARROW", CURSOR(WAITARROW)},
		{"SIZENWSE",  CURSOR(SIZENWSE)},
		{"SIZENESW",  CURSOR(SIZENESW)},
		{"SIZEWE",    CURSOR(SIZEWE)},
		{"SIZENS",    CURSOR(SIZENS)},
		{"SIZEALL",   CURSOR(SIZEALL)},
		{"NO",        CURSOR(NO)},
		{"HAND",      CURSOR(HAND)},

		{nullptr, 0},
	};
	flat::lua::table::pushTable(L, cursorTypesTable);
	lua_settable(L, -3);

	lua_setglobal(L, "Mouse");
	
	return 0;
}
Пример #6
0
void IoSkipDBCursor_free(IoSkipDBCursor *self)
{
	if (CURSOR(self)) SkipDBCursor_release(CURSOR(self));
}