From f14111bc967e2a0650cf1d9424a20bd005cc8198 Mon Sep 17 00:00:00 2001 From: Kakul Gupta Date: Mon, 3 Jun 2019 18:22:29 +0200 Subject: [PATCH] yolo --- config/application.gypi | 1 + demo.ts | 4 ++ .../QProgressBar/qprogressbar_wrap.cpp | 47 +++++++++++++++++++ .../QProgressBar/qprogressbar_wrap.h | 22 +++++++++ src/cpp/main.cpp | 2 + src/index.ts | 20 -------- src/lib/QtWidgets/QProgressBar/index.ts | 17 +++++++ 7 files changed, 93 insertions(+), 20 deletions(-) create mode 100644 src/cpp/QtWidgets/QProgressBar/qprogressbar_wrap.cpp create mode 100644 src/cpp/QtWidgets/QProgressBar/qprogressbar_wrap.h delete mode 100644 src/index.ts create mode 100644 src/lib/QtWidgets/QProgressBar/index.ts diff --git a/config/application.gypi b/config/application.gypi index 967f5c93f..c342def21 100644 --- a/config/application.gypi +++ b/config/application.gypi @@ -23,6 +23,7 @@ "../src/cpp/QtWidgets/QMainWindow/qmainwindow_wrap.cpp", "../src/cpp/QtWidgets/QPushButton/qpushbutton_wrap.cpp", "../src/cpp/QtWidgets/QCheckBox/qcheckbox_wrap.cpp", + "../src/cpp/QtWidgets/QProgressBar/qprogressbar_wrap.cpp", ], } ] diff --git a/demo.ts b/demo.ts index a1487d234..9689c7fbc 100644 --- a/demo.ts +++ b/demo.ts @@ -4,6 +4,7 @@ import { QGridLayout } from "./src/lib/QtWidgets/QGridLayout"; import { QLabel } from "./src/lib/QtWidgets/QLabel"; import { QPushButton } from "./src/lib/QtWidgets/QPushButton"; import { QCheckBox } from "./src/lib/QtWidgets/QCheckBox"; +import { QProgressBar } from "./src/lib/QtWidgets/QProgressBar"; const win = new QMainWindow(); const view = new QWidget(); @@ -23,10 +24,13 @@ button1.setText("Yolo"); const checkbox = new QCheckBox(); checkbox.setText("Pumpkeen"); +const progressbar = new QProgressBar(); + gridLayout.addWidget(label); gridLayout.addWidget(label2); gridLayout.addWidget(button1); gridLayout.addWidget(checkbox); +gridLayout.addWidget(progressbar); view.setLayout(gridLayout); diff --git a/src/cpp/QtWidgets/QProgressBar/qprogressbar_wrap.cpp b/src/cpp/QtWidgets/QProgressBar/qprogressbar_wrap.cpp new file mode 100644 index 000000000..7aa29644c --- /dev/null +++ b/src/cpp/QtWidgets/QProgressBar/qprogressbar_wrap.cpp @@ -0,0 +1,47 @@ + +#include "qprogressbar_wrap.h" +#include "src/cpp/QtGui/QWidget/qwidget_wrap.h" +#include "src/cpp/Extras/Utils/utils.h" +#include + + +Napi::FunctionReference QProgressBarWrap::constructor; + +Napi::Object QProgressBarWrap::init(Napi::Env env, Napi::Object exports) { + Napi::HandleScope scope(env); + char CLASSNAME[] = "QProgressBar"; + Napi::Function func = DefineClass(env, CLASSNAME, { + QWIDGET_WRAPPED_METHODS_EXPORT_DEFINE(QProgressBarWrap) + }); + constructor = Napi::Persistent(func); + exports.Set(CLASSNAME, func); + return exports; +} + +QProgressBar* QProgressBarWrap::getInternalInstance() { + return this->instance; +} + +QProgressBarWrap::QProgressBarWrap(const Napi::CallbackInfo& info): Napi::ObjectWrap(info) { + Napi::Env env = info.Env(); + Napi::HandleScope scope(env); + + if(info.Length() == 1) { + if(info[0].IsObject()){ + Napi::Object object_parent = info[0].As(); + QWidgetWrap* w_parent = Napi::ObjectWrap::Unwrap(object_parent); + this->instance = new QProgressBar(w_parent->getInternalInstance()); //this sets the parent to current widget + }else{ + extrautils::throwTypeError(env, "Wrong type of arguments"); + } + }else if (info.Length() == 0){ + this->instance = new QProgressBar(); + }else { + extrautils::throwTypeError(env, "Wrong number of arguments"); + } +} + +QProgressBarWrap::~QProgressBarWrap() { + delete this->instance; +} + diff --git a/src/cpp/QtWidgets/QProgressBar/qprogressbar_wrap.h b/src/cpp/QtWidgets/QProgressBar/qprogressbar_wrap.h new file mode 100644 index 000000000..dd92235c4 --- /dev/null +++ b/src/cpp/QtWidgets/QProgressBar/qprogressbar_wrap.h @@ -0,0 +1,22 @@ +#ifndef QPROGRESSBAR_WRAP_H +#define QPROGRESSBAR_WRAP_H +#include +#include +#include "src/cpp/QtGui/QWidget/qwidget_macro.h" + +class QProgressBarWrap : public Napi::ObjectWrap{ + private: + QProgressBar* instance; + public: + static Napi::Object init(Napi::Env env, Napi::Object exports); + QProgressBarWrap(const Napi::CallbackInfo& info); + ~QProgressBarWrap(); + QProgressBar* getInternalInstance(); + //class constructor + static Napi::FunctionReference constructor; + //wrapped methods + + QWIDGET_WRAPPED_METHODS_DECLARATION +}; + +#endif \ No newline at end of file diff --git a/src/cpp/main.cpp b/src/cpp/main.cpp index 7a1b7cb06..9510fb357 100644 --- a/src/cpp/main.cpp +++ b/src/cpp/main.cpp @@ -6,6 +6,7 @@ #include "src/cpp/QtWidgets/QMainWindow/qmainwindow_wrap.h" #include "src/cpp/QtWidgets/QPushButton/qpushbutton_wrap.h" #include "src/cpp/QtWidgets/QCheckBox/qcheckbox_wrap.h" +#include "src/cpp/QtWidgets/QProgressBar/qprogressbar_wrap.h" #include //private : will not be accessibe in js @@ -21,6 +22,7 @@ Napi::Object Main(Napi::Env env, Napi::Object exports) { QMainWindowWrap::init(env,exports); QPushButtonWrap::init(env, exports); QCheckBoxWrap::init(env, exports); + QProgressBarWrap::init(env, exports); return QLabelWrap::init(env, exports); } diff --git a/src/index.ts b/src/index.ts deleted file mode 100644 index 872ddf330..000000000 --- a/src/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { QApplication } from "./lib/QtGui/QApplication"; -import { QWidget } from "./lib/QtGui/QWidget"; -import { QGridLayout } from "./lib/QtWidgets/QGridLayout"; -import { QLabel } from "./lib/QtWidgets/QLabel"; -import { QLayout } from "./lib/QtWidgets/QLayout"; -import { QMainWindow } from "./lib/QtWidgets/QMainWindow"; -import { QPushButton } from "./lib/QtWidgets/QPushButton"; - -export const QtGui = { - QApplication, - QWidget -}; - -export const QtWidgets = { - QGridLayout, - QLabel, - QMainWindow, - QLayout, - QPushButton -}; diff --git a/src/lib/QtWidgets/QProgressBar/index.ts b/src/lib/QtWidgets/QProgressBar/index.ts new file mode 100644 index 000000000..2bc05ecf5 --- /dev/null +++ b/src/lib/QtWidgets/QProgressBar/index.ts @@ -0,0 +1,17 @@ +import addon from "../../core/addon"; +import { NodeWidget } from "../../QtGui/QWidget"; +import { QLayout } from "../QLayout"; + +export class QProgressBar extends NodeWidget { + native: any; + layout?: QLayout; + constructor(parent?: NodeWidget) { + super(); + if (parent) { + this.native = new addon.QProgressBar(parent.native); + this.parent = parent; + } else { + this.native = new addon.QProgressBar(); + } + } +}