1 /* 2 * Copyright 2014, Stephan Aßmus <superstippi@gmx.de>. 3 * All rights reserved. Distributed under the terms of the MIT License. 4 */ 5 #ifndef SCREENSHOT_WINDOW_H 6 #define SCREENSHOT_WINDOW_H 7 8 #include <Locker.h> 9 #include <Messenger.h> 10 #include <Window.h> 11 12 #include "PackageInfo.h" 13 14 15 class BitmapView; 16 17 18 class ScreenshotWindow : public BWindow { 19 public: 20 ScreenshotWindow(BWindow* parent, BRect frame); 21 virtual ~ScreenshotWindow(); 22 23 virtual bool QuitRequested(); 24 25 virtual void MessageReceived(BMessage* message); 26 27 void SetOnCloseMessage( 28 const BMessenger& messenger, 29 const BMessage& message); 30 31 void SetPackage(const PackageInfoRef& package); 32 33 private: 34 void _DownloadScreenshot(); 35 36 void _SetWorkerThread(thread_id thread); 37 38 static int32 _DownloadThreadEntry(void* data); 39 void _DownloadThread(); 40 41 void _ResizeToFitAndCenter(); 42 43 private: 44 BMessenger fOnCloseTarget; 45 BMessage fOnCloseMessage; 46 47 BitmapRef fScreenshot; 48 BitmapView* fScreenshotView; 49 50 PackageInfoRef fPackage; 51 bool fDownloadPending; 52 53 BLocker fLock; 54 thread_id fWorkerThread; 55 }; 56 57 58 #endif // SCREENSHOT_WINDOW_H 59