6 LUA_USING_SHARED_PTR_TYPE(std::shared_ptr)
7 LUA_USING_LIST_TYPE(std::vector)
20 LuaIntf::LuaBinding(L)
25 .beginClass<QObject>(
"QObject")
26 .addConstructor(LUA_ARGS())
27 .addFunction(
"findChild", [](QObject*
object, std::string name) {
30 .addStaticFunction(
"tr", &QObject::tr, LUA_ARGS(
const char*, LuaIntf::_opt<const char*>, LuaIntf::_opt<int>))
33 .beginExtendClass<QWidget, QObject>(
"QWidget")
34 .addConstructor(LUA_ARGS())
35 .addFunction(
"addAction", &QWidget::addAction)
36 .addFunction(
"setWindowTitle", &QWidget::setWindowTitle)
37 .addFunction(
"show", &QWidget::show)
38 .addFunction(
"showMaximized", &QWidget::showMaximized)
41 .beginClass<QString>(
"QString")
42 .addConstructor(LUA_ARGS(
const char*))
43 .addFunction(
"isEmpty", &QString::isEmpty)
44 .addFunction(
"toStdString", &QString::toStdString)
47 .beginExtendClass<QAction, QObject>(
"QAction")
48 .addConstructor(LUA_ARGS(LuaIntf::_opt<QObject*>))
49 .addFunction(
"setText", &QAction::setText)
50 .addFunction(
"setIcon", &QAction::setIcon)
53 .beginClass<QIcon>(
"QIcon")
54 .addConstructor(LUA_ARGS(QString))
57 .beginClass<QSize>(
"QSize")
58 .addConstructor(LUA_ARGS(
int,
int))
64 LuaIntf::LuaBinding(L)
67 .beginExtendClass<QMainWindow, QWidget>(
"QMainWindow")
68 .addConstructor(LUA_ARGS())
69 .addFunction(
"addDockWidget",
static_cast<void (QMainWindow::*)(Qt::DockWidgetArea, QDockWidget *)
>(&QMainWindow::addDockWidget))
70 .addFunction(
"menuBar", &QMainWindow::menuBar)
71 .addFunction(
"centralWidget", &QMainWindow::centralWidget)
72 .addFunction(
"setCentralWidget", &QMainWindow::setCentralWidget)
73 .addFunction(
"setUnifiedTitleAndToolBarOnMac", &QMainWindow::setUnifiedTitleAndToolBarOnMac)
76 .beginExtendClass<QMenuBar, QWidget>(
"QMenuBar")
77 .addFunction(
"clear", &QMenuBar::clear)
78 .addFunction(
"addMenu",
static_cast<QAction* (QMenuBar::*)(QMenu*)
>(&QMenuBar::addMenu))
79 .addFunction(
"addMenuStr",
static_cast<QMenu* (QMenuBar::*)(
const QString&)
>(&QMenuBar::addMenu))
82 .beginExtendClass<QMenu, QWidget>(
"QMenu")
86 .addFunction(
"setTitle", &QMenu::setTitle)
87 .addFunction(
"addActionStr",
static_cast<QAction* (QMenu::*)(
const QString&)
>(&QMenu::addAction))
90 .beginExtendClass<QFrame, QWidget>(
"QFrame")
93 .beginExtendClass<QAbstractScrollArea, QFrame>(
"QAbstractScrollArea")
94 .addFunction(
"setHorizontalScrollBarPolicy", &QAbstractScrollArea::setHorizontalScrollBarPolicy)
95 .addFunction(
"setVerticalScrollBarPolicy", &QAbstractScrollArea::setVerticalScrollBarPolicy)
98 .beginExtendClass<QMdiArea, QAbstractScrollArea>(
"QMdiArea")
99 .addFunction(
"activeSubWindow", &QMdiArea::activeSubWindow)
100 .addFunction(
"addSubWindow", [](QMdiArea* mdiArea, QWidget* subWindow) {
101 return mdiArea->addSubWindow(subWindow);
103 .addFunction(
"subWindowList", &QMdiArea::subWindowList)
106 .beginExtendClass<QMdiSubWindow, QWidget>(
"QMdiSubWindow")
107 .addFunction(
"widget", &QMdiSubWindow::widget)
110 .beginExtendClass<QDialog, QWidget>(
"QDialog")
113 .beginExtendClass<QFileDialog, QDialog>(
"QFileDialog")
114 .addStaticFunction(
"getOpenFileName", [](QWidget *parent, QString& caption, QString& dir, QString& filter) {
115 return QFileDialog::getOpenFileName(parent, caption, dir, filter);
117 .addStaticFunction(
"getSaveFileName", [](QWidget *parent, QString& caption, QString& dir, QString& filter) {
118 return QFileDialog::getSaveFileName(parent, caption, dir, filter);
122 .beginExtendClass<QDockWidget, QWidget>(
"QDockWidget")
128 LuaIntf::LuaBinding(L)
131 .beginExtendClass<QLayout, QWidget>(
"QLayout")
132 .addFunction(
"addWidget", &QLayout::addWidget)
133 .addFunction(
"count", &QLayout::count)
136 .beginExtendClass<QBoxLayout, QLayout>(
"QBoxLayout")
139 .beginExtendClass<QHBoxLayout, QBoxLayout>(
"QHBoxLayout")
140 .addConstructor(LUA_ARGS())
143 .beginExtendClass<QVBoxLayout, QBoxLayout>(
"QVBoxLayout")
144 .addConstructor(LUA_ARGS())
147 .beginExtendClass<QGroupBox, QWidget>(
"QGroupBox")
153 LuaIntf::LuaBinding(L)
156 .beginExtendClass<QAbstractButton, QWidget>(
"QAbstractButton")
157 .addFunction(
"setIcon", &QAbstractButton::setIcon)
158 .addFunction(
"setIconSize", &QAbstractButton::setIconSize)
159 .addFunction(
"setCheckable", &QAbstractButton::setCheckable)
162 .beginExtendClass<QComboBox, QWidget>(
"QComboBox")
165 .beginExtendClass<QPushButton, QAbstractButton>(
"QPushButton")
166 .addFactory([](QString name) {
167 return new QPushButton(name);
169 .addFunction(
"setFlat", &QPushButton::setFlat)
170 .addFunction(
"setMenu", &QPushButton::setMenu)
176 LuaIntf::LuaBinding(L)
179 .beginExtendClass<
CadMdiChild, QWidget>(
"CadMdiChild")
199 .beginClass<LCViewer::Cursor>(
"Cursor")
200 .addFunction(
"position", &LCViewer::Cursor::position)
204 .addFunction(
"x", &LCViewer::LCADViewer::x)
205 .addFunction(
"y", &LCViewer::LCADViewer::y)
222 .beginExtendClass<
LuaScript, QDockWidget>(
"LuaScript")
223 .addConstructor(LUA_ARGS(QMdiArea*,
CliCommand*))
226 .beginClass<LCViewer::DocumentCanvas>(
"DocumentCanvas")
227 .addFunction(
"autoScale", &LCViewer::DocumentCanvas::autoScale)
228 .addFunction(
"selectPoint", &LCViewer::DocumentCanvas::selectPoint)
231 .beginExtendClass<
CliCommand, QDockWidget>(
"CliCommand")
232 .addConstructor(LUA_SP(std::shared_ptr<CliCommand>), LUA_ARGS(LuaIntf::_opt<QWidget*>))
238 .beginExtendClass<
Toolbar, QDockWidget>(
"Toolbar")
239 .addConstructor(LUA_SP(std::shared_ptr<Toolbar>), LUA_ARGS(LuaIntf::_opt<QWidget*>))
245 .beginExtendClass<
ToolbarTab, QDockWidget>(
"ToolbarTab")
267 .beginClass<LCViewer::TempEntities>(
"TempEntities")
268 .addFunction(
"addEntity", &LCViewer::TempEntities::addEntity)
269 .addFunction(
"removeEntity", &LCViewer::TempEntities::removeEntity)
276 .beginExtendClass<
Layers, QDockWidget>(
"Layers")
283 .beginClass<LCViewer::SnapManagerImpl>(
"SnapManager")
284 .addFunction(
"setGridSnappable", &LCViewer::SnapManagerImpl::setGridSnappable)
288 .addFactory([](lc::Document_SPtr document){
295 .addFactory([](QWidget* parent,
bool showByLayer,
bool showByBlock){
302 .addFactory([](QWidget* parent,
bool showByLayer,
bool showByBlock){
305 .addFunction(
"setMetaInfoManager",
307 LUA_ARGS(LuaIntf::_opt<lc::ui::MetaInfoManager_SPtr>)
312 .addFactory([](QWidget* parent,
bool showByLayer,
bool showByBlock){
315 .addFunction(
"setMetaInfoManager",
317 LUA_ARGS(LuaIntf::_opt<lc::ui::MetaInfoManager_SPtr>)
326 qRegisterMetaType<lc::geo::Coordinate>();
void addLCBindings(lua_State *L)
lc::ui::MetaInfoManager_SPtr metaInfoManager() const
Get the MetaInfo manager.
void luaOpenQtBridge(lua_State *L)
bool addCommand(std::string name)
Add a new command.
static std::shared_ptr< QWidget > loadUiFile(const char *fileName)
Load Qt widget from .ui file.
void setMdiChild(CadMdiChild *mdiChild=nullptr)
Set the window on which line pattern is applied.
LuaIntf::LuaRef operation(unsigned int windowID)
void addQtWindowBindings(lua_State *L)
Dropdown select for line widths. Line widths are hardcoded in the constructor.
std::shared_ptr< LCViewer::Cursor > cursor() const
void addQtBaseBindings(lua_State *L)
void write(QString message)
Write a message in the logs.
const LCViewer::SnapManagerImpl_SPtr & getSnapManager() const
LCViewer::LCADViewer * viewer() const
void setId(unsigned int id)
Set window ID.
Widget that allows to enter and run Lua code. This widget runs the code on the selected window in Cad...
Create a new window which shows a list of line patterns.
bool openFile()
Load existing file.
lc::UndoManager_SPtr undoManager() const
QObject * findChild(std::string name)
Find children by name.
const std::shared_ptr< DocumentCanvas > & docCanvas() const
void addQtLayoutBindings(lua_State *L)
bool luaConnect(QObject *sender, std::string signalName, LuaIntf::LuaRef slot)
Connect Qt signal with Lua function.
LCViewer::TempEntities_SPtr tempEntities()
Get container of temporary entities.
std::vector< lc::entity::CADEntity_CSPtr > selection()
Get selected entities.
unsigned int id()
Get window ID.
void triggerEvent(const std::string &event, LuaIntf::LuaRef args)
bool qtConnect(QObject *sender, std::string signalName, QObject *receiver, std::string slotName)
Connect Qt signal with Qt slot.
void setOperation(unsigned int windowID, LuaIntf::LuaRef)
Widget which shows a list of layers.
void setMdiChild(CadMdiChild *mdiChild=nullptr)
Set new document.
void newDocument()
Create a new document.
void addQtWidgetsBindings(lua_State *L)
void setDocument(lc::Document_SPtr document)
Set a new document and update the list of line patterns. Document can be set to nullptr to clear the ...
void setMetaInfoManager(lc::ui::MetaInfoManager_SPtr metaInfoManager=nullptr)
Set the MetaInfo manager.
void registerEvent(const std::string &event, LuaIntf::LuaRef callback)
Dropdown select for DxfLinePatterns.
std::shared_ptr< lc::Document > document() const
void returnText(bool returnText)
Return raw text to Lua.
void setOperationActive(bool operationActive)
void setDestroyCallback(LuaIntf::LuaRef callback)
Give function to call when window is destroyed.
void deleteEvent(const std::string &event, LuaIntf::LuaRef callback)
std::vector< std::string > pluginList(const char *path)
Return a list of plugins.
void setMetaInfoManager(lc::ui::MetaInfoManager_SPtr metaInfoManager)
Set the MetaInfo manager.
lc::Layer_CSPtr activeLayer() const
Get the selected layer.