/* This file was generated by Maki Compiler, do not edit manually */

#include <precomp.h>

#include "c_guilist.h"
#include <api/script/objcontroller.h>

C_GuiList::C_GuiList(ScriptObject *object) : C_GuiObject(object) {
  inited = 0;
  obj = NULL;
  C_hook(object);
}

C_GuiList::C_GuiList() {
  inited = 0;
  obj = NULL;
}

void C_GuiList::C_hook(ScriptObject *object) {
  ASSERT(!inited);
  ScriptObjectController *controller = object->vcpu_getController();
  obj = controller->cast(object, guiListGuid);
  if (obj != object && obj != NULL)
    controller = obj->vcpu_getController();
  else
    obj = NULL;

  int iter = WASABI_API_APP->app_getInitCount();
  if (!loaded || loaded != iter) {
    loaded = iter;
    getnumitems_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getNumItems", this);
    getwantautodeselect_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getWantAutoDeselect", this);
    setwantautodeselect_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"setWantAutoDeselect", this);
    onsetvisible_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"onSetVisible", this);
    setautosort_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"setAutoSort", this);
    next_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"next", this);
    selectcurrent_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"selectCurrent", this);
    selectfirstentry_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"selectFirstEntry", this);
    previous_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"previous", this);
    pagedown_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"pagedown", this);
    pageup_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"pageup", this);
    home_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"home", this);
    end_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"end", this);
    reset_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"reset", this);
    addcolumn_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"addColumn", this);
    getnumcolumns_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getNumColumns", this);
    getcolumnwidth_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getColumnWidth", this);
    setcolumnwidth_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"setColumnWidth", this);
    getcolumnlabel_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getColumnLabel", this);
    setcolumnlabel_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"setColumnLabel", this);
    getcolumnnumeric_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getColumnNumeric", this);
    setcolumndynamic_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"setColumnDynamic", this);
    iscolumndynamic_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"isColumnDynamic", this);
    setminimumsize_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"setMinimumSize", this);
    additem_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"addItem", this);
    insertitem_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"insertItem", this);
    getlastaddeditempos_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getLastAddedItemPos", this);
    setsubitem_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"setSubItem", this);
    deleteallitems_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"deleteAllItems", this);
    deletebypos_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"deleteByPos", this);
    getitemlabel_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getItemLabel", this);
    setitemlabel_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"setItemLabel", this);
    getitemselected_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getItemSelected", this);
    isitemfocused_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"isItemFocused", this);
    getitemfocused_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getItemFocused", this);
    setitemfocused_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"setItemFocused", this);
    ensureitemvisible_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"ensureItemVisible", this);
    invalidatecolumns_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"invalidateColumns", this);
    scrollabsolute_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"scrollAbsolute", this);
    scrollrelative_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"scrollRelative", this);
    scrollleft_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"scrollLeft", this);
    scrollright_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"scrollRight", this);
    scrollup_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"scrollUp", this);
    scrolldown_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"scrollDown", this);
    getsubitemtext_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getSubitemText", this);
    getfirstitemselected_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getFirstItemSelected", this);
    getnextitemselected_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getNextItemSelected", this);
    selectall_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"selectAll", this);
    deselectall_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"deselectAll", this);
    invertselection_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"invertSelection", this);
    invalidateitem_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"invalidateItem", this);
    getfirstitemvisible_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getFirstItemVisible", this);
    getlastitemvisible_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getLastItemVisible", this);
    setfontsize_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"setFontSize", this);
    getfontsize_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getFontSize", this);
    jumptonext_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"jumpToNext", this);
    scrolltoitem_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"scrollToItem", this);
    resort_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"resort", this);
    getsortdirection_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getSortDirection", this);
    getsortcolumn_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getSortColumn", this);
    setsortcolumn_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"setSortColumn", this);
    setsortdirection_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"setSortDirection", this);
    getitemcount_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getItemCount", this);
    setselectionstart_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"setSelectionStart", this);
    setselectionend_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"setSelectionEnd", this);
    setselected_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"setSelected", this);
    toggleselection_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"toggleSelection", this);
    getheaderheight_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getHeaderHeight", this);
    getpreventmultipleselection_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"getPreventMultipleSelection", this);
    setpreventmultipleselection_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"setPreventMultipleSelection", this);
    moveitem_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"moveItem", this);
    onselectall_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"onSelectAll", this);
    ondelete_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"onDelete", this);
    ondoubleclick_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"onDoubleClick", this);
    onleftclick_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"onLeftClick", this);
    onsecondleftclick_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"onSecondLeftClick", this);
    onrightclick_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"onRightClick", this);
    oncolumndblclick_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"onColumnDblClick", this);
    oncolumnlabelclick_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"onColumnLabelClick", this);
    onitemselection_id = WASABI_API_MAKI->maki_addDlfRef(controller, L"onItemSelection", this);
  }
  inited = 1;
}

