I have a dialog that is used to initiate a process querying a database. During this process the user is prompted with a Save dialog allowing them to specify a name and location for the resulting data file. After the Save dialog is closed my queries begin. At this point I want to update various text fields in the dialog reflecting current status and results as the queries progress. But nothing updates in my dialog until my queries are finished because its focus went away when the child Save dialog was opened and didn't return after closing until my process completed.
I was able to solve this on my Windows version by attaching an IID_IBOOLDATA observer to the dialog and sending a messageID to the dialog through this IID_IBOOLDATA. During the observer update function I obtain the dialog's widget, get its view control and do a ForceRedraw(). This works great on Windows but has no effect on the Mac.
On the Mac, it appears that it won't update unless the dialog has focus and the focus doesn't return until my process is completed. If the child dialog hadn't been opened, the focus would have remained on my dialog and the status updates will work fine. But once any child dialog is opened, focus leaves and doesn't return until my process completes.
Does anyone have a suggestion on how to force the focus back to a dialog in order to update/refresh some fields for the Mac?
Thanks
Bob