1. More informative Hex Editor bookmark edit dialog.

2. Fix some logic bugs of importing bookmarks.
3. Detail
This commit is contained in:
owomomo 2020-10-06 18:59:37 +08:00
parent 8f785ba9d3
commit 6890f79768
6 changed files with 3163 additions and 3089 deletions

View File

@ -2232,7 +2232,7 @@ LRESULT CALLBACK MemViewCallB(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa
bool success = false; bool success = false;
if (GetOpenFileName(&ofn)) if (GetOpenFileName(&ofn))
{ {
char buffer[128] = { 0 }; char buffer[256] = { 0 };
FILE* bld = fopen(nameo, "r"); FILE* bld = fopen(nameo, "r");
if (bld) if (bld)
{ {
@ -2247,7 +2247,10 @@ LRESULT CALLBACK MemViewCallB(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa
{ {
if (importBookmarkProps & IMPORT_DISCARD_ORIGINAL) if (importBookmarkProps & IMPORT_DISCARD_ORIGINAL)
{ {
discard_original:
if (importBookmarkProps & IMPORT_OVERWRITE_NO_PROMPT || hexBookmarks.bookmarkCount == 0 || MessageBox(hwnd, "All your existing bookmarks will be discarded after importing the new bookmarks! Do you want to continue?", "Bookmark Import", MB_YESNO | MB_ICONWARNING) == IDYES) if (importBookmarkProps & IMPORT_OVERWRITE_NO_PROMPT || hexBookmarks.bookmarkCount == 0 || MessageBox(hwnd, "All your existing bookmarks will be discarded after importing the new bookmarks! Do you want to continue?", "Bookmark Import", MB_YESNO | MB_ICONWARNING) == IDYES)
{
removeAllBookmarks(GetSubMenu(GetMenu(hwnd), BOOKMARKS_SUBMENU_POS));
for (i = 0; i < import.bookmarkCount; ++i) for (i = 0; i < import.bookmarkCount; ++i)
{ {
hexBookmarks[i].address = import[i].address; hexBookmarks[i].address = import[i].address;
@ -2257,6 +2260,9 @@ LRESULT CALLBACK MemViewCallB(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa
hexBookmarks.bookmarkCount = import.bookmarkCount; hexBookmarks.bookmarkCount = import.bookmarkCount;
hexBookmarks.shortcutCount = import.shortcutCount; hexBookmarks.shortcutCount = import.shortcutCount;
} }
updateBookmarkMenus(GetSubMenu(GetMenu(hwnd), BOOKMARKS_SUBMENU_POS));
UpdateColorTable();
}
} }
else else
{ {
@ -2382,6 +2388,14 @@ LRESULT CALLBACK MemViewCallB(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa
strcat(buffer, " with yours.\r\nYou must choose which side would be reserved. Do you want to continue?"); strcat(buffer, " with yours.\r\nYou must choose which side would be reserved. Do you want to continue?");
continue_ = MessageBox(hwnd, buffer, "Bookmark conflict", MB_YESNO | MB_ICONEXCLAMATION) == IDYES && DialogBoxParam(fceu_hInstance, "IMPORTBOOKMARKOPTIONDIALOG", hwnd, importBookmarkCallB, (LPARAM)&tmpImportBookmarkProps); continue_ = MessageBox(hwnd, buffer, "Bookmark conflict", MB_YESNO | MB_ICONEXCLAMATION) == IDYES && DialogBoxParam(fceu_hInstance, "IMPORTBOOKMARKOPTIONDIALOG", hwnd, importBookmarkCallB, (LPARAM)&tmpImportBookmarkProps);
if (tmpImportBookmarkProps & IMPORT_OVERWRITE_NO_PROMPT)
importBookmarkProps = tmpImportBookmarkProps;
// in case user's mind changes on the fly
if (tmpImportBookmarkProps & IMPORT_DISCARD_ORIGINAL)
goto discard_original;
} }
if (continue_) if (continue_)

View File

@ -1,3 +1,6 @@
#ifndef MEMVIEW_H
#define MEMVIEW_H
void DoMemView(); void DoMemView();
void KillMemView(); void KillMemView();
void UpdateMemoryView(int draw_all); void UpdateMemoryView(int draw_all);
@ -16,3 +19,5 @@ extern HWND hMemView, hMemFind;
extern int EditingMode; extern int EditingMode;
extern char* EditString[4]; extern char* EditString[4];
#endif

View File

@ -22,14 +22,19 @@
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
#include <assert.h> #include <assert.h>
#include <uxtheme.h>
#include "memviewsp.h" #include "memviewsp.h"
#include "memview.h" #include "memview.h"
#include "debugger.h"
#include "common.h" #include "common.h"
int importBookmarkProps = IMPORT_OVERWRITE_NONE; #pragma comment(lib, "uxtheme.lib")
int importBookmarkProps = IMPORT_OVERWRITE_NONE;
HexBookmarkList hexBookmarks; HexBookmarkList hexBookmarks;
static HFONT hFont, hNewFont;
/// Finds the bookmark for a given address /// Finds the bookmark for a given address
/// @param address The address to find. /// @param address The address to find.
/// @param editmode The editing mode of the hex editor (RAM/PPU/OAM/ROM) /// @param editmode The editing mode of the hex editor (RAM/PPU/OAM/ROM)
@ -38,13 +43,13 @@ int findBookmark(unsigned int address, int editmode)
{ {
int i; int i;
if (address > 0xFFFF) if (address > GetMaxSize(editmode))
{ {
MessageBox(0, "Error: Invalid address was specified as parameter to findBookmark", "Error", MB_OK | MB_ICONERROR); MessageBox(0, "Error: Invalid address was specified as parameter to findBookmark", "Error", MB_OK | MB_ICONERROR);
return -1; return -1;
} }
for (i=0;i<hexBookmarks.bookmarkCount;i++) for (i=0; i < hexBookmarks.bookmarkCount; i++)
{ {
if (hexBookmarks[i].address == address && hexBookmarks[i].editmode == editmode) if (hexBookmarks[i].address == address && hexBookmarks[i].editmode == editmode)
return i; return i;
@ -53,14 +58,12 @@ int findBookmark(unsigned int address, int editmode)
return -1; return -1;
} }
BOOL CenterWindow(HWND hwndDlg);
/// Callback function for the name bookmark dialog /// Callback function for the name bookmark dialog
INT_PTR CALLBACK nameHexBookmarkCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) INT_PTR CALLBACK nameHexBookmarkCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
// For Hex Editor
static HexBookmarkMsg* hexBookmarkMsg; static HexBookmarkMsg* hexBookmarkMsg;
int dlgShortcutRadioCheck[10] = { IDC_RADIO_SHORTCUT0, IDC_RADIO_SHORTCUT1, IDC_RADIO_SHORTCUT2, IDC_RADIO_SHORTCUT3, IDC_RADIO_SHORTCUT4, IDC_RADIO_SHORTCUT5, IDC_RADIO_SHORTCUT6, IDC_RADIO_SHORTCUT7, IDC_RADIO_SHORTCUT8, IDC_RADIO_SHORTCUT9 }; static int dlgShortcutRadio[10] = { IDC_RADIO_SHORTCUT0, IDC_RADIO_SHORTCUT1, IDC_RADIO_SHORTCUT2, IDC_RADIO_SHORTCUT3, IDC_RADIO_SHORTCUT4, IDC_RADIO_SHORTCUT5, IDC_RADIO_SHORTCUT6, IDC_RADIO_SHORTCUT7, IDC_RADIO_SHORTCUT8, IDC_RADIO_SHORTCUT9 };
static int dlgShortcutCaption[10] = { IDC_EDIT_SHORTCUT0, IDC_EDIT_SHORTCUT1, IDC_EDIT_SHORTCUT2, IDC_EDIT_SHORTCUT3, IDC_EDIT_SHORTCUT4, IDC_EDIT_SHORTCUT5, IDC_EDIT_SHORTCUT6, IDC_EDIT_SHORTCUT7, IDC_EDIT_SHORTCUT8, IDC_EDIT_SHORTCUT9 };
switch (uMsg) switch (uMsg)
{ {
@ -80,21 +83,39 @@ INT_PTR CALLBACK nameHexBookmarkCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LP
hexBookmarkMsg = (HexBookmarkMsg*)lParam; hexBookmarkMsg = (HexBookmarkMsg*)lParam;
HexBookmark* hexBookmark = hexBookmarkMsg->bookmark; HexBookmark* hexBookmark = hexBookmarkMsg->bookmark;
bool shortcut_assigned = hexBookmarkMsg->shortcut_index != -1; if (hexBookmarkMsg->shortcut_index != -1)
if (shortcut_assigned)
{ {
CheckDlgButton(hwndDlg, IDC_CHECK_SHORTCUT, BST_CHECKED); CheckDlgButton(hwndDlg, IDC_CHECK_SHORTCUT, BST_CHECKED);
CheckDlgButton(hwndDlg, dlgShortcutRadioCheck[hexBookmarkMsg->shortcut_index], BST_CHECKED); CheckDlgButton(hwndDlg, dlgShortcutRadio[hexBookmarkMsg->shortcut_index], BST_CHECKED);
} }
else else
EnableWindow(GetDlgItem(hwndDlg, IDC_BOOKMARK_SHORTCUT_PREFIX_TEXT), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_BOOKMARK_SHORTCUT_PREFIX_TEXT), FALSE);
for (int i = 0; i < 10; ++i) hFont = (HFONT)SendMessage(hwndDlg, WM_GETFONT, 0, 0);
if (!shortcut_assigned || hexBookmarks.shortcuts[i] != -1 && hexBookmarks.shortcuts[i] != hexBookmarkMsg->bookmark_index) LOGFONT lf;
// this bookmark doesn't have a shortcut, or the shortcut number is occupied but it doesn't belongs to this bookmark GetObject(hFont, sizeof(LOGFONT), &lf);
EnableWindow(GetDlgItem(hwndDlg, dlgShortcutRadioCheck[i]), FALSE); strcpy(lf.lfFaceName, "Courier New");
hNewFont = CreateFontIndirect(&lf);
if (!shortcut_assigned && hexBookmarks.shortcutCount >= 10) for (int i = 0; i < 10; ++i)
{
SetWindowTheme(GetDlgItem(hwndDlg, dlgShortcutRadio[i]), L"", L"");
// The slot is not occupied, or it is the same slot of the bookmark
EnableWindow(GetDlgItem(hwndDlg, dlgShortcutRadio[i]), hexBookmarkMsg->shortcut_index != -1 && (hexBookmarks.shortcuts[i] == -1 || hexBookmarks.shortcuts[i] == hexBookmarkMsg->bookmark_index));
if (hexBookmarks.shortcuts[i] != -1) {
// Fill the caption block with the address information
char buf[16];
sprintf(buf, "%s: $%04X", EditString[hexBookmarks[hexBookmarks.shortcuts[i]].editmode], hexBookmarks[hexBookmarks.shortcuts[i]].address);
SetDlgItemText(hwndDlg, dlgShortcutCaption[i], buf);
SendDlgItemMessage(hwndDlg, dlgShortcutCaption[i], WM_SETFONT, (WPARAM)hNewFont, FALSE);
}
else
EnableWindow(GetDlgItem(hwndDlg, dlgShortcutCaption[i]), FALSE);
}
if (hexBookmarkMsg->shortcut_index == -1 && hexBookmarks.shortcutCount >= 10)
{ {
// all the shortcuts are occupied and this one doesn't have a shortcut, it's impossible to assign a new shortcut // all the shortcuts are occupied and this one doesn't have a shortcut, it's impossible to assign a new shortcut
EnableWindow(GetDlgItem(hwndDlg, IDC_CHECK_SHORTCUT), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_CHECK_SHORTCUT), FALSE);
@ -116,8 +137,18 @@ INT_PTR CALLBACK nameHexBookmarkCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LP
break; break;
} }
case WM_CTLCOLORSTATIC:
if (hexBookmarkMsg->shortcut_index != -1 && hexBookmarks.shortcuts[hexBookmarkMsg->shortcut_index] == hexBookmarkMsg->bookmark_index && ((HWND)lParam == GetDlgItem(hwndDlg, dlgShortcutCaption[hexBookmarkMsg->shortcut_index]) || (HWND)lParam == GetDlgItem(hwndDlg, dlgShortcutRadio[hexBookmarkMsg->shortcut_index])))
{
SetBkMode((HDC)wParam, TRANSPARENT);
SetTextColor((HDC)wParam, RGB(0, 128, 0));
return (INT_PTR)GetSysColorBrush(COLOR_BTNFACE);
}
break;
case WM_CLOSE: case WM_CLOSE:
case WM_QUIT: case WM_QUIT:
DeleteObject(hNewFont);
DeleteObject(hFont);
EndDialog(hwndDlg, 0); EndDialog(hwndDlg, 0);
break; break;
case WM_COMMAND: case WM_COMMAND:
@ -129,10 +160,10 @@ INT_PTR CALLBACK nameHexBookmarkCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LP
case IDC_CHECK_SHORTCUT: case IDC_CHECK_SHORTCUT:
{ {
UINT shortcut_assigned = IsDlgButtonChecked(hwndDlg, IDC_CHECK_SHORTCUT); UINT shortcut_assigned = IsDlgButtonChecked(hwndDlg, IDC_CHECK_SHORTCUT);
EnableWindow(GetDlgItem(hwndDlg, IDC_BOOKMARK_SHORTCUT_PREFIX_TEXT), shortcut_assigned); EnableWindow(GetDlgItem(hwndDlg, IDC_BOOKMARK_SHORTCUT_PREFIX_TEXT), shortcut_assigned == BST_CHECKED);
for (int i = 0; i < 10; ++i) for (int i = 0; i < 10; ++i)
EnableWindow(GetDlgItem(hwndDlg, dlgShortcutRadioCheck[i]), shortcut_assigned && (hexBookmarks.shortcuts[i] == -1 || hexBookmarks.shortcuts[i] == hexBookmarkMsg->bookmark_index)); EnableWindow(GetDlgItem(hwndDlg, dlgShortcutRadio[i]), shortcut_assigned && (hexBookmarks.shortcuts[i] == -1 || hexBookmarks.shortcuts[i] == hexBookmarkMsg->bookmark_index));
} }
break; break;
case IDOK: case IDOK:
@ -184,7 +215,7 @@ INT_PTR CALLBACK nameHexBookmarkCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LP
if (IsDlgButtonChecked(hwndDlg, IDC_CHECK_SHORTCUT)) if (IsDlgButtonChecked(hwndDlg, IDC_CHECK_SHORTCUT))
for (int i = 0; i < 10; ++i) for (int i = 0; i < 10; ++i)
if (IsDlgButtonChecked(hwndDlg, dlgShortcutRadioCheck[i])) if (IsDlgButtonChecked(hwndDlg, dlgShortcutRadio[i]))
{ {
// Update the shortcut index // Update the shortcut index
hexBookmarks.shortcuts[i] = hexBookmarkMsg->bookmark_index; hexBookmarks.shortcuts[i] = hexBookmarkMsg->bookmark_index;

View File

@ -18,12 +18,15 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#ifndef MEMVIEWSP_H
#define MEMVIEWSP_H
#include "types.h" #include "types.h"
#define ID_FIRST_BOOKMARK 30 #define ID_FIRST_BOOKMARK 30
#define ID_BOOKMARKLIST_SEP (ID_FIRST_BOOKMARK - 1) #define ID_BOOKMARKLIST_SEP (ID_FIRST_BOOKMARK - 1)
typedef struct HEXBOOKMARK typedef struct
{ {
char description[51]; char description[51];
unsigned int address; unsigned int address;
@ -37,14 +40,15 @@ typedef struct
int shortcut_index = -1; int shortcut_index = -1;
} HexBookmarkMsg; } HexBookmarkMsg;
typedef struct { extern struct HexBookmarkList
{
HexBookmark bookmarks[64]; HexBookmark bookmarks[64];
int shortcuts[10] = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }; int shortcuts[10] = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1 };
int bookmarkCount = 0; int bookmarkCount = 0;
int shortcutCount = 0; int shortcutCount = 0;
HexBookmark& operator[](int index); HexBookmark& operator[](int index);
} HexBookmarkList; } hexBookmarks;
#define IMPORT_OVERWRITE_NONE 0 // Overwrite nothing #define IMPORT_OVERWRITE_NONE 0 // Overwrite nothing
#define IMPORT_OVERWRITE_BOOKMARK 1 // Overwrite duplicated bookmarks but don't overwrite duplicated shortcuts #define IMPORT_OVERWRITE_BOOKMARK 1 // Overwrite duplicated bookmarks but don't overwrite duplicated shortcuts
@ -55,8 +59,6 @@ typedef struct {
extern int importBookmarkProps; extern int importBookmarkProps;
extern HexBookmarkList hexBookmarks;
int findBookmark(unsigned int address, int editmode); int findBookmark(unsigned int address, int editmode);
int addBookmark(HWND hwnd, unsigned int address, int editmode); int addBookmark(HWND hwnd, unsigned int address, int editmode);
int editBookmark(HWND hwnd, unsigned int index); int editBookmark(HWND hwnd, unsigned int index);
@ -68,3 +70,5 @@ void removeAllBookmarks(HMENU menu);
extern LRESULT APIENTRY FilterEditCtrlProc(HWND hDlg, UINT msg, WPARAM wP, LPARAM lP); extern LRESULT APIENTRY FilterEditCtrlProc(HWND hDlg, UINT msg, WPARAM wP, LPARAM lP);
extern WNDPROC DefaultEditCtrlProc; extern WNDPROC DefaultEditCtrlProc;
#endif

View File

@ -8,7 +8,6 @@
// Generated from the TEXTINCLUDE 2 resource. // Generated from the TEXTINCLUDE 2 resource.
// //
#include "afxres.h" #include "afxres.h"
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS #undef APSTUDIO_READONLY_SYMBOLS
@ -1260,31 +1259,41 @@ BEGIN
LISTBOX IDC_ASSEMBLER_PATCH_DISASM,7,50,188,59,LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | LBS_NOSEL | WS_VSCROLL | WS_TABSTOP LISTBOX IDC_ASSEMBLER_PATCH_DISASM,7,50,188,59,LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | LBS_NOSEL | WS_VSCROLL | WS_TABSTOP
END END
NAMEBOOKMARKDLGMEMVIEW DIALOGEX 0, 0, 348, 63 NAMEBOOKMARKDLGMEMVIEW DIALOGEX 0, 0, 425, 85
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Hex Editor Bookmark" CAPTION "Hex Editor Bookmark"
FONT 8, "MS Shell Dlg", 400, 0, 0x1 FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN BEGIN
LTEXT "&Address:",IDC_BOOKMARK_ADDRESS_TEXT,7,10,30,8 LTEXT "&View:",IDC_BOOKMARK_VIEW_TEXT,11,10,20,8
EDITTEXT IDC_BOOKMARK_ADDRESS,40,7,48,14,ES_UPPERCASE | ES_AUTOHSCROLL COMBOBOX IDC_BOOKMARK_COMBO_VIEW,34,7,36,30,CBS_DROPDOWNLIST | CBS_SORT | WS_TABSTOP
LTEXT "&Name:",IDC_BOOKMARK_NAME_TEXT,96,10,23,8 LTEXT "&Address:",IDC_BOOKMARK_ADDRESS_TEXT,77,10,30,8
EDITTEXT IDC_BOOKMARK_DESCRIPTION,121,7,220,14,ES_AUTOHSCROLL EDITTEXT IDC_BOOKMARK_ADDRESS,110,7,48,14,ES_UPPERCASE | ES_AUTOHSCROLL
LTEXT "&View:",IDC_BOOKMARK_VIEW_TEXT,17,27,20,8 LTEXT "&Name:",IDC_BOOKMARK_NAME_TEXT,166,10,23,8
COMBOBOX IDC_BOOKMARK_COMBO_VIEW,40,26,36,30,CBS_DROPDOWNLIST | CBS_SORT | WS_TABSTOP EDITTEXT IDC_BOOKMARK_DESCRIPTION,190,7,228,14,ES_AUTOHSCROLL
CONTROL "&Shortcut:",IDC_CHECK_SHORTCUT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,85,27,46,10 CONTROL "&Shortcut:",IDC_CHECK_SHORTCUT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,27,42,10
LTEXT "Ctrl+",IDC_BOOKMARK_SHORTCUT_PREFIX_TEXT,132,28,17,8 LTEXT "Ctrl+",IDC_BOOKMARK_SHORTCUT_PREFIX_TEXT,55,27,17,8
CONTROL "&1",IDC_RADIO_SHORTCUT0,"Button",BS_AUTORADIOBUTTON,151,27,18,10 CONTROL "&1",IDC_RADIO_SHORTCUT0,"Button",BS_AUTORADIOBUTTON,78,26,28,10
CONTROL "&2",IDC_RADIO_SHORTCUT1,"Button",BS_AUTORADIOBUTTON,170,27,18,10 CONTROL "&2",IDC_RADIO_SHORTCUT1,"Button",BS_AUTORADIOBUTTON,112,26,28,10
CONTROL "&3",IDC_RADIO_SHORTCUT2,"Button",BS_AUTORADIOBUTTON,189,27,18,10 CONTROL "&3",IDC_RADIO_SHORTCUT2,"Button",BS_AUTORADIOBUTTON,146,26,28,10
CONTROL "&4",IDC_RADIO_SHORTCUT3,"Button",BS_AUTORADIOBUTTON,208,27,18,10 CONTROL "&4",IDC_RADIO_SHORTCUT3,"Button",BS_AUTORADIOBUTTON,180,26,28,10
CONTROL "&5",IDC_RADIO_SHORTCUT4,"Button",BS_AUTORADIOBUTTON,227,27,18,10 CONTROL "&5",IDC_RADIO_SHORTCUT4,"Button",BS_AUTORADIOBUTTON,214,26,28,10
CONTROL "&6",IDC_RADIO_SHORTCUT5,"Button",BS_AUTORADIOBUTTON,246,27,18,10 CONTROL "&6",IDC_RADIO_SHORTCUT5,"Button",BS_AUTORADIOBUTTON,248,26,28,10
CONTROL "&7",IDC_RADIO_SHORTCUT6,"Button",BS_AUTORADIOBUTTON,265,27,18,10 CONTROL "&7",IDC_RADIO_SHORTCUT6,"Button",BS_AUTORADIOBUTTON,282,26,28,10
CONTROL "&8",IDC_RADIO_SHORTCUT7,"Button",BS_AUTORADIOBUTTON,284,27,18,10 CONTROL "&8",IDC_RADIO_SHORTCUT7,"Button",BS_AUTORADIOBUTTON,316,26,28,10
CONTROL "&9",IDC_RADIO_SHORTCUT8,"Button",BS_AUTORADIOBUTTON,303,27,18,10 CONTROL "&9",IDC_RADIO_SHORTCUT8,"Button",BS_AUTORADIOBUTTON,350,26,28,10
CONTROL "&0",IDC_RADIO_SHORTCUT9,"Button",BS_AUTORADIOBUTTON,323,27,18,10 CONTROL "&0",IDC_RADIO_SHORTCUT9,"Button",BS_AUTORADIOBUTTON,384,26,28,10
DEFPUSHBUTTON "OK",IDOK,119,42,50,14 EDITTEXT IDC_EDIT_SHORTCUT0,78,38,34,21,ES_MULTILINE | ES_UPPERCASE | ES_AUTOVSCROLL | ES_READONLY
PUSHBUTTON "Cancel",IDCANCEL,178,42,50,14 EDITTEXT IDC_EDIT_SHORTCUT1,112,38,34,21,ES_MULTILINE | ES_UPPERCASE | ES_AUTOVSCROLL | ES_READONLY
EDITTEXT IDC_EDIT_SHORTCUT2,146,38,34,21,ES_MULTILINE | ES_UPPERCASE | ES_AUTOVSCROLL | ES_READONLY
EDITTEXT IDC_EDIT_SHORTCUT3,180,38,34,21,ES_MULTILINE | ES_UPPERCASE | ES_AUTOVSCROLL | ES_READONLY
EDITTEXT IDC_EDIT_SHORTCUT4,214,38,34,21,ES_MULTILINE | ES_UPPERCASE | ES_AUTOVSCROLL | ES_READONLY
EDITTEXT IDC_EDIT_SHORTCUT5,248,38,34,21,ES_MULTILINE | ES_UPPERCASE | ES_AUTOVSCROLL | ES_READONLY
EDITTEXT IDC_EDIT_SHORTCUT6,282,38,34,21,ES_MULTILINE | ES_UPPERCASE | ES_AUTOVSCROLL | ES_READONLY
EDITTEXT IDC_EDIT_SHORTCUT7,316,38,34,21,ES_MULTILINE | ES_UPPERCASE | ES_AUTOVSCROLL | ES_READONLY
EDITTEXT IDC_EDIT_SHORTCUT8,350,38,34,21,ES_MULTILINE | ES_UPPERCASE | ES_AUTOVSCROLL | ES_READONLY
EDITTEXT IDC_EDIT_SHORTCUT9,384,38,34,21,ES_MULTILINE | ES_UPPERCASE | ES_AUTOVSCROLL | ES_READONLY
DEFPUSHBUTTON "OK",IDOK,160,64,50,14
PUSHBUTTON "Cancel",IDCANCEL,219,64,50,14
END END
CDLOGGER DIALOGEX 0, 0, 307, 254 CDLOGGER DIALOGEX 0, 0, 307, 254
@ -1982,9 +1991,9 @@ BEGIN
"NAMEBOOKMARKDLGMEMVIEW", DIALOG "NAMEBOOKMARKDLGMEMVIEW", DIALOG
BEGIN BEGIN
LEFTMARGIN, 7 LEFTMARGIN, 7
RIGHTMARGIN, 341 RIGHTMARGIN, 418
TOPMARGIN, 7 TOPMARGIN, 7
BOTTOMMARGIN, 56 BOTTOMMARGIN, 78
END END
"CDLOGGER", DIALOG "CDLOGGER", DIALOG
@ -3053,7 +3062,6 @@ IDB_BRANCH_SPRITESHEET BITMAP "res\\branch_spritesheet.bmp"
// Generated from the TEXTINCLUDE 3 resource. // Generated from the TEXTINCLUDE 3 resource.
// //
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED #endif // not APSTUDIO_INVOKED

View File

@ -1,6 +1,6 @@
//{{NO_DEPENDENCIES}} //{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file. // Microsoft Visual C++ 生成的包含文件。
// Used by res.rc // 供 res.rc 使用
// //
#define CLOSE_BUTTON 1 #define CLOSE_BUTTON 1
#define BUTTON_CLOSE 1 #define BUTTON_CLOSE 1
@ -514,22 +514,33 @@
#define MW_VAL04 1014 #define MW_VAL04 1014
#define MW_NAME05 1015 #define MW_NAME05 1015
#define MW_ADDR05 1016 #define MW_ADDR05 1016
#define IDC_EDIT_SHORTCUT0 1016
#define MW_VAL05 1017 #define MW_VAL05 1017
#define IDC_EDIT_SHORTCUT1 1017
#define IDC_PRGROM_COMBO 1018 #define IDC_PRGROM_COMBO 1018
#define MW_NAME06 1018 #define MW_NAME06 1018
#define IDC_EDIT_SHORTCUT2 1018
#define MW_ADDR06 1019 #define MW_ADDR06 1019
#define IDC_CHRROM_COMBO 1019 #define IDC_CHRROM_COMBO 1019
#define IDC_EDIT_SHORTCUT7 1019
#define IDC_RADIO_MIRR_HORIZONTAL 1020 #define IDC_RADIO_MIRR_HORIZONTAL 1020
#define MW_VAL06 1020 #define MW_VAL06 1020
#define IDC_EDIT_SHORTCUT6 1020
#define IDC_RADIO_MIRR_VERTICAL 1021 #define IDC_RADIO_MIRR_VERTICAL 1021
#define MW_NAME07 1021 #define MW_NAME07 1021
#define IDC_EDIT6 1021
#define IDC_EDIT_SHORTCUT9 1021
#define MW_ADDR07 1022 #define MW_ADDR07 1022
#define IDC_RADIO_MIRR_4SCREEN 1022 #define IDC_RADIO_MIRR_4SCREEN 1022
#define IDC_EDIT_SHORTCUT5 1022
#define MW_VAL07 1023 #define MW_VAL07 1023
#define IDC_EDIT_SHORTCUT4 1023
#define IDC_CHECK_TRAINER 1024 #define IDC_CHECK_TRAINER 1024
#define MW_NAME08 1024 #define MW_NAME08 1024
#define IDC_EDIT_SHORTCUT8 1024
#define MW_ADDR08 1025 #define MW_ADDR08 1025
#define IDC_PRGRAM_COMBO 1025 #define IDC_PRGRAM_COMBO 1025
#define IDC_EDIT_SHORTCUT3 1025
#define IDC_MAPPER_COMBO 1026 #define IDC_MAPPER_COMBO 1026
#define MW_VAL08 1026 #define MW_VAL08 1026
#define IDC_SUBMAPPER_EDIT 1027 #define IDC_SUBMAPPER_EDIT 1027
@ -676,6 +687,7 @@
#define TASEDITOR_REWIND 1133 #define TASEDITOR_REWIND 1133
#define TASEDITOR_FORWARD 1134 #define TASEDITOR_FORWARD 1134
#define TASEDITOR_REWIND_FULL 1135 #define TASEDITOR_REWIND_FULL 1135
#define IDC_EDIT10 1135
#define TASEDITOR_FORWARD_FULL 1136 #define TASEDITOR_FORWARD_FULL 1136
#define TASEDITOR_PLAYSTOP 1137 #define TASEDITOR_PLAYSTOP 1137
#define IDC_RADIO_GREENZONE_SAVINGMODE_ALLFRAMES 1138 #define IDC_RADIO_GREENZONE_SAVINGMODE_ALLFRAMES 1138
@ -1181,7 +1193,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS #ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 311 #define _APS_NEXT_RESOURCE_VALUE 311
#define _APS_NEXT_COMMAND_VALUE 40009 #define _APS_NEXT_COMMAND_VALUE 40009
#define _APS_NEXT_CONTROL_VALUE 1126 #define _APS_NEXT_CONTROL_VALUE 1017
#define _APS_NEXT_SYMED_VALUE 101 #define _APS_NEXT_SYMED_VALUE 101
#endif #endif
#endif #endif