C_GuiList::~C_GuiList() {
}

ScriptObject *C_GuiList::getScriptObject() {
  if (obj != NULL) return obj;
  return C_GUILIST_PARENT::getScriptObject();
}

int C_GuiList::getNumItems() {
  ASSERT(inited);
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getnumitems_id, NULL));
}

int C_GuiList::getWantAutoDeselect() {
  ASSERT(inited);
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getwantautodeselect_id, NULL));
}

void C_GuiList::setWantAutoDeselect(int want) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(want);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), setwantautodeselect_id, params);
}

void C_GuiList::onSetVisible(int show) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(show);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), onsetvisible_id, params);
}

void C_GuiList::setAutoSort(int dosort) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(dosort);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), setautosort_id, params);
}

void C_GuiList::next() {
  ASSERT(inited);
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), next_id, NULL);
}

void C_GuiList::selectCurrent() {
  ASSERT(inited);
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), selectcurrent_id, NULL);
}

void C_GuiList::selectFirstEntry() {
  ASSERT(inited);
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), selectfirstentry_id, NULL);
}

void C_GuiList::previous() {
  ASSERT(inited);
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), previous_id, NULL);
}

void C_GuiList::pagedown() {
  ASSERT(inited);
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), pagedown_id, NULL);
}

void C_GuiList::pageup() {
  ASSERT(inited);
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), pageup_id, NULL);
}

void C_GuiList::home() {
  ASSERT(inited);
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), home_id, NULL);
}

void C_GuiList::end() {
  ASSERT(inited);
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), end_id, NULL);
}

void C_GuiList::reset() {
  ASSERT(inited);
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), reset_id, NULL);
}

int C_GuiList::addColumn(const wchar_t *name, int width, int numeric) 
{
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_STRING(name);
  scriptVar b = MAKE_SCRIPT_INT(width);
  scriptVar c = MAKE_SCRIPT_INT(numeric);
  scriptVar *params[3] = {&a, &b, &c};
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), addcolumn_id, params));
}

int C_GuiList::getNumColumns() {
  ASSERT(inited);
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getnumcolumns_id, NULL));
}

int C_GuiList::getColumnWidth(int column) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(column);
  scriptVar *params[1] = {&a};
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getcolumnwidth_id, params));
}

void C_GuiList::setColumnWidth(int column, int newwidth) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(column);
  scriptVar b = MAKE_SCRIPT_INT(newwidth);
  scriptVar *params[2] = {&a, &b};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), setcolumnwidth_id, params);
}

const wchar_t *C_GuiList::getColumnLabel(int column) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(column);
  scriptVar *params[1] = {&a};
  return GET_SCRIPT_STRING(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getcolumnlabel_id, params));
}

void C_GuiList::setColumnLabel(int column, const wchar_t *newlabel) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(column);
  scriptVar b = MAKE_SCRIPT_STRING(newlabel);
  scriptVar *params[2] = {&a, &b};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), setcolumnlabel_id, params);
}

int C_GuiList::getColumnNumeric(int column) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(column);
  scriptVar *params[1] = {&a};
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getcolumnnumeric_id, params));
}

void C_GuiList::setColumnDynamic(int column, int isdynamic) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(column);
  scriptVar b = MAKE_SCRIPT_INT(isdynamic);
  scriptVar *params[2] = {&a, &b};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), setcolumndynamic_id, params);
}

int C_GuiList::isColumnDynamic(int column) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(column);
  scriptVar *params[1] = {&a};
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), iscolumndynamic_id, params));
}

