haiku/src/apps/webpositive/DownloadWindow.h

56 lines
1.4 KiB
C++

/*
* Copyright (C) 2010 Stephan Aßmus <superstippi@gmx.de>
*
* All rights reserved. Distributed under the terms of the MIT License.
*/
#ifndef DOWNLOAD_WINDOW_H
#define DOWNLOAD_WINDOW_H
#include <String.h>
#include <Window.h>
class BButton;
class BFile;
class BGroupLayout;
class BScrollView;
class BWebDownload;
class SettingsMessage;
class DownloadWindow : public BWindow {
public:
DownloadWindow(BRect frame, bool visible,
SettingsMessage* settings);
virtual ~DownloadWindow();
virtual void DispatchMessage(BMessage* message,
BHandler* target);
virtual void FrameResized(float newWidth, float newHeight);
virtual void MessageReceived(BMessage* message);
virtual bool QuitRequested();
bool DownloadsInProgress();
void SetMinimizeOnClose(bool minimize);
private:
void _DownloadStarted(BWebDownload* download);
void _DownloadFinished(BWebDownload* download);
void _RemoveFinishedDownloads();
void _RemoveMissingDownloads();
void _ValidateButtonStatus();
void _SaveSettings();
void _LoadSettings();
bool _OpenSettingsFile(BFile& file, uint32 mode);
private:
BScrollView* fDownloadsScrollView;
BGroupLayout* fDownloadViewsLayout;
BButton* fRemoveFinishedButton;
BButton* fRemoveMissingButton;
BString fDownloadPath;
bool fMinimizeOnClose;
};
#endif // DOWNLOAD_WINDOW_H