1/* 2 * Copyright 2002-2013 Haiku, Inc. All rights reserved. 3 * Distributed under the terms of the MIT license. 4 */ 5#ifndef SUPPORT_H 6#define SUPPORT_H 7 8 9#include <DiskDeviceDefs.h> 10#include <HashMap.h> 11#include <HashString.h> 12#include <Slider.h> 13#include <String.h> 14#include "StringForSize.h" 15 16 17class BPartition; 18 19 20void dump_partition_info(const BPartition* partition); 21 22bool is_valid_partitionable_space(size_t size); 23 24 25class SpaceIDMap : public HashMap<HashString, partition_id> { 26public: 27 SpaceIDMap(); 28 virtual ~SpaceIDMap(); 29 30 partition_id SpaceIDFor(partition_id parentID, 31 off_t spaceOffset); 32 33private: 34 partition_id fNextSpaceID; 35}; 36 37 38class SizeSlider : public BSlider { 39public: 40 SizeSlider(const char* name, const char* label, 41 BMessage* message, off_t offset, 42 off_t size, uint32 minGranularity); 43 virtual ~SizeSlider(); 44 45 virtual void SetValue(int32 value); 46 virtual const char* UpdateText() const; 47 48 off_t Size() const; 49 void SetSize(off_t size); 50 51 off_t Offset() const; 52 off_t MaxPartitionSize() const; 53 54private: 55 off_t fStartOffset; 56 off_t fEndOffset; 57 off_t fSize; 58 off_t fMaxPartitionSize; 59 uint32 fGranularity; 60 mutable char fStatusLabel[64]; 61}; 62 63 64#endif // SUPPORT_H 65