void C_GuiList::setMinimumSize(int size) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(size);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), setminimumsize_id, params);
}

int C_GuiList::addItem(const wchar_t *label) 
{
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_STRING(label);
  scriptVar *params[1] = {&a};
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), additem_id, params));
}

int C_GuiList::insertItem(int pos, const wchar_t *label) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(pos);
  scriptVar b = MAKE_SCRIPT_STRING(label);
  scriptVar *params[2] = {&a, &b};
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), insertitem_id, params));
}

int C_GuiList::getLastAddedItemPos() {
  ASSERT(inited);
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getlastaddeditempos_id, NULL));
}

void C_GuiList::setSubItem(int pos, int subpos, const wchar_t *txt) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(pos);
  scriptVar b = MAKE_SCRIPT_INT(subpos);
  scriptVar c = MAKE_SCRIPT_STRING(txt);
  scriptVar *params[3] = {&a, &b, &c};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), setsubitem_id, params);
}

void C_GuiList::deleteAllItems() {
  ASSERT(inited);
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), deleteallitems_id, NULL);
}

int C_GuiList::deleteByPos(int pos) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(pos);
  scriptVar *params[1] = {&a};
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), deletebypos_id, params));
}

const wchar_t *C_GuiList::getItemLabel(int pos, int subpos) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(pos);
  scriptVar b = MAKE_SCRIPT_INT(subpos);
  scriptVar *params[2] = {&a, &b};
  return GET_SCRIPT_STRING(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getitemlabel_id, params));
}

void C_GuiList::setItemLabel(int pos, const wchar_t *_text) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(pos);
  scriptVar b = MAKE_SCRIPT_STRING(_text);
  scriptVar *params[2] = {&a, &b};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), setitemlabel_id, params);
}

int C_GuiList::getItemSelected(int pos) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(pos);
  scriptVar *params[1] = {&a};
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getitemselected_id, params));
}

int C_GuiList::isItemFocused(int pos) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(pos);
  scriptVar *params[1] = {&a};
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), isitemfocused_id, params));
}

int C_GuiList::getItemFocused() {
  ASSERT(inited);
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getitemfocused_id, NULL));
}

void C_GuiList::setItemFocused(int pos) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(pos);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), setitemfocused_id, params);
}

void C_GuiList::ensureItemVisible(int pos) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(pos);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), ensureitemvisible_id, params);
}

void C_GuiList::invalidateColumns() {
  ASSERT(inited);
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), invalidatecolumns_id, NULL);
}

int C_GuiList::scrollAbsolute(int x) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(x);
  scriptVar *params[1] = {&a};
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), scrollabsolute_id, params));
}

int C_GuiList::scrollRelative(int x) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(x);
  scriptVar *params[1] = {&a};
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), scrollrelative_id, params));
}

void C_GuiList::scrollLeft(int lines) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(lines);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), scrollleft_id, params);
}

void C_GuiList::scrollRight(int lines) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(lines);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), scrollright_id, params);
}

void C_GuiList::scrollUp(int lines) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(lines);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), scrollup_id, params);
}

void C_GuiList::scrollDown(int lines) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(lines);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), scrolldown_id, params);
}

const wchar_t *C_GuiList::getSubitemText(int pos, int subpos) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(pos);
  scriptVar b = MAKE_SCRIPT_INT(subpos);
  scriptVar *params[2] = {&a, &b};
  return GET_SCRIPT_STRING(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getsubitemtext_id, params));
}

int C_GuiList::getFirstItemSelected() {
  ASSERT(inited);
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getfirstitemselected_id, NULL));
}

int C_GuiList::getNextItemSelected(int lastpos) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(lastpos);
  scriptVar *params[1] = {&a};
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getnextitemselected_id, params));
}

int C_GuiList::selectAll() {
  ASSERT(inited);
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), selectall_id, NULL));
}

int C_GuiList::deselectAll() {
  ASSERT(inited);
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), deselectall_id, NULL));
}

int C_GuiList::invertSelection() {
  ASSERT(inited);
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), invertselection_id, NULL));
}

int C_GuiList::invalidateItem(int pos) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(pos);
  scriptVar *params[1] = {&a};
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), invalidateitem_id, params));
}

int C_GuiList::getFirstItemVisible() {
  ASSERT(inited);
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getfirstitemvisible_id, NULL));
}

