Home | History | Annotate | Download | only in gptfdisk
      1 /*
      2     Implementation of GPTData class derivative with basic text-mode interaction
      3     Copyright (C) 2010-2013 Roderick W. Smith
      4 
      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 
     26 using namespace std;
     27 
     28 class GPTDataTextUI : public GPTData {
     29    protected:
     30    public:
     31       GPTDataTextUI(void);
     32       GPTDataTextUI(string filename);
     33       ~GPTDataTextUI(void);
     34 
     35       // This one needs to be explicitly defined, even though it does nothing new....
     36 //      const GPTPart & operator[](uint32_t partNum) {return GPTData::operator[](partNum);}
     37 
     38       // 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);
     48       void ChangeUniqueGuid(void);
     49       void SetAttributes(uint32_t partNum);
     50       int SetName(uint32_t partNum);
     51       int SwapPartitions(void);
     52       int DestroyGPTwPrompt(void); // Returns 1 if user proceeds
     53       void ShowDetails(void);
     54       void MakeHybrid(void);
     55       int XFormToMBR(void); // convert GPT to MBR, wiping GPT afterwards. Returns 1 if successful
     56 
     57       // An informational function....
     58       void WarnAboutIffyMBRPart(int partNum);
     59 
     60       // 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);
     67 }; // class GPTDataTextUI
     68 
     69 int GetMBRTypeCode(int defType);
     70 UnicodeString ReadUString(void);
     71 
     72 #endif // __GPTDATATEXT_H
     73