71 lines
3.1 KiB
C++
71 lines
3.1 KiB
C++
/****************************************************************************
|
|
* *
|
|
* Project 64 - A Nintendo 64 emulator. *
|
|
* http://www.pj64-emu.com/ *
|
|
* Copyright (C) 2012 Project64. All rights reserved. *
|
|
* *
|
|
* License: *
|
|
* GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html *
|
|
* *
|
|
****************************************************************************/
|
|
#pragma once
|
|
|
|
class CCheatsUI
|
|
{
|
|
public:
|
|
CCheatsUI(void);
|
|
~CCheatsUI(void);
|
|
|
|
bool IsCheatMessage(MSG * msg);
|
|
void SelectCheats(HWND hParent, bool BlockExecution);
|
|
|
|
private:
|
|
static int CALLBACK CheatAddProc(HWND hDlg, uint32_t uMsg, uint32_t wParam, uint32_t lParam);
|
|
static int CALLBACK CheatListProc(HWND hDlg, uint32_t uMsg, uint32_t wParam, uint32_t lParam);
|
|
static int CALLBACK ManageCheatsProc(HWND hDlg, uint32_t uMsg, uint32_t wParam, uint32_t lParam);
|
|
static int CALLBACK CheatsCodeExProc(HWND hDlg, uint32_t uMsg, uint32_t wParam, uint32_t lParam);
|
|
static int CALLBACK CheatsCodeQuantProc(HWND hDlg, uint32_t uMsg, uint32_t wParam, uint32_t lParam);
|
|
|
|
//information about the gui for selecting cheats
|
|
HWND m_Window, m_hSelectCheat, m_AddCheat, m_hCheatTree, m_hSelectedItem;
|
|
void * const m_rcList, *const m_rcAdd;
|
|
int m_MinSizeDlg, m_MaxSizeDlg;
|
|
int m_EditCheat;
|
|
bool m_DeleteingEntries;
|
|
|
|
//Information about the current cheat we are editing
|
|
stdstr m_EditName;
|
|
stdstr m_EditCode;
|
|
stdstr m_EditOptions;
|
|
stdstr m_EditNotes;
|
|
|
|
enum Dialog_State { CONTRACTED, EXPANDED } m_DialogState;
|
|
enum TV_CHECK_STATE { TV_STATE_UNKNOWN, TV_STATE_CLEAR, TV_STATE_CHECKED, TV_STATE_INDETERMINATE };
|
|
enum { IDC_MYTREE = 0x500 };
|
|
|
|
void AddCodeLayers(int CheatNumber, const stdstr &CheatName, HWND hParent, bool CheatActive);
|
|
//Reload the cheats from the ini file to the select gui
|
|
void RefreshCheatManager();
|
|
void ChangeChildrenStatus(HWND hParent, bool Checked);
|
|
void CheckParentStatus(HWND hParent);
|
|
static stdstr ReadCodeString(HWND hDlg, bool &validcodes, bool &validoption, bool &nooptions, int &codeformat);
|
|
static stdstr ReadOptionsString(HWND hDlg, bool &validcodes, bool &validoptions, bool &nooptions, int &codeformat);
|
|
|
|
void RecordCheatValues(HWND hDlg);
|
|
bool CheatChanged(HWND hDlg);
|
|
void DeleteCheat(int Index);
|
|
|
|
//Get Information about the Cheat
|
|
stdstr GetCheatName(int CheatNo, bool AddExtension) const;
|
|
static bool CheatUsesCodeExtensions(const stdstr &LineEntry);
|
|
//Working with treeview
|
|
static bool TV_SetCheckState(HWND hwndTreeView, HWND hItem, TV_CHECK_STATE state);
|
|
static int TV_GetCheckState(HWND hwndTreeView, HWND hItem);
|
|
|
|
static void MenuSetText(HMENU hMenu, int MenuPos, const wchar_t * Title, const wchar_t * ShortCut);
|
|
|
|
//UI Functions
|
|
static stdstr GetDlgItemStr(HWND hDlg, int nIDDlgItem);
|
|
};
|
|
|
|
extern CCheatsUI * g_cheatUI; |