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; }
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; }
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; }
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); } }
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; }
void IoSkipDBCursor_free(IoSkipDBCursor *self) { if (CURSOR(self)) SkipDBCursor_release(CURSOR(self)); }