xref: /haiku/src/apps/webpositive/DownloadWindow.h (revision b4c8efacea6265d17537b6b5fe007c21ea9d9dd1)
175ffc858Sstippi /*
275ffc858Sstippi  * Copyright (C) 2010 Stephan Aßmus <superstippi@gmx.de>
375ffc858Sstippi  *
4*b4c8efacSStephan Aßmus  * All rights reserved. Distributed under the terms of the MIT License.
575ffc858Sstippi  */
69ccfda9cSstippi #ifndef DOWNLOAD_WINDOW_H
79ccfda9cSstippi #define DOWNLOAD_WINDOW_H
875ffc858Sstippi 
975ffc858Sstippi 
10636f175bSstippi #include <String.h>
1175ffc858Sstippi #include <Window.h>
1275ffc858Sstippi 
13dd275f31Sstippi class BButton;
14a8d8342dSstippi class BFile;
15dd275f31Sstippi class BGroupLayout;
1698b056e1Sstippi class BScrollView;
17c516096eSstippi class BWebDownload;
18636f175bSstippi class SettingsMessage;
194b059d47Sstippi 
209ccfda9cSstippi 
2175ffc858Sstippi class DownloadWindow : public BWindow {
2275ffc858Sstippi public:
23636f175bSstippi 								DownloadWindow(BRect frame, bool visible,
24636f175bSstippi 									SettingsMessage* settings);
2575ffc858Sstippi 	virtual						~DownloadWindow();
2675ffc858Sstippi 
27e07fc6b7Sstippi 	virtual	void				DispatchMessage(BMessage* message,
28e07fc6b7Sstippi 									BHandler* target);
299ccfda9cSstippi 	virtual	void				MessageReceived(BMessage* message);
3075ffc858Sstippi 	virtual	bool				QuitRequested();
3175ffc858Sstippi 
32fb03e2c5Sstippi 			bool				DownloadsInProgress();
33fb03e2c5Sstippi 			void				SetMinimizeOnClose(bool minimize);
34fb03e2c5Sstippi 
35dd275f31Sstippi private:
369ccfda9cSstippi 			void				_DownloadStarted(BWebDownload* download);
379ccfda9cSstippi 			void				_DownloadFinished(BWebDownload* download);
389ccfda9cSstippi 			void				_RemoveFinishedDownloads();
39f28abe9dSstippi 			void				_RemoveMissingDownloads();
40c5d7a6c9Sstippi 			void				_ValidateButtonStatus();
419ccfda9cSstippi 			void				_SaveSettings();
429ccfda9cSstippi 			void				_LoadSettings();
439ccfda9cSstippi 			bool				_OpenSettingsFile(BFile& file, uint32 mode);
444b059d47Sstippi 
4575ffc858Sstippi private:
4698b056e1Sstippi 			BScrollView*		fDownloadsScrollView;
479ccfda9cSstippi 			BGroupLayout*		fDownloadViewsLayout;
489ccfda9cSstippi 			BButton*			fRemoveFinishedButton;
49f28abe9dSstippi 			BButton*			fRemoveMissingButton;
50636f175bSstippi 			BString				fDownloadPath;
51fb03e2c5Sstippi 			bool				fMinimizeOnClose;
5275ffc858Sstippi };
5375ffc858Sstippi 
549ccfda9cSstippi #endif // DOWNLOAD_WINDOW_H
55