// warning - different in Lua BSTR CMUSHclientDoc::GetWorldWindowPositionX(short Which) { CString strResult; int i = 0; CWindowPlacement wp; for(POSITION pos=GetFirstViewPosition();pos!=NULL;) { CView* pView = GetNextView(pos); if (pView->IsKindOf(RUNTIME_CLASS(CSendView))) { CSendView* pmyView = (CSendView*)pView; i++; if (i != Which) continue; // wrong one pmyView->GetParentFrame ()->GetWindowPlacement(&wp); windowPositionHelper (strResult, wp.rcNormalPosition); break; } } return strResult.AllocSysString(); } // end of CMUSHclientDoc::GetWorldWindowPositionX
void CMUSHclientDoc::SetWorldWindowStatus(short Parameter) { CFrameWnd* pParent = NULL; for(POSITION pos=GetFirstViewPosition();pos!=NULL;) { CView* pView = GetNextView(pos); if (pView->IsKindOf(RUNTIME_CLASS(CSendView))) { CSendView* pmyView = (CSendView*)pView; pParent = pmyView->GetParentFrame (); break; } } if (pParent) { switch (Parameter) { case 1: pParent->ShowWindow(SW_SHOWMAXIMIZED); break; case 2: pParent->ShowWindow(SW_MINIMIZE); break; case 3: pParent->ShowWindow(SW_RESTORE); break; case 4: pParent->ShowWindow(SW_SHOWNORMAL); break; } // end of switch } // have parent } // end of CMUSHclientDoc::SetWorldWindowStatus
void CMUSHclientDoc::MoveWorldWindowX(long Left, long Top, long Width, long Height, short Which) { int i = 0; for(POSITION pos=GetFirstViewPosition();pos!=NULL;) { CView* pView = GetNextView(pos); if (pView->IsKindOf(RUNTIME_CLASS(CSendView))) { CSendView* pmyView = (CSendView*)pView; i++; if (i != Which) continue; // wrong one pmyView->GetParentFrame ()->MoveWindow (Left, Top, Width, Height); break; } } } // end of CMUSHclientDoc::MoveWorldWindowX
void CActivityView::OnPopupSwitchtoworld() { CMUSHclientDoc* pDoc = GetSelectedWorld (); if (!pDoc) return; for(POSITION pos=pDoc->GetFirstViewPosition();pos!=NULL;) { CView* pView = pDoc->GetNextView(pos); if (pView->IsKindOf(RUNTIME_CLASS(CSendView))) { CSendView* pmyView = (CSendView*)pView; if (pmyView->GetParentFrame ()->IsIconic ()) pmyView->GetParentFrame ()->ShowWindow (SW_RESTORE); pmyView->GetParentFrame ()->ActivateFrame (); pmyView->m_owner_frame->SetActiveView(pmyView); break; } } } // end of CActivityView::OnPopupSwitchtoworld
void CMUSHclientDoc::CheckTickTimers () { // timer has kicked in unexpectedly - ignore it if (m_CurrentPlugin) return; // check for selection change in command window // I know, this is a crappy way of doing it, but the CEditView does // not notify of selection changes. for(POSITION commandpos=GetFirstViewPosition();commandpos!=NULL;) { CView* pView = GetNextView(commandpos); if (pView->IsKindOf(RUNTIME_CLASS(CSendView))) { CSendView* pmyView = (CSendView*)pView; pmyView->CheckForSelectionChange (); } // end of being a CSendView } SendToAllPluginCallbacks (ON_PLUGIN_TICK); } // end of CMUSHclientDoc::CheckTickTimers
void CMUSHclientDoc::Activate() { for(POSITION pos=GetFirstViewPosition();pos!=NULL;) { CView* pView = GetNextView(pos); if (pView->IsKindOf(RUNTIME_CLASS(CSendView))) { CSendView* pmyView = (CSendView*)pView; if (pmyView->GetParentFrame ()->IsIconic ()) pmyView->GetParentFrame ()->ShowWindow (SW_RESTORE); pmyView->GetParentFrame ()->ActivateFrame (); pmyView->m_owner_frame->SetActiveView(pmyView); break; } // end of being a CSendView } } // end of CMUSHclientDoc::Activate
long CMUSHclientDoc::SpellCheckCommand(long StartCol, long EndCol) { if (!App.m_bSpellCheckOK) return -1; CEdit * pEdit = NULL; CWnd * pWnd = NULL; // find command window for(POSITION pos = GetFirstViewPosition(); pos != NULL; ) { CView* pView = GetNextView(pos); if (pView->IsKindOf(RUNTIME_CLASS(CSendView))) { CSendView* pmyView = (CSendView*)pView; // what is the current selection? pWnd = pmyView; pEdit = & (pmyView->GetEditCtrl()); break; } // end of being a CSendView } // end of loop through views if (pEdit == NULL) return -1; // couldn't find it int nStartChar, nEndChar; // get current selection pEdit->GetSel (nStartChar, nEndChar); // make wanted selection 1-relative if (StartCol > 0) StartCol--; bool bHaveSelection = EndCol > StartCol && StartCol >= 0 && EndCol >= 0; // select what the scripter wanted if (bHaveSelection) pEdit->SetSel (StartCol, EndCol); if (App.m_SpellChecker_Lua) { lua_settop(App.m_SpellChecker_Lua, 0); // clear stack lua_getglobal (App.m_SpellChecker_Lua, SPELLCHECKFUNCTION); if (!lua_isfunction (App.m_SpellChecker_Lua, -1)) return true; // assume ok, what can we do? CString strText; bool bAll = GetSelection (pEdit, strText); lua_pushstring (App.m_SpellChecker_Lua, strText); // string to be checked lua_pushboolean (App.m_SpellChecker_Lua, bAll); // doing all? int narg = lua_gettop(App.m_SpellChecker_Lua) - 1; // all but the function int error = CallLuaWithTraceBack (App.m_SpellChecker_Lua, narg, 1); if (error) { LuaError (App.m_SpellChecker_Lua, "Run-time error", SPELLCHECKFUNCTION, "Command-line spell-check"); lua_close (App.m_SpellChecker_Lua); App.m_SpellChecker_Lua = NULL; App.m_bSpellCheckOK = false; return -1; } if (lua_isstring (App.m_SpellChecker_Lua, -1)) { const char * p = lua_tostring (App.m_SpellChecker_Lua, -1); if (bAll) pEdit->SetSel (0, -1, TRUE); pEdit->ReplaceSel (p, true); // put original selection back pEdit->SetSel (nStartChar, nEndChar); return 1; // spell checked ok } // put original selection back pEdit->SetSel (nStartChar, nEndChar); return 0; // they cancelled } return -1; } // end of CMUSHclientDoc::SpellCheckCommand
BSTR CMUSHclientDoc::Menu(LPCTSTR Items, LPCTSTR Default) { CString strResult; CSendView* pmyView = NULL; for(POSITION pos=GetFirstViewPosition();pos!=NULL;) { CView* pView = GetNextView(pos); if (pView->IsKindOf(RUNTIME_CLASS(CSendView))) { pmyView = (CSendView*)pView; break; } // end of being a CSendView } if (!pmyView) return strResult.AllocSysString(); CEdit * ctlEdit = & pmyView->GetEditCtrl(); int nStartChar, nEndChar; // find the selection range ctlEdit->GetSel(nStartChar, nEndChar); if (nEndChar < 0) nEndChar = nStartChar; vector<string> v; StringToVector (Items, v, "|"); int iCount = v.size (); // must have at least one item if (iCount < 1) return strResult.AllocSysString(); CCompleteWordDlg dlg; set<string> extraItems; for (vector<string>::const_iterator i = v.begin (); i != v.end (); i++) extraItems.insert (*i); dlg.m_extraItems = &extraItems; dlg.m_strDefault = Default; dlg.m_bFunctions = false; dlg.m_pt = ctlEdit->PosFromChar (nEndChar - 1); // strangely doesn't work at end of line ctlEdit->ClientToScreen(&dlg.m_pt); if (dlg.DoModal () == IDOK) strResult = dlg.m_strResult; return strResult.AllocSysString(); } // end of CMUSHclientDoc::Menu