Skip to content

Commit d07b732

Browse files
ejaquayejaquay
authored andcommitted
F10 brings up config menu when in Full Screen mode
1 parent 8b509cc commit d07b732

File tree

6 files changed

+46
-21
lines changed

6 files changed

+46
-21
lines changed

Vcc.c

Lines changed: 41 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ void save_key_down(unsigned char kb_char, unsigned char OEMscan);
112112
void raise_saved_keys(void);
113113
void FunctionHelpBox(HWND);
114114
void SetupClock(void);
115+
HMENU GetConfMenu();
115116

116117
// Globals
117118
static HANDLE hEMUThread ;
@@ -123,6 +124,9 @@ static HANDLE hEMUQuit;
123124
static char g_szAppName[MAX_LOADSTRING] = "";
124125
bool BinaryRunning;
125126
static unsigned char FlagEmuStop=TH_RUNNING;
127+
128+
bool IsShiftKeyDown(void);
129+
126130
//static CRITICAL_SECTION FrameRender;
127131
/*--------------------------------------------------------------------------*/
128132
int APIENTRY WinMain(HINSTANCE hInstance,
@@ -528,13 +532,20 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
528532
break;
529533

530534
case DIK_F10:
531-
if (!IsShiftKeyDown() && EmuState.FullScreen) {
535+
{
536+
HMENU hMenu = NULL;
537+
if ( IsShiftKeyDown() ) {
538+
hMenu = GetConfMenu();
539+
} else {
540+
hMenu = RefreshDynamicMenu();
541+
}
542+
if (hMenu && EmuState.FullScreen) {
532543
RECT r;
533-
HMENU hMenu=RefreshDynamicMenu();
534544
GetClientRect(hWnd,&r);
535-
TrackPopupMenu(hMenu, TPM_CENTERALIGN|TPM_VCENTERALIGN,
536-
r.right/2, r.bottom/2, 0, hWnd, NULL);
545+
TrackPopupMenu(hMenu,TPM_CENTERALIGN|TPM_VCENTERALIGN,
546+
r.right/2,r.bottom/2,0,hWnd,NULL);
537547
}
548+
}
538549
break;
539550

540551
case DIK_F11:
@@ -558,7 +569,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
558569
break;
559570

560571
default:
561-
// send other keystrokes to the emulator if it is active
572+
// send shift and other keystrokes to the emulator if it is active
562573
if ( EmuState.EmulationRunning )
563574
{
564575
vccKeyboardHandleKey(kb_char, OEMscan, kEventKeyDown);
@@ -567,6 +578,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
567578
}
568579
break;
569580
}
581+
570582
return 0;
571583
break;
572584

@@ -813,13 +825,9 @@ BOOL CALLBACK FunctionKeys(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam
813825
SendDlgItemMessage(hDlg,IDC_TITLE,WM_SETTEXT,0,(LPARAM)(LPCSTR)g_szAppName);
814826
return TRUE;
815827
case WM_CLOSE:
816-
EndDialog(hDlg, LOWORD(wParam));
817-
return TRUE;
818828
case WM_COMMAND:
819-
switch (LOWORD(wParam))
820-
case IDOK:
821-
SendMessage (hDlg, WM_CLOSE, 0, 0);
822-
break;
829+
EndDialog(hDlg, wParam);
830+
return TRUE;
823831
}
824832
return FALSE;
825833
}
@@ -1082,3 +1090,25 @@ void FunctionHelpBox(HWND hWnd)
10821090
DialogBox(EmuState.WindowInstance,
10831091
MAKEINTRESOURCE(IDD_FUNCTION_KEYS),hWnd,FunctionKeys);
10841092
}
1093+
1094+
HMENU GetConfMenu()
1095+
{
1096+
static HMENU hMenu = NULL;
1097+
if (hMenu == NULL) {
1098+
hMenu = CreatePopupMenu();
1099+
AppendMenu(hMenu,MF_STRING,ID_AUDIO_CONFIG,"Audio");
1100+
AppendMenu(hMenu,MF_STRING,ID_CPU_CONFIG,"Cpu");
1101+
AppendMenu(hMenu,MF_STRING,ID_DISPLAY_CONFIG,"Display");
1102+
AppendMenu(hMenu,MF_STRING,ID_KEYBOARD_CONFIG,"Keyboard");
1103+
AppendMenu(hMenu,MF_STRING,ID_JOYSTICKS_CONFIG,"Joysticks");
1104+
AppendMenu(hMenu,MF_STRING,ID_TAPE_CONFIG,"Tape");
1105+
AppendMenu(hMenu,MF_STRING,ID_BITBANGER_CONFIG,"BitBanger");
1106+
}
1107+
return hMenu;
1108+
}
1109+
1110+
bool IsShiftKeyDown()
1111+
{
1112+
return (GetKeyState(VK_SHIFT) & 0x8000) != 0;
1113+
}
1114+

