#ifndef SETTINGS_WINDOW_H
#define SETTINGS_WINDOW_H
#include <MenuItem.h>
#include <Slider.h>
#include <StatusBar.h>
#include <Volume.h>
#include <Window.h>
#include "Settings.h"
class BStringView;
class BCheckBox;
class BSlider;
class BButton;
class BMenuField;
class SizeSlider : public BSlider {
public:
SizeSlider(const char* name, const char* label,
BMessage* message, int32 min, int32 max,
uint32 flags);
virtual ~SizeSlider() {};
virtual const char* UpdateText() const;
private:
mutable char fText[128];
};
class VolumeMenuItem : public BMenuItem, public BHandler {
public:
VolumeMenuItem(BVolume volume, BMessage* message);
virtual ~VolumeMenuItem() {}
virtual BVolume Volume() { return fVolume; }
virtual void MessageReceived(BMessage* message);
virtual void GenerateLabel();
private:
BVolume fVolume;
};
class SettingsWindow : public BWindow {
public:
SettingsWindow();
virtual ~SettingsWindow() {};
virtual void MessageReceived(BMessage* message);
virtual bool QuitRequested();
private:
status_t _AddVolumeMenuItem(dev_t device);
status_t _RemoveVolumeMenuItem(dev_t device);
VolumeMenuItem* _FindVolumeMenuItem(dev_t device);
void _RecordChoices();
void _Update();
void _UpdateSwapInfo();
BCheckBox* fSwapEnabledCheckBox;
BCheckBox* fSwapAutomaticCheckBox;
BSlider* fSizeSlider;
BButton* fDefaultsButton;
BButton* fRevertButton;
BStringView* fWarningStringView;
BMenuField* fVolumeMenuField;
BStatusBar* fSwapUsageBar;
Settings fSettings;
bool fSetupComplete;
};
#endif