xref: /haiku/src/apps/drivesetup/Support.h (revision 42ea87d59b6529411e0dc4a0683c3d055a927367)
1ec103c3cSStephan Aßmus /*
2ec103c3cSStephan Aßmus  * Copyright 2002-2007 Haiku Inc. All rights reserved.
3ec103c3cSStephan Aßmus  * Distributed under the terms of the MIT license.
4ec103c3cSStephan Aßmus  */
5ec103c3cSStephan Aßmus #ifndef SUPPORT_H
6ec103c3cSStephan Aßmus #define SUPPORT_H
7ec103c3cSStephan Aßmus 
8ec103c3cSStephan Aßmus 
9967d7204SStephan Aßmus #include <DiskDeviceDefs.h>
10967d7204SStephan Aßmus #include <HashMap.h>
11967d7204SStephan Aßmus #include <HashString.h>
12dc59ebe7SIngo Weinhold #include <Slider.h>
13dc59ebe7SIngo Weinhold #include <String.h>
1448d79657SStephan Aßmus #include "StringForSize.h"
15ec103c3cSStephan Aßmus 
16ec103c3cSStephan Aßmus 
17ec103c3cSStephan Aßmus class BPartition;
18ec103c3cSStephan Aßmus 
19ec103c3cSStephan Aßmus 
20ec103c3cSStephan Aßmus void dump_partition_info(const BPartition* partition);
21ec103c3cSStephan Aßmus 
22967d7204SStephan Aßmus bool is_valid_partitionable_space(size_t size);
23967d7204SStephan Aßmus 
24dc59ebe7SIngo Weinhold enum {
25dc59ebe7SIngo Weinhold 	GO_CANCELED	= 0,
26dc59ebe7SIngo Weinhold 	GO_SUCCESS
27dc59ebe7SIngo Weinhold };
28967d7204SStephan Aßmus 
2929aec87eSIngo Weinhold 
30eff35b90SIngo Weinhold static const uint32 kMegaByte = 0x100000;
3129aec87eSIngo Weinhold 
32967d7204SStephan Aßmus class SpaceIDMap : public HashMap<HashString, partition_id> {
33967d7204SStephan Aßmus public:
34967d7204SStephan Aßmus 								SpaceIDMap();
35967d7204SStephan Aßmus 	virtual						~SpaceIDMap();
36967d7204SStephan Aßmus 
37967d7204SStephan Aßmus 			partition_id		SpaceIDFor(partition_id parentID,
38967d7204SStephan Aßmus 									off_t spaceOffset);
39967d7204SStephan Aßmus 
40967d7204SStephan Aßmus private:
41967d7204SStephan Aßmus 			partition_id		fNextSpaceID;
42967d7204SStephan Aßmus };
43967d7204SStephan Aßmus 
44dc59ebe7SIngo Weinhold class SizeSlider : public BSlider {
45dc59ebe7SIngo Weinhold public:
46dc59ebe7SIngo Weinhold 								SizeSlider(const char* name, const char* label,
47dc59ebe7SIngo Weinhold         							BMessage* message, int32 minValue,
48dc59ebe7SIngo Weinhold         							int32 maxValue);
49dc59ebe7SIngo Weinhold 	virtual						~SizeSlider();
50dc59ebe7SIngo Weinhold 
51dc59ebe7SIngo Weinhold 	virtual const char*			UpdateText() const;
52eff35b90SIngo Weinhold 			int32				Size();
53eff35b90SIngo Weinhold 			int32				Offset();
54*42ea87d5SStephan Aßmus 			int32				MaxPartitionSize();
55dc59ebe7SIngo Weinhold 
56dc59ebe7SIngo Weinhold private:
57eff35b90SIngo Weinhold 			off_t				fStartOffset;
58eff35b90SIngo Weinhold 			off_t				fEndOffset;
59*42ea87d5SStephan Aßmus 			off_t				fMaxPartitionSize;
607d24c647SStephan Aßmus 	mutable	char				fStatusLabel[64];
61dc59ebe7SIngo Weinhold };
62ec103c3cSStephan Aßmus 
63ec103c3cSStephan Aßmus #endif // SUPPORT_H
64