void GuiderOneStar::OnLClick(wxMouseEvent &mevent) { try { if (mevent.GetModifiers() == wxMOD_CONTROL) { double const scaleFactor = ScaleFactor(); wxRealPoint pt((double) mevent.m_x / scaleFactor, (double) mevent.m_y / scaleFactor); ToggleBookmark(pt); m_showBookmarks = true; pFrame->bookmarks_menu->Check(MENU_BOOKMARKS_SHOW, GetBookmarksShown()); Refresh(); Update(); return; } if (GetState() > STATE_SELECTED) { mevent.Skip(); throw THROW_INFO("Skipping event because state > STATE_SELECTED"); } if (mevent.GetModifiers() == wxMOD_SHIFT) { // Deselect guide star InvalidateCurrentPosition(true); } else { if ((mevent.m_x <= m_searchRegion) || (mevent.m_x + m_searchRegion >= XWinSize) || (mevent.m_y <= m_searchRegion) || (mevent.m_y + m_searchRegion >= YWinSize)) { mevent.Skip(); throw THROW_INFO("Skipping event because click outside of search region"); } usImage *pImage = CurrentImage(); if (pImage->NPixels == 0) { mevent.Skip(); throw ERROR_INFO("Skipping event m_pCurrentImage->NPixels == 0"); } double scaleFactor = ScaleFactor(); double StarX = (double) mevent.m_x / scaleFactor; double StarY = (double) mevent.m_y / scaleFactor; SetCurrentPosition(pImage, PHD_Point(StarX, StarY)); if (!m_star.IsValid()) { pFrame->SetStatusText(wxString::Format(_("No star found"))); } else { SetLockPosition(m_star); pFrame->SetStatusText(wxString::Format(_("Selected star at (%.1f, %.1f)"), m_star.X, m_star.Y), 1); pFrame->SetStatusText(wxString::Format(_T("m=%.0f SNR=%.1f"), m_star.Mass, m_star.SNR)); EvtServer.NotifyStarSelected(CurrentPosition()); SetState(STATE_SELECTED); pFrame->UpdateButtonsStatus(); pFrame->pProfile->UpdateData(pImage, m_star.X, m_star.Y); } Refresh(); Update(); } } catch (wxString Msg) { POSSIBLY_UNUSED(Msg); } }
bool CCmdCtl_i::UiNotify(WPARAM wParam, LPARAM lParam, // pointer to notification structure LRESULT* pResult) { NMHDR *phDR; phDR = (NMHDR*)lParam; // does notification come from my scintilla window? if (phDR != NULL && phDR->hwndFrom == m_hWnd) { SCNotification *pMsg = (SCNotification*)lParam; switch (phDR->code) { case SCN_STYLENEEDED: break; case SCN_CHARADDED: AddChar(pMsg->ch); break; case SCN_SAVEPOINTREACHED: break; // called when the document is changed - mark document modified case SCN_SAVEPOINTLEFT: { // CDocument *pDoc = GetDocument(); // pDoc->SetModifiedFlag(TRUE); } break; case SCN_MODIFYATTEMPTRO: break; case SCN_KEY: { //GetCurrentLineText(); } break; case SCN_NEWLINE: NotifyNewLine(pMsg->pNewLine); break; case SCN_TAB: break; case SCN_KEY_DOWN: { BOOL bKeyDown = (::GetKeyState(pMsg->ch) & 0x80000000); int key = pMsg->ch; char c = (char)key; int modifiers = pMsg->modifiers; if(m_bBookMark) { if (bKeyDown && (modifiers & SCMOD_CTRL) && (modifiers & SCMOD_SHIFT) && (key == VK_F2)) { ClearAllBookmarks(); } else if (bKeyDown && (modifiers & SCMOD_CTRL) && (key == VK_F2)) { SetDisplaySelection(TRUE); ToggleBookmark(); } else if (bKeyDown && (modifiers & SCMOD_SHIFT) && (key == VK_F2)) { JumpToBookmark(FALSE); } else if (bKeyDown && key == VK_F2) { JumpToBookmark(TRUE); } } } break; case SCN_DOUBLECLICK: NotifyDoubleClick(); break; // called when something changes and we want to show new indicator state or brace matching case SCN_UPDATEUI: { UpdateUI(); } break; case SCEN_CHANGE: break; case SCN_ZOOM: case SCN_MODIFIED: { NotifyTextChanged(); } break; case SCN_MACRORECORD: break; // user clicked margin - try folding action case SCN_MARGINCLICK: { DoDefaultFolding(pMsg->margin, pMsg->position); } break; case SCN_NEEDSHOWN: break; case SCN_PAINTED: break; case SCN_USERLISTSELECTION: break; case SCN_URIDROPPED: break; case SCN_DWELLSTART: break; case SCN_DWELLEND: break; } return TRUE; // we processed the message } return TRUE; }