//================================================================================================= GameDialog* Quest_DeliverParcel::GetDialog(int dialog_type) { switch(dialog_type) { case QUEST_DIALOG_START: return FindDialog("q_deliver_parcel_start"); case QUEST_DIALOG_FAIL: return FindDialog("q_deliver_parcel_timeout"); case QUEST_DIALOG_NEXT: return FindDialog("q_deliver_parcel_give"); default: assert(0); return nullptr; } }
//================================================================================================= GameDialog* Quest_StolenArtifact::GetDialog(int type2) { switch(type2) { case QUEST_DIALOG_START: return FindDialog("q_stolen_artifact_start"); case QUEST_DIALOG_NEXT: return FindDialog("q_stolen_artifact_end"); case QUEST_DIALOG_FAIL: return FindDialog("q_stolen_artifact_timeout"); default: assert(0); return nullptr; } }
BOOL IsUniqueID( INT id) { ORDINAL ord; /* * If the id is the special unused id, it is considered unique. */ if (id == IDUNUSED) return TRUE; /* * Not unique if another control in the dialog has the same id. */ if (IDUsedByCtrl(id)) return FALSE; /* * Not unique if another dialog has the same id. */ WriteOrd(&ord, id); if (FindDialog((LPTSTR)&ord)) return FALSE; return TRUE; }
void fsDialogsMgr::OnEndDialog(CDialog* pDlg) { int iIndex = FindDialog (pDlg); if (iIndex == -1) return; m_vDlgs.del (iIndex); }
void fsDialogsMgr::OnEndDialog(CPropertySheet *pSheet) { int iIndex = FindDialog (pSheet); if (iIndex == -1) return; m_vDlgs.del (iIndex); }
void CTestScaling::DecreaseSize() { // Display large message HANDLE hThreadShow = ShowDialog(STANDARD_DLG, sLongMsg); HWND hDialog = FindDialog(L"Workshare"); assertEquals(hDialog!=NULL, true, __LINE__, L"Dialog NOT displayed when it should of been"); if(hDialog == NULL) { return; } // How tall is it? RECT r; GetWindowRect(hDialog, &r); int iTallDlgHeight = r.bottom - r.top; assertEquals(iTallDlgHeight != 0, true, __LINE__, L"Tall dialog height is zero"); // Kill the dialog TerminateThread(hThreadShow, 0); CloseHandle(hThreadShow); // Give the OS time to close the window. Sleep(100); HWND hDialog1 = FindDialogOnce(sProfessionalDialogTitle); assertEquals(hDialog1 == NULL, true, __LINE__, L"Dialog 1 NOT destroyed when it should of been"); // Display a much smaller message, to force it to scale the message hThreadShow = ShowDialog(STANDARD_DLG, sShortMsg); HWND hDialog2 = FindDialog(sProfessionalDialogTitle); assertEquals(hDialog2 != NULL, true, __LINE__, L"Dialog 2 NOT displayed when it should of been"); // How tall is it? RECT r2; GetWindowRect(hDialog2, &r2); int iSmallDlgHeight = r2.bottom - r2.top; assertEquals(iSmallDlgHeight != 0, true, __LINE__, L"Small dialog height is zero"); // Kill the dialog TerminateThread(hThreadShow, 0); CloseHandle(hThreadShow); assertEquals(iTallDlgHeight > iSmallDlgHeight, true, __LINE__, L"Dialog did not shrink to accomdate text"); }
//================================================================================================= bool Quest_DeliverParcel::Load(HANDLE file) { Quest_Encounter::Load(file); if(prog != Progress::DeliverAfterTime && prog != Progress::Finished) { ReadFile(file, &end_loc, sizeof(end_loc), &tmp, nullptr); Location& loc = *game->locations[end_loc]; const Item* base_item = FindItem("parcel"); CreateItemCopy(parcel, base_item); parcel.id = "$parcel"; parcel.name = Format(game->txQuest[8], LocationHelper::IsCity(loc) ? game->txForMayor : game->txForSoltys, loc.name.c_str()); parcel.refid = refid; if(game->mp_load) game->Net_RegisterItem(&parcel, base_item); } if(enc != -1) { Location& loc = *game->locations[end_loc]; Location& loc2 = *game->locations[start_loc]; Encounter* e = game->RecreateEncounter(enc); e->pos = (loc.pos + loc2.pos) / 2; e->zasieg = 64; e->szansa = 45; e->dont_attack = true; e->dialog = FindDialog("q_deliver_parcel_bandits"); e->grupa = SG_BANDYCI; e->text = game->txQuest[11]; e->quest = this; e->timed = true; e->location_event_handler = nullptr; } return true; }
/******************************************************************************* * * FUNCTION: _CmdWndProc(HWND, unsigned, WORD, LONG) * * PURPOSE: Processes WM_COMMAND messages for the main frame window. * */ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { HKEY hKeyRoot = 0, hKey = 0; LPCTSTR keyPath; LPCTSTR valueName; BOOL result = TRUE; REGSAM regsam = KEY_READ; LONG lRet; int item; UNREFERENCED_PARAMETER(lParam); UNREFERENCED_PARAMETER(message); switch (LOWORD(wParam)) { case ID_REGISTRY_LOADHIVE: LoadHive(hWnd); return TRUE; case ID_REGISTRY_UNLOADHIVE: UnloadHive(hWnd); return TRUE; case ID_REGISTRY_IMPORTREGISTRYFILE: ImportRegistryFile(hWnd); return TRUE; case ID_REGISTRY_EXPORTREGISTRYFILE: ExportRegistryFile(hWnd); return TRUE; case ID_REGISTRY_CONNECTNETWORKREGISTRY: { IDsObjectPicker *ObjectPicker; TCHAR szComputerName[MAX_COMPUTERNAME_LENGTH + 1]; HRESULT hRet; hRet = CoInitialize(NULL); if (SUCCEEDED(hRet)) { hRet = InitializeRemoteRegistryPicker(&ObjectPicker); if (SUCCEEDED(hRet)) { hRet = InvokeRemoteRegistryPickerDialog(ObjectPicker, hWnd, szComputerName, sizeof(szComputerName) / sizeof(szComputerName[0])); if (hRet == S_OK) { /* FIXME - connect to the registry */ } FreeObjectPicker(ObjectPicker); } CoUninitialize(); } return TRUE; } case ID_REGISTRY_DISCONNECTNETWORKREGISTRY: return TRUE; case ID_REGISTRY_PRINT: PrintRegistryHive(hWnd, _T("")); return TRUE; case ID_REGISTRY_EXIT: DestroyWindow(hWnd); return TRUE; case ID_VIEW_STATUSBAR: toggle_child(hWnd, LOWORD(wParam), hStatusBar); return TRUE; case ID_HELP_HELPTOPICS: WinHelp(hWnd, _T("regedit"), HELP_FINDER, 0); return TRUE; case ID_HELP_ABOUT: ShowAboutBox(hWnd); return TRUE; case ID_VIEW_SPLIT: { RECT rt; POINT pt, pts; GetClientRect(g_pChildWnd->hWnd, &rt); pt.x = rt.left + g_pChildWnd->nSplitPos; pt.y = (rt.bottom / 2); pts = pt; if(ClientToScreen(g_pChildWnd->hWnd, &pts)) { SetCursorPos(pts.x, pts.y); SetCursor(LoadCursor(0, IDC_SIZEWE)); SendMessage(g_pChildWnd->hWnd, WM_LBUTTONDOWN, 0, MAKELPARAM(pt.x, pt.y)); } return TRUE; } case ID_EDIT_RENAME: case ID_EDIT_MODIFY: case ID_EDIT_MODIFY_BIN: case ID_EDIT_DELETE: regsam |= KEY_WRITE; break; } keyPath = GetItemPath(g_pChildWnd->hTreeWnd, 0, &hKeyRoot); valueName = GetValueName(g_pChildWnd->hListWnd, -1); if (keyPath) { lRet = RegOpenKeyEx(hKeyRoot, keyPath, 0, regsam, &hKey); if (lRet != ERROR_SUCCESS) hKey = 0; } switch (LOWORD(wParam)) { case ID_EDIT_MODIFY: if (valueName && ModifyValue(hWnd, hKey, valueName, FALSE)) RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPath); break; case ID_EDIT_MODIFY_BIN: if (valueName && ModifyValue(hWnd, hKey, valueName, TRUE)) RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPath); break; case ID_EDIT_RENAME: if (GetFocus() == g_pChildWnd->hListWnd) { if(ListView_GetSelectedCount(g_pChildWnd->hListWnd) == 1) { item = ListView_GetNextItem(g_pChildWnd->hListWnd, -1, LVNI_SELECTED); if(item > -1) { (void)ListView_EditLabel(g_pChildWnd->hListWnd, item); } } } else if (GetFocus() == g_pChildWnd->hTreeWnd) { /* Get focused entry of treeview (if any) */ HTREEITEM hItem = TreeView_GetSelection(g_pChildWnd->hTreeWnd); if (hItem != NULL) (void)TreeView_EditLabel(g_pChildWnd->hTreeWnd, hItem); } break; case ID_EDIT_DELETE: { if (GetFocus() == g_pChildWnd->hListWnd) { UINT nSelected = ListView_GetSelectedCount(g_pChildWnd->hListWnd); if(nSelected >= 1) { TCHAR msg[128], caption[128]; LoadString(hInst, IDS_QUERY_DELETE_CONFIRM, caption, sizeof(caption)/sizeof(TCHAR)); LoadString(hInst, (nSelected == 1 ? IDS_QUERY_DELETE_ONE : IDS_QUERY_DELETE_MORE), msg, sizeof(msg)/sizeof(TCHAR)); if(MessageBox(g_pChildWnd->hWnd, msg, caption, MB_ICONQUESTION | MB_YESNO) == IDYES) { int ni, errs; item = -1; errs = 0; while((ni = ListView_GetNextItem(g_pChildWnd->hListWnd, item, LVNI_SELECTED)) > -1) { valueName = GetValueName(g_pChildWnd->hListWnd, item); if(RegDeleteValue(hKey, valueName) != ERROR_SUCCESS) { errs++; } item = ni; } RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPath); if(errs > 0) { LoadString(hInst, IDS_ERR_DELVAL_CAPTION, caption, sizeof(caption)/sizeof(TCHAR)); LoadString(hInst, IDS_ERR_DELETEVALUE, msg, sizeof(msg)/sizeof(TCHAR)); MessageBox(g_pChildWnd->hWnd, msg, caption, MB_ICONSTOP); } } } } else if (GetFocus() == g_pChildWnd->hTreeWnd) { if (keyPath == 0 || *keyPath == 0) { MessageBeep(MB_ICONHAND); } else if (DeleteKey(hWnd, hKeyRoot, keyPath)) { DeleteNode(g_pChildWnd->hTreeWnd, 0); RefreshTreeView(g_pChildWnd->hTreeWnd); } } break; } case ID_EDIT_NEW_STRINGVALUE: CreateNewValue(hKeyRoot, keyPath, REG_SZ); break; case ID_EDIT_NEW_BINARYVALUE: CreateNewValue(hKeyRoot, keyPath, REG_BINARY); break; case ID_EDIT_NEW_DWORDVALUE: CreateNewValue(hKeyRoot, keyPath, REG_DWORD); break; case ID_EDIT_NEW_MULTISTRINGVALUE: CreateNewValue(hKeyRoot, keyPath, REG_MULTI_SZ); break; case ID_EDIT_NEW_EXPANDABLESTRINGVALUE: CreateNewValue(hKeyRoot, keyPath, REG_EXPAND_SZ); break; case ID_EDIT_FIND: FindDialog(hWnd); break; case ID_EDIT_FINDNEXT: FindNext(hWnd); break; case ID_EDIT_COPYKEYNAME: CopyKeyName(hWnd, hKeyRoot, keyPath); break; case ID_EDIT_PERMISSIONS: RegKeyEditPermissions(hWnd, hKeyRoot, NULL, keyPath); break; case ID_REGISTRY_PRINTERSETUP: /*PRINTDLG pd;*/ /*PrintDlg(&pd);*/ /*PAGESETUPDLG psd;*/ /*PageSetupDlg(&psd);*/ break; case ID_REGISTRY_OPENLOCAL: break; case ID_VIEW_REFRESH: RefreshTreeView(g_pChildWnd->hTreeWnd); /*RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, keyPath, NULL); */ break; /*case ID_OPTIONS_TOOLBAR:*/ /* toggle_child(hWnd, LOWORD(wParam), hToolBar);*/ /* break;*/ case ID_EDIT_NEW_KEY: CreateNewKey(g_pChildWnd->hTreeWnd, TreeView_GetSelection(g_pChildWnd->hTreeWnd)); break; default: if ((LOWORD(wParam) >= ID_FAVORITES_MIN) && (LOWORD(wParam) <= ID_FAVORITES_MAX)) { HMENU hMenu; MENUITEMINFO mii; TCHAR szFavorite[512]; hMenu = GetSubMenu(GetMenu(hWnd), FAVORITES_MENU_POSITION); memset(&mii, 0, sizeof(mii)); mii.cbSize = sizeof(mii); mii.fMask = MIIM_TYPE; mii.fType = MFT_STRING; mii.dwTypeData = szFavorite; mii.cch = sizeof(szFavorite) / sizeof(szFavorite[0]); if (GetMenuItemInfo(hMenu, LOWORD(wParam) - ID_FAVORITES_MIN, TRUE, &mii)) { ChooseFavorite(szFavorite); } } else { result = FALSE; } break; } if(hKey) RegCloseKey(hKey); return result; }
static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { HTREEITEM hSelection; HKEY hRootKey; LPCWSTR keyPath, s; WORD wID = LOWORD(wParam); UNREFERENCED_PARAMETER(message); switch (wID) { /* Parse the menu selections: */ case ID_REGISTRY_EXIT: DestroyWindow(hWnd); break; case ID_VIEW_REFRESH: /* TODO */ break; case ID_TREE_EXPANDBRANCH: (void)TreeView_Expand(g_pChildWnd->hTreeWnd, TreeView_GetSelection(g_pChildWnd->hTreeWnd), TVE_EXPAND); break; case ID_TREE_COLLAPSEBRANCH: (void)TreeView_Expand(g_pChildWnd->hTreeWnd, TreeView_GetSelection(g_pChildWnd->hTreeWnd), TVE_COLLAPSE); break; case ID_TREE_RENAME: SetFocus(g_pChildWnd->hTreeWnd); (void)TreeView_EditLabel(g_pChildWnd->hTreeWnd, TreeView_GetSelection(g_pChildWnd->hTreeWnd)); break; case ID_TREE_DELETE: hSelection = TreeView_GetSelection(g_pChildWnd->hTreeWnd); keyPath = GetItemPath(g_pChildWnd->hTreeWnd, hSelection, &hRootKey); if (keyPath == 0 || *keyPath == 0) { MessageBeep(MB_ICONHAND); } else if (DeleteKey(hWnd, hRootKey, keyPath)) DeleteNode(g_pChildWnd->hTreeWnd, 0); break; case ID_TREE_EXPORT: ExportRegistryFile(g_pChildWnd->hTreeWnd); break; case ID_EDIT_FIND: FindDialog(hWnd); break; case ID_EDIT_COPYKEYNAME: hSelection = TreeView_GetSelection(g_pChildWnd->hTreeWnd); keyPath = GetItemPath(g_pChildWnd->hTreeWnd, hSelection, &hRootKey); CopyKeyName(hWnd, hRootKey, keyPath); break; case ID_EDIT_NEW_KEY: CreateNewKey(g_pChildWnd->hTreeWnd, TreeView_GetSelection(g_pChildWnd->hTreeWnd)); break; case ID_EDIT_NEW_STRINGVALUE: case ID_EDIT_NEW_BINARYVALUE: case ID_EDIT_NEW_DWORDVALUE: SendMessageW(hFrameWnd, WM_COMMAND, wParam, lParam); break; case ID_SWITCH_PANELS: g_pChildWnd->nFocusPanel = !g_pChildWnd->nFocusPanel; SetFocus(g_pChildWnd->nFocusPanel? g_pChildWnd->hListWnd: g_pChildWnd->hTreeWnd); break; default: if ((wID >= ID_TREE_SUGGESTION_MIN) && (wID <= ID_TREE_SUGGESTION_MAX)) { s = Suggestions; while(wID > ID_TREE_SUGGESTION_MIN) { if (*s) s += wcslen(s) + 1; wID--; } SelectNode(g_pChildWnd->hTreeWnd, s); break; } return FALSE; } return TRUE; }
void MyCug::OnEditFind() { FindInAllCols(TRUE); FindDialog(); }
//================================================================================================= void Quest_DeliverParcel::SetProgress(int prog2) { bool apply = true; switch(prog2) { case Progress::Started: // give parcel to player { Location& loc = *game->locations[end_loc]; const Item* base_item = FindItem("parcel"); game->PreloadItem(base_item); CreateItemCopy(parcel, base_item); parcel.id = "$parcel"; parcel.name = Format(game->txQuest[8], LocationHelper::IsCity(loc) ? game->txForMayor : game->txForSoltys, loc.name.c_str()); parcel.refid = refid; game->current_dialog->pc->unit->AddItem(&parcel, 1, true); start_time = game->worldtime; state = Quest::Started; name = game->txQuest[9]; quest_index = quest_manager.quests.size(); quest_manager.quests.push_back(this); RemoveElement<Quest*>(quest_manager.unaccepted_quests, this); quest_manager.quests_timeout2.push_back(this); Location& loc2 = *game->locations[start_loc]; msgs.push_back(Format(game->txQuest[3], LocationHelper::IsCity(loc2) ? game->txForMayor : game->txForSoltys, loc2.name.c_str(), game->day + 1, game->month + 1, game->year)); msgs.push_back(Format(game->txQuest[10], LocationHelper::IsCity(loc) ? game->txForMayor : game->txForSoltys, loc.name.c_str(), GetLocationDirName(loc2.pos, loc.pos))); game->game_gui->journal->NeedUpdate(Journal::Quests, quest_index); game->AddGameMsg3(GMS_JOURNAL_UPDATED); if(Rand() % 4 != 0) { Encounter* e = game->AddEncounter(enc); e->pos = (loc.pos + loc2.pos) / 2; e->zasieg = 64; e->szansa = 45; e->dont_attack = true; e->dialog = FindDialog("q_deliver_parcel_bandits"); e->grupa = SG_BANDYCI; e->text = game->txQuest[11]; e->quest = this; e->timed = true; e->location_event_handler = nullptr; } if(Net::IsOnline()) { game->Net_AddQuest(refid); game->Net_RegisterItem(&parcel, base_item); if(!game->current_dialog->is_local) { game->Net_AddItem(game->current_dialog->pc, &parcel, true); game->Net_AddedItemMsg(game->current_dialog->pc); } else game->AddGameMsg3(GMS_ADDED_ITEM); } else game->AddGameMsg3(GMS_ADDED_ITEM); } break; case Progress::DeliverAfterTime: // player failed to deliver parcel in time, but gain some gold anyway { state = Quest::Failed; ((City*)game->locations[start_loc])->quest_mayor = CityQuestState::Failed; game->current_dialog->pc->unit->RemoveQuestItem(refid); game->AddReward(125); msgs.push_back(game->txQuest[12]); game->game_gui->journal->NeedUpdate(Journal::Quests, quest_index); game->AddGameMsg3(GMS_JOURNAL_UPDATED); RemoveElementTry(quest_manager.quests_timeout2, (Quest*)this); RemoveEncounter(); if(Net::IsOnline()) { game->Net_UpdateQuest(refid); if(!game->current_dialog->is_local) game->Net_RemoveQuestItem(game->current_dialog->pc, refid); } } break; case Progress::Timeout: // player failed to deliver parcel in time { state = Quest::Failed; ((City*)game->locations[start_loc])->quest_mayor = CityQuestState::Failed; msgs.push_back(game->txQuest[13]); game->game_gui->journal->NeedUpdate(Journal::Quests, quest_index); game->AddGameMsg3(GMS_JOURNAL_UPDATED); RemoveElementTry(quest_manager.quests_timeout2, (Quest*)this); RemoveEncounter(); if(Net::IsOnline()) game->Net_UpdateQuest(refid); } break; case Progress::Finished: // parcel delivered, end of quest { state = Quest::Completed; ((City*)game->locations[start_loc])->quest_mayor = CityQuestState::None; game->current_dialog->pc->unit->RemoveQuestItem(refid); game->AddReward(250); RemoveEncounter(); msgs.push_back(game->txQuest[14]); game->game_gui->journal->NeedUpdate(Journal::Quests, quest_index); game->AddGameMsg3(GMS_JOURNAL_UPDATED); RemoveElementTry(quest_manager.quests_timeout2, (Quest*)this); if(Net::IsOnline()) { game->Net_UpdateQuest(refid); if(!game->current_dialog->is_local) game->Net_RemoveQuestItem(game->current_dialog->pc, refid); } } break; case Progress::AttackedBandits: // don't giver parcel to bandits, get attacked { RemoveEncounter(); apply = false; msgs.push_back(game->txQuest[15]); game->game_gui->journal->NeedUpdate(Journal::Quests, quest_index); game->AddGameMsg3(GMS_JOURNAL_UPDATED); if(Net::IsOnline()) game->Net_UpdateQuest(refid); } break; case Progress::ParcelGivenToBandits: // give parcel to bandits { RemoveEncounter(); game->current_dialog->talker->AddItem(&parcel, 1, true); game->RemoveQuestItem(&parcel, refid); msgs.push_back(game->txQuest[16]); game->game_gui->journal->NeedUpdate(Journal::Quests, quest_index); game->AddGameMsg3(GMS_JOURNAL_UPDATED); if(Net::IsOnline()) game->Net_UpdateQuest(refid); } break; case Progress::NoParcelAttackedBandits: // no parcel, attacked by bandits apply = false; RemoveEncounter(); break; } if(apply) prog = prog2; }
void PApp::MessageReceived(BMessage *msg) { try { switch (msg->what) { case msg_SaveAll: { const doclist& lst = CDoc::DocList(); doclist::const_iterator di; for (di = lst.begin(); di != lst.end(); di++) { BWindow *w = dynamic_cast<PDoc*>(*di); if (w) w->PostMessage(msg_Save); } break; } case msg_CloseAll: { const doclist& lst = CDoc::DocList(); doclist::const_reverse_iterator di; for (di = lst.rbegin(); di != lst.rend(); di++) { PDoc *doc = dynamic_cast<PDoc*>(*di); if (doc && ! doc->IsWorksheet() && doc->Lock()) { if (doc->QuitRequested()) doc->Quit(); else { doc->Unlock(); break; } } } break; } case B_NODE_MONITOR: { CDoc::HandleFolderNodeMonitorMsg(msg); break; } case msg_OpenSelected: DialogCreator<COpenSelection>::CreateDialog(NULL); break; case msg_OpenInclude: { const char *i; FailOSErr(msg->FindString("include", &i)); const char *src = NULL; msg->FindString("from-source", &src); FindAndOpen(i, src); break; } case msg_FindCmd: { int c = 1 << current_workspace(); if (gPrefs->GetPrefInt(prf_I_SmartWorkspaces, 1)) FindDialog()->SetWorkspaces(c); FindDialog()->SetCaller(PDoc::TopWindow()); FindDialog()->Show(); FindDialog()->Activate(true); break; } case B_REFS_RECEIVED: case 'OpFi': RefsReceived(msg); break; case msg_About: { AboutWindow *abwin = new AboutWindow(); abwin->Show(); break; } case msg_IdeBringToFront: PDoc::IDEBringToFront(); break; case msg_IdeProjectToGroup: PDoc::IDEProject2Group(); break; case msg_FindDifferences: { BRect r(100,100,500,250); new CDiffWindow(r, "Differences"); break; } case msg_Open: { if (fOpenPanel->IsShowing()) { fOpenPanel->Window()->SetWorkspaces(1 << current_workspace()); fOpenPanel->Window()->Activate(); } else { BEntry entry; gCWD.GetEntry(&entry); BAutolock lock(fOpenPanel->Window()); entry_ref ref; entry.GetRef(&ref); fOpenPanel->SetPanelDirectory(&ref); fOpenPanel->Window()->SetWorkspaces(1 << current_workspace()); if (gPrefs->GetPrefInt(prf_I_ZoomOpenPanel, 0)) { BRect r = BScreen().Frame(); fOpenPanel->Window()->MoveTo(r.left + 80, r.top + 40); fOpenPanel->Window()->ResizeTo(480, r.Height() - 50); } fOpenPanel->Show(); } break; } case msg_CommandLineOpen: { entry_ref doc; FailOSErr (msg->FindRef("refs", &doc)); CDocWindow *w; BEntry e; if (e.SetTo(&doc) == B_OK && e.Exists()) w = dynamic_cast<CDocWindow*>(OpenWindow(doc)); else { w = NewWindow(NULL); w->SetEntryRef(&doc); } long lineNr; if (w && msg->FindInt32("line", &lineNr) == B_OK) { BMessage m(msg_SelectLines); FailOSErr(m.AddInt32("from", lineNr)); FailOSErr(m.AddInt32("to", lineNr - 1)); w->PostMessage(&m, w->PreferredHandler()); } if (w) { BMessage reply; reply.AddInt32("thread", w->Thread()); msg->SendReply(&reply); } break; } case B_SILENT_RELAUNCH: case msg_New: if (be_roster->IsRunning("application/x-vnd.dw-Paladin")) { BMessage newMsg(PALADIN_SHOW_ADD_NEW_PANEL); BMessenger msgr("application/x-vnd.dw-Paladin"); msgr.SendMessage(&newMsg); } else NewWindow(); break; case msg_Select: { PDoc *doc; if ((doc = PDoc::TopWindow()) != NULL) { BMessage copy(*msg); doc->PostMessage(©); } break; } case msg_DocClosed: if (CDoc::CountDocs() == 0) Quit(); break; case msg_Tile: PDoc::Tile(); break; case msg_Stack: PDoc::Stack(); break; case msg_Zoom: if (PDoc::TopWindow()) PDoc::TopWindow()->Zoom(); break; case msg_Worksheet: OpenWorksheet(); break; case msg_NewGroup: new PGroupWindow; break; case 1: puts(rcsid); break; case msg_Quit: PostMessage(B_QUIT_REQUESTED); break; case msg_Preferences: { long l; if (fPrefOpener) wait_for_thread(fPrefOpener, &l); fPrefOpener = (thread_id)NULL; if (fPrefsDialog) { BAutolock lock(fPrefsDialog); if (!lock.IsLocked()) { THROW(("Preferences panel failed to lock")); break; } int c = 1 << current_workspace(); if (gPrefs->GetPrefInt(prf_I_SmartWorkspaces, 1)) fPrefsDialog->SetWorkspaces(c); if (fPrefsDialog->IsHidden()) { fPrefsDialog->Show(); } fPrefsDialog->Activate(true); } else THROW(("Preferences panel failed to open")); break; } default: BApplication::MessageReceived(msg); } } catch (HErr& e) { e.DoError(); } } /* PApp::MessageReceived */