ModalDialog weirdness
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 28/02/2008 at 16:39, xxxxxxxx wrote:
User Information:
Cinema 4D Version: R9-R10
Platform: Windows ; Mac ; Mac OSX ;
Language(s) : C++ ;---------
If I do it this way, it works:>
// Add Runtimes until user is done \> //\*---------------------------------------------------------------------------\* \> Bool IPPDialog::AddMoreRuntimes() \> //\*---------------------------------------------------------------------------\* \> { \> Filename libFr = Filename(GeLoadString(IPPRTF_LIBRARIES_FR)); \> Filename libEn = Filename("libraries"); \> for (;;) \> { \> if (!runtimePath.FileSelect(0L, GE_DIRECTORY, &GeLoadString;(IPPS_SELECTRUNTIME))) return FALSE; \> if (!GeFExist(runtimePath, TRUE)) \> { \> if (!QuestionDialog(GeLoadString(IPPS_NOTPOSER)+"\n"+GeLoadString(IPPS_NOTPOSERCONTINUE))) return FALSE; \> continue; \> } \> // v1.7.7 \> // Verify that Folder has "libraries" folder within - language-sensitive - English, French \> if (GeFExist(runtimePath+libEn, TRUE)) \> { \> // Verify more deeply as real Runtime - check for library folders \> if (FindIsLibrary(runtimePath+libEn) && AppendRuntime()) logging.LogPrint(" Added Runtime: \""+runtimePath.GetString()+"\"\n"); \> } \> else if (GeFExist(runtimePath+libFr, TRUE)) \> { \> // Verify more deeply as real Runtime - check for library folders \> if (FindIsLibrary(runtimePath+libFr) && AppendRuntime()) logging.LogPrint(" Added Runtime: \""+runtimePath.GetString()+"\"\n"); \> } \> // Search Folder contents \> else FindAddRuntimes(runtimePath); \> [RED]MoreRuntimesDialog mrdlg; \> mrdlg.InitDlg(this);[/FONT] \> mrdlg.Open(-1L,-1L, 320L, 128L); \> if (!mrdlg.GetResult()) return TRUE; \> } \> return FALSE; \> }
But if I do it this way (as is done currently), the third time the dialog is called it has no gadgets (on MacOS, it has nothing and requires a Force Quit of Cinema 4D!) :
>
// Add Runtimes until user is done \> //\*---------------------------------------------------------------------------\* \> Bool IPPDialog::AddMoreRuntimes() \> //\*---------------------------------------------------------------------------\* \> { \> Filename libFr = Filename(GeLoadString(IPPRTF_LIBRARIES_FR)); \> Filename libEn = Filename("libraries"); \> [RED]MoreRuntimesDialog mrdlg; \> mrdlg.InitDlg(this);[/FONT] \> for (;;) \> { \> if (!runtimePath.FileSelect(0L, GE_DIRECTORY, &GeLoadString;(IPPS_SELECTRUNTIME))) return FALSE; \> if (!GeFExist(runtimePath, TRUE)) \> { \> if (!QuestionDialog(GeLoadString(IPPS_NOTPOSER)+"\n"+GeLoadString(IPPS_NOTPOSERCONTINUE))) return FALSE; \> continue; \> } \> // v1.7.7 \> // Verify that Folder has "libraries" folder within - language-sensitive - English, French \> if (GeFExist(runtimePath+libEn, TRUE)) \> { \> // Verify more deeply as real Runtime - check for library folders \> if (FindIsLibrary(runtimePath+libEn) && AppendRuntime()) logging.LogPrint(" Added Runtime: \""+runtimePath.GetString()+"\"\n"); \> } \> else if (GeFExist(runtimePath+libFr, TRUE)) \> { \> // Verify more deeply as real Runtime - check for library folders \> if (FindIsLibrary(runtimePath+libFr) && AppendRuntime()) logging.LogPrint(" Added Runtime: \""+runtimePath.GetString()+"\"\n"); \> } \> // Search Folder contents \> else FindAddRuntimes(runtimePath); \> mrdlg.Open(-1L,-1L, 320L, 128L); \> if (!mrdlg.GetResult()) return TRUE; \> } \> return FALSE; \> }
Why?