blob: 385fa276e56a2a11dfc5fbbed3f92a195f501c12 [file] [log] [blame]
srs5694fad06422010-02-19 17:19:17 -05001/*
srs5694a17fe692011-09-10 20:30:20 -04002 Implementation of GPTData class derivative with basic text-mode interaction
Roderick W. Smithe3ee7332013-09-24 12:56:11 -04003 Copyright (C) 2010-2013 Roderick W. Smith
srs5694fad06422010-02-19 17:19:17 -05004
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License along
16 with this program; if not, write to the Free Software Foundation, Inc.,
17 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
19*/
20
21#ifndef __GPTDATATEXT_H
22#define __GPTDATATEXT_H
23
24#include "gpt.h"
25
26using namespace std;
27
28class GPTDataTextUI : public GPTData {
29 protected:
30 public:
31 GPTDataTextUI(void);
32 GPTDataTextUI(string filename);
33 ~GPTDataTextUI(void);
34
srs56945a081752010-09-24 20:39:41 -040035 // This one needs to be explicitly defined, even though it does nothing new....
srs5694a17fe692011-09-10 20:30:20 -040036// const GPTPart & operator[](uint32_t partNum) {return GPTData::operator[](partNum);}
srs56945a081752010-09-24 20:39:41 -040037
srs5694fad06422010-02-19 17:19:17 -050038 // Extended (interactive) versions of some base-class functions
39 WhichToUse UseWhichPartitions(void);
40 int XFormDisklabel(void);
41
42 // Request information from the user (& possibly do something with it)
43 uint32_t GetPartNum(void);
44 void ResizePartitionTable(void);
45 void CreatePartition(void);
46 void DeletePartition(void);
47 void ChangePartType(void);
srs5694815fb652011-03-18 12:35:56 -040048 void ChangeUniqueGuid(void);
srs5694fad06422010-02-19 17:19:17 -050049 void SetAttributes(uint32_t partNum);
srs5694699941e2011-03-21 21:33:57 -040050 int SetName(uint32_t partNum);
srs5694fad06422010-02-19 17:19:17 -050051 int SwapPartitions(void);
52 int DestroyGPTwPrompt(void); // Returns 1 if user proceeds
53 void ShowDetails(void);
54 void MakeHybrid(void);
srs5694fad06422010-02-19 17:19:17 -050055 int XFormToMBR(void); // convert GPT to MBR, wiping GPT afterwards. Returns 1 if successful
srs5694a17fe692011-09-10 20:30:20 -040056
Roderick W. Smitha345a922014-02-22 12:12:32 -050057 // An informational function....
58 void WarnAboutIffyMBRPart(int partNum);
59
srs5694a17fe692011-09-10 20:30:20 -040060 // Main menu functions
61 void MainMenu(string filename);
62 void ShowCommands(void);
63 void ExpertsMenu(string filename);
64 void ShowExpertCommands(void);
65 void RecoveryMenu(string filename);
66 void ShowRecoveryCommands(void);
srs5694fad06422010-02-19 17:19:17 -050067}; // class GPTDataTextUI
68
69int GetMBRTypeCode(int defType);
srs5694699941e2011-03-21 21:33:57 -040070UnicodeString ReadUString(void);
srs5694fad06422010-02-19 17:19:17 -050071
72#endif // __GPTDATATEXT_H