/** * Message loop of the GUI configuration dialog. **/ BOOL CALLBACK GUIConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_INITDIALOG: if(eoptions & EO_FOAFTERSTART) { CheckDlgButton(hwndDlg, CB_LOAD_FILE_OPEN, BST_CHECKED); } if(eoptions&EO_HIDEMENU) { CheckDlgButton(hwndDlg, CB_AUTO_HIDE_MENU, BST_CHECKED); } if(goptions & GOO_CONFIRMEXIT) { CheckDlgButton(hwndDlg, CB_ASK_EXIT, BST_CHECKED); } if(goptions & GOO_DISABLESS) { CheckDlgButton(hwndDlg, CB_DISABLE_SCREEN_SAVER, BST_CHECKED); } if(rightClickEnabled) { CheckDlgButton(hwndDlg, CB_ENABLECONTEXTMENU, BST_CHECKED); } GetModuleFileName(0, ManifestFilePath, 2048); strcat((char*)ManifestFilePath,".manifest"); if(ManifestFileExists()) { CheckDlgButton(hwndDlg, CB_PARTIALVISUALTHEME, BST_CHECKED); } if(SingleInstanceOnly){ CheckDlgButton(hwndDlg, IDC_SINGLEINSTANCE, BST_CHECKED); } CenterWindowOnScreen(hwndDlg); break; case WM_CLOSE: case WM_QUIT: CloseGuiDialog(hwndDlg); case WM_COMMAND: if(!(wParam >> 16)) { switch(wParam & 0xFFFF) { case BUTTON_CLOSE: CloseGuiDialog(hwndDlg); } } } return 0; }
//Callback function for the dialog where the user can change hotkeys. BOOL CALLBACK ChangeInputDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { static HANDLE hThread = NULL; static DWORD dwThreadId = 0; static struct INPUTDLGTHREADARGS threadargs; static int key = 0; switch (uMsg) { case WM_INITDIALOG: { // Start the message thread. threadargs.hThreadExit = CreateEvent(NULL, TRUE, FALSE, NULL); threadargs.hwndDlg = hwndDlg; hThread = CreateThread(NULL, 0, NewInputDialogThread, (LPVOID)&threadargs, 0, &dwThreadId); key = 0; memset(keyonce, 0, sizeof(keyonce)); KeyboardSetBackgroundAccess(true); SetFocus(GetDlgItem(hwndDlg, LBL_KEY_COMBO)); CenterWindowOnScreen(hwndDlg); } return FALSE; 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_OK: // Send quit message. PostMessage(hwndDlg, WM_USER + 99, 0, 0); break; case BTN_CLEAR: key = -1; // Send quit message. PostMessage(hwndDlg, WM_USER + 99, 0, 0); break; default: break; } break; case WM_USER: { // Our thread sent us a timer signal. int newkey; int meta = GetKeyMeta(key); KeyboardUpdateState(); if((newkey = GetKeyPressed()) != 0) { key = newkey | meta; ClearExtraMeta(&key); SetDlgItemText(hwndDlg, LBL_KEY_COMBO, GetKeyComboName(key)); } else if(NothingPressed() && key) { PostMessage(hwndDlg, WM_USER + 99, 0, 0); // Send quit message. } } break; 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); // End the dialog. EndDialog(hwndDlg, key); return TRUE; default: break; } return FALSE; }
/** * Callback function of the Map Input dialog **/ BOOL CALLBACK MapInputDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_INITDIALOG: { HWND hwndListView = InitializeListView(hwndDlg); InitFilterComboBox(hwndDlg); // Now populate the mapping display. PopulateMappingDisplay(hwndDlg); // Autosize last column. SendMessage(hwndListView, LVM_SETCOLUMNWIDTH, (WPARAM)2, MAKELPARAM(LVSCW_AUTOSIZE_USEHEADER, 0)); CenterWindowOnScreen(hwndDlg); } return FALSE; case WM_COMMAND: if(HIWORD(wParam) == CBN_SELCHANGE) { PopulateMappingDisplay(hwndDlg); break; } switch(LOWORD(wParam)) { case IDOK: UpdateMenuHotkeys(); EndDialog(hwndDlg, 1); return TRUE; case BTN_CANCEL: // here true cause of ESC button handling as EXIT ;) EndDialog(hwndDlg, 0); return TRUE; case BTN_RESTORE_DEFAULTS: ApplyDefaultCommandMapping(); PopulateMappingDisplay(hwndDlg); return TRUE; default: break; } break; case WM_CLOSE: case WM_DESTROY: case WM_QUIT: EndDialog(hwndDlg, 0); break; case WM_NOTIFY: switch(LOWORD(wParam)) { case LV_MAPPING: if (lParam) { NMHDR* pnm = (NMHDR*)lParam; if (pnm->code == LVN_ITEMACTIVATE) { HWND hwndListView = GetDlgItem(hwndDlg, LV_MAPPING); AskForHotkey(hwndListView); // TODO: Only redraw if Conflicts filter // is active. PopulateMappingDisplay(hwndDlg); } return TRUE; } break; default: break; } break; default: break; } return FALSE; }
// HelpTipWindow - Constructor HelpTipWindow::HelpTipWindow(BRect frame) : BWindow (frame, "BRIE Help Tips", B_MODAL_WINDOW, B_NORMAL_WINDOW_FEEL , 0) { InitWindow(); CenterWindowOnScreen(this); Show(); }
/** * Callback function for the palette configuration dialog. **/ BOOL CALLBACK PaletteConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_INITDIALOG: if(ntsccol) { CheckDlgButton(hwndDlg, CHECK_PALETTE_ENABLED, BST_CHECKED); } SendDlgItemMessage(hwndDlg, CTL_TINT_TRACKBAR, TBM_SETRANGE, 1, MAKELONG(0, 128)); SendDlgItemMessage(hwndDlg, CTL_HUE_TRACKBAR, TBM_SETRANGE, 1, MAKELONG(0, 128)); FCEUI_GetNTSCTH(&ntsctint, &ntschue); SendDlgItemMessage(hwndDlg, CTL_TINT_TRACKBAR, TBM_SETPOS, 1, ntsctint); SendDlgItemMessage(hwndDlg, CTL_HUE_TRACKBAR, TBM_SETPOS, 1, ntschue); EnableWindow(GetDlgItem(hwndDlg, BTN_PALETTE_RESET), (eoptions & EO_CPALETTE) ? 1 : 0); CenterWindowOnScreen(hwndDlg); break; case WM_HSCROLL: ntsctint = SendDlgItemMessage(hwndDlg, CTL_TINT_TRACKBAR, TBM_GETPOS, 0, (LPARAM)(LPSTR)0); ntschue = SendDlgItemMessage(hwndDlg, CTL_HUE_TRACKBAR, TBM_GETPOS, 0, (LPARAM)(LPSTR)0); FCEUI_SetNTSCTH(ntsccol, ntsctint, ntschue); break; case WM_CLOSE: case WM_QUIT: goto gornk; case WM_COMMAND: if(!(wParam>>16)) { switch(wParam&0xFFFF) { case CHECK_PALETTE_ENABLED: ntsccol ^= 1; FCEUI_SetNTSCTH(ntsccol, ntsctint, ntschue); break; case BTN_PALETTE_LOAD: if(LoadPaletteFile()) { EnableWindow(GetDlgItem(hwndDlg, BTN_PALETTE_RESET), 1); } break; case BTN_PALETTE_RESET: FCEUI_SetPaletteArray(0); eoptions &= ~EO_CPALETTE; EnableWindow(GetDlgItem(hwndDlg, BTN_PALETTE_RESET), 0); break; case BUTTON_CLOSE: gornk: DestroyWindow(hwndDlg); pwindow = 0; // Yay for user race conditions. break; } } } return 0; }
/** * Callback function for the palette configuration dialog. **/ BOOL CALLBACK PaletteConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_INITDIALOG: if(ntsccol) CheckDlgButton(hwndDlg, CHECK_PALETTE_ENABLED, BST_CHECKED); SendDlgItemMessage(hwndDlg, CTL_TINT_TRACKBAR, TBM_SETRANGE, 1, MAKELONG(0, 128)); SendDlgItemMessage(hwndDlg, CTL_HUE_TRACKBAR, TBM_SETRANGE, 1, MAKELONG(0, 128)); FCEUI_GetNTSCTH(&ntsctint, &ntschue); SendDlgItemMessage(hwndDlg, CTL_TINT_TRACKBAR, TBM_SETPOS, 1, ntsctint); SendDlgItemMessage(hwndDlg, CTL_HUE_TRACKBAR, TBM_SETPOS, 1, ntschue); if(force_grayscale) CheckDlgButton(hwndDlg, CHECK_PALETTE_GRAYSCALE, BST_CHECKED); if (eoptions & EO_CPALETTE) CheckDlgButton(hwndDlg, CHECK_PALETTE_CUSTOM, BST_CHECKED); CenterWindowOnScreen(hwndDlg); break; case WM_HSCROLL: ntsctint = SendDlgItemMessage(hwndDlg, CTL_TINT_TRACKBAR, TBM_GETPOS, 0, (LPARAM)(LPSTR)0); ntschue = SendDlgItemMessage(hwndDlg, CTL_HUE_TRACKBAR, TBM_GETPOS, 0, (LPARAM)(LPSTR)0); FCEUI_SetNTSCTH(ntsccol, ntsctint, ntschue); break; case WM_CLOSE: case WM_QUIT: goto gornk; case WM_COMMAND: if(!(wParam>>16)) { switch(wParam&0xFFFF) { case CHECK_PALETTE_ENABLED: ntsccol ^= 1; FCEUI_SetNTSCTH(ntsccol, ntsctint, ntschue); break; case CHECK_PALETTE_GRAYSCALE: force_grayscale ^= 1; FCEUI_SetNTSCTH(ntsccol, ntsctint, ntschue); break; case BTN_PALETTE_LOAD: if(LoadPaletteFile()) CheckDlgButton(hwndDlg, CHECK_PALETTE_CUSTOM, BST_CHECKED); break; case CHECK_PALETTE_CUSTOM: { if (eoptions & EO_CPALETTE) { // switch back to default palette FCEUI_SetPaletteArray(0); eoptions &= ~EO_CPALETTE; } else { // switch to custom, even if it isn't loaded yet FCEUI_SetPaletteArray(cpalette); eoptions |= EO_CPALETTE; } break; } case BUTTON_CLOSE: gornk: DestroyWindow(hwndDlg); pwindow = 0; // Yay for user race conditions. break; } } } return 0; }
// NewProjectWindow - Constructor NewProjectWindow::NewProjectWindow(BRect frame) : BWindow (frame, "NewProjectWindow", B_MODAL_WINDOW , B_NOT_RESIZABLE , 0) { InitWindow(); CenterWindowOnScreen(this); Show(); }
PAccountDialog::PAccountDialog(const char *title, const char *protocol, const char *account, BMessage settingsTemplate, BMessage settings, BMessenger *target, BMessage save, BMessage cancel) : BWindow(WINDOW_RECT, title, B_TITLED_WINDOW, B_NOT_ZOOMABLE | B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS | B_AUTO_UPDATE_SIZE_LIMITS | B_CLOSE_ON_ESCAPE), fOriginalAccount(account), fTemplate(settingsTemplate), fSettings(settings), fTarget(target), fSave(save), fCancel(cancel) { BRect frame(0, 0, 1, 1); #ifndef __HAIKU__ frame = Bounds(); #endif BView *view = ViewFactory::Create<BView>(frame, "top", B_FOLLOW_ALL_SIDES, B_WILL_DRAW | B_FRAME_EVENTS); // Account name fAccountName = ViewFactory::Create<BTextControl>(frame, "account_name", _T("Account name:"), fOriginalAccount.String(), NULL, B_FOLLOW_ALL_SIDES, B_WILL_DRAW | B_FRAME_EVENTS); fAccountName->SetFont(be_bold_font); fAccountName->MakeFocus(); // Account name divider fAccountNameDivider = new Divider(frame, "AccountNameDivider", B_FOLLOW_ALL_SIDES, B_WILL_DRAW | B_FRAME_EVENTS); fAccountNameDivider->ResizeToPreferred(); fProtocolControl = new PClientView(frame, "ProtocolControls", NULL, fTemplate, fSettings); fCancelButton = ViewFactory::Create<BButton>(frame, "cancel", _T("Cancel"), new BMessage(kAddAccountCancel)); fOKButton = ViewFactory::Create<BButton>(frame, "ok", _T("OK"), new BMessage(kAddAccountOk)); #ifdef __HAIKU__ float inset = ceilf(be_plain_font->Size() * 0.7f); fAccountNameDivider->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, 1)); //fProtocolControl->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNLIMITED)); view->SetLayout(new BGroupLayout(B_VERTICAL)); view->AddChild(BGroupLayoutBuilder(B_VERTICAL, inset) .AddGroup(B_VERTICAL, inset) .Add(fAccountName) .Add(fAccountNameDivider) .Add(fProtocolControl) .End() .SetInsets(inset, inset, inset, inset) ); view->AddChild(BGroupLayoutBuilder(B_VERTICAL, inset) .AddGroup(B_HORIZONTAL, inset) .AddGlue() .Add(fCancelButton) .Add(fOKButton) .End() .SetInsets(inset, inset, inset, inset) ); SetLayout(new BGroupLayout(B_HORIZONTAL)); GetLayout()->AddView(view); #else view->AddChild(fAccountName); view->AddChild(fAccountNameDivider); view->AddChild(fProtocolControl); view->AddChild(fCancelButton); view->AddChild(fOKButton); AddChild(view); LayoutGUI(); #endif CenterWindowOnScreen(this); };