added toolButton

This commit is contained in:
Syping 2019-09-25 15:11:48 +02:00
parent 847c3f2176
commit e9b1c7b53e
2 changed files with 53 additions and 0 deletions

View file

@ -19,6 +19,7 @@
#include <QPlainTextEdit>
#include <QRadioButton>
#include <QMainWindow>
#include <QToolButton>
#include <QPushButton>
#include <QMessageBox>
#include <QMetaObject>
@ -130,6 +131,9 @@ void LuaEngineGui::pushClass(lua_State *L_p)
// Text Edit
pushFunction(L_p, "createTextEdit", createTextEdit);
// Tool Button
pushFunction(L_p, "createToolButton", createToolButton);
// Size Policy
pushVariant(L_p, "SizePolicyFixed", (int)QSizePolicy::Fixed);
pushVariant(L_p, "SizePolicyMinimum", (int)QSizePolicy::Minimum);
@ -470,12 +474,18 @@ int LuaEngineGui::setWidgetText(lua_State *L_p)
else if (((QObject*)pointer)->inherits("QPlainTextEdit")) {
((QPlainTextEdit*)pointer)->setPlainText(getVariant(L_p, 2).toString());
}
else if (((QObject*)pointer)->inherits("QPushButton")) {
((QPushButton*)pointer)->setText(getVariant(L_p, 2).toString());
}
else if (((QObject*)pointer)->inherits("QRadioButton")) {
((QRadioButton*)pointer)->setText(getVariant(L_p, 2).toString());
}
else if (((QObject*)pointer)->inherits("QTextEdit")) {
((QTextEdit*)pointer)->setHtml(getVariant(L_p, 2).toString());
}
else if (((QObject*)pointer)->inherits("QToolButton")) {
((QToolButton*)pointer)->setText(getVariant(L_p, 2).toString());
}
else if (((QObject*)pointer)->inherits("QWidget")) {
((QWidget*)pointer)->setWindowTitle(getVariant(L_p, 2).toString());
}
@ -963,6 +973,40 @@ int LuaEngineGui::createTextEdit(lua_State *L_p)
return 1;
}
int LuaEngineGui::createToolButton(lua_State *L_p)
{
QLayout *layout = nullptr;
QWidget *parent = nullptr;
QString buttonText = "...";
if (getArgumentCount(L_p) >= 1) {
buttonText = getVariant(L_p, 1).toString();
if (getArgumentCount(L_p) >= 2) {
void *pointer = getPointer(L_p, 2);
if (pointer != NULL && ((QObject*)pointer)->inherits("QMainWindow")) {
parent = ((QMainWindow*)pointer)->centralWidget();
}
else if (pointer != NULL && ((QObject*)pointer)->inherits("QWidget")) {
parent = (QWidget*)pointer;
}
else if (pointer != NULL && ((QObject*)pointer)->inherits("QLayout")) {
QWidget *widget = windowForObject((QObject*)pointer);
if (widget != nullptr) {
layout = (QLayout*)pointer;
parent = widget;
}
}
}
}
QToolButton *toolButton = new QToolButton(parent);
toolButton->setObjectName(nameForPointer(toolButton));
toolButton->setText(buttonText);
if (layout != nullptr) {
layout->addWidget(toolButton);
}
pushPointer(L_p, toolButton);
return 1;
}
int LuaEngineGui::isWidgetChecked(lua_State *L_p)
{
if (getArgumentCount(L_p) >= 1) {
@ -1028,6 +1072,10 @@ int LuaEngineGui::getWidgetText(lua_State *L_p)
pushVariant(L_p, ((QLineEdit*)pointer)->text());
return 1;
}
else if (((QObject*)pointer)->inherits("QPushButton")) {
pushVariant(L_p, ((QPushButton*)pointer)->text());
return 1;
}
else if (((QObject*)pointer)->inherits("QPlainTextEdit")) {
pushVariant(L_p, ((QPlainTextEdit*)pointer)->toPlainText());
return 1;
@ -1040,6 +1088,10 @@ int LuaEngineGui::getWidgetText(lua_State *L_p)
pushVariant(L_p, ((QTextEdit*)pointer)->toHtml());
return 1;
}
else if (((QObject*)pointer)->inherits("QToolButton")) {
pushVariant(L_p, ((QToolButton*)pointer)->text());
return 1;
}
else if (((QObject*)pointer)->inherits("QWidget")) {
pushVariant(L_p, ((QWidget*)pointer)->windowTitle());
return 1;

View file

@ -60,6 +60,7 @@ public:
static int createRadioButton(lua_State *L_p);
static int createSpacerItem(lua_State *L_p);
static int createTextEdit(lua_State *L_p);
static int createToolButton(lua_State *L_p);
static int isWidgetChecked(lua_State *L_p);
static int getWidgetText(lua_State *L_p);
static int getWindow(lua_State *L_p);