Ping?
Robert, did you miss this one?
I ask because it should be fairly simple to review, being an application of
the general pronciples already approved in 2a to another region of code.
If it is queued waiting for you to have time, please let me know.
After this, there is only one more trivial commit to actually remove the
definition of next_dialog itself.
Max.
+2003-07-30 Max Bowsher [EMAIL PROTECTED]
+
+ * download.cc (do_download_thread): Return bool. Move program flow
+ logic to threebar.cc.
+ (do_download_thread_reflector): Put returned bool in lParam.
+ * threebar.cc: Include msg.h.
+ (WM_APP_DOWNLOAD_THREAD_COMPLETE): Rework for new meaning of lParam,
+ incorporating program flow logic from download.cc.
Index: download.cc
===
RCS file: /home/max/cvsmirror/cygwin-apps-cvs/setup/download.cc,v
retrieving revision 2.37
diff -u -p -r2.37 download.cc
--- download.cc 7 Apr 2003 12:46:55 - 2.37
+++ download.cc 30 Jul 2003 22:03:05 -
@@ -221,7 +221,7 @@ download_one (packagesource pkgsource,
return 1;
}
-static void
+static bool
do_download_thread (HINSTANCE h, HWND owner)
{
int errors = 0;
@@ -302,25 +302,7 @@ do_download_thread (HINSTANCE h, HWND ow
}
}
- if (errors)
-{
- if (yesno (owner, IDS_DOWNLOAD_INCOMPLETE) == IDYES)
- {
- next_dialog = IDD_SITE;
- return;
- }
-}
-
- if (source == IDC_SOURCE_DOWNLOAD)
-{
- if (errors)
- exit_msg = IDS_DOWNLOAD_INCOMPLETE;
- else if (!unattended_mode)
- exit_msg = IDS_DOWNLOAD_COMPLETE;
- next_dialog = 0;
-}
- else
-next_dialog = IDD_S_INSTALL;
+ return (errors == 0);
}
static DWORD WINAPI
@@ -329,10 +311,11 @@ do_download_reflector (void *p)
HANDLE *context;
context = (HANDLE *) p;
- do_download_thread ((HINSTANCE) context[0], (HWND) context[1]);
+ bool succeeded = do_download_thread ((HINSTANCE) context[0],
+ (HWND) context[1]);
// Tell the progress page that we're done downloading
- Progress.PostMessage (WM_APP_DOWNLOAD_THREAD_COMPLETE, 0,
next_dialog);
+ Progress.PostMessage (WM_APP_DOWNLOAD_THREAD_COMPLETE, 0, succeeded);
ExitThread(0);
}
Index: threebar.cc
===
RCS file: /home/max/cvsmirror/cygwin-apps-cvs/setup/threebar.cc,v
retrieving revision 2.7
diff -u -p -r2.7 threebar.cc
--- threebar.cc 30 Jul 2003 21:49:53 - 2.7
+++ threebar.cc 30 Jul 2003 22:05:48 -
@@ -27,6 +27,7 @@
#include threebar.h
#include cistring.h
#include state.h
+#include msg.h
bool ThreeBarProgressPage::Create ()
{
@@ -148,21 +149,32 @@ ThreeBarProgressPage::OnMessageApp (UINT
}
case WM_APP_DOWNLOAD_THREAD_COMPLETE:
{
- if (lParam == IDD_S_INSTALL)
+ if (!lParam)
{
- // Download is complete and we want to go on to the install.
- Window::PostMessage (WM_APP_START_INSTALL);
+ if (yesno (GetHWND(), IDS_DOWNLOAD_INCOMPLETE) == IDYES)
+ {
+ // Download failed for some reason,
+ // go back to site selection page
+ GetOwner ()-SetActivePageByID (IDD_SITE);
+ break;
+ }
}
- else if (lParam != 0)
+
+ if (source == IDC_SOURCE_DOWNLOAD)
{
- // Download failed for some reason, go back to site selection page
- GetOwner ()-SetActivePageByID (lParam);
+ if (!lParam)
+ exit_msg = IDS_DOWNLOAD_INCOMPLETE;
+ else if (!unattended_mode)
+ exit_msg = IDS_DOWNLOAD_COMPLETE;
+ // Was a download-only, and is complete or failed.
+ GetOwner ()-PressButton (PSBTN_CANCEL);
}
else
{
- // Was a download-only, and is complete or failed.
- GetOwner ()-PressButton (PSBTN_CANCEL);
+ // Download is complete and we want to go on to the install.
+ Window::PostMessage (WM_APP_START_INSTALL);
}
+
break;
}
case WM_APP_START_INSTALL: