| /* |
| Implementation of GPTData class derivative with basic text-mode interaction |
| Copyright (C) 2010-2022 Roderick W. Smith |
| |
| This program is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 2 of the License, or |
| (at your option) any later version. |
| |
| This program is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License along |
| with this program; if not, write to the Free Software Foundation, Inc., |
| 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
| |
| */ |
| |
| #ifndef __GPTDATATEXT_H |
| #define __GPTDATATEXT_H |
| |
| #include "gpt.h" |
| |
| class GPTDataTextUI : public GPTData { |
| protected: |
| public: |
| GPTDataTextUI(void); |
| GPTDataTextUI(std::string filename); |
| ~GPTDataTextUI(void); |
| |
| // This one needs to be explicitly defined, even though it does nothing new.... |
| // const GPTPart & operator[](uint32_t partNum) {return GPTData::operator[](partNum);} |
| |
| // Extended (interactive) versions of some base-class functions |
| WhichToUse UseWhichPartitions(void); |
| int XFormDisklabel(void); |
| |
| // Request information from the user (& possibly do something with it) |
| uint32_t GetPartNum(void); |
| void ResizePartitionTable(void); |
| void MoveMainTable(void); |
| void CreatePartition(void); |
| void DeletePartition(void); |
| void ChangePartType(void); |
| void ChangeUniqueGuid(void); |
| void SetAttributes(uint32_t partNum); |
| int SetName(uint32_t partNum); |
| void ReverseName(uint32_t partNum); |
| int SwapPartitions(void); |
| int DestroyGPTwPrompt(void); // Returns 1 if user proceeds |
| void ShowDetails(void); |
| void MakeHybrid(void); |
| int XFormToMBR(void); // convert GPT to MBR, wiping GPT afterwards. Returns 1 if successful |
| uint64_t GetSectorNum(uint64_t low, uint64_t high, uint64_t def, const std::string & prompt); |
| |
| // An informational function.... |
| void WarnAboutIffyMBRPart(int partNum); |
| |
| // Main menu functions |
| void MainMenu(std::string filename); |
| void ShowCommands(void); |
| void ExpertsMenu(std::string filename); |
| void ShowExpertCommands(void); |
| void RecoveryMenu(std::string filename); |
| void ShowRecoveryCommands(void); |
| }; // class GPTDataTextUI |
| |
| int GetMBRTypeCode(int defType); |
| UnicodeString ReadUString(void); |
| |
| #endif // __GPTDATATEXT_H |