From e21ed84dfa8a44334c125e07ff97e17059feb756 Mon Sep 17 00:00:00 2001 From: ansstuff Date: Mon, 3 Dec 2012 17:11:17 +0000 Subject: [PATCH] * fixed "X" button in the "Enter New Input" dialog (Hotkey Mapping); changed "Cancel" button to "OK" * Taseditor: fixed accelerators when editing Notes --- changelog.txt | 4 + src/drivers/win/main.cpp | 3 +- src/drivers/win/mapinput.cpp | 36 +++--- src/drivers/win/res.rc | 2 +- src/drivers/win/resource.h | 2 + src/drivers/win/taseditor.cpp | 5 +- .../win/taseditor/taseditor_window.cpp | 104 +++--------------- src/version.h | 2 +- 8 files changed, 49 insertions(+), 109 deletions(-) diff --git a/changelog.txt b/changelog.txt index de827969..2cbad8e8 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,7 @@ +03-Dec-2012 - AnS - Taseditor: fixed accelerators when editing Notes +03-Dec-2012 - AnS - fixed "X" button in the "Enter New Input" dialog (Hotkey Mapping); changed "Cancel" button to "OK" +03-Dec-2012 - CaH4e3 - fixed mapper 99 +30-Nov-2012 - CaH4e3 - more mappers to boards conversion 29-Nov-2012 - zeromus - fix "you ling xing dong" by assigning to mapper 192 ---r2768 - FCEUX 2.2.0 Released--- diff --git a/src/drivers/win/main.cpp b/src/drivers/win/main.cpp index d6040837..fbfa605a 100644 --- a/src/drivers/win/main.cpp +++ b/src/drivers/win/main.cpp @@ -74,6 +74,7 @@ #include "taseditor/taseditor_window.h" extern TASEDITOR_WINDOW taseditor_window; +extern bool taseditor_accelerator_keys; //--------------------------- //mbg merge 6/29/06 - new aboutbox @@ -344,7 +345,7 @@ int BlockingCheck() } } - if(!handled && taseditor_window.hwndTasEditor) + if(!handled && taseditor_window.hwndTasEditor && taseditor_accelerator_keys) { if(IsChild(taseditor_window.hwndTasEditor, msg.hwnd)) handled = TranslateAccelerator(taseditor_window.hwndTasEditor, fceu_hAccel, &msg); diff --git a/src/drivers/win/mapinput.cpp b/src/drivers/win/mapinput.cpp index 3937b88b..307aa518 100644 --- a/src/drivers/win/mapinput.cpp +++ b/src/drivers/win/mapinput.cpp @@ -344,15 +344,14 @@ BOOL CALLBACK ChangeInputDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPAR case WM_COMMAND: switch(LOWORD(wParam)) // CaH4e3: BN_CLICKED redundant define removed since it always 0, Esc mapping used to be handled as well (I need it too :)) { - case BTN_CANCEL: - key = 0; + case BTN_OK: // Send quit message. - PostMessage(hwndDlg, WM_USER + 1, 0, 0); + PostMessage(hwndDlg, WM_USER + 99, 0, 0); break; case BTN_CLEAR: key = -1; // Send quit message. - PostMessage(hwndDlg, WM_USER + 1, 0, 0); + PostMessage(hwndDlg, WM_USER + 99, 0, 0); break; default: break; @@ -375,26 +374,27 @@ BOOL CALLBACK ChangeInputDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPAR } else if(NothingPressed() && key) { - PostMessage(hwndDlg, WM_USER+1, 0, 0); // Send quit message. + PostMessage(hwndDlg, WM_USER + 99, 0, 0); // Send quit message. } } break; - case WM_USER+1: - { - // Done with keyboard. - KeyboardSetBackgroundAccess(false); + case WM_CLOSE: + // exit without changing the key mapping + key = 0; + case WM_USER + 99: + // Done with keyboard. + KeyboardSetBackgroundAccess(false); - // Kill the thread. - SetEvent(threadargs.hThreadExit); - WaitForSingleObject(hThread, INFINITE); - CloseHandle(hThread); - CloseHandle(threadargs.hThreadExit); + // Kill the thread. + SetEvent(threadargs.hThreadExit); + WaitForSingleObject(hThread, INFINITE); + CloseHandle(hThread); + CloseHandle(threadargs.hThreadExit); - // End the dialog. - EndDialog(hwndDlg, key); - return TRUE; - } + // End the dialog. + EndDialog(hwndDlg, key); + return TRUE; default: break; diff --git a/src/drivers/win/res.rc b/src/drivers/win/res.rc index bb38e949..c3b80de3 100644 --- a/src/drivers/win/res.rc +++ b/src/drivers/win/res.rc @@ -840,9 +840,9 @@ STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Enter New Input" FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN - PUSHBUTTON "Cancel",BTN_CANCEL,40,45,50,14 CTEXT "Press a key",LBL_KEY_COMBO,31,14,122,20 PUSHBUTTON "Clear",BTN_CLEAR,95,45,50,14 + PUSHBUTTON "OK",BTN_OK,40,45,50,14 END PALCONFIG DIALOGEX 16, 81, 228, 116 diff --git a/src/drivers/win/resource.h b/src/drivers/win/resource.h index 71a84443..4b2c7b5d 100644 --- a/src/drivers/win/resource.h +++ b/src/drivers/win/resource.h @@ -240,6 +240,8 @@ #define IDC_NTVIEW_REFRESH_TRACKBAR 201 #define IDC_ASSEMBLER_APPLY 201 #define IDI_ICON4 201 +#define BTN_CLEAR2 201 +#define BTN_OK 201 #define MENU_EJECT_DISK 202 #define TXT_FAM 202 #define MENU_MV_EDIT_PASTE 202 diff --git a/src/drivers/win/taseditor.cpp b/src/drivers/win/taseditor.cpp index 9d6a2b5a..7cad4174 100644 --- a/src/drivers/win/taseditor.cpp +++ b/src/drivers/win/taseditor.cpp @@ -32,6 +32,7 @@ using namespace std; bool emulator_must_run_taseditor = false; bool Taseditor_rewind_now = false; bool must_call_manual_lua_function = false; +bool taseditor_accelerator_keys = false; // all Taseditor functional modules TASEDITOR_CONFIG taseditor_config; @@ -913,15 +914,17 @@ void Taseditor_EMUCMD(int command) } } -// these functions allow/disallow some FCEUX hotkeys +// these functions allow/disallow some FCEUX hotkeys and TAS Editor accelerators void SetTaseditorInput() { + taseditor_accelerator_keys = true; // set "Background TAS Editor input" KeyboardSetBackgroundAccessBit(KEYBACKACCESS_TASEDITOR); JoystickSetBackgroundAccessBit(JOYBACKACCESS_TASEDITOR); } void ClearTaseditorInput() { + taseditor_accelerator_keys = false; // clear "Background TAS Editor input" KeyboardClearBackgroundAccessBit(KEYBACKACCESS_TASEDITOR); JoystickClearBackgroundAccessBit(JOYBACKACCESS_TASEDITOR); diff --git a/src/drivers/win/taseditor/taseditor_window.cpp b/src/drivers/win/taseditor/taseditor_window.cpp index 20b51f11..777d46a9 100644 --- a/src/drivers/win/taseditor/taseditor_window.cpp +++ b/src/drivers/win/taseditor/taseditor_window.cpp @@ -917,11 +917,7 @@ BOOL CALLBACK WndprocTasEditor(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPara selection.ClearSelection(); break; case ID_EDIT_SELECTALL: - if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_UPPER) - SendMessage(playback.hwndPlaybackMarkerEdit, EM_SETSEL, 0, -1); - else if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_LOWER) - SendMessage(selection.hwndSelectionMarkerEdit, EM_SETSEL, 0, -1); - else if (piano_roll.drag_mode != DRAG_MODE_SELECTION && piano_roll.drag_mode != DRAG_MODE_DESELECTION) + if (piano_roll.drag_mode != DRAG_MODE_SELECTION && piano_roll.drag_mode != DRAG_MODE_DESELECTION) selection.SelectAll(); break; case ID_SELECTED_UNGREENZONE: @@ -929,39 +925,19 @@ BOOL CALLBACK WndprocTasEditor(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPara break; case ACCEL_CTRL_X: case ID_EDIT_CUT: - if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_UPPER) - SendMessage(playback.hwndPlaybackMarkerEdit, WM_CUT, 0, 0); - else if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_LOWER) - SendMessage(selection.hwndSelectionMarkerEdit, WM_CUT, 0, 0); - else - splicer.Cut(); + splicer.Cut(); break; case ACCEL_CTRL_C: case ID_EDIT_COPY: - if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_UPPER) - SendMessage(playback.hwndPlaybackMarkerEdit, WM_COPY, 0, 0); - else if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_LOWER) - SendMessage(selection.hwndSelectionMarkerEdit, WM_COPY, 0, 0); - else - splicer.Copy(); + splicer.Copy(); break; case ACCEL_CTRL_V: case ID_EDIT_PASTE: - if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_UPPER) - SendMessage(playback.hwndPlaybackMarkerEdit, WM_PASTE, 0, 0); - else if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_LOWER) - SendMessage(selection.hwndSelectionMarkerEdit, WM_PASTE, 0, 0); - else - splicer.Paste(); + splicer.Paste(); break; case ACCEL_CTRL_SHIFT_V: case ID_EDIT_PASTEINSERT: - if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_UPPER) - SendMessage(playback.hwndPlaybackMarkerEdit, WM_PASTE, 0, 0); - else if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_LOWER) - SendMessage(selection.hwndSelectionMarkerEdit, WM_PASTE, 0, 0); - else - splicer.PasteInsert(); + splicer.PasteInsert(); break; case ACCEL_CTRL_DELETE: case ID_EDIT_DELETE: @@ -983,22 +959,7 @@ BOOL CALLBACK WndprocTasEditor(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPara splicer.InsertFrames(); break; case ACCEL_DEL: - if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_UPPER) - { - DWORD sel_start, sel_end; - SendMessage(playback.hwndPlaybackMarkerEdit, EM_GETSEL, (WPARAM)&sel_start, (LPARAM)&sel_end); - if (sel_start == sel_end) - SendMessage(playback.hwndPlaybackMarkerEdit, EM_SETSEL, sel_start, sel_start + 1); - SendMessage(playback.hwndPlaybackMarkerEdit, WM_CLEAR, 0, 0); - } else if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_LOWER) - { - DWORD sel_start, sel_end; - SendMessage(selection.hwndSelectionMarkerEdit, EM_GETSEL, (WPARAM)&sel_start, (LPARAM)&sel_end); - if (sel_start == sel_end) - SendMessage(selection.hwndSelectionMarkerEdit, EM_SETSEL, sel_start, sel_start + 1); - SendMessage(selection.hwndSelectionMarkerEdit, WM_CLEAR, 0, 0); - } else - splicer.ClearFrames(); + splicer.ClearFrames(); break; case ID_EDIT_CLEAR: case ID_CONTEXT_SELECTED_CLEARFRAMES: @@ -1181,11 +1142,7 @@ BOOL CALLBACK WndprocTasEditor(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPara taseditor_window.UpdateCheckedItems(); break; case ACCEL_CTRL_A: - if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_UPPER) - SendMessage(playback.hwndPlaybackMarkerEdit, EM_SETSEL, 0, -1); - else if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_LOWER) - SendMessage(selection.hwndSelectionMarkerEdit, EM_SETSEL, 0, -1); - else if (piano_roll.drag_mode != DRAG_MODE_SELECTION && piano_roll.drag_mode != DRAG_MODE_DESELECTION) + if (piano_roll.drag_mode != DRAG_MODE_SELECTION && piano_roll.drag_mode != DRAG_MODE_DESELECTION) selection.SelectBetweenMarkers(); break; case ID_EDIT_SELECTMIDMARKERS: @@ -1200,25 +1157,12 @@ BOOL CALLBACK WndprocTasEditor(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPara break; case ACCEL_CTRL_Z: case ID_EDIT_UNDO: - { - if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_UPPER) - { - SendMessage(playback.hwndPlaybackMarkerEdit, WM_UNDO, 0, 0); - } else if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_LOWER) - { - SendMessage(selection.hwndSelectionMarkerEdit, WM_UNDO, 0, 0); - } else - { - history.undo(); - } - break; - } + history.undo(); + break; case ACCEL_CTRL_Y: case ID_EDIT_REDO: - { - history.redo(); - break; - } + history.redo(); + break; case ID_EDIT_SELECTIONUNDO: case ACCEL_CTRL_Q: { @@ -1300,30 +1244,14 @@ BOOL CALLBACK WndprocTasEditor(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPara break; case ACCEL_HOME: { - if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_UPPER) - SendMessage(playback.hwndPlaybackMarkerEdit, EM_SETSEL, 0, 0); - else if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_LOWER) - SendMessage(selection.hwndSelectionMarkerEdit, EM_SETSEL, 0, 0); - else - // scroll Piano Roll to the beginning - ListView_Scroll(piano_roll.hwndList, 0, -piano_roll.list_row_height * ListView_GetTopIndex(piano_roll.hwndList)); + // scroll Piano Roll to the beginning + ListView_Scroll(piano_roll.hwndList, 0, -piano_roll.list_row_height * ListView_GetTopIndex(piano_roll.hwndList)); break; } case ACCEL_END: { - if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_UPPER) - { - SendMessage(playback.hwndPlaybackMarkerEdit, EM_SETSEL, 0, -1); - SendMessage(playback.hwndPlaybackMarkerEdit, EM_SETSEL, -1, -1); - } else if (markers_manager.marker_note_edit == MARKER_NOTE_EDIT_LOWER) - { - SendMessage(selection.hwndSelectionMarkerEdit, EM_SETSEL, 0, -1); - SendMessage(selection.hwndSelectionMarkerEdit, EM_SETSEL, -1, -1); - } else - { - // scroll Piano Roll to the end - ListView_Scroll(piano_roll.hwndList, 0, piano_roll.list_row_height * currMovieData.getNumRecords()); - } + // scroll Piano Roll to the end + ListView_Scroll(piano_roll.hwndList, 0, piano_roll.list_row_height * currMovieData.getNumRecords()); break; } case ACCEL_PGUP: @@ -1392,9 +1320,11 @@ BOOL CALLBACK WndprocTasEditor(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPara break; case ACCEL_CTRL_LEFT: case ACCEL_SHIFT_LEFT: + { // scroll Piano Roll horizontally to the left ListView_Scroll(piano_roll.hwndList, -COLUMN_BUTTON_WIDTH, 0); break; + } case ACCEL_CTRL_RIGHT: case ACCEL_SHIFT_RIGHT: // scroll Piano Roll horizontally to the right diff --git a/src/version.h b/src/version.h index c3e42184..a780c2eb 100644 --- a/src/version.h +++ b/src/version.h @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -//#define PUBLIC_RELEASE // uncommend this when making a public release, but comment back before committing +//#define PUBLIC_RELEASE // uncomment this when making a public release, but comment back before committing #ifndef __FCEU_VERSION #define __FCEU_VERSION