xref: /haiku/src/apps/webpositive/DownloadWindow.h (revision 7f7f3618ddf2e5561dd0450fb949b245a8a2469a)
175ffc858Sstippi /*
275ffc858Sstippi  * Copyright (C) 2010 Stephan Aßmus <superstippi@gmx.de>
375ffc858Sstippi  *
4b4c8efacSStephan 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);
29*7f7f3618SJessica Hamilton 	virtual void				FrameResized(float newWidth, float newHeight);
309ccfda9cSstippi 	virtual	void				MessageReceived(BMessage* message);
3175ffc858Sstippi 	virtual	bool				QuitRequested();
3275ffc858Sstippi 
33fb03e2c5Sstippi 			bool				DownloadsInProgress();
34fb03e2c5Sstippi 			void				SetMinimizeOnClose(bool minimize);
35fb03e2c5Sstippi 
36dd275f31Sstippi private:
379ccfda9cSstippi 			void				_DownloadStarted(BWebDownload* download);
389ccfda9cSstippi 			void				_DownloadFinished(BWebDownload* download);
399ccfda9cSstippi 			void				_RemoveFinishedDownloads();
40f28abe9dSstippi 			void				_RemoveMissingDownloads();
41c5d7a6c9Sstippi 			void				_ValidateButtonStatus();
429ccfda9cSstippi 			void				_SaveSettings();
439ccfda9cSstippi 			void				_LoadSettings();
449ccfda9cSstippi 			bool				_OpenSettingsFile(BFile& file, uint32 mode);
454b059d47Sstippi 
4675ffc858Sstippi private:
4798b056e1Sstippi 			BScrollView*		fDownloadsScrollView;
489ccfda9cSstippi 			BGroupLayout*		fDownloadViewsLayout;
499ccfda9cSstippi 			BButton*			fRemoveFinishedButton;
50f28abe9dSstippi 			BButton*			fRemoveMissingButton;
51636f175bSstippi 			BString				fDownloadPath;
52fb03e2c5Sstippi 			bool				fMinimizeOnClose;
5375ffc858Sstippi };
5475ffc858Sstippi 
559ccfda9cSstippi #endif // DOWNLOAD_WINDOW_H
56