text: // generated by Fast Light User Interface Designer (fluid) version 1.0302
  
  #ifndef ui_main_h
  #define ui_main_h
  #include <FL/Fl.H>
  #include <FL/Fl_Native_File_Chooser.H>
  #include <FL/Fl_Menu_Button.H>
  #include <FL/fl_ask.H>
  #include <FL/Fl_Select_Browser.H>
  #include <fstream>
  #include "InterfaceCCAPI.h"
  #include "rkWindow.h"
  #include "RangeTable.h"
  #include "ResultTable.h"
  #include "CodeTable.h"
  #include "ValueInput.h"
  #include "IPInput.h"
  #include "SearchOperationChoice.h"
  #include "ValueTypeChoice.h"
  #include "Common.h"
  #include "ValueViewerWindow.h"
  #include "ValueViewerTable.h"
  #include "InfoWindow.h"
  #include "PointerScannerWindow.h"
  #include "PointerScannerTable.h"
  #include "AddressOffsetGroup.h"
  #include "PointerEditorWindow.h"
  #include "TrainerMakerWindow.h"
  #include "TrainerItemWindow.h"
  #include "TrainerItemCodeTable.h"
  #define RANGE_SAVE 0
  #define RANGE_LOAD 1
  #define RANGE_CLEAR 2
  #define RANGE_FIND 3
  #define RANGE_CANCEL 4
  #define RANGE_DELETE 5
  class InterfaceCCAPI;
  #include <FL/Fl_Group.H>
  #include <FL/Fl_Choice.H>
  #include <FL/Fl_Button.H>
  #include <FL/Fl_Check_Button.H>
  #include <FL/Fl_Box.H>
  #include <FL/Fl_Progress.H>
  #include <FL/Fl_Light_Button.H>
  #include <FL/Fl_Spinner.H>
  #include <FL/Fl_Input.H>
  #include <FL/Fl_Text_Editor.H>
  
  class rkCheatUI {
  public:
    static void RangeButtonCB(Fl_Widget *w, void *data);
    static void SearchTypeChangeCB(Fl_Widget *w, void *data);
    static void SearchValueChangeCB(Fl_Widget *w, void *data);
    static void SetHexCB(Fl_Widget *w, void *data);
    static void SetValueTypeCB(Fl_Widget *w, void *data);
    static void StartSearchButtonCB(Fl_Widget *w, void *data);
    static void ContinueSearchCB(Fl_Widget *w, void *data);
    static void RangeInputCB(Fl_Widget *w, void *data);
    static void RangeTableCB(Fl_Widget *w, void *data);
    static void ResultTableButtonCB(Fl_Widget *w, void *data);
    static void CodeTableButtonCB(Fl_Widget *w, void *data);
    static void ConnectButtonCB(Fl_Widget *w, void *data);
    static void CanConnectCB(Fl_Widget *w, void *data);
    static void ViewerCB(Fl_Widget *w, void *data);
    rkCheatUI();
    rkWindow *mainWindow;
    Fl_Group *searchGroup;
    SearchOperationChoice *ui_searchType;
    Fl_Choice *ui_valueType;
    static Fl_Menu_Item menu_ui_valueType[];
    Fl_Button *ui_buttonNewScan;
    Fl_Button *ui_buttonNextScan;
    Fl_Group *ui_valueInputGroup;
    ValueInput *ui_valueInput;
    Fl_Check_Button *ui_isHex;
    Fl_Group *ui_resultGroup;
    ResultTable *ui_resultTable;
    Fl_Box *ui_numOfResults;
    Fl_Group *ui_resultBtnGroup;
    Fl_Button *ui_ButtonAddResult;
    Fl_Button *ui_ButtonDeleteResult;
    Fl_Button *ui_ButtonRefreshResult;
    Fl_Group *ui_rangeGroup;
    RangeTable *ui_rangeTable;
    Fl_Button *ui_buttonFindRanges;
    Fl_Button *ui_buttonSaveRanges;
    Fl_Button *ui_buttonLoadRanges;
    Fl_Button *ui_buttonClearRanges;
    Fl_Group *ui_addRangeGrp;
    ValueInput *ui_addRangeInput_Start;
    ValueInput *ui_addRangeInput_End;
    Fl_Button *ui_addRangeButton;
    Fl_Button *ui_buttonDeleteRange;
    Fl_Group *ui_statusbar;
    Fl_Progress *ui_opProgress;
    Fl_Box *ui_opStatus;
    Fl_Group *ui_codeGroup;
    CodeTable *ui_codeTable;
    Fl_Button *ui_ButtonNewCode;
    Fl_Button *ui_ButtonDeleteCode;
    Fl_Button *ui_ButtonSaveCodes;
    Fl_Button *ui_ButtonLoadCodes;
    Fl_Button *ui_ButtonCreateTrainer;
    Fl_Light_Button *ui_connectButton;
    IPInput *ui_ipInput;
    Fl_Box *ui_versionText;
    Fl_Button *ui_infoButton;
  private:
    inline void cb_ui_infoButton_i(Fl_Button*, void*);
    static void cb_ui_infoButton(Fl_Button*, void*);
  public:
    Fl_Choice *ui_ccapiChoice;
    static Fl_Menu_Item menu_ui_ccapiChoice[];
    static Fl_Menu_Item *ui_ccapiVersion25Item;
    static Fl_Menu_Item *ui_ccapiVersion20Item;
    ValueViewerWindow *m_valueviewer;
    ValueViewerTable *m_valueTable;
    Fl_Choice *m_viewerTypeChoice;
  private:
    inline void cb_m_viewerTypeChoice_i(Fl_Choice*, void*);
    static void cb_m_viewerTypeChoice(Fl_Choice*, void*);
  public:
    Fl_Check_Button *m_viewerSignedButton;
  private:
    inline void cb_m_viewerSignedButton_i(Fl_Check_Button*, void*);
    static void cb_m_viewerSignedButton(Fl_Check_Button*, void*);
  public:
    Fl_Button *m_valueAddCodeButton;
  private:
    inline void cb_m_valueAddCodeButton_i(Fl_Button*, void*);
    static void cb_m_valueAddCodeButton(Fl_Button*, void*);
  public:
    InfoWindow *m_infoWindow;
    PointerScannerWindow *m_pointerScannerWindow;
    Fl_Group *m_psLoadNewGroup;
    Fl_Button *m_psNewScanButton;
  private:
    inline void cb_m_psNewScanButton_i(Fl_Button*, void*);
    static void cb_m_psNewScanButton(Fl_Button*, void*);
  public:
    Fl_Button *m_psLoadScan;
  private:
    inline void cb_m_psLoadScan_i(Fl_Button*, void*);
    static void cb_m_psLoadScan(Fl_Button*, void*);
  public:
    Fl_Button *m_psCancelScan;
  private:
    inline void cb_m_psCancelScan_i(Fl_Button*, void*);
    static void cb_m_psCancelScan(Fl_Button*, void*);
  public:
    Fl_Group *m_psNewGroup;
    ValueInput *m_psNewAddress;
  private:
    inline void cb_m_psNewAddress_i(ValueInput*, void*);
    static void cb_m_psNewAddress(ValueInput*, void*);
  public:
    ValueInput *m_psOffset;
    Fl_Spinner *m_psNewDepthSpinner;
    Fl_Button *m_psNewStartButton;
  private:
    inline void cb_m_psNewStartButton_i(Fl_Button*, void*);
    static void cb_m_psNewStartButton(Fl_Button*, void*);
  public:
    PointerScannerTable *m_psNewScanTable;
    Fl_Progress *m_psNewDumpProgress;
    Fl_Group *m_psScanStateLabelGroup;
    Fl_Box *m_psScanningLabel;
    Fl_Box *m_psScanningNumberLabel;
    Fl_Box *m_psScanningResultsLabel;
    Fl_Button *m_psNewCancelButton;
  private:
    inline void cb_m_psNewCancelButton_i(Fl_Button*, void*);
    static void cb_m_psNewCancelButton(Fl_Button*, void*);
  public:
    Fl_Button *m_psAddPointerButton;
  private:
    inline void cb_m_psAddPointerButton_i(Fl_Button*, void*);
    static void cb_m_psAddPointerButton(Fl_Button*, void*);
  public:
    PointerEditorWindow *m_peWindow;
    AddressOffsetGroup *m_peAddressSet0;
    AddressOffsetGroup *m_peAddressSet1;
    AddressOffsetGroup *m_peAddressSet2;
    AddressOffsetGroup *m_peAddressSet3;
    AddressOffsetGroup *m_peAddressSet4;
    ValueInput *m_peResolvedAddress;
    ValueTypeChoice *m_peValueType;
  private:
    inline void cb_m_peValueType_i(ValueTypeChoice*, void*);
    static void cb_m_peValueType(ValueTypeChoice*, void*);
  public:
    Fl_Button *m_peRefreshButton;
  private:
    inline void cb_m_peRefreshButton_i(Fl_Button*, void*);
    static void cb_m_peRefreshButton(Fl_Button*, void*);
  public:
    Fl_Button *m_peOKButton;
  private:
    inline void cb_m_peOKButton_i(Fl_Button*, void*);
    static void cb_m_peOKButton(Fl_Button*, void*);
  public:
    Fl_Button *m_peCancelButton;
  private:
    inline void cb_m_peCancelButton_i(Fl_Button*, void*);
    static void cb_m_peCancelButton(Fl_Button*, void*);
  public:
    Fl_Button *m_peAddPointerButton;
  private:
    inline void cb_m_peAddPointerButton_i(Fl_Button*, void*);
    static void cb_m_peAddPointerButton(Fl_Button*, void*);
  public:
    Fl_Button *m_peDeletePointerButton;
  private:
    inline void cb_m_peDeletePointerButton_i(Fl_Button*, void*);
    static void cb_m_peDeletePointerButton(Fl_Button*, void*);
  public:
    ValueInput *m_peResolvedValue;
    TrainerMakerWindow *m_trainerMakerWindow;
    Fl_Input *m_tcTrainerTitle;
  private:
    inline void cb_m_tcTrainerTitle_i(Fl_Input*, void*);
    static void cb_m_tcTrainerTitle(Fl_Input*, void*);
  public:
    Fl_Input *m_tcAuthorName;
  private:
    inline void cb_m_tcAuthorName_i(Fl_Input*, void*);
    static void cb_m_tcAuthorName(Fl_Input*, void*);
  public:
    Fl_Input *m_tcGameTitle;
  private:
    inline void cb_m_tcGameTitle_i(Fl_Input*, void*);
    static void cb_m_tcGameTitle(Fl_Input*, void*);
  public:
    Fl_Input *m_tcGameRegion;
  private:
    inline void cb_m_tcGameRegion_i(Fl_Input*, void*);
    static void cb_m_tcGameRegion(Fl_Input*, void*);
  public:
    Fl_Text_Editor *m_tcInformation;
    Fl_Button *m_tcCreateButton;
  private:
    inline void cb_m_tcCreateButton_i(Fl_Button*, void*);
    static void cb_m_tcCreateButton(Fl_Button*, void*);
  public:
    Fl_Button *m_tcCancelButton;
  private:
    inline void cb_m_tcCancelButton_i(Fl_Button*, void*);
    static void cb_m_tcCancelButton(Fl_Button*, void*);
  public:
    Fl_Group *m_tcCodeGroup;
    Fl_Select_Browser *m_tcCodeBrowser;
  private:
    inline void cb_m_tcCodeBrowser_i(Fl_Select_Browser*, void*);
    static void cb_m_tcCodeBrowser(Fl_Select_Browser*, void*);
  public:
    Fl_Button *m_tcNewCodeButton;
  private:
    inline void cb_m_tcNewCodeButton_i(Fl_Button*, void*);
    static void cb_m_tcNewCodeButton(Fl_Button*, void*);
  public:
    Fl_Button *m_tcEditCodeButton;
  private:
    inline void cb_m_tcEditCodeButton_i(Fl_Button*, void*);
    static void cb_m_tcEditCodeButton(Fl_Button*, void*);
  public:
    TrainerItemWindow *m_trainerItem;
    Fl_Input *m_tciCodeName;
  private:
    inline void cb_m_tciCodeName_i(Fl_Input*, void*);
    static void cb_m_tciCodeName(Fl_Input*, void*);
  public:
    Fl_Check_Button *m_tciConditionalCheck;
  private:
    inline void cb_m_tciConditionalCheck_i(Fl_Check_Button*, void*);
    static void cb_m_tciConditionalCheck(Fl_Check_Button*, void*);
  public:
    Fl_Group *m_tciConditionGroup;
    Fl_Choice *m_tciConditionalOperator;
    static Fl_Menu_Item menu_m_tciConditionalOperator[];
    ValueInput *m_tciConditionalValue;
    Fl_Choice *m_tciConditionalCode;
  private:
    inline void cb_m_tciConditionalCode_i(Fl_Choice*, void*);
    static void cb_m_tciConditionalCode(Fl_Choice*, void*);
    static Fl_Menu_Item menu_m_tciConditionalCode[];
  public:
    static Fl_Menu_Item *m_tciDefaultMenuItem;
    TrainerItemCodeTable *m_tciCodeTable;
    Fl_Button *m_tciAddCodeButton;
  private:
    inline void cb_m_tciAddCodeButton_i(Fl_Button*, void*);
    static void cb_m_tciAddCodeButton(Fl_Button*, void*);
  public:
    Fl_Button *m_tciOKButton;
  private:
    inline void cb_m_tciOKButton_i(Fl_Button*, void*);
    static void cb_m_tciOKButton(Fl_Button*, void*);
  public:
    Fl_Button *m_tciCancelButton;
  private:
    inline void cb_m_tciCancelButton_i(Fl_Button*, void*);
    static void cb_m_tciCancelButton(Fl_Button*, void*);
  public:
    Fl_Button *m_tciDeleteCodeButton;
  private:
    inline void cb_m_tciDeleteCodeButton_i(Fl_Button*, void*);
    static void cb_m_tciDeleteCodeButton(Fl_Button*, void*);
  public:
    void setInterface(InterfaceCCAPI *iface);
  private:
    InterfaceCCAPI *m_interface; 
  public:
    void clearRanges(bool reInit=false);
    void deleteRange();
    void addRange(unsigned long begin, unsigned long end);
    void setRangeProgress(float percent, string status, bool done);
    void findRangeStarted();
    void findRangeStopped();
    bool canStartScan();
    void searchStarted();
    void searchStopped(char how);
    int getMenuIndex(char val);
    void setSearchProgress(float percent, string status, bool done);
    void setNumberOfResultsString(string res);
    bool m_inProgress; 
    void setConnectStatus(char status);
    void storeIP();
    void readIP();
    void setVersion(string ver);
  #include "PointerScannerTable.h"
  };
  #endif
  