Vcc.rc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ BEGIN
172172
LTEXT " F7 Pause Toggle" IDC_STATIC,5,60,85,10
173173
LTEXT " F8 Toggle Throttle", IDC_STATIC,5,70,85,10
174174
LTEXT " F9 Stop/Start reset", IDC_STATIC,5,80,85,10
175-
LTEXT "F10 Cartridge Menu", IDC_STATIC,5,90,85,10
175+
LTEXT "F10 FS Cart Menu", IDC_STATIC,5,90,85,10
176176
LTEXT "F11 Toggle Fullscreen", IDC_STATIC,5,100,85,10
177177
LTEXT "F12 Function Keys", IDC_STATIC,5,110,85,10
178178
LTEXT "Shifted", IDC_STATIC,110,8,50,10
@@ -183,8 +183,8 @@ BEGIN
183183
LTEXT "Swap Joysticks", IDC_STATIC,100,60,60,10
184184
LTEXT "Overclock Toggle", IDC_STATIC,100,70,60,10
185185
LTEXT "---", IDC_STATIC,115,80,40,10
186-
LTEXT "---", IDC_STATIC,115,90,40,10
187-
LTEXT "Toggle FS Status", IDC_STATIC,100,100,60,10
186+
LTEXT "FS Config Menu", IDC_STATIC,100,90,60,10
187+
LTEXT "FS Toggle Status", IDC_STATIC,100,100,60,10
188188
LTEXT "Take Screenshot", IDC_STATIC,100,110,60,10
189189
DEFPUSHBUTTON "OK",IDOK,57,126,50,15
190190
END

keyboard.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ This file is part of VCC (Virtual Color Computer).
5757
unsigned char SetMouseStatus(unsigned char, unsigned char);
5858
bool pasting = false; //Are the keyboard functions in the middle of a paste operation?
5959
bool GetNextScanInPasteQueue(unsigned char col);
60-
bool IsShiftKeyDown();
6160

6261
/*****************************************************************************/
6362
// Global variables
@@ -635,6 +634,3 @@ bool GetNextScanInPasteQueue(unsigned char col)
635634
}
636635
return true;
637636
}
638-
bool IsShiftKeyDown() {
639-
return IsShift;
640-
}

keyboard.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,4 +88,3 @@ extern "C"
8888
bool GetPaste();
8989
void SetPaste(bool);
9090
void PasteIntoQueue(std::string txt);
91-
bool IsShiftKeyDown();

sdc/sdc.rc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ END
136136

137137
STRINGTABLE DISCARDABLE
138138
BEGIN
139-
IDS_MODULE_NAME "SDC emulator"
139+
IDS_MODULE_NAME "SDC simulator"
140140
IDS_VERSION "1.0"
141141
IDS_CATNUMBER ""
142142
END

tcc1014mmu.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ void LoadRom(void)
232232
"coco3.rom load failed\n"
233233
"Close this then\n"
234234
"check ROM path.\n",
235-
"Error", MB_TASKMODAL | MB_TOPMOST);
235+
"Error", MB_TASKMODAL | MB_TOPMOST | MB_SETFOREGROUND);
236236
}
237237
return;
238238
}

0 commit comments

Comments
 (0)