int AB_SetupDialog_EditUser(GWEN_DIALOG *dlg) { AB_SETUP_DIALOG *xdlg; assert(dlg); xdlg=GWEN_INHERIT_GETDATA(GWEN_DIALOG, AB_SETUP_DIALOG, dlg); assert(xdlg); if (xdlg->currentUserList) { uint32_t uid; uid=AB_SetupDialog_GetCurrentUserId(dlg); if (uid) { AB_USER *u; u=AB_User_List_GetByUniqueId(xdlg->currentUserList, uid); if (u) { AB_PROVIDER *pro; uint32_t flags=0; GWEN_DIALOG *dlg2; int rv; pro=AB_User_GetProvider(u); assert(pro); /* get EditUser dialog */ flags=AB_Provider_GetFlags(pro); if (flags & AB_PROVIDER_FLAGS_HAS_EDITUSER_DIALOG) { DBG_ERROR(AQBANKING_LOGDOMAIN, "Letting backend \"%s\" create dialog", AB_Provider_GetName(pro)); dlg2=AB_Provider_GetEditUserDialog(pro, u); } else { DBG_ERROR(AQBANKING_LOGDOMAIN, "Letting AqBanking create dialog"); dlg2=AB_EditUserDialog_new(pro, u, 1); } if (dlg2==NULL) { DBG_ERROR(AQBANKING_LOGDOMAIN, "Could not create dialog"); return GWEN_DialogEvent_ResultHandled; } rv=GWEN_Gui_ExecDialog(dlg2, 0); if (rv==0) { /* rejected */ GWEN_Dialog_free(dlg2); return GWEN_DialogEvent_ResultHandled; } GWEN_Dialog_free(dlg2); /* reload */ AB_SetupDialog_Reload(dlg); } /* if u */ } /* if uid */ else { DBG_ERROR(AQBANKING_LOGDOMAIN, "No current user"); } } /* if xdlg->currentUserList */ return GWEN_DialogEvent_ResultHandled; }
int AO_NewUserDialog_HandleActivatedSpecial(GWEN_DIALOG *dlg) { AO_NEWUSER_DIALOG *xdlg; GWEN_DIALOG *dlg2; int rv; assert(dlg); xdlg=GWEN_INHERIT_GETDATA(GWEN_DIALOG, AO_NEWUSER_DIALOG, dlg); assert(xdlg); dlg2=AO_OfxSpecialDialog_new(xdlg->provider); if (dlg2==NULL) { DBG_ERROR(AQBANKING_LOGDOMAIN, "Could not create dialog"); return GWEN_DialogEvent_ResultHandled; } AO_OfxSpecialDialog_SetHttpVersion(dlg2, xdlg->httpVMajor, xdlg->httpVMinor); AO_OfxSpecialDialog_SetFlags(dlg2, xdlg->flags); AO_OfxSpecialDialog_SetClientUid(dlg2, xdlg->clientUid); AO_OfxSpecialDialog_SetSecurityType(dlg2, xdlg->securityType); rv=GWEN_Gui_ExecDialog(dlg2, 0); if (rv==0) { /* rejected */ DBG_INFO(AQOFXCONNECT_LOGDOMAIN, "Rejected"); GWEN_Dialog_free(dlg2); return GWEN_DialogEvent_ResultHandled; } else { const char *s; DBG_INFO(AQOFXCONNECT_LOGDOMAIN, "Accepted"); xdlg->httpVMajor=AO_OfxSpecialDialog_GetHttpVMajor(dlg2); xdlg->httpVMinor=AO_OfxSpecialDialog_GetHttpVMinor(dlg2); xdlg->flags=AO_OfxSpecialDialog_GetFlags(dlg2); s=AO_OfxSpecialDialog_GetClientUid(dlg2); free(xdlg->clientUid); if (s) xdlg->clientUid=strdup(s); else xdlg->clientUid=NULL; s=AO_OfxSpecialDialog_GetSecurityType(dlg2); free(xdlg->securityType); if (s) xdlg->securityType=strdup(s); else xdlg->securityType=NULL; } GWEN_Dialog_free(dlg2); return GWEN_DialogEvent_ResultHandled; }
GWEN_DIALOG *AB_CSV_EditProfileDialog_new(AB_IMEXPORTER *ie, GWEN_DB_NODE *dbProfile, const char *testFileName) { AB_BANKING *ab; GWEN_DIALOG *dlg; AB_CSV_EDIT_PROFILE_DIALOG *xdlg; GWEN_BUFFER *fbuf; int rv; assert(ie); assert(dbProfile); ab=AB_ImExporter_GetBanking(ie); dlg=GWEN_Dialog_new("ab_csv_edit_profile"); GWEN_NEW_OBJECT(AB_CSV_EDIT_PROFILE_DIALOG, xdlg); GWEN_INHERIT_SETDATA(GWEN_DIALOG, AB_CSV_EDIT_PROFILE_DIALOG, dlg, xdlg, AB_CSV_EditProfileDialog_FreeData); GWEN_Dialog_SetSignalHandler(dlg, AB_CSV_EditProfileDialog_SignalHandler); /* get path of dialog description file */ fbuf=GWEN_Buffer_new(0, 256, 0, 1); rv=GWEN_PathManager_FindFile(AB_PM_LIBNAME, AB_PM_DATADIR, "aqbanking/imexporters/csv/dialogs/csv_editprofile.dlg", fbuf); if (rv<0) { DBG_INFO(AQBANKING_LOGDOMAIN, "Dialog description file not found (%d).", rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } /* read dialog from dialog description file */ rv=GWEN_Dialog_ReadXmlFile(dlg, GWEN_Buffer_GetStart(fbuf)); if (rv<0) { DBG_INFO(AQBANKING_LOGDOMAIN, "here (%d).", rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } GWEN_Buffer_free(fbuf); xdlg->banking=ab; xdlg->imExporter=ie; xdlg->testFileName=testFileName; xdlg->dbProfile=dbProfile; xdlg->columns=GWEN_StringList_new(); /* done */ return dlg; }
GWEN_DIALOG *AB_SelectBankInfoDialog_new(AB_BANKING *ab, const char *country, const char *bankCode) { GWEN_DIALOG *dlg; AB_SELECTBANKINFO_DIALOG *xdlg; GWEN_BUFFER *fbuf; int rv; dlg=GWEN_Dialog_new("ab_selectbankinfo"); GWEN_NEW_OBJECT(AB_SELECTBANKINFO_DIALOG, xdlg); GWEN_INHERIT_SETDATA(GWEN_DIALOG, AB_SELECTBANKINFO_DIALOG, dlg, xdlg, AB_SelectBankInfoDialog_FreeData); GWEN_Dialog_SetSignalHandler(dlg, AB_SelectBankInfoDialog_SignalHandler); /* get path of dialog description file */ fbuf=GWEN_Buffer_new(0, 256, 0, 1); rv=GWEN_PathManager_FindFile(AB_PM_LIBNAME, AB_PM_DATADIR, "aqbanking/dialogs/dlg_selectbankinfo.dlg", fbuf); if (rv<0) { DBG_INFO(AQBANKING_LOGDOMAIN, "Dialog description file not found (%d).", rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } /* read dialog from dialog description file */ rv=GWEN_Dialog_ReadXmlFile(dlg, GWEN_Buffer_GetStart(fbuf)); if (rv<0) { DBG_INFO(AQBANKING_LOGDOMAIN, "here (%d).", rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } GWEN_Buffer_free(fbuf); xdlg->banking=ab; if (country) xdlg->country=strdup(country); else xdlg->country=strdup("de"); if (bankCode) xdlg->bankCode=strdup(bankCode); else xdlg->bankCode=NULL; /* done */ return dlg; }
int AB_SetupDialog_EditAccount(GWEN_DIALOG *dlg) { AB_SETUP_DIALOG *xdlg; assert(dlg); xdlg=GWEN_INHERIT_GETDATA(GWEN_DIALOG, AB_SETUP_DIALOG, dlg); assert(xdlg); if (xdlg->currentAccountList) { uint32_t aid; aid=AB_SetupDialog_GetCurrentAccountId(dlg); if (aid) { AB_ACCOUNT *a; a=AB_Account_List_GetByUniqueId(xdlg->currentAccountList, aid); if (a) { AB_PROVIDER *pro; uint32_t flags=0; GWEN_DIALOG *dlg2; int rv; pro=AB_Account_GetProvider(a); assert(pro); flags=AB_Provider_GetFlags(pro); if (flags & AB_PROVIDER_FLAGS_HAS_EDITACCOUNT_DIALOG) dlg2=AB_Provider_GetEditAccountDialog(pro, a); else dlg2=AB_EditAccountDialog_new(pro, a, 1); if (dlg2==NULL) { DBG_ERROR(AQBANKING_LOGDOMAIN, "Could not create dialog"); return GWEN_DialogEvent_ResultHandled; } rv=GWEN_Gui_ExecDialog(dlg2, 0); if (rv==0) { /* rejected */ GWEN_Dialog_free(dlg2); return GWEN_DialogEvent_ResultHandled; } GWEN_Dialog_free(dlg2); AB_SetupDialog_Reload(dlg); } /* if a */ } /* if aid */ else { DBG_ERROR(AQBANKING_LOGDOMAIN, "No current account"); } } /* if xdlg->currentAccountList */ return GWEN_DialogEvent_ResultHandled; }
GWEN_DIALOG *Dlg_Test1_new() { GWEN_DIALOG *dlg; int rv; const char *s; GWEN_BUFFER *tbuf; tbuf=GWEN_Buffer_new(0, 256, 0, 1); s=getenv("DIALOG_DIR"); if (s && *s) GWEN_Buffer_AppendString(tbuf, s); else GWEN_Buffer_AppendString(tbuf, MEDIAPATH); dlg=GWEN_Dialog_new("dlg_test"); GWEN_Dialog_SetSignalHandler(dlg, _gwenGuiSignalHandler); GWEN_Dialog_AddMediaPath(dlg, GWEN_Buffer_GetStart(tbuf)); /* read dialog from dialog description file */ GWEN_Buffer_AppendString(tbuf, GWEN_DIR_SEPARATOR_S "dlg_test.dlg"); rv=GWEN_Dialog_ReadXmlFile(dlg, GWEN_Buffer_GetStart(tbuf)); GWEN_Buffer_free(tbuf); if (rv<0) { DBG_INFO(GWEN_LOGDOMAIN, "here (%d).", rv); GWEN_Dialog_free(dlg); return NULL; } /* done */ return dlg; }
GWEN_DIALOG *GWEN_DlgShowBox_new(uint32_t flags, const char *title, const char *text) { GWEN_DIALOG *dlg; GWEN_DLGSHOWBOX *xdlg; GWEN_BUFFER *fbuf; int rv; dlg=GWEN_Dialog_new("dlg_gwen_showbox"); GWEN_NEW_OBJECT(GWEN_DLGSHOWBOX, xdlg); GWEN_INHERIT_SETDATA(GWEN_DIALOG, GWEN_DLGSHOWBOX, dlg, xdlg, GWEN_DlgShowBox_FreeData); GWEN_Dialog_SetSignalHandler(dlg, GWEN_DlgShowBox_SignalHandler); /* get path of dialog description file */ fbuf=GWEN_Buffer_new(0, 256, 0, 1); rv=GWEN_PathManager_FindFile(GWEN_PM_LIBNAME, GWEN_PM_SYSDATADIR, "gwenhywfar/dialogs/dlg_showbox.dlg", fbuf); if (rv<0) { DBG_INFO(GWEN_LOGDOMAIN, "Dialog description file not found (%d).", rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } /* read dialog from dialog description file */ rv=GWEN_Dialog_ReadXmlFile(dlg, GWEN_Buffer_GetStart(fbuf)); if (rv<0) { DBG_INFO(GWEN_LOGDOMAIN, "here (%d).", rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } GWEN_Buffer_free(fbuf); xdlg->flags=flags; if (title) xdlg->title=strdup(title); if (text) xdlg->text=strdup(text); return dlg; }
GWEN_DIALOG *AH_NewKeyFileDialog_new(AB_BANKING *ab) { GWEN_DIALOG *dlg; AH_NEWKEYFILE_DIALOG *xdlg; GWEN_BUFFER *fbuf; int rv; dlg=GWEN_Dialog_new("ah_setup_newkeyfile"); GWEN_NEW_OBJECT(AH_NEWKEYFILE_DIALOG, xdlg); GWEN_INHERIT_SETDATA(GWEN_DIALOG, AH_NEWKEYFILE_DIALOG, dlg, xdlg, AH_NewKeyFileDialog_FreeData); GWEN_Dialog_SetSignalHandler(dlg, AH_NewKeyFileDialog_SignalHandler); /* get path of dialog description file */ fbuf=GWEN_Buffer_new(0, 256, 0, 1); rv=GWEN_PathManager_FindFile(AB_PM_LIBNAME, AB_PM_DATADIR, "aqbanking/backends/aqhbci/dialogs/dlg_newkeyfile.dlg", fbuf); if (rv<0) { DBG_INFO(AQHBCI_LOGDOMAIN, "Dialog description file not found (%d).", rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } /* read dialog from dialog description file */ rv=GWEN_Dialog_ReadXmlFile(dlg, GWEN_Buffer_GetStart(fbuf)); if (rv<0) { DBG_INFO(AQHBCI_LOGDOMAIN, "here (%d).", rv); GWEN_Gui_ShowError(I18N("Error"), I18N("Could not read dialog description file [%s], maybe an installation error (%d)?"), GWEN_Buffer_GetStart(fbuf), rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } GWEN_Buffer_free(fbuf); xdlg->banking=ab; /* preset */ xdlg->hbciVersion=210; xdlg->rdhVersion=0; /* done */ return dlg; }
GWEN_DIALOG *AO_NewUserDialog_new(AB_PROVIDER *pro) { GWEN_DIALOG *dlg; AO_NEWUSER_DIALOG *xdlg; GWEN_BUFFER *fbuf; int rv; dlg=GWEN_Dialog_new("ao_newuser"); GWEN_NEW_OBJECT(AO_NEWUSER_DIALOG, xdlg); GWEN_INHERIT_SETDATA(GWEN_DIALOG, AO_NEWUSER_DIALOG, dlg, xdlg, AO_NewUserDialog_FreeData); GWEN_Dialog_SetSignalHandler(dlg, AO_NewUserDialog_SignalHandler); /* get path of dialog description file */ fbuf=GWEN_Buffer_new(0, 256, 0, 1); rv=GWEN_PathManager_FindFile(AB_PM_LIBNAME, AB_PM_DATADIR, "aqbanking/backends/aqofxconnect/dialogs/dlg_newuser.dlg", fbuf); if (rv<0) { DBG_INFO(AQOFXCONNECT_LOGDOMAIN, "Dialog description file not found (%d).", rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } /* read dialog from dialog description file */ rv=GWEN_Dialog_ReadXmlFile(dlg, GWEN_Buffer_GetStart(fbuf)); if (rv<0) { DBG_INFO(AQOFXCONNECT_LOGDOMAIN, "here (%d)", rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } GWEN_Buffer_free(fbuf); xdlg->provider=pro; xdlg->banking=AB_Provider_GetBanking(pro); /* preset */ xdlg->httpVMajor=1; xdlg->httpVMinor=1; /* done */ return dlg; }
GWEN_DIALOG *APY_NewUserDialog_new(AB_BANKING *ab) { GWEN_DIALOG *dlg; APY_NEWUSER_DIALOG *xdlg; GWEN_BUFFER *fbuf; int rv; dlg=GWEN_Dialog_new("apy_newuser"); GWEN_NEW_OBJECT(APY_NEWUSER_DIALOG, xdlg); GWEN_INHERIT_SETDATA(GWEN_DIALOG, APY_NEWUSER_DIALOG, dlg, xdlg, APY_NewUserDialog_FreeData); GWEN_Dialog_SetSignalHandler(dlg, APY_NewUserDialog_SignalHandler); /* get path of dialog description file */ fbuf=GWEN_Buffer_new(0, 256, 0, 1); rv=GWEN_PathManager_FindFile(AB_PM_LIBNAME, AB_PM_DATADIR, "aqbanking/backends/aqpaypal/dialogs/dlg_newuser.dlg", fbuf); if (rv<0) { DBG_INFO(AQPAYPAL_LOGDOMAIN, "Dialog description file not found (%d).", rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } /* read dialog from dialog description file */ rv=GWEN_Dialog_ReadXmlFile(dlg, GWEN_Buffer_GetStart(fbuf)); if (rv<0) { DBG_INFO(AQPAYPAL_LOGDOMAIN, "here (%d).", rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } GWEN_Buffer_free(fbuf); xdlg->banking=ab; /* preset */ xdlg->httpVMajor=1; xdlg->httpVMinor=1; xdlg->url=strdup("https://api-3t.paypal.com/nvp"); /* done */ return dlg; }
GWEN_DIALOG *OH_GetInstituteDialog_new(const char *dataFolder, const char *name) { GWEN_DIALOG *dlg; OH_GETINST_DIALOG *xdlg; GWEN_BUFFER *fbuf; int rv; dlg=GWEN_Dialog_new("oh_getinst"); GWEN_NEW_OBJECT(OH_GETINST_DIALOG, xdlg); GWEN_INHERIT_SETDATA(GWEN_DIALOG, OH_GETINST_DIALOG, dlg, xdlg, OH_GetInstituteDialog_FreeData); GWEN_Dialog_SetSignalHandler(dlg, OH_GetInstituteDialog_SignalHandler); /* get path of dialog description file */ fbuf=GWEN_Buffer_new(0, 256, 0, 1); rv=GWEN_PathManager_FindFile(AB_PM_LIBNAME, AB_PM_DATADIR, "aqbanking/backends/aqofxconnect/dialogs/dlg_getinst.dlg", fbuf); if (rv<0) { DBG_INFO(AQOFXCONNECT_LOGDOMAIN, "Dialog description file not found (%d).", rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } /* read dialog from dialog description file */ rv=GWEN_Dialog_ReadXmlFile(dlg, GWEN_Buffer_GetStart(fbuf)); if (rv<0) { DBG_INFO(AQOFXCONNECT_LOGDOMAIN, "here (%d).", rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } GWEN_Buffer_free(fbuf); xdlg->ofxHome=OfxHome_new(dataFolder); xdlg->matchingSpecList=OH_InstituteSpec_List_new(); if (name) xdlg->name=strdup(name); /* done */ return dlg; }
GWEN_DIALOG *AB_SetupDialog_new(AB_BANKING *ab) { GWEN_DIALOG *dlg; AB_SETUP_DIALOG *xdlg; GWEN_BUFFER *fbuf; int rv; dlg=GWEN_Dialog_new("ab_setup"); GWEN_NEW_OBJECT(AB_SETUP_DIALOG, xdlg); GWEN_INHERIT_SETDATA(GWEN_DIALOG, AB_SETUP_DIALOG, dlg, xdlg, AB_SetupDialog_FreeData); GWEN_Dialog_SetSignalHandler(dlg, AB_SetupDialog_SignalHandler); /* get path of dialog description file */ fbuf=GWEN_Buffer_new(0, 256, 0, 1); rv=GWEN_PathManager_FindFile(AB_PM_LIBNAME, AB_PM_DATADIR, "aqbanking/dialogs/dlg_setup.dlg", fbuf); if (rv<0) { DBG_INFO(AQBANKING_LOGDOMAIN, "Dialog description file not found (%d).", rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } /* read dialog from dialog description file */ rv=GWEN_Dialog_ReadXmlFile(dlg, GWEN_Buffer_GetStart(fbuf)); if (rv<0) { DBG_INFO(AQBANKING_LOGDOMAIN, "here (%d).", rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } GWEN_Buffer_free(fbuf); xdlg->banking=ab; /* done */ return dlg; }
GWEN_DIALOG *AH_ChooseUserTypeDialog_new(AB_BANKING *ab) { GWEN_DIALOG *dlg; GWEN_BUFFER *fbuf; int rv; dlg=AB_UserTypePageDialog_new(ab, "ah_choose_usertype"); GWEN_Dialog_SetSignalHandler(dlg, AH_ChooseUserTypeDialog_SignalHandler); /* get path of dialog description file */ fbuf=GWEN_Buffer_new(0, 256, 0, 1); rv=GWEN_PathManager_FindFile(AB_PM_LIBNAME, AB_PM_DATADIR, "aqbanking/backends/aqhbci/dialogs/dlg_choose_usertype.dlg", fbuf); if (rv<0) { DBG_INFO(AQHBCI_LOGDOMAIN, "Dialog description file not found (%d).", rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } /* read dialog from dialog description file */ rv=GWEN_Dialog_ReadXmlFile(dlg, GWEN_Buffer_GetStart(fbuf)); if (rv<0) { DBG_INFO(AQHBCI_LOGDOMAIN, "here (%d).", rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } GWEN_Buffer_free(fbuf); /* add media paths for icons */ GWEN_Dialog_AddMediaPathsFromPathManager(dlg, GWEN_PM_LIBNAME, GWEN_PM_SYSDATADIR, "aqbanking/backends/aqhbci/dialogs"); /* done */ return dlg; }
int APY_NewUserDialog_HandleActivatedSpecial(GWEN_DIALOG *dlg) { #if 0 APY_NEWUSER_DIALOG *xdlg; GWEN_DIALOG *dlg2; int rv; assert(dlg); xdlg=GWEN_INHERIT_GETDATA(GWEN_DIALOG, APY_NEWUSER_DIALOG, dlg); assert(xdlg); dlg2=AH_PinTanSpecialDialog_new(xdlg->banking); if (dlg2==NULL) { DBG_ERROR(AQBANKING_LOGDOMAIN, "Could not create dialog"); return GWEN_DialogEvent_ResultHandled; } AH_PinTanSpecialDialog_SetHttpVersion(dlg2, xdlg->httpVMajor, xdlg->httpVMinor); AH_PinTanSpecialDialog_SetHbciVersion(dlg2, xdlg->hbciVersion); AH_PinTanSpecialDialog_SetFlags(dlg2, xdlg->flags); rv=GWEN_Gui_ExecDialog(dlg2, 0); if (rv==0) { /* rejected */ GWEN_Dialog_free(dlg2); return GWEN_DialogEvent_ResultHandled; } else { xdlg->httpVMajor=AH_PinTanSpecialDialog_GetHttpVMajor(dlg2); xdlg->httpVMinor=AH_PinTanSpecialDialog_GetHttpVMinor(dlg2); xdlg->hbciVersion=AH_PinTanSpecialDialog_GetHbciVersion(dlg2); xdlg->flags=AH_PinTanSpecialDialog_GetFlags(dlg2); } GWEN_Dialog_free(dlg2); #endif return GWEN_DialogEvent_ResultHandled; }
int AH_NewKeyFileDialog_HandleActivatedSpecial(GWEN_DIALOG *dlg) { AH_NEWKEYFILE_DIALOG *xdlg; GWEN_DIALOG *dlg2; int rv; assert(dlg); xdlg=GWEN_INHERIT_GETDATA(GWEN_DIALOG, AH_NEWKEYFILE_DIALOG, dlg); assert(xdlg); dlg2=AH_RdhSpecialDialog_new(xdlg->banking); if (dlg2==NULL) { DBG_ERROR(AQHBCI_LOGDOMAIN, "Could not create dialog"); GWEN_Gui_ShowError(I18N("Error"), "%s", I18N("Could not create dialog, maybe an installation error?")); return GWEN_DialogEvent_ResultHandled; } AH_RdhSpecialDialog_SetFlags(dlg2, xdlg->flags); AH_RdhSpecialDialog_SetHbciVersion(dlg2, xdlg->hbciVersion); AH_RdhSpecialDialog_SetRdhVersion(dlg2, xdlg->rdhVersion); rv=GWEN_Gui_ExecDialog(dlg2, 0); if (rv==0) { /* rejected */ GWEN_Dialog_free(dlg2); return GWEN_DialogEvent_ResultHandled; } else { xdlg->hbciVersion=AH_RdhSpecialDialog_GetHbciVersion(dlg2); xdlg->rdhVersion=AH_RdhSpecialDialog_GetRdhVersion(dlg2); xdlg->flags=AH_RdhSpecialDialog_GetFlags(dlg2); } GWEN_Dialog_free(dlg2); return GWEN_DialogEvent_ResultHandled; }
GWEN_DIALOG *TestDialog_new() { int rv; GWEN_DIALOG *dlg; /* create dialog */ dlg=GWEN_Dialog_new("testdialog"); /* set signal handler */ GWEN_Dialog_SetSignalHandler(dlg, TestDialog_SignalHandler); /* read dialog from dialog description file */ rv=GWEN_Dialog_ReadXmlFile(dlg, "testdialog.dlg"); if (rv<0) { fprintf(stderr, "Error reading dialog file (%d)\n", rv); GWEN_Dialog_free(dlg); return NULL; } return dlg; }
int AO_NewUserDialog_HandleActivatedBankSelect(GWEN_DIALOG *dlg) { AO_NEWUSER_DIALOG *xdlg; int rv; GWEN_DIALOG *dlg2; GWEN_BUFFER *tbuf; assert(dlg); xdlg=GWEN_INHERIT_GETDATA(GWEN_DIALOG, AO_NEWUSER_DIALOG, dlg); assert(xdlg); /* get data dir */ tbuf=GWEN_Buffer_new(0, 256, 0, 1); rv=AB_Banking_GetProviderUserDataDir(xdlg->banking, "aqofxconnect", tbuf); if (rv<0) { DBG_INFO(AQOFXCONNECT_LOGDOMAIN, "here (%d)", rv); GWEN_Buffer_free(tbuf); return GWEN_DialogEvent_ResultHandled; } GWEN_Buffer_AppendString(tbuf, GWEN_DIR_SEPARATOR_S "ofxhome"); /* possibly create data folder */ rv=GWEN_Directory_GetPath(GWEN_Buffer_GetStart(tbuf), GWEN_PATH_FLAGS_CHECKROOT); if (rv<0) { DBG_INFO(AQOFXCONNECT_LOGDOMAIN, "here (%d)", rv); GWEN_Buffer_free(tbuf); return GWEN_DialogEvent_ResultHandled; } dlg2=OH_GetInstituteDialog_new(GWEN_Buffer_GetStart(tbuf), NULL); GWEN_Buffer_free(tbuf); if (dlg2==NULL) { DBG_INFO(AQOFXCONNECT_LOGDOMAIN, "Could not create dialog"); return GWEN_DialogEvent_ResultHandled; } rv=GWEN_Gui_ExecDialog(dlg2, 0); if (rv<=0) { DBG_DEBUG(AQOFXCONNECT_LOGDOMAIN, "Dialog: rejected (%d)", rv); return GWEN_DialogEvent_ResultHandled; } else { const OH_INSTITUTE_DATA *od; DBG_DEBUG(AQOFXCONNECT_LOGDOMAIN, "Dialog: rejected (%d)", rv); od=OH_GetInstituteDialog_GetSelectedInstitute(dlg2); if (od) { const char *s; s=OH_InstituteData_GetName(od); if (s && *s) GWEN_Dialog_SetCharProperty(dlg, "wiz_bankname_edit", GWEN_DialogProperty_Value, 0, s, 0); s=OH_InstituteData_GetFid(od); if (s && *s) GWEN_Dialog_SetCharProperty(dlg, "wiz_fid_edit", GWEN_DialogProperty_Value, 0, s, 0); s=OH_InstituteData_GetOrg(od); if (s && *s) GWEN_Dialog_SetCharProperty(dlg, "wiz_org_edit", GWEN_DialogProperty_Value, 0, s, 0); s=OH_InstituteData_GetUrl(od); if (s && *s) GWEN_Dialog_SetCharProperty(dlg, "wiz_url_edit", GWEN_DialogProperty_Value, 0, s, 0); rv=AO_NewUserDialog_GetBankPageData(dlg); if (rv<0) GWEN_Dialog_SetIntProperty(dlg, "wiz_next_button", GWEN_DialogProperty_Enabled, 0, 0, 0); else GWEN_Dialog_SetIntProperty(dlg, "wiz_next_button", GWEN_DialogProperty_Enabled, 0, 1, 0); } } GWEN_Dialog_free(dlg2); return GWEN_DialogEvent_ResultHandled; }
int AB_SetupDialog_AddAccount(GWEN_DIALOG *dlg) { AB_SETUP_DIALOG *xdlg; AB_PROVIDER *pro; const char *s; const char *initialProvider=NULL; uint32_t flags; assert(dlg); xdlg=GWEN_INHERIT_GETDATA(GWEN_DIALOG, AB_SETUP_DIALOG, dlg); assert(xdlg); s=GWEN_I18N_GetCurrentLocale(); if (s && *s) { if (strstr(s, "de_")) initialProvider="aqhbci"; else initialProvider="aqofxconnect"; } pro=AB_SelectBackend(xdlg->banking, initialProvider, I18N("Please select the online banking backend the new " "account is to be created for.")); if (pro==NULL) { DBG_ERROR(0, "No provider selected."); return GWEN_DialogEvent_ResultHandled; } flags=AB_Provider_GetFlags(pro); if (flags & AB_PROVIDER_FLAGS_HAS_NEWACCOUNT_DIALOG) { GWEN_DIALOG *dlg2; int rv; dlg2=AB_Provider_GetNewAccountDialog(pro); if (dlg2==NULL) { DBG_ERROR(AQBANKING_LOGDOMAIN, "Could not create dialog"); return GWEN_DialogEvent_ResultHandled; } rv=GWEN_Gui_ExecDialog(dlg2, 0); if (rv==0) { /* rejected */ GWEN_Dialog_free(dlg2); AB_Banking_EndUseProvider(xdlg->banking, pro); return GWEN_DialogEvent_ResultHandled; } GWEN_Dialog_free(dlg2); AB_Banking_EndUseProvider(xdlg->banking, pro); AB_SetupDialog_Reload(dlg); } else { GWEN_DIALOG *dlg2; AB_ACCOUNT *a; const char *s; int rv; a=AB_Provider_CreateAccountObject(pro); if (a==NULL) { DBG_INFO(AQBANKING_LOGDOMAIN, "No account created."); AB_Banking_EndUseProvider(xdlg->banking, pro); return GWEN_DialogEvent_ResultHandled; } s=GWEN_I18N_GetCurrentLocale(); if (s && *s) { if (strstr(s, "de_")) { AB_Account_SetCountry(a, "de"); AB_Account_SetCurrency(a, "EUR"); } else if (strstr(s, "us_")) { AB_Account_SetCountry(a, "us"); AB_Account_SetCurrency(a, "USD"); } } dlg2=AB_EditAccountDialog_new(pro, a, 0); if (dlg2==NULL) { DBG_INFO(AQBANKING_LOGDOMAIN, "Could not create dialog"); AB_Account_free(a); AB_Banking_EndUseProvider(xdlg->banking, pro); return GWEN_DialogEvent_ResultHandled; } rv=GWEN_Gui_ExecDialog(dlg2, 0); if (rv==0) { /* rejected */ GWEN_Dialog_free(dlg2); AB_Account_free(a); AB_Banking_EndUseProvider(xdlg->banking, pro); return GWEN_DialogEvent_ResultHandled; } GWEN_Dialog_free(dlg2); rv=AB_Provider_AddAccount(pro, a, 1); /* do lock corresponding user */ if (rv<0) { DBG_INFO(AQBANKING_LOGDOMAIN, "here (%d)", rv); AB_Account_free(a); return GWEN_DialogEvent_ResultHandled; } AB_Account_free(a); AB_Banking_EndUseProvider(xdlg->banking, pro); AB_SetupDialog_Reload(dlg); } return GWEN_DialogEvent_ResultHandled; }
int AH_NewKeyFileDialog_HandleActivatedBankCode(GWEN_DIALOG *dlg) { AH_NEWKEYFILE_DIALOG *xdlg; GWEN_DIALOG *dlg2; int rv; assert(dlg); xdlg=GWEN_INHERIT_GETDATA(GWEN_DIALOG, AH_NEWKEYFILE_DIALOG, dlg); assert(xdlg); dlg2=AB_SelectBankInfoDialog_new(xdlg->banking, "de", NULL); if (dlg2==NULL) { DBG_ERROR(AQHBCI_LOGDOMAIN, "Could not create dialog"); GWEN_Gui_ShowError(I18N("Error"), "%s", I18N("Could not create dialog, maybe an installation error?")); return GWEN_DialogEvent_ResultHandled; } rv=GWEN_Gui_ExecDialog(dlg2, 0); if (rv==0) { /* rejected */ GWEN_Dialog_free(dlg2); return GWEN_DialogEvent_ResultHandled; } else { const AB_BANKINFO *bi; bi=AB_SelectBankInfoDialog_GetSelectedBankInfo(dlg2); if (bi) { const char *s; AB_BANKINFO_SERVICE *sv; s=AB_BankInfo_GetBankId(bi); GWEN_Dialog_SetCharProperty(dlg, "wiz_bankcode_edit", GWEN_DialogProperty_Value, 0, (s && *s)?s:"", 0); s=AB_BankInfo_GetBankName(bi); GWEN_Dialog_SetCharProperty(dlg, "wiz_bankname_edit", GWEN_DialogProperty_Value, 0, (s && *s)?s:"", 0); sv=AB_BankInfoService_List_First(AB_BankInfo_GetServices(bi)); while(sv) { const char *s; s=AB_BankInfoService_GetType(sv); if (s && *s && strcasecmp(s, "HBCI")==0) { s=AB_BankInfoService_GetMode(sv); if (s && *s && strncasecmp(s, "RDH", 3)==0) break; } sv=AB_BankInfoService_List_Next(sv); } if (sv) { /* RDH service found */ s=AB_BankInfoService_GetMode(sv); if (s && *s) { if (strcasecmp(s, "RDH1")==0) xdlg->rdhVersion=1; else if (strcasecmp(s, "RDH2")==0) xdlg->rdhVersion=2; else if (strcasecmp(s, "RDH3")==0) xdlg->rdhVersion=3; else if (strcasecmp(s, "RDH4")==0) xdlg->rdhVersion=4; else if (strcasecmp(s, "RDH5")==0) xdlg->rdhVersion=5; else if (strcasecmp(s, "RDH6")==0) xdlg->rdhVersion=6; else if (strcasecmp(s, "RDH7")==0) xdlg->rdhVersion=7; else if (strcasecmp(s, "RDH8")==0) xdlg->rdhVersion=8; else if (strcasecmp(s, "RDH9")==0) xdlg->rdhVersion=9; else if (strcasecmp(s, "RDH10")==0) xdlg->rdhVersion=10; else if (strcasecmp(s, "RDH")==0) xdlg->rdhVersion=1; } s=AB_BankInfoService_GetAddress(sv); GWEN_Dialog_SetCharProperty(dlg, "wiz_url_edit", GWEN_DialogProperty_Value, 0, (s && *s)?s:"", 0); s=AB_BankInfoService_GetPversion(sv); if (s && *s) { if (strcasecmp(s, "2.01")==0 || strcasecmp(s, "2")==0) xdlg->hbciVersion=201; else if (strcasecmp(s, "2.10")==0 || strcasecmp(s, "2.1")==0) xdlg->hbciVersion=210; else if (strcasecmp(s, "2.20")==0 || strcasecmp(s, "2.2")==0) xdlg->hbciVersion=220; else if (strcasecmp(s, "3.00")==0 || strcasecmp(s, "3.0")==0 || strcasecmp(s, "3")==0) xdlg->hbciVersion=300; else if (strcasecmp(s, "4.00")==0 || strcasecmp(s, "4.0")==0 || strcasecmp(s, "4")==0) xdlg->hbciVersion=400; } } } } GWEN_Dialog_free(dlg2); if (AH_NewKeyFileDialog_GetBankPageData(dlg)<0) GWEN_Dialog_SetIntProperty(dlg, "wiz_next_button", GWEN_DialogProperty_Enabled, 0, 0, 0); else GWEN_Dialog_SetIntProperty(dlg, "wiz_next_button", GWEN_DialogProperty_Enabled, 0, 1, 0); return GWEN_DialogEvent_ResultHandled; }
int AB_SetupDialog_AddUser(GWEN_DIALOG *dlg) { AB_SETUP_DIALOG *xdlg; GWEN_DIALOG *dlg2; int rv; assert(dlg); xdlg=GWEN_INHERIT_GETDATA(GWEN_DIALOG, AB_SETUP_DIALOG, dlg); assert(xdlg); dlg2=AB_SetupNewUserDialog_new(xdlg->banking); if (dlg2==NULL) { DBG_ERROR(AQBANKING_LOGDOMAIN, "Could not create dialog"); return GWEN_DialogEvent_ResultHandled; } rv=GWEN_Gui_ExecDialog(dlg2, 0); if (rv==0) { /* rejected */ GWEN_Dialog_free(dlg2); } else { const char *s; s=AB_SetupNewUserDialog_GetSelectedBackend(dlg2); if (s && *s) { AB_PROVIDER *pro; int selectedType; uint32_t flags; pro=AB_SetupDialog_GetProviderByName(dlg, s); if (pro==NULL) { DBG_ERROR(AQBANKING_LOGDOMAIN, "Provider [%s] not found", s); GWEN_Dialog_free(dlg2); return GWEN_DialogEvent_ResultHandled; } selectedType=AB_SetupNewUserDialog_GetSelectedType(dlg2); GWEN_Dialog_free(dlg2); flags=AB_Provider_GetFlags(pro); if (flags & AB_PROVIDER_FLAGS_HAS_NEWUSER_DIALOG) { GWEN_DIALOG *dlg3; int rv; dlg3=AB_Provider_GetNewUserDialog(pro, selectedType); if (dlg3==NULL) { DBG_ERROR(AQBANKING_LOGDOMAIN, "Could not create dialog"); return GWEN_DialogEvent_ResultHandled; } rv=GWEN_Gui_ExecDialog(dlg3, 0); if (rv==0) { /* rejected */ GWEN_Dialog_free(dlg3); return GWEN_DialogEvent_ResultHandled; } GWEN_Dialog_free(dlg3); AB_SetupDialog_Reload(dlg); } else { GWEN_DIALOG *dlg3; AB_USER *u; const char *s; int rv; u=AB_Provider_CreateUserObject(pro); if (u==NULL) { DBG_INFO(AQBANKING_LOGDOMAIN, "No user created."); return GWEN_DialogEvent_ResultHandled; } s=GWEN_I18N_GetCurrentLocale(); if (s && *s) { if (strstr(s, "de_")) AB_User_SetCountry(u, "de"); else if (strstr(s, "us_")) AB_User_SetCountry(u, "us"); } dlg3=AB_EditUserDialog_new(pro, u, 0); if (dlg3==NULL) { DBG_INFO(AQBANKING_LOGDOMAIN, "Could not create dialog"); AB_User_free(u); return GWEN_DialogEvent_ResultHandled; } rv=GWEN_Gui_ExecDialog(dlg3, 0); if (rv==0) { /* rejected */ GWEN_Dialog_free(dlg3); AB_User_free(u); return GWEN_DialogEvent_ResultHandled; } GWEN_Dialog_free(dlg3); rv=AB_Provider_AddUser(pro, u); if (rv<0) { DBG_INFO(AQBANKING_LOGDOMAIN, "here (%d)", rv); AB_User_free(u); return GWEN_DialogEvent_ResultHandled; } AB_User_free(u); AB_SetupDialog_Reload(dlg); } } else { GWEN_Dialog_free(dlg2); return GWEN_DialogEvent_ResultHandled; } } return GWEN_DialogEvent_ResultHandled; }
GWEN_DIALOG *AB_SetupNewUserDialog_new(AB_BANKING *ab) { GWEN_DIALOG *dlg; AB_SETUP_NEWUSER_DIALOG *xdlg; GWEN_BUFFER *fbuf; int rv; GWEN_XMLNODE *n; GWEN_XMLNODE *nDialog; GWEN_PLUGIN_DESCRIPTION_LIST2 *providers; GWEN_DIALOG_LIST *subDialogs=NULL; dlg=GWEN_Dialog_new("ab_setup_newuser"); GWEN_NEW_OBJECT(AB_SETUP_NEWUSER_DIALOG, xdlg); GWEN_INHERIT_SETDATA(GWEN_DIALOG, AB_SETUP_NEWUSER_DIALOG, dlg, xdlg, AB_SetupNewUserDialog_FreeData); GWEN_Dialog_SetSignalHandler(dlg, AB_SetupNewUserDialog_SignalHandler); xdlg->backendDialogs=GWEN_Dialog_List2_new(); xdlg->backendRadioNames=GWEN_StringList_new(); xdlg->backendNames=GWEN_StringList_new(); /* get path of dialog description file */ fbuf=GWEN_Buffer_new(0, 256, 0, 1); rv=GWEN_PathManager_FindFile(AB_PM_LIBNAME, AB_PM_DATADIR, "aqbanking/dialogs/dlg_setup_newuser.dlg", fbuf); if (rv<0) { DBG_INFO(AQBANKING_LOGDOMAIN, "Dialog description file not found (%d).", rv); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } /* read XML file, extend it */ n=GWEN_XMLNode_new(GWEN_XMLNodeTypeTag, "root"); rv=GWEN_XML_ReadFile(n, GWEN_Buffer_GetStart(fbuf), GWEN_XML_FLAGS_DEFAULT | GWEN_XML_FLAGS_HANDLE_HEADERS); if (rv<0) { DBG_INFO(AQBANKING_LOGDOMAIN, "here (%d)", rv); GWEN_XMLNode_free(n); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } nDialog=GWEN_XMLNode_FindFirstTag(n, "dialog", NULL, NULL); if (nDialog==NULL) { DBG_INFO(AQBANKING_LOGDOMAIN, "Dialog element not found in XML file [%s]", GWEN_Buffer_GetStart(fbuf)); GWEN_XMLNode_free(n); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } providers=AB_Banking_GetProviderDescrs(ab); if (providers) { GWEN_XMLNODE *nBackendRadioWidget; nBackendRadioWidget=GWEN_XMLNode_FindFirstTag(nDialog, "widget", "name", "dialogVLayout"); if (nBackendRadioWidget) nBackendRadioWidget=GWEN_XMLNode_FindFirstTag(nBackendRadioWidget, "widget", "name", "wiz_stack"); if (nBackendRadioWidget) nBackendRadioWidget=GWEN_XMLNode_FindFirstTag(nBackendRadioWidget, "widget", "name", "backendRadioWidget"); subDialogs=GWEN_Dialog_List_new(); if (nBackendRadioWidget) { GWEN_PLUGIN_DESCRIPTION_LIST2_ITERATOR *pit; pit=GWEN_PluginDescription_List2_First(providers); if (pit) { GWEN_PLUGIN_DESCRIPTION *pd; pd=GWEN_PluginDescription_List2Iterator_Data(pit); while(pd) { const char *name; name=GWEN_PluginDescription_GetName(pd); if (name && *name) { AB_PROVIDER *pro; pro=AB_Banking_GetProvider(ab, name); if (pro) { GWEN_DIALOG *cdlg; GWEN_BUFFER *tbuf; GWEN_XMLNODE *wn; const char *s; if (AB_Provider_GetFlags(pro) & AB_PROVIDER_FLAGS_HAS_USERTYPE_DIALOG) { cdlg=AB_ProviderGetUserTypeDialog(pro); if (cdlg==NULL) { DBG_WARN(AQBANKING_LOGDOMAIN, "Backend [%s] does not return a userType dialog, using default", name); cdlg=AB_UserTypePageDefaultDialog_new(ab); } } else cdlg=AB_UserTypePageDefaultDialog_new(ab); tbuf=GWEN_Buffer_new(0, 256, 0, 1); GWEN_Buffer_AppendString(tbuf, "backend_"); GWEN_Buffer_AppendString(tbuf, name); GWEN_Buffer_AppendString(tbuf, "_radio"); wn=GWEN_XMLNode_new(GWEN_XMLNodeTypeTag, "widget"); GWEN_XMLNode_SetProperty(wn, "type", "radioButton"); GWEN_XMLNode_SetProperty(wn, "name", GWEN_Buffer_GetStart(tbuf)); GWEN_StringList_AppendString(xdlg->backendRadioNames, GWEN_Buffer_GetStart(tbuf), 0, 0); GWEN_StringList_AppendString(xdlg->backendNames, name, 0, 0); s=GWEN_PluginDescription_GetShortDescr(pd); if (!(s && *s)) s=name; GWEN_XMLNode_SetProperty(wn, "text", I18N(s)); GWEN_XMLNode_SetProperty(wn, "groupId", "999999"); GWEN_XMLNode_SetProperty(wn, "flags", "fillX justifyLeft"); GWEN_XMLNode_AddChild(nBackendRadioWidget, wn); GWEN_Dialog_List_Add(cdlg, subDialogs); } else { DBG_ERROR(AQBANKING_LOGDOMAIN, "Could not activate backend [%s]", name); } } pd=GWEN_PluginDescription_List2Iterator_Next(pit); } GWEN_PluginDescription_List2Iterator_free(pit); } } else { DBG_ERROR(AQBANKING_LOGDOMAIN, "Dialog description does not contain path [dialogVLayout/wiz_stack/backendRadioWidget]"); GWEN_XMLNode_Dump(nDialog, 2); GWEN_XMLNode_free(n); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } } /* read dialog from dialog description file */ rv=GWEN_Dialog_ReadXml(dlg, nDialog); if (rv<0) { DBG_INFO(AQBANKING_LOGDOMAIN, "here (%d).", rv); GWEN_Dialog_List_free(subDialogs); GWEN_XMLNode_free(n); GWEN_Buffer_free(fbuf); GWEN_Dialog_free(dlg); return NULL; } GWEN_XMLNode_free(n); GWEN_Buffer_free(fbuf); /* insert pages for each backend */ if (GWEN_Dialog_List_GetCount(subDialogs)) { GWEN_DIALOG *cdlg; while ( (cdlg=GWEN_Dialog_List_First(subDialogs)) ) { GWEN_Dialog_List_Del(cdlg); DBG_NOTICE(AQBANKING_LOGDOMAIN, "Adding dialog %s", GWEN_Dialog_GetId(cdlg)); rv=GWEN_Dialog_AddSubDialog(dlg, "wiz_stack", cdlg); if (rv<0) { DBG_INFO(AQBANKING_LOGDOMAIN, "here (%d)", rv); GWEN_Dialog_List_free(subDialogs); GWEN_Dialog_free(cdlg); GWEN_Dialog_free(dlg); return NULL; } GWEN_Dialog_List2_PushBack(xdlg->backendDialogs, cdlg); } } GWEN_Dialog_List_free(subDialogs); xdlg->banking=ab; /* done */ return dlg; }
int test3(int argc, char **argv) { #ifdef USE_GWENGUI_GTK2 GWEN_GUI *gui; GWEN_DIALOG *dlg; int rv; AB_BANKING *ab; rv=GWEN_Init(); if (rv) { fprintf(stderr, "ERROR: Unable to init Gwen.\n"); exit(2); } GWEN_Logger_SetLevel(AQBANKING_LOGDOMAIN, GWEN_LoggerLevel_Info); GWEN_Logger_SetLevel(AQOFXCONNECT_LOGDOMAIN, GWEN_LoggerLevel_Info); GWEN_Logger_SetLevel(GWEN_LOGDOMAIN, GWEN_LoggerLevel_Debug); gtk_init(&argc, &argv); gui=Gtk2_Gui_new(); GWEN_Gui_SetGui(gui); ab=AB_Banking_new("test-ofxhome", NULL, 0); rv=AB_Banking_Init(ab); if (rv<0){ fprintf(stderr, "Error on banking init: %d\n", rv); exit(2); } AB_Gui_Extend(gui, ab); dlg=OH_GetInstituteDialog_new("/tmp/ofx", NULL); if (dlg==NULL) { fprintf(stderr, "Could not create dialog\n"); exit(2); } rv=GWEN_Gui_ExecDialog(dlg, 0); if (rv<=0){ fprintf(stderr, "Dialog was aborted/rejected\n"); } else { const OH_INSTITUTE_DATA *od; fprintf(stderr, "Dialog accepted, all fine\n"); od=OH_GetInstituteDialog_GetSelectedInstitute(dlg); if (od) { fprintf(stderr, "- Id : %d\n", OH_InstituteData_GetId(od)); fprintf(stderr, "- Name: %s\n", OH_InstituteData_GetName(od)); fprintf(stderr, "- FID : %s\n", OH_InstituteData_GetFid(od)); fprintf(stderr, "- ORG : %s\n", OH_InstituteData_GetOrg(od)); fprintf(stderr, "- URL : %s\n", OH_InstituteData_GetUrl(od)); } } GWEN_Dialog_free(dlg); AB_Gui_Unextend(gui); rv=AB_Banking_Fini(ab); if (rv<0){ fprintf(stderr, "Error on banking fini: %d\n", rv); exit(2); } AB_Banking_free(ab); GWEN_Gui_free(gui); #endif return 0; }