/* * Copyright 2019-2020, Andrew Lindesay . * All rights reserved. Distributed under the terms of the MIT License. */ #ifndef USER_USAGE_CONDITIONS_WINDOW_H #define USER_USAGE_CONDITIONS_WINDOW_H #include #include #include #include "HaikuDepotConstants.h" #include "PackageInfo.h" #include "UserDetail.h" #include "UserUsageConditions.h" class BarberPole; class TextView; class BStringView; class MarkupTextView; class Model; class UserUsageConditionsWindow : public BWindow { public: UserUsageConditionsWindow(Model& model, UserUsageConditions& userUsageConditions); UserUsageConditionsWindow(Model& model, UserUsageConditionsSelectionMode mode); virtual ~UserUsageConditionsWindow(); virtual void MessageReceived(BMessage* message); virtual bool QuitRequested(); private: void _InitUiControls(); static const BString _VersionText(const BString& code); static const BString _MinimumAgeText(uint8 minimumAge); static const BString _IntroductionTextForMode( UserUsageConditionsSelectionMode mode, const UserDetail& userDetail); void _DisplayData(const UserDetail& userDetail, const UserUsageConditions& userUsageConditions); void _FetchData(); void _SetWorkerThread(thread_id thread); static int32 _FetchDataThreadEntry(void* data); void _FetchDataPerform(); status_t _FetchUserUsageConditionsCodePerform( UserDetail& userDetail, BString& code); status_t _FetchUserUsageConditionsCodeForUserPerform( UserDetail& userDetail, BString& code); void _NotifyFetchProblem(); private: UserUsageConditionsSelectionMode fMode; MarkupTextView* fCopyView; Model& fModel; BStringView* fAgeNoteStringView; BStringView* fVersionStringView; TextView* fIntroductionTextView; BarberPole* fWorkerIndicator; thread_id fWorkerThread; }; #endif // USER_USAGE_CONDITIONS_WINDOW_H