1*57696d54SAkhilesh Sanikop /* 2*57696d54SAkhilesh Sanikop Implementation of GPTData class derivative with basic text-mode interaction 3*57696d54SAkhilesh Sanikop Copyright (C) 2010-2022 Roderick W. Smith 4*57696d54SAkhilesh Sanikop 5*57696d54SAkhilesh Sanikop This program is free software; you can redistribute it and/or modify 6*57696d54SAkhilesh Sanikop it under the terms of the GNU General Public License as published by 7*57696d54SAkhilesh Sanikop the Free Software Foundation; either version 2 of the License, or 8*57696d54SAkhilesh Sanikop (at your option) any later version. 9*57696d54SAkhilesh Sanikop 10*57696d54SAkhilesh Sanikop This program is distributed in the hope that it will be useful, 11*57696d54SAkhilesh Sanikop but WITHOUT ANY WARRANTY; without even the implied warranty of 12*57696d54SAkhilesh Sanikop MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13*57696d54SAkhilesh Sanikop GNU General Public License for more details. 14*57696d54SAkhilesh Sanikop 15*57696d54SAkhilesh Sanikop You should have received a copy of the GNU General Public License along 16*57696d54SAkhilesh Sanikop with this program; if not, write to the Free Software Foundation, Inc., 17*57696d54SAkhilesh Sanikop 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18*57696d54SAkhilesh Sanikop 19*57696d54SAkhilesh Sanikop */ 20*57696d54SAkhilesh Sanikop 21*57696d54SAkhilesh Sanikop #ifndef __GPTDATATEXT_H 22*57696d54SAkhilesh Sanikop #define __GPTDATATEXT_H 23*57696d54SAkhilesh Sanikop 24*57696d54SAkhilesh Sanikop #include "gpt.h" 25*57696d54SAkhilesh Sanikop 26*57696d54SAkhilesh Sanikop class GPTDataTextUI : public GPTData { 27*57696d54SAkhilesh Sanikop protected: 28*57696d54SAkhilesh Sanikop public: 29*57696d54SAkhilesh Sanikop GPTDataTextUI(void); 30*57696d54SAkhilesh Sanikop GPTDataTextUI(std::string filename); 31*57696d54SAkhilesh Sanikop ~GPTDataTextUI(void); 32*57696d54SAkhilesh Sanikop 33*57696d54SAkhilesh Sanikop // This one needs to be explicitly defined, even though it does nothing new.... 34*57696d54SAkhilesh Sanikop // const GPTPart & operator[](uint32_t partNum) {return GPTData::operator[](partNum);} 35*57696d54SAkhilesh Sanikop 36*57696d54SAkhilesh Sanikop // Extended (interactive) versions of some base-class functions 37*57696d54SAkhilesh Sanikop WhichToUse UseWhichPartitions(void); 38*57696d54SAkhilesh Sanikop int XFormDisklabel(void); 39*57696d54SAkhilesh Sanikop 40*57696d54SAkhilesh Sanikop // Request information from the user (& possibly do something with it) 41*57696d54SAkhilesh Sanikop uint32_t GetPartNum(void); 42*57696d54SAkhilesh Sanikop void ResizePartitionTable(void); 43*57696d54SAkhilesh Sanikop void MoveMainTable(void); 44*57696d54SAkhilesh Sanikop void CreatePartition(void); 45*57696d54SAkhilesh Sanikop void DeletePartition(void); 46*57696d54SAkhilesh Sanikop void ChangePartType(void); 47*57696d54SAkhilesh Sanikop void ChangeUniqueGuid(void); 48*57696d54SAkhilesh Sanikop void SetAttributes(uint32_t partNum); 49*57696d54SAkhilesh Sanikop int SetName(uint32_t partNum); 50*57696d54SAkhilesh Sanikop void ReverseName(uint32_t partNum); 51*57696d54SAkhilesh Sanikop int SwapPartitions(void); 52*57696d54SAkhilesh Sanikop int DestroyGPTwPrompt(void); // Returns 1 if user proceeds 53*57696d54SAkhilesh Sanikop void ShowDetails(void); 54*57696d54SAkhilesh Sanikop void MakeHybrid(void); 55*57696d54SAkhilesh Sanikop int XFormToMBR(void); // convert GPT to MBR, wiping GPT afterwards. Returns 1 if successful 56*57696d54SAkhilesh Sanikop uint64_t GetSectorNum(uint64_t low, uint64_t high, uint64_t def, const std::string & prompt); 57*57696d54SAkhilesh Sanikop 58*57696d54SAkhilesh Sanikop // An informational function.... 59*57696d54SAkhilesh Sanikop void WarnAboutIffyMBRPart(int partNum); 60*57696d54SAkhilesh Sanikop 61*57696d54SAkhilesh Sanikop // Main menu functions 62*57696d54SAkhilesh Sanikop void MainMenu(std::string filename); 63*57696d54SAkhilesh Sanikop void ShowCommands(void); 64*57696d54SAkhilesh Sanikop void ExpertsMenu(std::string filename); 65*57696d54SAkhilesh Sanikop void ShowExpertCommands(void); 66*57696d54SAkhilesh Sanikop void RecoveryMenu(std::string filename); 67*57696d54SAkhilesh Sanikop void ShowRecoveryCommands(void); 68*57696d54SAkhilesh Sanikop }; // class GPTDataTextUI 69*57696d54SAkhilesh Sanikop 70*57696d54SAkhilesh Sanikop int GetMBRTypeCode(int defType); 71*57696d54SAkhilesh Sanikop UnicodeString ReadUString(void); 72*57696d54SAkhilesh Sanikop 73*57696d54SAkhilesh Sanikop #endif // __GPTDATATEXT_H 74