/* * Copyright 2005-2006, Axel Dörfler, axeld@pinc-software.de * All rights reserved. Distributed under the terms of the MIT License. * * Copyright 2010-2012 Haiku, Inc. All rights reserved. * Distributed under the terms of the MIT License. * * Authors: * Hamish Morrison, hamish@lavabit.com * Alexander von Gluck, kallisti5@unixzen.com */ #ifndef SETTINGS_WINDOW_H #define SETTINGS_WINDOW_H #include #include #include #include #include #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 /* SETTINGS_WINDOW_H */