void InitDialogHotKey(HWND hwnd, LPARAM lparam) { SW_TSTATUS_LOG(CenterWindow(g_dlgData.hwndMainMenu, hwnd)); g_hkdata = (DlgHotKeyData*)lparam; g_hkdata->hwnd = hwnd; std::wstring sKeyRevert; g_hkdata->keyDefault.ToString(sKeyRevert); SetDlgItemText(hwnd, IDC_RADIO_DEFAULT, sKeyRevert.c_str()); KeyToDlg(g_hkdata->keyRevert, IDC_EDIT_BREAK, hwnd); g_hkdata->oldEditBreakProc = (WNDPROC)SetWindowLongPtr( GetDlgItem(hwnd, IDC_EDIT_BREAK), GWLP_WNDPROC, (LONG_PTR)EditBreakProc); SW_WINBOOL_LOG(g_hkdata->oldEditBreakProc != NULL); g_hkdata->hwndEditRevert = GetDlgItem(hwnd, IDC_EDIT_BREAK); if(g_hkdata->keyRevert == g_hkdata->keyDefault) { SetRadio(IDC_RADIO_DEFAULT, hwnd); } else if (g_hkdata->keyRevert.IsEmpty()) { SetRadio(IDC_RADIO_CLEAR, hwnd); } else { SetRadio(IDC_RADIO_TYPE, hwnd); } CheckDlgButton(hwnd, IDC_CHECK_LEFTRIGHT, g_hkdata->keyRevert.GetLeftRightMode() ? BST_CHECKED : BST_UNCHECKED); SetFocus(GetDlgItem(hwnd, IDC_EDIT_BREAK)); CAutoHMODULE hModUser; if (!IsWindowsVistaOrGreater()) { hModUser = LoadLibrary(L"user32.dll"); } g_hkdata->hHookKeyGlobal = ntapi::SetWindowsHookEx(WH_KEYBOARD_LL, &LowLevelKeyboardProc, hModUser, 0); SW_WINBOOL_LOG(g_hkdata->hHookKeyGlobal.IsValid()); }
LRESULT CALLBACK EditBreakProc(HWND hEdit, UINT msg, WPARAM wParam, LPARAM lParam) { if (msg == c_MSG_TypeHotKey) { TKeyCode vkCode = (TKeyCode)lParam; KeyState state = GetKeyState(wParam); if (state != KEY_STATE_DOWN) return 0; if(CHotKey::Normalize(vkCode) == VK_MENU && g_hkdata->fAltDisable) { MessageBox(g_hkdata->hwnd, GetMessageById(AM_4), SW_PROGRAM_NAME_L, MB_ICONINFORMATION); } else { if (g_hkdata->keyRevert.HasKey(vkCode, true)) { g_hkdata->keyRevert.Remove(vkCode); } else { g_hkdata->keyRevert.Add(vkCode, CHotKey::ADDKEY_ENSURE_ONE_VALUEKEY); } SetRadio(IDC_RADIO_TYPE, g_hkdata->hwnd); g_hkdata->keyRevert.SetLeftRightMode(SendDlgItemMessage(g_hkdata->hwnd, IDC_CHECK_LEFTRIGHT, BM_GETCHECK, 0, 0) == BST_CHECKED); KeyToDlg(g_hkdata->keyRevert, IDC_EDIT_BREAK, g_hkdata->hwnd); } return 0; } return CallWindowProc(g_hkdata->oldEditBreakProc, hEdit, msg, wParam, lParam); }
//-------------------------------------------------------- // Localizes and initializes the radio buttons and group static void InitializeExtendedDialog(HWND hdlg, int16_t aHowToEnableFrameUI) { MOZ_ASSERT(aHowToEnableFrameUI != nsIPrintSettings::kFrameEnableNone, "should not be called"); // Localize the new controls in the print dialog nsCOMPtr<nsIStringBundle> strBundle; if (NS_SUCCEEDED(GetLocalizedBundle(PRINTDLG_PROPERTIES, getter_AddRefs(strBundle)))) { int32_t i = 0; while (gAllPropKeys[i].mKeyStr != nullptr) { SetText(hdlg, gAllPropKeys[i].mKeyId, strBundle, gAllPropKeys[i].mKeyStr); i++; } } // Set up radio buttons if (aHowToEnableFrameUI == nsIPrintSettings::kFrameEnableAll) { SetRadio(hdlg, rad4, false); SetRadio(hdlg, rad5, true); SetRadio(hdlg, rad6, false); // set default so user doesn't have to actually press on it gFrameSelectedRadioBtn = rad5; } else { // nsIPrintSettings::kFrameEnableAsIsAndEach SetRadio(hdlg, rad4, false); SetRadio(hdlg, rad5, false, false); SetRadio(hdlg, rad6, true); // set default so user doesn't have to actually press on it gFrameSelectedRadioBtn = rad6; } }
void TEditHWInfoForm::Go(int BlockNo, int Mx, int My) { struct TZXHWInfo *p; int Blocks; Top = My - Height/2; Left = Mx - Width/2; if (Top<0) Top=0; if (Left<0) Left=0; if (Left+Width > Screen->Width) Left = Screen->Width - Width; if (Top+Height > Screen->Height) Top = Screen->Height - Height; RadioButton4->Checked=true; RadioButton8->Checked=true; RadioButton12->Checked=true; RadioButton16->Checked=true; RadioButton20->Checked=true; RadioButton24->Checked=true; RadioButton84->Checked=true; RadioButton28->Checked=true; RadioButton32->Checked=true; RadioButton40->Checked=true; RadioButton44->Checked=true; RadioButton48->Checked=true; RadioButton52->Checked=true; RadioButton56->Checked=true; RadioButton60->Checked=true; RadioButton64->Checked=true; RadioButton68->Checked=true; RadioButton72->Checked=true; RadioButton76->Checked=true; Blocks=TZXFile.Tape[BlockNo].Head.HWType.NoTypes; p=TZXFile.Tape[BlockNo].Data.HWTypes; while(Blocks) { switch(p->Type) { case 0: switch(p->ID) { case 0x0C: SetRadio(p->Information, RadioButton1, RadioButton2, RadioButton3, RadioButton4); break; case 0x0D: SetRadio(p->Information, RadioButton5, RadioButton6, RadioButton7, RadioButton8); break; case 0x2A: SetRadio(p->Information, RadioButton9, RadioButton10, RadioButton11, RadioButton12); break; case 0x2B: SetRadio(p->Information, RadioButton13, RadioButton14, RadioButton15, RadioButton16); break; case 0x2C: SetRadio(p->Information, RadioButton17, RadioButton18, RadioButton19, RadioButton20); break; case 0x2D: SetRadio(p->Information, RadioButton21, RadioButton22, RadioButton23, RadioButton24); break; case 0x1A: SetRadio(p->Information, RadioButton81, RadioButton82, RadioButton83, RadioButton84); break; default: break; } break; case 0x02: switch(p->ID) { case 0x07: SetRadio(p->Information, RadioButton25, RadioButton26, RadioButton27, RadioButton28); break; case 0x08: SetRadio(p->Information, RadioButton29, RadioButton30, RadioButton31, RadioButton32); break; case 0x09: SetRadio(p->Information, RadioButton37, RadioButton38, RadioButton39, RadioButton40); break; case 0x0A: SetRadio(p->Information, RadioButton41, RadioButton42, RadioButton43, RadioButton44); break; default: break; } break; case 0x03: switch(p->ID) { case 0x0A: SetRadio(p->Information, RadioButton45, RadioButton46, RadioButton47, RadioButton48); break; case 0x0B: SetRadio(p->Information, RadioButton49, RadioButton50, RadioButton51, RadioButton52); break; case 0x0C: SetRadio(p->Information, RadioButton53, RadioButton54, RadioButton55, RadioButton56); break; case 0x0D: SetRadio(p->Information, RadioButton57, RadioButton58, RadioButton59, RadioButton60); break; default: break; } break; case 0x10: switch(p->ID) { case 0x00: SetRadio(p->Information, RadioButton61, RadioButton62, RadioButton63, RadioButton64); break; case 0x01: SetRadio(p->Information, RadioButton65, RadioButton66, RadioButton67, RadioButton68); break; case 0x02: SetRadio(p->Information, RadioButton69, RadioButton70, RadioButton71, RadioButton72); break; case 0x03: SetRadio(p->Information, RadioButton73, RadioButton74, RadioButton75, RadioButton76); break; default: break; } break; default: break; } p++; Blocks--; } ActiveControl=OK; ShowModal(); p=NULL; Blocks=0; GetRadio(&p, &Blocks, 0, 0x0C, RadioButton1, RadioButton2, RadioButton3, RadioButton4); GetRadio(&p, &Blocks, 0, 0x0D, RadioButton5, RadioButton6, RadioButton7, RadioButton8); GetRadio(&p, &Blocks, 0, 0x2A, RadioButton9, RadioButton10, RadioButton11, RadioButton12); GetRadio(&p, &Blocks, 0, 0x2B, RadioButton13, RadioButton14, RadioButton15, RadioButton16); GetRadio(&p, &Blocks, 0, 0x2C, RadioButton17, RadioButton18, RadioButton19, RadioButton20); GetRadio(&p, &Blocks, 0, 0x2D, RadioButton21, RadioButton22, RadioButton23, RadioButton24); GetRadio(&p, &Blocks, 0, 0x1A, RadioButton81, RadioButton82, RadioButton83, RadioButton84); GetRadio(&p, &Blocks, 2, 0x07, RadioButton25, RadioButton26, RadioButton27, RadioButton28); GetRadio(&p, &Blocks, 2, 0x08, RadioButton29, RadioButton30, RadioButton31, RadioButton32); GetRadio(&p, &Blocks, 2, 0x09, RadioButton37, RadioButton38, RadioButton39, RadioButton40); GetRadio(&p, &Blocks, 2, 0x0A, RadioButton41, RadioButton42, RadioButton43, RadioButton44); GetRadio(&p, &Blocks, 3, 0x0A, RadioButton45, RadioButton46, RadioButton47, RadioButton48); GetRadio(&p, &Blocks, 3, 0x0B, RadioButton49, RadioButton50, RadioButton51, RadioButton52); GetRadio(&p, &Blocks, 3, 0x0C, RadioButton53, RadioButton54, RadioButton55, RadioButton56); GetRadio(&p, &Blocks, 3, 0x0D, RadioButton57, RadioButton58, RadioButton59, RadioButton60); GetRadio(&p, &Blocks, 0x10, 0x00, RadioButton61, RadioButton62, RadioButton63, RadioButton64); GetRadio(&p, &Blocks, 0x10, 0x01, RadioButton65, RadioButton66, RadioButton67, RadioButton68); GetRadio(&p, &Blocks, 0x10, 0x02, RadioButton69, RadioButton70, RadioButton71, RadioButton72); GetRadio(&p, &Blocks, 0x10, 0x03, RadioButton73, RadioButton74, RadioButton75, RadioButton76); if (p) { if (TZXFile.Tape[BlockNo].Data.HWTypes) free(TZXFile.Tape[BlockNo].Data.HWTypes); TZXFile.Tape[BlockNo].Data.HWTypes = p; TZXFile.Tape[BlockNo].Head.HWType.NoTypes=Blocks; } else TZXFile.DeleteBlock(BlockNo); }