Exemplo n.º 1
0
void QuickEdit::SetupExtraNodeController()
{

    extraNodeController = QSharedPointer<ItemController<BrowserNode> >( new ItemController<BrowserNode>());
    extraNodeController->SetColumns(columns);
    ADD_GETSET(BrowserExtraMember, extraNodeController, columns.indexOf("name"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toString().toLatin1().constData, get_name, set_name);

    ADD_GETSET(BrowserExtraMember, extraNodeController, columns.indexOf("deleted"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toBool, deletedp, set_deleted);

    ADD_PIXMAP_GETTER(BrowserExtraMember, extraNodeController, columns.indexOf("name"), QVector<int>({Qt::DecorationRole}), pixmap);

    extraNodeController->AddFlagsFunctor
            (
                [&](const QModelIndex& index)
    {
        Qt::ItemFlags result;
        result |= Qt::ItemIsSelectable;
        if(!(index.column() *in(columns.indexOf("name"), columns.indexOf("deleted"))))
            return result;

        TreeItemInterface* iface = static_cast<TreeItemInterface*>(index.internalPointer());
        if(!iface)
            return result;
        BrowserNode* pointer = static_cast<BrowserNode*>(iface->InternalPointer());
        if(!pointer)
            return result;
        if(pointer->is_writable())
            result |= Qt::ItemIsEditable;
        result |=  Qt::ItemIsEnabled;
        return result;
    }
    );
}
Exemplo n.º 2
0
void QuickEdit::SetupClassController()
{
    classController = QSharedPointer<ItemController<BrowserNode> >( new ItemController<BrowserNode>());
    classController->SetColumns(columns);
    ADD_GETSET(BrowserClass, classController, columns.indexOf("name"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toString, get_name, set_name);
    ADD_GETSET(BrowserClass, classController, columns.indexOf("stereotype"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toString, get_stereotype, def->set_stereotype);

    ADD_GETSET(BrowserClass, classController, columns.indexOf("deleted"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toBool, deletedp, set_deleted);

    ADD_GETSET_CONVERTED(BrowserClass, classController, columns.indexOf("visibility"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                         toString,BrowserNode::encode_visibility,visibility_as_string, pointer->def->set_uml_visibility);

    ADD_GETSET(BrowserClass, classController, columns.indexOf("abstract"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toBool, def->get_is_abstract, def->set_is_abstract);

    ADD_PIXMAP_GETTER(BrowserClass, classController, columns.indexOf("name"),QVector<int>({Qt::DecorationRole}), pixmap);


    classController->AddFlagsFunctor
            (
                [&](const QModelIndex& index)
    {
        Qt::ItemFlags result;
        result |= Qt::ItemIsSelectable;
        if(!(index.column() *in(columns.indexOf("name"),columns.indexOf("stereotype"),columns.indexOf("visibility"),columns.indexOf("abstract"), columns.indexOf("deleted"))))
            return result;

        TreeItemInterface* iface = static_cast<TreeItemInterface*>(index.internalPointer());
        if(!iface)
            return result;
        BrowserNode* pointer = static_cast<BrowserNode*>(iface->InternalPointer());
        if(!pointer)
            return result;
        if(pointer->is_writable())
            result |= Qt::ItemIsEditable;
        result |=  Qt::ItemIsEnabled;
        return result;
    }
    );
}
Exemplo n.º 3
0
void QuickEdit::SetupRelationController()
{
    relationController = QSharedPointer<ItemController<BrowserNode> >( new ItemController<BrowserNode>());
    relationController->SetColumns(columns);

    ADD_GETSET(BrowserRelation, relationController, columns.indexOf("name"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toString, get_name, set_name);
    ADD_GETSET_DIRECT(BrowserRelation, relationController, columns.indexOf("default"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                      toString, def->a.init_value.operator QString());

    ADD_GETSET(BrowserRelation, relationController, columns.indexOf("deleted"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toBool, deletedp, set_deleted);

    std::function<void(RoleData& , UmlVisibility ) > f = [](RoleData& data, UmlVisibility vis){data.uml_visibility = vis;};

    ADD_PIXMAP_GETTER(BrowserRelation, relationController, columns.indexOf("name"), QVector<int>({Qt::DecorationRole}), pixmap);


    relationController->AddGetter(columns.indexOf("visibility"),QVector<int>({Qt::DisplayRole,Qt::EditRole}),
    [] (const BrowserNode* data, const QModelIndex& index)
{
    Q_UNUSED(index);
        if(!data)
    return QVariant();
    const BrowserRelation* pointer = static_cast<const BrowserRelation*>(data);
    if(pointer)
    return QVariant(pointer->visibility_as_string());
    else
    return QVariant();
    }
    );
    relationController->AddSetter(columns.indexOf("visibility"),QVector<int>({Qt::DisplayRole,Qt::EditRole}),
    [] (BrowserNode* data, QVariant value, const QModelIndex& index)
{
    Q_UNUSED(index);
        if(!data)
    return false;
    BrowserRelation* pointer = static_cast<BrowserRelation*>(data);
    if(pointer)
        pointer->def->a.uml_visibility = BrowserNode::encode_visibility(value.toString());
    pointer->modified();
    return true;
    }
    );


    ADD_GETSET_DIRECT(BrowserRelation, relationController, columns.indexOf("static"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                      toBool, def->a.isa_class_relation);
    ADD_GETSET_DIRECT(BrowserRelation, relationController, columns.indexOf("multiplicity"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                      toString, def->a.multiplicity.operator QString());

    relationController->AddGetter(columns.indexOf("type"),QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                                  [] (const BrowserNode* data, const QModelIndex& )
    {

        if(!data)
            return QVariant();
        const BrowserRelation* pointer = static_cast<const BrowserRelation*>(data);
        if(pointer)
            return QVariant(pointer->def->get_end_class()->get_name());
        else
            return QVariant();
    }
    );
    relationController->AddSetter(1,QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                                  [] (BrowserNode* data, QVariant value, const QModelIndex& )
    {
        if(!data)
            return false;
        BrowserRelation* pointer = static_cast<BrowserRelation*>(data);
        if(pointer)
            pointer->def->get_end_class()->set_name(value.toString());
        pointer->modified();
        return true;
    });


    relationController->AddFlagsFunctor
            (
                [&](const QModelIndex& index)
    {
        Qt::ItemFlags result;
        result |= Qt::ItemIsSelectable;
        if(!(index.column() *in(columns.indexOf("name"),columns.indexOf("type"),columns.indexOf("default"),columns.indexOf("visibility"), columns.indexOf("deleted"))))
            return result;

        TreeItemInterface* iface = static_cast<TreeItemInterface*>(index.internalPointer());
        if(!iface)
            return result;
        BrowserNode* pointer = static_cast<BrowserNode*>(iface->InternalPointer());
        if(!pointer)
            return result;
        if(pointer->is_writable() && (index.column() *in(columns.indexOf("name"),columns.indexOf("default"),columns.indexOf("visibility"))))
            result |= Qt::ItemIsEditable;
        result |=  Qt::ItemIsEnabled ;
        return result;
    }
    );
}
Exemplo n.º 4
0
void QuickEdit::SetupOperationAttributeController()
{
    operationAttributeController = QSharedPointer<ItemController<BrowserNode> >( new ItemController<BrowserNode>());
    operationAttributeController->SetColumns(columns);
    ADD_GETSET(BrowserOperationAttribute, operationAttributeController, columns.indexOf("name"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toString, get_name, set_name);
    ADD_GETSET(BrowserOperationAttribute, operationAttributeController, columns.indexOf("type"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toString, get_param_type().get_type, set_param_type);
    ADD_GETSET(BrowserOperationAttribute, operationAttributeController, columns.indexOf("default_value"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toString, get_default_value, set_default_value);
    ADD_GETSET(BrowserOperationAttribute, operationAttributeController, columns.indexOf("direction"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toString, get_direction, set_direction);
    ADD_GETSET(BrowserOperationAttribute, operationAttributeController, columns.indexOf("deleted"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toBool, deletedp, set_deleted);

//    ADD_GETSET(BrowserOperationAttribute, operationAttributeController, columns.indexOf("prefix"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
//               toString, get_specifier, set_specifier);

    ADD_GETSET(BrowserOperationAttribute, operationAttributeController, columns.indexOf("mark"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toBool, markedp, set_marked);

    operationAttributeController->AddGetter(columns.indexOf("deleted"),QVector<int>({Qt::DisplayRole,Qt::EditRole}),
    [] (const BrowserNode* data, const QModelIndex& index)
{
        Q_UNUSED(index);
        if(!data)
    return QVariant();
    const BrowserOperationAttribute* pointer = static_cast<const BrowserOperationAttribute*>(data);
    if(pointer)
    return QVariant(pointer->deletedp());
    else
    return QVariant();
    }
    );
    operationAttributeController->AddSetter(columns.indexOf("deleted"),QVector<int>({Qt::DisplayRole,Qt::EditRole}),
    [] (BrowserNode* data, QVariant value, const QModelIndex& index)
 {
    if(!data)
    return false;
    BrowserOperationAttribute* pointer = static_cast<BrowserOperationAttribute*>(data);
    if(pointer)
    {
        pointer->set_deleted(value.toBool(), index.row());
        pointer->modified();
    }
    return true;
    }
    );

    operationAttributeController->AddGetter(columns.indexOf("prefix"),QVector<int>({Qt::DisplayRole,Qt::EditRole}),
    [] (const BrowserNode* data, const QModelIndex& index)
{
        Q_UNUSED(index);
        if(!data)
    return QVariant();
    const BrowserOperationAttribute* pointer = static_cast<const BrowserOperationAttribute*>(data);
    if(pointer)
        return QVariant(pointer->get_specifier(index.row()));
    else
    return QVariant();
    }
    );
    operationAttributeController->AddSetter(columns.indexOf("prefix"),QVector<int>({Qt::DisplayRole,Qt::EditRole}),
    [] (BrowserNode* data, QVariant value, const QModelIndex& index)
 {
    if(!data)
    return false;
    BrowserOperationAttribute* pointer = static_cast<BrowserOperationAttribute*>(data);
    if(pointer)
    {
        pointer->set_specifier(value.toString(), index.row());
        pointer->modified();
    }
    return true;
    }
    );

    operationAttributeController->AddGetter(columns.indexOf("postfix"),QVector<int>({Qt::DisplayRole,Qt::EditRole}),
    [] (const BrowserNode* data, const QModelIndex& index)
{
        Q_UNUSED(index);
        if(!data)
    return QVariant();
    const BrowserOperationAttribute* pointer = static_cast<const BrowserOperationAttribute*>(data);
    if(pointer)
        return QVariant(pointer->get_passage_type(index.row()));
    else
    return QVariant();
    }
    );
    operationAttributeController->AddSetter(columns.indexOf("postfix"),QVector<int>({Qt::DisplayRole,Qt::EditRole}),
    [] (BrowserNode* data, QVariant value, const QModelIndex& index)
 {
    if(!data)
    return false;
    BrowserOperationAttribute* pointer = static_cast<BrowserOperationAttribute*>(data);
    if(pointer)
    {
        pointer->set_passage_type(value.toString(), index.row());
        pointer->modified();
    }
    return true;
    }
    );





    std::function<void(BrowserNode* , const QModelIndex&)> f = [](BrowserNode* node, const QModelIndex& index)
    {
        BrowserOperationAttribute* oper = static_cast<BrowserOperationAttribute*>(node);
        OperationFuncs::recompute_param(oper->get_operation(),index.row(),true);
    };
    operationAttributeController->AddPostProcessors(columns.indexOf("direction"), QVector<int>(QVector<int>({Qt::DisplayRole,Qt::EditRole})),f);

    ADD_PIXMAP_GETTER(BrowserOperationAttribute, operationAttributeController, columns.indexOf("name"), QVector<int>({Qt::DecorationRole}), pixmap);



    operationAttributeController->AddFlagsFunctor
            (
                [&](const QModelIndex& index)
    {
        Qt::ItemFlags result;
        result |= Qt::ItemIsSelectable;
        if(!(index.column() *in(columns.indexOf("name"),columns.indexOf("type"),columns.indexOf("default_value"),
                                columns.indexOf("direction"), columns.indexOf("deleted"), columns.indexOf("mark"),
                                columns.indexOf("prefix"), columns.indexOf("postfix"))))
            return result;

        TreeItemInterface* iface = static_cast<TreeItemInterface*>(index.internalPointer());
        if(!iface)
            return result;
        BrowserOperationAttribute* pointer = static_cast<BrowserOperationAttribute*>(iface->InternalPointer());
        if(!pointer)
            return result;

        if(pointer->is_writable() && !pointer->is_get_set())
            result |= Qt::ItemIsEditable;
        result |=  Qt::ItemIsEnabled ;
        return result;
    }
    );
}
Exemplo n.º 5
0
void QuickEdit::SetupAttributeController()
{
    attributeController = QSharedPointer<ItemController<BrowserNode> >( new ItemController<BrowserNode>());
    attributeController->SetColumns(columns);
    ADD_GETSET(BrowserAttribute, attributeController, columns.indexOf("name"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toString, get_name, set_name);
    ADD_GETSET_DATA(BrowserAttribute, AttributeData, attributeController, columns.indexOf("type"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                    toString, get_type().get_type, set_type);
    ADD_GETSET_DATA(BrowserAttribute, AttributeData, attributeController, columns.indexOf("default_value"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                    toString, get_init_value, set_init_value);
    ADD_GETSET(BrowserAttribute, attributeController, columns.indexOf("stereotype"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toString, get_stereotype, def->set_stereotype);

    ADD_GETSET(BrowserAttribute, attributeController, columns.indexOf("deleted"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toBool, deletedp, set_deleted);

//    ADD_GETSET_DIRECT_ASSIGNMENT(BrowserAttribute, attributeController, columns.indexOf("visibility"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
//                                 visibility_as_string(), BrowserNode::encode_visibility(value.toString()));
    ADD_GETSET_CONVERTED(BrowserAttribute, attributeController, columns.indexOf("visibility"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                         toString,BrowserNode::encode_visibility,visibility_as_string, pointer->def->set_visibility);



    ADD_GETSET_DATA(BrowserAttribute, AttributeData, attributeController, columns.indexOf("static"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                    toBool,get_isa_class_attribute, set_isa_class_attribute);





    ADD_PIXMAP_GETTER(BrowserAttribute, attributeController, columns.indexOf("name"), QVector<int>({Qt::DecorationRole}), pixmap);

    attributeController->AddFlagsFunctor
            (
                [&](const QModelIndex& index)
    {
        Qt::ItemFlags result;
        result |= Qt::ItemIsSelectable;
        if(!(index.column() *in(columns.indexOf("name"),columns.indexOf("type"),columns.indexOf("default_value"),columns.indexOf("stereotype"),
                                columns.indexOf("visibility"), columns.indexOf("static"), columns.indexOf("deleted"))))
            return result;

        TreeItemInterface* iface = static_cast<TreeItemInterface*>(index.internalPointer());
        if(!iface)
            return result;
        BrowserNode* pointer = static_cast<BrowserNode*>(iface->InternalPointer());
        if(!pointer)
            return result;
        if(pointer->is_writable())
            result |= Qt::ItemIsEditable;
        result |=  Qt::ItemIsEnabled ;
        return result;
    }
    );

    std::function<void(BrowserNode*,const QModelIndex& index)> f = [](BrowserNode* node ,const QModelIndex& index)
    {
        Q_UNUSED(index);
        BrowserAttribute* attr = static_cast<BrowserAttribute*>(node);
        attr->modified();
        attr->setText(0,attr->get_name() );
        attr->package_modified();
        attr->get_data()->modified();
    };
    attributeController->AddPostProcessors(columns.indexOf("name"), QVector<int>(QVector<int>({Qt::DisplayRole,Qt::EditRole})),f);
}
Exemplo n.º 6
0
void QuickEdit::SetupOperationController()
{
    operationController = QSharedPointer<ItemController<BrowserNode> >( new ItemController<BrowserNode>());
    operationController->SetColumns(columns);
    ADD_GETSET(BrowserOperation, operationController, columns.indexOf("name"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toString().toLatin1().constData, get_name, set_name);

    ADD_GETSET_DATA(BrowserOperation, OperationData, operationController, columns.indexOf("type"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                   toString, get_return_type().get_type, set_return_type);

    ADD_GETSET_CONVERTED(BrowserOperation, operationController, columns.indexOf("visibility"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                         toString,BrowserNode::encode_visibility,visibility_as_string, pointer->def->set_uml_visibility);

    ADD_GETSET(BrowserOperation, operationController, columns.indexOf("deleted"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
               toBool, deletedp, set_deleted);

    ADD_GETSET_DATA(BrowserOperation, OperationData, operationController, columns.indexOf("static"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                    toBool,get_isa_class_operation, set_isa_class_operation);
    ADD_GETSET_DATA(BrowserOperation, OperationData, operationController, columns.indexOf("abstract"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                    toBool,get_is_abstract, set_is_abstract);

    ADD_GETSET_DATA(BrowserOperation, OperationData, operationController, columns.indexOf("const"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                    toBool,get_cpp_const, set_cpp_const);
    ADD_GETSET_DATA(BrowserOperation, OperationData, operationController, columns.indexOf("volatile"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                    toBool,get_is_volatile, set_is_volatile);
    ADD_GETSET_DATA(BrowserOperation, OperationData, operationController, columns.indexOf("friend"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                    toBool,get_cpp_friend, set_cpp_friend);
    ADD_GETSET_DATA(BrowserOperation, OperationData, operationController, columns.indexOf("virtual"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                    toBool,get_cpp_virtual, set_cpp_virtual);
    ADD_GETSET_DATA(BrowserOperation, OperationData, operationController, columns.indexOf("inline"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                    toBool,get_cpp_inline, set_cpp_inline);

    ADD_GETSET_DATA(BrowserOperation, OperationData, operationController, columns.indexOf("defaulted"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                    toBool,get_cpp_default, set_cpp_default);
    ADD_GETSET_DATA(BrowserOperation, OperationData, operationController, columns.indexOf("delete"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                    toBool,get_cpp_delete, set_cpp_delete);
    ADD_GETSET_DATA(BrowserOperation, OperationData, operationController, columns.indexOf("override"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                    toBool,get_cpp_override, set_cpp_override);
    ADD_GETSET_DATA(BrowserOperation, OperationData, operationController, columns.indexOf("final"), QVector<int>({Qt::DisplayRole,Qt::EditRole}),
                    toBool,get_cpp_final, set_cpp_final);

    std::function<void(BrowserNode*,const QModelIndex& index)> f = [](BrowserNode* node ,const QModelIndex& index)
    {
        Q_UNUSED(index);
        BrowserOperation* oper = static_cast<BrowserOperation*>(node);
        oper->modified();
        oper->setText(0,oper->get_name() );
        oper->package_modified();
        oper->get_data()->modified();
    };
    operationController->AddPostProcessors(columns.indexOf("name"), QVector<int>(QVector<int>({Qt::DisplayRole,Qt::EditRole})),f);

    ADD_PIXMAP_GETTER(BrowserOperation, operationController, columns.indexOf("name"),QVector<int>({Qt::DecorationRole}), pixmap);


    operationController->AddFlagsFunctor
            (
                [&](const QModelIndex& index)
    {
        Qt::ItemFlags result;
        result |= Qt::ItemIsSelectable;
        if(!(index.column() *in(columns.indexOf("name"),columns.indexOf("type"),columns.indexOf("static"),columns.indexOf("visibility"),columns.indexOf("abstract"),
                                columns.indexOf("const"), columns.indexOf("volatile"),columns.indexOf("friend"),columns.indexOf("virtual"),columns.indexOf("inline")
                                ,columns.indexOf("defaulted"),columns.indexOf("delete"),columns.indexOf("override"),columns.indexOf("final"), columns.indexOf("deleted"))))
            return result;

        TreeItemInterface* iface = static_cast<TreeItemInterface*>(index.internalPointer());
        if(!iface)
            return result;
        BrowserOperation* pointer = static_cast<BrowserOperation*>(iface->InternalPointer());
        if(!pointer)
            return result;
        if(pointer->is_writable() && !((OperationData*)pointer->get_data())->get_or_set())
            result |= Qt::ItemIsEditable;
        result |=  Qt::ItemIsEnabled;
        return result;
    }
    );
}
Exemplo n.º 7
0
void LuaBinding_initFrontend(struct lua_State *L) {
  // frontend->luxinia
  luaL_register (L, "luxfrontend", luxfrontendlib);

  /////
  // GET/SET, luxinia->frontend

  // General
  ADD_GETSET("PostInit")

  ADD_GETSET("Print")
  ADD_GETSET("SetCallbacks")
  //ADD_GETSET("Terminate")

  // Window handling
  ADD_GETSET("OpenWindow")
  ADD_GETSET("OpenWindowHint")
  ADD_GETSET("CloseWindow")
  ADD_GETSET("SetWindowTitle")
  ADD_GETSET("GetWindowSize")
  ADD_GETSET("SetWindowSize")
  ADD_GETSET("GetWindowPos")
  ADD_GETSET("SetWindowPos")
  ADD_GETSET("SwapBuffers")
  ADD_GETSET("GetWindowParam")
  ADD_GETSET("SetWindowOnTop")
  ADD_GETSET("ClientToScreen")
  ADD_GETSET("ScreenToClient")
  ADD_GETSET("IconifyWindow")
  ADD_GETSET("RestoreWindow")

  // Input handling
  ADD_GETSET("GetKey")
  ADD_GETSET("GetMouseButton")
  ADD_GETSET("GetMousePos")
  ADD_GETSET("SetMousePos")
  ADD_GETSET("GetMouseWheel")
  ADD_GETSET("SetMouseWheel")

  // Enable/disable functions
  ADD_GETSET("Enable")
  ADD_GETSET("Disable")

  //////
  // ENUMS

  ADD_ENUM(LUXI_FALSE)
  ADD_ENUM(LUXI_TRUE)

  ADD_ENUM(LUXI_RELEASE)
  ADD_ENUM(LUXI_PRESS)

  ADD_ENUM(LUXI_KEY_UNKNOWN)
  ADD_ENUM(LUXI_KEY_SPACE)
  ADD_ENUM(LUXI_KEY_SPECIAL)
  ADD_ENUM(LUXI_KEY_ESC)
  ADD_ENUM(LUXI_KEY_F1)
  ADD_ENUM(LUXI_KEY_F2)
  ADD_ENUM(LUXI_KEY_F3)
  ADD_ENUM(LUXI_KEY_F4)
  ADD_ENUM(LUXI_KEY_F5)
  ADD_ENUM(LUXI_KEY_F6)
  ADD_ENUM(LUXI_KEY_F7)
  ADD_ENUM(LUXI_KEY_F8)
  ADD_ENUM(LUXI_KEY_F9)
  ADD_ENUM(LUXI_KEY_F10)
  ADD_ENUM(LUXI_KEY_F11)
  ADD_ENUM(LUXI_KEY_F12)
  ADD_ENUM(LUXI_KEY_F13)
  ADD_ENUM(LUXI_KEY_F14)
  ADD_ENUM(LUXI_KEY_F15)
  ADD_ENUM(LUXI_KEY_F16)
  ADD_ENUM(LUXI_KEY_F17)
  ADD_ENUM(LUXI_KEY_F18)
  ADD_ENUM(LUXI_KEY_F19)
  ADD_ENUM(LUXI_KEY_F20)
  ADD_ENUM(LUXI_KEY_F21)
  ADD_ENUM(LUXI_KEY_F22)
  ADD_ENUM(LUXI_KEY_F23)
  ADD_ENUM(LUXI_KEY_F24)
  ADD_ENUM(LUXI_KEY_F25)
  ADD_ENUM(LUXI_KEY_UP)
  ADD_ENUM(LUXI_KEY_DOWN)
  ADD_ENUM(LUXI_KEY_LEFT)
  ADD_ENUM(LUXI_KEY_RIGHT)
  ADD_ENUM(LUXI_KEY_LSHIFT)
  ADD_ENUM(LUXI_KEY_RSHIFT)
  ADD_ENUM(LUXI_KEY_LCTRL)
  ADD_ENUM(LUXI_KEY_RCTRL)
  ADD_ENUM(LUXI_KEY_LALT)
  ADD_ENUM(LUXI_KEY_RALT)
  ADD_ENUM(LUXI_KEY_TAB)
  ADD_ENUM(LUXI_KEY_ENTER)
  ADD_ENUM(LUXI_KEY_BACKSPACE)
  ADD_ENUM(LUXI_KEY_INSERT)
  ADD_ENUM(LUXI_KEY_DEL)
  ADD_ENUM(LUXI_KEY_PAGEUP)
  ADD_ENUM(LUXI_KEY_PAGEDOWN)
  ADD_ENUM(LUXI_KEY_HOME)
  ADD_ENUM(LUXI_KEY_END)
  ADD_ENUM(LUXI_KEY_KP_0)
  ADD_ENUM(LUXI_KEY_KP_1)
  ADD_ENUM(LUXI_KEY_KP_2)
  ADD_ENUM(LUXI_KEY_KP_3)
  ADD_ENUM(LUXI_KEY_KP_4)
  ADD_ENUM(LUXI_KEY_KP_5)
  ADD_ENUM(LUXI_KEY_KP_6)
  ADD_ENUM(LUXI_KEY_KP_7)
  ADD_ENUM(LUXI_KEY_KP_8)
  ADD_ENUM(LUXI_KEY_KP_9)
  ADD_ENUM(LUXI_KEY_KP_DIVIDE)
  ADD_ENUM(LUXI_KEY_KP_MULTIPLY)
  ADD_ENUM(LUXI_KEY_KP_SUBTRACT)
  ADD_ENUM(LUXI_KEY_KP_ADD)
  ADD_ENUM(LUXI_KEY_KP_DECIMAL)
  ADD_ENUM(LUXI_KEY_KP_EQUAL)
  ADD_ENUM(LUXI_KEY_KP_ENTER)
  ADD_ENUM(LUXI_KEY_APPEXIT)
  ADD_ENUM(LUXI_KEY_LAST)

  ADD_ENUM(LUXI_MOUSE_BUTTON_0)
  ADD_ENUM(LUXI_MOUSE_BUTTON_1)
  ADD_ENUM(LUXI_MOUSE_BUTTON_2)

  ADD_ENUM(LUXI_MOUSE_BUTTON_LEFT)
  ADD_ENUM(LUXI_MOUSE_BUTTON_RIGHT)
  ADD_ENUM(LUXI_MOUSE_BUTTON_MIDDLE)

  ADD_ENUM(LUXI_JOYSTICK_1)
  ADD_ENUM(LUXI_JOYSTICK_2)
  ADD_ENUM(LUXI_JOYSTICK_3)
  ADD_ENUM(LUXI_JOYSTICK_4)
  ADD_ENUM(LUXI_JOYSTICK_5)
  ADD_ENUM(LUXI_JOYSTICK_6)
  ADD_ENUM(LUXI_JOYSTICK_7)
  ADD_ENUM(LUXI_JOYSTICK_8)
  ADD_ENUM(LUXI_JOYSTICK_9)
  ADD_ENUM(LUXI_JOYSTICK_10)
  ADD_ENUM(LUXI_JOYSTICK_11)
  ADD_ENUM(LUXI_JOYSTICK_12)
  ADD_ENUM(LUXI_JOYSTICK_13)
  ADD_ENUM(LUXI_JOYSTICK_14)
  ADD_ENUM(LUXI_JOYSTICK_15)
  ADD_ENUM(LUXI_JOYSTICK_16)
  ADD_ENUM(LUXI_JOYSTICK_LAST)

    // luxiOpenWindow modes)
  ADD_ENUM(LUXI_WINDOW)
  ADD_ENUM(LUXI_FULLSCREEN)
    // luxiWindowParam)
  ADD_ENUM(LUXI_OPENED)
  ADD_ENUM(LUXI_ACTIVE)
    // luxiWindowHint)
  ADD_ENUM(LUXI_REFRESH_RATE)
  ADD_ENUM(LUXI_STEREO)
  ADD_ENUM(LUXI_WINDOW_NO_RESIZE)
  ADD_ENUM(LUXI_FSAA_SAMPLES)

    // luxiEnable/luxiDisable tokens)
  ADD_ENUM(LUXI_MOUSE_CURSOR)
  ADD_ENUM(LUXI_KEY_REPEAT)
  ADD_ENUM(LUXI_MOUSE_FIX)

    // luxiWaitThread wait modes)
  ADD_ENUM(LUXI_WAIT)
  ADD_ENUM(LUXI_NOWAIT)

    // luxiGetJoystickParam tokens)
  ADD_ENUM(LUXI_PRESENT)
  ADD_ENUM(LUXI_AXES)
  ADD_ENUM(LUXI_BUTTONS)

  lua_pop(L,0);

  l_L = L;
}