int drv_dialog(int drvid, void *a0, void* a1, void* a2, void* a3, void* a4, void* a5, void* a6, void* a7, void* a8, void* a9) { handle_head* head = (handle_head*)a0; QDialog *self = (QDialog*)head->native; switch (drvid) { case DIALOG_INIT: { drvNewObj(a0,new QDialog); break; } case DIALOG_SETMODAL: { self->setModal(drvGetBool(a1)); break; } case DIALOG_ISMODAL: { drvSetBool(a1,self->isModal()); break; } case DIALOG_SETRESULT: { self->setResult(drvGetInt(a1)); break; } case DIALOG_RESULT: { drvSetInt(a1,self->result()); break; } case DIALOG_EXEC: { drvSetInt(a1,self->exec()); break; } case DIALOG_DONE: { self->done(drvGetInt(a1)); break; } case DIALOG_ACCEPT: { self->accept(); break; } case DIALOG_REJECT: { self->reject(); break; } case DIALOG_ONACCEPTED: { QObject::connect(self,SIGNAL(acceped()),drvNewSignal(self,a1,a2),SLOT(call())); break; } case DIALOG_ONREJECTED: { QObject::connect(self,SIGNAL(rejected()),drvNewSignal(self,a1,a2),SLOT(call())); break; } default: return 0; } return 1; }