bool CItemMessage::r_Verb( CScript & s, CTextConsole * pSrc ) { LOCKDATA; EXC_TRY(("r_Verb('%s %s',%x)", s.GetKey(), s.GetArgStr(), pSrc)); ASSERT(pSrc); if ( s.IsKey( sm_szVerbKeys[0] )) { // 1 based pages. int iPage = ( s.GetArgStr()[0] && toupper( s.GetArgStr()[0] ) != 'A' ) ? s.GetArgVal() : 0; if ( ! iPage ) { m_sBodyLines.RemoveAll(); return( true ); } else if ( iPage <= m_sBodyLines.GetCount()) { m_sBodyLines.RemoveAt( iPage-1 ); return( true ); } } if ( s.IsKeyHead( "PAGE", 4 )) { SetPageText( atoi( s.GetKey() + 4 )-1, s.GetArgStr()); return( true ); } return CItemVendable::r_Verb(s, pSrc); EXC_CATCH("CItemMessage"); return false; }
void CItemMessage::DupeCopy(const CItem *pItem) { ADDTOCALLSTACK("CItemMessage::DupeCopy"); CItemVendable::DupeCopy(pItem); const CItemMessage *pMsgItem = dynamic_cast<const CItemMessage *>(pItem); if ( pMsgItem == NULL ) return; m_sAuthor = pMsgItem->m_sAuthor; for ( size_t i = 0; i < pMsgItem->GetPageCount(); i++ ) SetPageText(i, pMsgItem->GetPageText(i)); }
// Refresh the tab assosiated with a client void CChatSelector::RefreshFriend(uint64 toupdate_id, const wxString& new_name) { wxASSERT( toupdate_id ); int tab = GetTabByClientID(toupdate_id); if (tab != -1) { // This client has a tab. SetPageText(tab,new_name); } else { // This client has no tab (friend disconnecting, etc) // Nothing to be done here. } }
void CItemMessage::DupeCopy( const CItem * pItem ) { CItemVendable::DupeCopy( pItem ); const CItemMessage * pMsgItem = dynamic_cast <const CItemMessage *>(pItem); DEBUG_CHECK(pMsgItem); if ( pMsgItem == NULL ) return; m_sAuthor = pMsgItem->m_sAuthor; for ( int i=0; i<pMsgItem->GetPageCount(); i++ ) { SetPageText( i, pMsgItem->GetPageText(i)); } }
void wxSTEditorNotebook::OnSTEState(wxSTEditorEvent &event) { event.Skip(true); wxSTEditor *editor = event.GetEditor(); if ( event.HasStateChange(STE_FILENAME | STE_MODIFIED) ) { if (GetOptions().HasNotebookOption(STN_UPDATE_TITLES)) { int page = FindEditorPage(editor); if (page >= 0) // if < 0 then not in notebook (or at least yet) { SetPageText(page, FileNameToTabName(editor)); SortTabs(GetOptions().GetNotebookOptions()); } } } if (event.HasStateChange(STE_FILENAME | STE_MODIFIED | STE_CANSAVE)) { UpdateAllItems(); } }
bool CItemMessage::r_Verb(CScript & s, CTextConsole *pSrc) { ADDTOCALLSTACK("CItemMessage::r_Verb"); EXC_TRY("Verb"); ASSERT(pSrc); if ( s.IsKey(sm_szVerbKeys[0]) ) { // 1 based pages size_t iPage = (s.GetArgStr()[0] && toupper(s.GetArgStr()[0]) != 'A') ? s.GetArgVal() : 0; if ( iPage <= 0 ) { m_sBodyLines.RemoveAll(); return true; } else if ( iPage <= m_sBodyLines.GetCount() ) { m_sBodyLines.RemoveAt(iPage - 1); return true; } } if ( s.IsKeyHead("PAGE", 4) ) { size_t iPage = ATOI(s.GetKey() + 4); if ( iPage <= 0 ) return false; SetPageText(iPage - 1, s.GetArgStr()); return true; } return CItemVendable::r_Verb(s, pSrc); EXC_CATCH; EXC_DEBUG_START; EXC_ADD_SCRIPTSRC; EXC_DEBUG_END; return false; }
// // Same as AddPage() but does it at given position // bool wxNotebook::InsertPage ( size_t nPage, wxNotebookPage* pPage, const wxString& rsStrText, bool bSelect, int nImageId ) { ULONG ulApiPage; wxASSERT( pPage != NULL ); wxCHECK( IS_VALID_PAGE(nPage) || nPage == GetPageCount(), false ); // // Under OS/2 we can only insert FIRST, LAST, NEXT or PREV. Requires // two different calls to the API. Page 1 uses the BKA_FIRST. Subsequent // pages use the previous page ID coupled with a BKA_NEXT call. Unlike // Windows, OS/2 uses an internal Page ID to ID the pages. // // OS/2 also has a nice auto-size feature that automatically sizes the // the attached window so we don't have to worry about the size of the // window on the page. // if (nPage == 0) { ulApiPage = LONGFROMMR(::WinSendMsg( GetHWND() ,BKM_INSERTPAGE ,(MPARAM)0 ,MPFROM2SHORT(BKA_AUTOPAGESIZE | BKA_MAJOR, BKA_FIRST) )); if (ulApiPage == 0L) { ERRORID vError; wxString sError; vError = ::WinGetLastError(vHabmain); sError = wxPMErrorToStr(vError); return false; } m_alPageId.Insert((long)ulApiPage, nPage); } else { ulApiPage = LONGFROMMR(::WinSendMsg( GetHWND() ,BKM_INSERTPAGE ,MPFROMLONG((ULONG)m_alPageId[nPage - 1]) ,MPFROM2SHORT(BKA_AUTOPAGESIZE | BKA_MAJOR, BKA_NEXT) )); if (ulApiPage == 0L) { ERRORID vError; wxString sError; vError = ::WinGetLastError(vHabmain); sError = wxPMErrorToStr(vError); return false; } m_alPageId.Insert((long)ulApiPage, nPage); } // // Associate a window handle with the page // if (pPage) { if (!::WinSendMsg( GetHWND() ,BKM_SETPAGEWINDOWHWND ,MPFROMLONG((ULONG)m_alPageId[nPage]) ,MPFROMHWND(pPage->GetHWND()) )) return false; } // // If the inserted page is before the selected one, we must update the // index of the selected page // if (nPage <= (size_t)m_nSelection) { // // One extra page added // m_nSelection++; } if (pPage) { // // Save the pointer to the page // m_pages.Insert( pPage ,nPage ); } // // Now set TAB dimenstions // wxWindowDC vDC(this); wxCoord nTextX; wxCoord nTextY; vDC.GetTextExtent(rsStrText, &nTextX, &nTextY); nTextY *= 2; nTextX = (wxCoord)(nTextX * 1.3); if (nTextX > m_nTabSize) { m_nTabSize = nTextX; ::WinSendMsg( GetHWND() ,BKM_SETDIMENSIONS ,MPFROM2SHORT((USHORT)m_nTabSize, (USHORT)nTextY) ,(MPARAM)BKA_MAJORTAB ); } // // Now set any TAB text // if (!rsStrText.empty()) { if (!SetPageText( nPage ,rsStrText )) return false; } // // Now set any TAB bitmap image // if (nImageId != -1) { if (!SetPageImage( nPage ,nImageId )) return false; } if (pPage) { // // Don't show pages by default (we'll need to adjust their size first) // HWND hWnd = GetWinHwnd(pPage); WinSetWindowULong( hWnd ,QWL_STYLE ,WinQueryWindowULong( hWnd ,QWL_STYLE ) & ~WS_VISIBLE ); // // This updates internal flag too - otherwise it will get out of sync // pPage->Show(false); } // // Some page should be selected: either this one or the first one if there is // still no selection // int nSelNew = -1; if (bSelect) nSelNew = nPage; else if ( m_nSelection == -1 ) nSelNew = 0; if (nSelNew != -1) SetSelection(nSelNew); InvalidateBestSize(); return true; } // end of wxNotebook::InsertPage