From 955d4e00adc9f39ab93bf21f07506eb75b013c70 Mon Sep 17 00:00:00 2001 From: Michael Krelin Date: Mon, 05 Jul 2004 01:53:09 +0000 Subject: initial commit into svn repository git-svn-id: http://svn.klever.net/kin/T42/trunk@1 fe716a7a-6dde-0310-88d9-d003556173a8 --- (limited to 'T42Document.cpp') diff --git a/T42Document.cpp b/T42Document.cpp new file mode 100644 index 0000000..3eeb427 --- a/dev/null +++ b/T42Document.cpp @@ -0,0 +1,181 @@ +// T42Document.cpp : implementation file +// + +#include "stdafx.h" +#include "T42.h" +#include "T42Document.h" + +#include "T42View.h" +#include "T42Frame.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// T42Document + +IMPLEMENT_DYNCREATE(T42Document, CDocument) + +T42Document::T42Document() +{ + m_pView=NULL; + m_pRobot = NULL; + m_bHidden = FALSE; +} + +BOOL T42Document::OnNewDocument() +{ + if (!CDocument::OnNewDocument()) + return FALSE; + return TRUE; +} + +T42Document::~T42Document() +{ + if(m_pRobot) + DetachRobot(); +} + + +BEGIN_MESSAGE_MAP(T42Document, CDocument) + //{{AFX_MSG_MAP(T42Document) + ON_COMMAND(ID_WINDOW_SAVELAYOUT, OnWindowSavelayout) + ON_UPDATE_COMMAND_UI(ID_WINDOW_AUTOSAVELAYOUT, OnUpdateWindowAutosavelayout) + ON_COMMAND(ID_WINDOW_AUTOSAVELAYOUT, OnWindowAutosavelayout) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// T42Document diagnostics + +#ifdef _DEBUG +void T42Document::AssertValid() const +{ + CDocument::AssertValid(); +} + +void T42Document::Dump(CDumpContext& dc) const +{ + CDocument::Dump(dc); +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// T42Document serialization + +void T42Document::Serialize(CArchive& ar) +{ + if (ar.IsStoring()) + { + } + else + { + } +} + +///////////////////////////////////////////////////////////////////////////// +// T42Document commands + +void T42Document::Talk(LPCTSTR from,LPCTSTR to,LPCTSTR tty,BOOL bPrompt) +{ + ASSERT(m_pView); + ASSERT(m_pView->m_pFrame); + m_pView->m_pFrame->m_Target = to?to:""; + m_pView->m_pFrame->m_LocalUser = from?from:""; + m_pView->m_pFrame->m_TargetTTY = tty?tty:""; + if(bPrompt || !(to && from)) + m_pView->m_pFrame->PostMessage(WM_COMMAND,MAKELONG(ID_TALK_REMOTEUSER,0),NULL); + else + m_pView->m_pFrame->PostMessage(WM_INITIATETALK); +} + +void T42Document::OnChangedViewList() +{ + CDocument::OnChangedViewList(); +POSITION p = GetFirstViewPosition(); + m_pView=NULL; + while(p){ + CView* pView = GetNextView(p); + ASSERT_KINDOF(T42View,pView); + ASSERT(!m_pView); + m_pView=(T42View*)pView; + } +} + +void T42Document::SaveLayout() +{ + ASSERT(m_pView); + m_pView->SaveLayout(); + ASSERT(m_pView->m_pFrame); + m_pView->m_pFrame->SaveLayout(); +} + +void T42Document::OnWindowSavelayout() +{ + SaveLayout(); +} + +void T42Document::OnUpdateWindowAutosavelayout(CCmdUI* pCmdUI) +{ +CT42App* app = (CT42App*)AfxGetApp(); + pCmdUI->SetCheck(app->m_bt42AutosaveLayout?1:0); +} + +void T42Document::OnWindowAutosavelayout() +{ +CT42App* app = (CT42App*)AfxGetApp(); + app->m_bt42AutosaveLayout=!app->m_bt42AutosaveLayout; +} + +void T42Document::AutosaveLayout() +{ +CT42App* app = (CT42App*)AfxGetApp(); + if(app->m_bt42AutosaveLayout) + SaveLayout(); +} + +BOOL T42Document::AttachRobot(CT42Robot* pRobot) +{ + if(m_pRobot) + DetachRobot(); + m_pRobot = pRobot; + return m_pRobot->OnAttach(this); +} + +BOOL T42Document::DetachRobot() +{ + ASSERT(m_pRobot); +BOOL rv = m_pRobot->OnDetach(); + m_pRobot=NULL; + return rv; +} + +BOOL T42Document::SendOver(LPCTSTR str) +{ + // *** Or call T42View function? + for(LPCTSTR ptr=str;*ptr;ptr++){ + m_pView->m_localCtl.PutCharacter(*ptr); + m_pView->m_pFrame->PostMessage(WM_TALKCHAR,0xFF&((WORD)*ptr)); + } + return TRUE; +} + +BOOL T42Document::OnOpenDocument(LPCTSTR lpszPathName) +{ +// if (!CDocument::OnOpenDocument(lpszPathName)) +// return FALSE; + + if(lpszPathName) + m_bHidden = TRUE; + + return TRUE; +} + +void T42Document::OnMinute() +{ + if(m_pRobot) + m_pRobot->OnMinute(); +} -- cgit v0.9.0.2