Re: D --> C++ --> D

2016-03-31 Thread MGW via Digitalmars-d-learn

On Thursday, 31 March 2016 at 11:47:34 UTC, MGW wrote:

--


Help me to optimize this source code. How to apply here delegates 
and generally whether possibly to make it here


D --> C++ --> D

2016-03-31 Thread MGW via Digitalmars-d-learn
I for myself write Qt-5 wrapper. I use calls from Qt (C ++) as 
extern (C) calls.
Prompt how to write this code well and with use of abilities to 
integrate D and C ++

--
// ex4.d - Concepts of QAction.QtE5
//  compile -
// dmd ex4 qte5

import core.runtime;
import qte5;// wrapping Qt-5

// (1) handler receives the pointer on object of myQWidget.
// (2) and call method in class myQWidget
extern (C) void handler(myQWidget* wd) {
(*wd).kn1Press();
}

class myQWidget : QWidget {
this() {
// Create widget and set size
super(this); resize(200, 100);
// Create button for demo signal -- slot
// button generates to us a signal
auto kn1 = new QPushButton("Press me ...", this);

// Create QAction for processings of the slot
auto actSlot1 = new QAction(this, , aThis);
// We connect a signal to slots standard means
connects(kn1, "clicked()", actSlot1, "Slot()");
}
// (2) to process clicking of the button
void kn1Press() {
msgbox("pressed key on the form");
}
}

int main(string[] args) {
// Load library QtE5
if (1 == LoadQt(dll.QtE5Widgets, true)) return 1;
// Create app
	QApplication app = new QApplication(, 
Runtime.cArgs.argv, 1);

// (1) Create obj of myQWidget and to save this address in obj
myQWidget mywid = new myQWidget(); mywid.saveThis().show;
app.exec();
return 0;
}

--