/* * Copyright 2014, Stephan Aßmus . * Copyright 2018-2024, Andrew Lindesay . * All rights reserved. Distributed under the terms of the MIT License. */ #ifndef RATE_PACKAGE_WINDOW_H #define RATE_PACKAGE_WINDOW_H #include #include #include #include "Model.h" #include "PackageInfo.h" #include "TextDocument.h" #include "TextEditor.h" class BButton; class BCheckBox; class BMenuField; class SetRatingView; class TextDocumentView; class RatePackageWindow : public BWindow { public: RatePackageWindow(BWindow* parent, BRect frame, Model& model); virtual ~RatePackageWindow(); virtual void DispatchMessage(BMessage* message, BHandler *handler); virtual void MessageReceived(BMessage* message); void SetPackage(const PackageInfoRef& package); private: void _InitLanguagesMenu(BPopUpMenu* menu); void _InitStabilitiesMenu(BPopUpMenu* menu); void _MarkStabilityInMenu(BString* code); void _RelayServerDataToUI(BMessage& result); void _SendRating(); void _SetWorkerThread(thread_id thread); static int32 _QueryRatingThreadEntry(void* data); void _QueryRatingThread(); static int32 _SendRatingThreadEntry(void* data); void _SendRatingThread(); void _RefreshPackageData(); private: Model& fModel; TextDocumentRef fRatingText; TextEditorRef fTextEditor; float fRating; bool fRatingDeterminate; BString fStabilityCode; BString fCommentLanguageId; BString fRatingID; bool fRatingActive; PackageInfoRef fPackage; SetRatingView* fSetRatingView; BCheckBox* fRatingDeterminateCheckBox; BMenuField* fStabilityField; BMenuField* fCommentLanguageField; TextDocumentView* fTextView; BCheckBox* fRatingActiveCheckBox; BButton* fCancelButton; BButton* fSendButton; thread_id fWorkerThread; }; #endif // RATE_PACKAGE_WINDOW_H