RootPage is supposed to disable the next button if the rootdir edit box is empty, but this currently doesn't work.
Signed-off-by: Jon Turney <jon.tur...@dronecode.org.uk> --- root.cc | 19 ++++++++++++++----- root.h | 4 ++++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/root.cc b/root.cc index ec2588a..695590a 100644 --- a/root.cc +++ b/root.cc @@ -39,6 +39,7 @@ static const char *cvsid = #include "msg.h" #include "package_db.h" #include "mount.h" +#include "propsheet.h" #include "getopt++/StringOption.h" @@ -64,11 +65,14 @@ static int su[] = { IDC_ROOT_SYSTEM, IDC_ROOT_USER, 0 }; static string orig_root_dir; -static void -check_if_enable_next (HWND h) +void +RootPage::check_if_enable_next (HWND h) { - EnableWindow (GetDlgItem (h, IDOK), - egetString (h, IDC_ROOT_DIR).size() && root_scope); + DWORD ButtonFlags = PSWIZB_BACK; + // if there's something in the root dir box, and we have a scope, enable next + if (egetString (h, IDC_ROOT_DIR).size() && root_scope) + ButtonFlags |= PSWIZB_NEXT; + GetOwner ()->SetButtons (ButtonFlags); } static void @@ -76,7 +80,6 @@ load_dialog (HWND h) { rbset (h, su, root_scope); eset (h, IDC_ROOT_DIR, get_root_dir ()); - check_if_enable_next (h); } static void @@ -269,6 +272,12 @@ RootPage::OnInit () load_dialog (GetHWND ()); } +void +RootPage::OnActivate () +{ + check_if_enable_next (GetHWND ()); +} + bool RootPage::wantsActivation() const { diff --git a/root.h b/root.h index 6e89fb9..326a930 100644 --- a/root.h +++ b/root.h @@ -16,9 +16,13 @@ public: virtual bool OnMessageCmd (int id, HWND hwndctl, UINT code); virtual void OnInit (); virtual bool wantsActivation() const; + virtual void OnActivate (); virtual long OnNext (); virtual long OnBack (); virtual long OnUnattended (); + + private: + void check_if_enable_next (HWND h); }; #endif /* SETUP_ROOT_H */ -- 2.8.3