int C_GuiList::getLastItemVisible() {
  ASSERT(inited);
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getlastitemvisible_id, NULL));
}

int C_GuiList::setFontSize(int size) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(size);
  scriptVar *params[1] = {&a};
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), setfontsize_id, params));
}

int C_GuiList::getFontSize() {
  ASSERT(inited);
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getfontsize_id, NULL));
}

void C_GuiList::jumpToNext(int c) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(c);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), jumptonext_id, params);
}

void C_GuiList::scrollToItem(int pos) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(pos);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), scrolltoitem_id, params);
}

void C_GuiList::resort() {
  ASSERT(inited);
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), resort_id, NULL);
}

int C_GuiList::getSortDirection() {
  ASSERT(inited);
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getsortdirection_id, NULL));
}

int C_GuiList::getSortColumn() {
  ASSERT(inited);
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getsortcolumn_id, NULL));
}

void C_GuiList::setSortColumn(int col) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(col);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), setsortcolumn_id, params);
}

void C_GuiList::setSortDirection(int dir) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(dir);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), setsortdirection_id, params);
}

int C_GuiList::getItemCount() {
  ASSERT(inited);
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getitemcount_id, NULL));
}

void C_GuiList::setSelectionStart(int pos) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(pos);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), setselectionstart_id, params);
}

void C_GuiList::setSelectionEnd(int pos) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(pos);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), setselectionend_id, params);
}

void C_GuiList::setSelected(int pos, int selected) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(pos);
  scriptVar b = MAKE_SCRIPT_INT(selected);
  scriptVar *params[2] = {&a, &b};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), setselected_id, params);
}

void C_GuiList::toggleSelection(int pos, int setfocus) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(pos);
  scriptVar b = MAKE_SCRIPT_INT(setfocus);
  scriptVar *params[2] = {&a, &b};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), toggleselection_id, params);
}

int C_GuiList::getHeaderHeight() {
  ASSERT(inited);
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getheaderheight_id, NULL));
}

int C_GuiList::getPreventMultipleSelection() {
  ASSERT(inited);
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), getpreventmultipleselection_id, NULL));
}

int C_GuiList::setPreventMultipleSelection(int val) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(val);
  scriptVar *params[1] = {&a};
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), setpreventmultipleselection_id, params));
}

void C_GuiList::moveItem(int from, int to) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(from);
  scriptVar b = MAKE_SCRIPT_INT(to);
  scriptVar *params[2] = {&a, &b};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), moveitem_id, params);
}

void C_GuiList::onSelectAll() {
  ASSERT(inited);
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), onselectall_id, NULL);
}

void C_GuiList::onDelete() {
  ASSERT(inited);
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), ondelete_id, NULL);
}

void C_GuiList::onDoubleClick(int itemnum) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(itemnum);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), ondoubleclick_id, params);
}

void C_GuiList::onLeftClick(int itemnum) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(itemnum);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), onleftclick_id, params);
}

void C_GuiList::onSecondLeftClick(int itemnum) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(itemnum);
  scriptVar *params[1] = {&a};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), onsecondleftclick_id, params);
}

int C_GuiList::onRightClick(int itemnum) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(itemnum);
  scriptVar *params[1] = {&a};
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), onrightclick_id, params));
}

int C_GuiList::onColumnDblClick(int col, int x, int y) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(col);
  scriptVar b = MAKE_SCRIPT_INT(x);
  scriptVar c = MAKE_SCRIPT_INT(y);
  scriptVar *params[3] = {&a, &b, &c};
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), oncolumndblclick_id, params));
}

int C_GuiList::onColumnLabelClick(int col, int x, int y) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(col);
  scriptVar b = MAKE_SCRIPT_INT(x);
  scriptVar c = MAKE_SCRIPT_INT(y);
  scriptVar *params[3] = {&a, &b, &c};
  return GET_SCRIPT_INT(WASABI_API_MAKI->maki_callFunction(getScriptObject(), oncolumnlabelclick_id, params));
}

void C_GuiList::onItemSelection(int itemnum, int selected) {
  ASSERT(inited);
  scriptVar a = MAKE_SCRIPT_INT(itemnum);
  scriptVar b = MAKE_SCRIPT_INT(selected);
  scriptVar *params[2] = {&a, &b};
  WASABI_API_MAKI->maki_callFunction(getScriptObject(), onitemselection_id, params);
}

int C_GuiList::loaded=0;
int C_GuiList::getnumitems_id=0;
int C_GuiList::getwantautodeselect_id=0;
int C_GuiList::setwantautodeselect_id=0;
int C_GuiList::onsetvisible_id=0;
int C_GuiList::setautosort_id=0;
int C_GuiList::next_id=0;
int C_GuiList::selectcurrent_id=0;
int C_GuiList::selectfirstentry_id=0;
int C_GuiList::previous_id=0;
int C_GuiList::pagedown_id=0;
int C_GuiList::pageup_id=0;
int C_GuiList::home_id=0;
int C_GuiList::end_id=0;
int C_GuiList::reset_id=0;
int C_GuiList::addcolumn_id=0;
int C_GuiList::getnumcolumns_id=0;
int C_GuiList::getcolumnwidth_id=0;
int C_GuiList::setcolumnwidth_id=0;
int C_GuiList::getcolumnlabel_id=0;
int C_GuiList::setcolumnlabel_id=0;
int C_GuiList::getcolumnnumeric_id=0;
int C_GuiList::setcolumndynamic_id=0;
int C_GuiList::iscolumndynamic_id=0;
int C_GuiList::setminimumsize_id=0;
int C_GuiList::additem_id=0;
int C_GuiList::insertitem_id=0;
int C_GuiList::getlastaddeditempos_id=0;
int C_GuiList::setsubitem_id=0;
int C_GuiList::deleteallitems_id=0;
int C_GuiList::deletebypos_id=0;
int C_GuiList::getitemlabel_id=0;
int C_GuiList::setitemlabel_id=0;
int C_GuiList::getitemselected_id=0;
int C_GuiList::isitemfocused_id=0;
int C_GuiList::getitemfocused_id=0;
int C_GuiList::setitemfocused_id=0;
int C_GuiList::ensureitemvisible_id=0;
int C_GuiList::invalidatecolumns_id=0;
int C_GuiList::scrollabsolute_id=0;
int C_GuiList::scrollrelative_id=0;
int C_GuiList::scrollleft_id=0;
int C_GuiList::scrollright_id=0;
int C_GuiList::scrollup_id=0;
int C_GuiList::scrolldown_id=0;
int C_GuiList::getsubitemtext_id=0;
int C_GuiList::getfirstitemselected_id=0;
int C_GuiList::getnextitemselected_id=0;
int C_GuiList::selectall_id=0;
int C_GuiList::deselectall_id=0;
int C_GuiList::invertselection_id=0;
int C_GuiList::invalidateitem_id=0;
int C_GuiList::getfirstitemvisible_id=0;
int C_GuiList::getlastitemvisible_id=0;
int C_GuiList::setfontsize_id=0;
int C_GuiList::getfontsize_id=0;
int C_GuiList::jumptonext_id=0;
int C_GuiList::scrolltoitem_id=0;
int C_GuiList::resort_id=0;
int C_GuiList::getsortdirection_id=0;
int C_GuiList::getsortcolumn_id=0;
int C_GuiList::setsortcolumn_id=0;
int C_GuiList::setsortdirection_id=0;
int C_GuiList::getitemcount_id=0;
int C_GuiList::setselectionstart_id=0;
int C_GuiList::setselectionend_id=0;
int C_GuiList::setselected_id=0;
int C_GuiList::toggleselection_id=0;
int C_GuiList::getheaderheight_id=0;
int C_GuiList::getpreventmultipleselection_id=0;
int C_GuiList::setpreventmultipleselection_id=0;
int C_GuiList::moveitem_id=0;
int C_GuiList::onselectall_id=0;
int C_GuiList::ondelete_id=0;
int C_GuiList::ondoubleclick_id=0;
int C_GuiList::onleftclick_id=0;
int C_GuiList::onsecondleftclick_id=0;
int C_GuiList::onrightclick_id=0;
int C_GuiList::oncolumndblclick_id=0;
int C_GuiList::oncolumnlabelclick_id=0;
int C_GuiList::onitemselection_id=0;
