void HNewbieStart::onBattleFadeEnd() { HWindow* bat = HBattleController::getInstance()->getBattleWnd(); if(bat){ bat->dismissRootLayer(false); } m_pMaskLayer->setVisible(false); m_pLastTipInfo->onEnter(); m_pLastTipInfo->setString(getNewbieById(getTag())[5]->msg); m_pLastTipInfo->setVisible(true); m_pLastTipInfo->setOpacity(50); m_pLastTipInfo->setScale(0.2); CCScaleTo* scale = CCScaleTo::create(0.3, 1); CCFadeTo* fade = CCFadeTo::create(0.3, 255); CCDelayTime* delay = CCDelayTime::create(2); CCCallFunc* call = CCCallFunc::create(this, callfunc_selector(HNewbieStart::onLastInfoShowEnd)); m_pLastTipInfo->runAction(CCSequence::create( CCEaseOut::create((CCSpawn*)CCSpawn::create(scale, fade, NULL), 0.3), delay, call, NULL)); SimpleAudioEngine::sharedEngine()->stopBackgroundMusic(); }
HApp::HApp() : BApplication("application/x-vnd.Haiku-Sounds") { BRect rect; rect.Set(200, 150, 590, 570); HWindow* window = new HWindow(rect, B_TRANSLATE_SYSTEM_NAME("Sounds")); window->Show(); }
void ReplaceDlg::replace_directed(HWindow *pDlg, int finddir, bool showCount) { bool case_sensitive = pDlg->IsDlgButtonChecked(IDC_MATCHCASE_CHECK) == BST_CHECKED; GetDlgItemText(pDlg, IDC_TO_REPLACE_EDIT, strToReplaceData); GetDlgItemText(pDlg, IDC_REPLACEWITH_EDIT, strReplaceWithData); bPasteAsText = pDlg->IsDlgButtonChecked(IDC_USETRANSLATION_CHECK) == BST_UNCHECKED; //------------------ // Don't do anything if to-replace and replace-with data are same. Text2BinTranslator tr_find(strToReplaceData), tr_replace(strReplaceWithData); if (tr_find.bCompareBin(tr_replace, iCharacterSet, iBinaryMode)) { MessageBox(pDlg, GetLangString(IDS_REPL_SAME_STRS), MB_ICONERROR); return; } WaitCursor wc; int occ_num = 0; HWindow *pwndFocus = HWindow::GetFocus(); if (EnableDlgItem(pDlg, IDC_REPLACE_BUTTON, FALSE) == FALSE) { // Don't lose focus. if (!pwndFocus->IsWindowEnabled()) pDlg->SetFocus(); occ_num++; replace_selected_data(pDlg); } if (finddir) { while (find_and_select_data(finddir, case_sensitive)) { occ_num++; replace_selected_data(pDlg); }; } if (occ_num) { set_wnd_title(); adjust_view_for_selection(); resize_window(); synch_sibling(); if (showCount) { TCHAR tbuf[100]; _stprintf(tbuf, GetLangString(IDS_REPL_COUNT), occ_num); MessageBox(pDlg, tbuf, MB_ICONINFORMATION); } } }
HApp::HApp() :BApplication(APP_SIG) { HWindow *win = new HWindow(BRect(50,50,350,350),"Demo toolbar"); win->Show(); }
HApp::HApp() :BApplication(APP_SIG) { HWindow *win = new HWindow(BRect(50,50,300,300),"IconMenu"); win->Show(); }
INT_PTR ChangeInstDlg::DlgProc(HWindow *pDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { //God damn spinners make life easy switch (uMsg) { case WM_INITDIALOG: { int i = 0; HKEY hk; int iLoadInst = -1; int iSaveInst = 0; for (;;) { int i = iLoadInst + 1; const int num_size = 64; TCHAR num[num_size] = {0}; _sntprintf(num, num_size - 1, _T("%s\\%d"), OptionsRegistrySettingsPath, i); if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_CURRENT_USER, num, 0, KEY_EXECUTE, &hk)) break; RegCloseKey(hk);//Close the key - just testing if it exists iLoadInst = i; } if (iLoadInst == -1) { MessageBox(pwnd, _T("No instance data present"), MB_OK); pDlg->EndDialog(IDCANCEL); return TRUE; } //for both the spinners //iLoadInst is the max //iSaveInst is the min //iInstCount is the start pos LONG range = MAKELONG(iLoadInst, iSaveInst); LONG pos = MAKELONG(iInstCount, 0); HWindow *pWndUpDown = pDlg->GetDlgItem(IDC_SINST); pWndUpDown->SendMessage(UDM_SETRANGE, 0L, range); pWndUpDown->SendMessage(UDM_SETPOS, 0L, pos); pWndUpDown = pDlg->GetDlgItem(IDC_LINST); pWndUpDown->SendMessage(UDM_SETRANGE, 0L, range); pWndUpDown->SendMessage(UDM_SETPOS, 0L, pos); return TRUE; } case WM_COMMAND: switch (wParam) { case IDOK: iInstCount = static_cast<int>(pDlg->SendDlgItemMessage(IDC_LINST, UDM_GETPOS, 0, 0)); read_ini_data(); iInstCount = static_cast<int>(pDlg->SendDlgItemMessage(IDC_SINST, UDM_GETPOS, 0, 0)); resize_window(); // fall through case IDCANCEL: pDlg->EndDialog(wParam); return TRUE; } break; case WM_HELP: OnHelp(pDlg); break; } return FALSE; }
/** * @brief Handle dialog messages. * @param [in] hDlg Handle to the dialog. * @param [in] iMsg The message. * @param [in] wParam The command in the message. * @param [in] lParam The optional parameter for the command. * @return TRUE if the message was handled, FALSE otherwise. */ INT_PTR FillWithDialog::DlgProc(HWindow* pDlg, UINT iMsg, WPARAM wParam, LPARAM lParam) { switch (iMsg) { case WM_INITDIALOG: { HEdit* pEditt = static_cast<HEdit *>(pDlg->GetDlgItem(IDC_HEX));//get the handle to the hex edit box pEditt->LimitText(FW_MAX);//limit the amount of text the user can enter pEditt->SetWindowText(pcFWText);//init hex text pEditt->SetFocus();//give the hex box focus pEditt->EnableWindow(!curtyp); oldproc = static_cast<LONG_PTR>(pEditt->SetWindowLongPtr(GWLP_WNDPROC, reinterpret_cast<LONG_PTR>(HexProc)));//override the old proc to be HexProc EnableDlgItem(pDlg, IDC_HEXSTAT, !curtyp); HComboBox* typ = static_cast<HComboBox *>(pDlg->GetDlgItem(IDC_TYPE)); typ->AddString(_T("Input")); typ->AddString(_T("File")); typ->SetCurSel(curtyp);//set cursel to previous //en/disable filename box and browse button HWindow* fn = pDlg->GetDlgItem(IDC_FN); fn->SetWindowText(szFWFileName); fn->EnableWindow(curtyp); EnableDlgItem(pDlg, IDC_BROWSE, curtyp); EnableDlgItem(pDlg, IDC_FILESTAT, curtyp); hfon = CreateFont(16, 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, _T("Symbol")); inittxt(pDlg); switch (asstyp) { case 0: pDlg->CheckDlgButton(IDC_EQ, BST_CHECKED); break; case 1: pDlg->CheckDlgButton(IDC_OR, BST_CHECKED); break; case 2: pDlg->CheckDlgButton(IDC_AND, BST_CHECKED); break; case 3: pDlg->CheckDlgButton(IDC_XOR, BST_CHECKED); break; } return 0;//stop the system from setting focus to the control handle in (HWND) wParam because we already set focus above } case WM_COMMAND: switch (wParam) { case IDOK: //ok pressed { if (curtyp) {//1-file pDlg->GetDlgItemText(IDC_FN, szFWFileName, _MAX_PATH);//get file name FWFile = _topen(szFWFileName, _O_RDONLY | _O_BINARY); if (FWFile == -1) {//if there is error opening MessageBox(pDlg, GetLangString(IDS_ERR_OPENING_FILE), MB_ICONERROR);//tell user but don't close dlgbox return 1;//didn't process this message }//if FWFilelen = _filelength(FWFile); if (FWFilelen == 0) {//if filelen is zero MessageBox(pDlg, GetLangString(IDS_FILL_ZERO_SIZE_FILE), MB_ICONERROR);//tell user but don't close dlgbox _close(FWFile);//close file return 1;//didn't process this message }//if else if (FWFilelen == -1) {//error returned by _filelength MessageBox(pDlg, GetLangString(IDS_ERR_OPENING_FILE), MB_ICONERROR);//tell user but don't close dlgbox _close(FWFile);//close file return 1;//didn't process this message }//elseif } else {//0-input if (!buflen) {//no hex input MessageBox(pDlg, GetLangString(IDS_FILL_ZERO_SIZE_STR), MB_ICONERROR);//tell user but don't close dlgbox return 1;//didn't process this message }//if int i = pDlg->GetDlgItemText(IDC_HEX, pcFWText, FW_MAX); if (i == 0 || i == FW_MAX - 1) {//error MessageBox(pDlg, GetLangString(IDS_FILL_TOO_MANY_BYTES), MB_ICONERROR);//tell user but don't close dlgbox return 1;//didn't process this message }//if hexstring2charstring();//just in case //pcFWText[(aa?buflen:buflen*2)]='\0';//access violation if i do it in the above function } if (pDlg->IsDlgButtonChecked(IDC_EQ)) asstyp = 0; else if (pDlg->IsDlgButtonChecked(IDC_OR)) asstyp = 1; else if (pDlg->IsDlgButtonChecked(IDC_AND)) asstyp = 2; else if (pDlg->IsDlgButtonChecked(IDC_XOR)) asstyp = 3; // go ahead SetCursor(LoadCursor(nullptr, IDC_WAIT)); BYTE (*fnc)(int); int iStartOfSelSetting; int iEndOfSelSetting; int iimax; if (curtyp) {//1-file fnc = file; iimax = FWFilelen; }//if else {//0-input fnc = input; iimax = buflen; }//else if (bSelected) { iStartOfSelSetting = iGetStartOfSelection(); iEndOfSelSetting = iGetEndOfSelection(); } else { iStartOfSelSetting = 0; iEndOfSelSetting = m_dataArray.GetUpperBound(); } SimpleArray<BYTE> olddata(iEndOfSelSetting - iStartOfSelSetting + 1, &m_dataArray[iStartOfSelSetting]); int i = iStartOfSelSetting; int ii = 0; switch (asstyp) {// use switch instead of pointers to funcs that just call an operator as its faster case 0: while (i <= iEndOfSelSetting) { m_dataArray[i++] = fnc(ii++); ii %= iimax; } break; case 1: while (i <= iEndOfSelSetting) { m_dataArray[i++] |= fnc(ii++); ii %= iimax; } break; case 2: while (i <= iEndOfSelSetting) { m_dataArray[i++] &= fnc(ii++); ii %= iimax; } break; case 3: while (i <= iEndOfSelSetting) { m_dataArray[i++] ^= fnc(ii++); ii %= iimax; } break; } push_undorecord(iStartOfSelSetting, olddata, olddata.GetLength(), &m_dataArray[iStartOfSelSetting], olddata.GetLength()); if (curtyp) _close(FWFile);//close file SetCursor(LoadCursor(nullptr, IDC_ARROW)); bFilestatusChanged = true; repaint();//you tell me } // fall through case IDCANCEL: //cancel pressed DeleteObject(hfon);// won't need till next time pDlg->EndDialog(wParam);//tell CMD_fw not to carry out the fill with operation return 1;//did process this message case MAKEWPARAM(IDC_TYPE, CBN_SELCHANGE): //thing to fill selection with changes curtyp = static_cast<char>(pDlg->SendDlgItemMessage(IDC_TYPE, CB_GETCURSEL, 0, 0));//get cursel EnableDlgItem(pDlg, IDC_FN, curtyp);//en/disable fnamebox and browse button EnableDlgItem(pDlg, IDC_BROWSE, curtyp); EnableDlgItem(pDlg, IDC_FILESTAT, curtyp); curtyp = !curtyp;//flip it for the others EnableDlgItem(pDlg, IDC_HEX, curtyp);//en/disable hexboxand relateds EnableDlgItem(pDlg, IDC_HEXSTAT, curtyp); curtyp = !curtyp;//restore original value -not for below -accurate value needed elsewhere //set text in boxes down below inittxt(pDlg); break; case IDC_BROWSE: { //prepare OPENFILENAME for the file open common dlg box szFWFileName[0] = '\0'; OPENFILENAME ofn; ZeroMemory(&ofn, sizeof ofn); ofn.lStructSize = sizeof ofn; ofn.hwndOwner = pDlg->m_hWnd; ofn.lpstrFilter = GetLangString(IDS_OPEN_ALL_FILES); ofn.lpstrFile = szFWFileName; ofn.nMaxFile = _MAX_PATH ; ofn.Flags = OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_FILEMUSTEXIST; //show open dlgbox and if file good save name & path in edit box if (GetOpenFileName(&ofn)) pDlg->SetDlgItemText(IDC_FN, ofn.lpstrFile); } return TRUE; case MAKEWPARAM(IDC_HEX, EN_UPDATE): //hexedit updated pDlg->GetDlgItemText(IDC_HEX, pcFWText, FW_MAX);//gettext hexstring2charstring();//convert to char string //set text in boxes down below inittxt(pDlg); return TRUE; } break; case WM_HELP: OnHelp(pDlg); break; } return FALSE; }