home *** CD-ROM | disk | FTP | other *** search
- // drawDoc.cpp : implementation of the CDrawDoc class
- //
-
- #include "stdafx.h"
- #include "draw.h"
-
- #include "drawDoc.h"
- #include "thickdlg.h"
- #include "LeadDlg.h"
- #include "..\..\..\..\include\ltdlgocx.h"
-
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
-
- extern CDrawApp theApp;
-
- /////////////////////////////////////////////////////////////////////////////
- // CDrawDoc
-
- IMPLEMENT_DYNCREATE(CDrawDoc, CDocument)
-
- BEGIN_MESSAGE_MAP(CDrawDoc, CDocument)
- //{{AFX_MSG_MAP(CDrawDoc)
- ON_COMMAND(ID_COLOR_BLACK, OnColorBlack)
- ON_UPDATE_COMMAND_UI(ID_COLOR_BLACK, OnUpdateColorBlack)
- ON_COMMAND(ID_COLOR_BLUE, OnColorBlue)
- ON_UPDATE_COMMAND_UI(ID_COLOR_BLUE, OnUpdateColorBlue)
- ON_COMMAND(ID_COLOR_GREEN, OnColorGreen)
- ON_UPDATE_COMMAND_UI(ID_COLOR_GREEN, OnUpdateColorGreen)
- ON_COMMAND(ID_COLOR_RED, OnColorRed)
- ON_UPDATE_COMMAND_UI(ID_COLOR_RED, OnUpdateColorRed)
- ON_COMMAND(ID_COLOR_WHITE, OnColorWhite)
- ON_UPDATE_COMMAND_UI(ID_COLOR_WHITE, OnUpdateColorWhite)
- ON_COMMAND(ID_DRAW_COPY, OnDrawCopy)
- ON_UPDATE_COMMAND_UI(ID_DRAW_COPY, OnUpdateDrawCopy)
- ON_COMMAND(ID_DRAW_DISABLE, OnDrawDisable)
- ON_UPDATE_COMMAND_UI(ID_DRAW_DISABLE, OnUpdateDrawDisable)
- ON_COMMAND(ID_DRAW_OBJECT, OnDrawObject)
- ON_UPDATE_COMMAND_UI(ID_DRAW_OBJECT, OnUpdateDrawObject)
- ON_COMMAND(ID_DRAW_PASTE, OnDrawPaste)
- ON_UPDATE_COMMAND_UI(ID_DRAW_PASTE, OnUpdateDrawPaste)
- ON_COMMAND(ID_THICKNESS, OnThickness)
- ON_COMMAND(ID_OBJECT_ELLIPSE, OnObjectEllipse)
- ON_UPDATE_COMMAND_UI(ID_OBJECT_ELLIPSE, OnUpdateObjectEllipse)
- ON_COMMAND(ID_OBJECT_LINE, OnObjectLine)
- ON_UPDATE_COMMAND_UI(ID_OBJECT_LINE, OnUpdateObjectLine)
- ON_COMMAND(ID_OBJECT_RECTANGLE, OnObjectRectangle)
- ON_UPDATE_COMMAND_UI(ID_OBJECT_RECTANGLE, OnUpdateObjectRectangle)
- ON_COMMAND(ID_DRAW_ZOOMIN, OnDrawZoomin)
- ON_UPDATE_COMMAND_UI(ID_DRAW_ZOOMIN, OnUpdateDrawZoomin)
- ON_COMMAND(ID_FILE_SAVE_AS, OnFileSaveAs)
- //}}AFX_MSG_MAP
- // Enable default OLE container implementation
- // ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, COleDocument::OnUpdatePasteMenu)
- // ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE_LINK, COleDocument::OnUpdatePasteLinkMenu)
- // ON_UPDATE_COMMAND_UI(ID_OLE_EDIT_CONVERT, COleDocument::OnUpdateObjectVerbMenu)
- // ON_COMMAND(ID_OLE_EDIT_CONVERT, COleDocument::OnEditConvert)
- // ON_UPDATE_COMMAND_UI(ID_OLE_EDIT_LINKS, COleDocument::OnUpdateEditLinksMenu)
- /// ON_COMMAND(ID_OLE_EDIT_LINKS, COleDocument::OnEditLinks)
- // ON_UPDATE_COMMAND_UI(ID_OLE_VERB_FIRST, COleDocument::OnUpdateObjectVerbMenu)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
-
- /////////////////////////////////////////////////////////////////////////////
- // CDrawDoc construction/destruction
-
- static const WCHAR BASED_CODE _szLicString[] =
- L"LEADTOOLS OCX Copyright (c) 1998 LEAD Technologies, Inc.";
-
- CDrawDoc::CDrawDoc()
- {
- CRect rcClient(0,0,1,1);
- BSTR lpLic = SysAllocString(_szLicString);
- m_Lead.Create("", 0, rcClient, theApp.m_pMainWnd, 0,NULL,FALSE,lpLic);
- m_Lead.ShowWindow(SW_HIDE);
- SysFreeString(lpLic);
-
-
- nColor = ID_COLOR_BLACK;
- nObject = ID_OBJECT_ELLIPSE;
- nThickness = 3;
- nDraw = ID_DRAW_DISABLE;
- }
-
- CDrawDoc::~CDrawDoc()
- {
- m_Lead.DestroyWindow();
- }
-
- /////////////////////////////////////////////////////////////////////////////
- // CDrawDoc serialization
-
- void CDrawDoc::Serialize(CArchive& ar)
- {
- if (ar.IsStoring())
- {
- // TODO: add storing code here
- }
- else
- {
- // TODO: add loading code here
- }
- }
-
- /////////////////////////////////////////////////////////////////////////////
- // CDrawDoc diagnostics
-
- #ifdef _DEBUG
- void CDrawDoc::AssertValid() const
- {
- CDocument::AssertValid();
- }
-
- void CDrawDoc::Dump(CDumpContext& dc) const
- {
- CDocument::Dump(dc);
- }
- #endif //_DEBUG
-
- /////////////////////////////////////////////////////////////////////////////
- // CDrawDoc commands
- void CDrawDoc::OnColorBlack()
- {
- nColor = ID_COLOR_BLACK;
- }
-
- void CDrawDoc::OnColorBlue()
- {
- nColor = ID_COLOR_BLUE;
- }
-
- void CDrawDoc::OnColorGreen()
- {
- nColor = ID_COLOR_GREEN;
- }
-
- void CDrawDoc::OnColorRed()
- {
- nColor = ID_COLOR_RED;
- }
-
- void CDrawDoc::OnColorWhite()
- {
- nColor = ID_COLOR_WHITE;
- }
-
- void CDrawDoc::OnUpdateColorBlack(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck( nColor == ID_COLOR_BLACK );
- }
-
- void CDrawDoc::OnUpdateColorBlue(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck( nColor == ID_COLOR_BLUE );
- }
-
- void CDrawDoc::OnUpdateColorGreen(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck( nColor == ID_COLOR_GREEN );
- }
-
- void CDrawDoc::OnUpdateColorRed(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck( nColor == ID_COLOR_RED );
- }
-
- void CDrawDoc::OnUpdateColorWhite(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck( nColor == ID_COLOR_WHITE );
- }
-
- void CDrawDoc::OnDrawCopy()
- {
- nDraw = ID_DRAW_COPY;
- }
-
- void CDrawDoc::OnDrawDisable()
- {
- nDraw = ID_DRAW_DISABLE;
- UpdateAllViews(NULL, (LPARAM)1, NULL);
- }
-
- void CDrawDoc::OnDrawObject()
- {
- nDraw = ID_DRAW_OBJECT;
- }
-
- void CDrawDoc::OnDrawPaste()
- {
- nDraw = ID_DRAW_PASTE;
- }
-
- void CDrawDoc::OnUpdateDrawCopy(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck( nDraw == ID_DRAW_COPY );
- }
-
- void CDrawDoc::OnUpdateDrawDisable(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck( nDraw == ID_DRAW_DISABLE );
- }
-
- void CDrawDoc::OnUpdateDrawObject(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck( nDraw == ID_DRAW_OBJECT );
- }
-
- void CDrawDoc::OnUpdateDrawPaste(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck( nDraw == ID_DRAW_PASTE );
- }
-
- void CDrawDoc::OnThickness()
- {
- CThickDlg dlg;
- dlg.nThickness = nThickness;
- if( dlg.DoModal() == IDOK )
- {
- nThickness = dlg.nThickness;
- }
- }
-
- BOOL CDrawDoc::OnOpenDocument(LPCTSTR lpszPathName)
- {
- int nRet;
-
- if(lpszPathName)
- {
- nRet = m_Lead.Load(lpszPathName, 0, 1, 1);
- if( nRet )
- {
- theApp.DisplayLEADError(nRet);
- return FALSE;
- }
- return TRUE;
- }
- else
- return FALSE;
- }
-
- BOOL CDrawDoc::OnSaveDocument(LPCTSTR lpszPathName)
- {
- int nRet;
-
- if(lpszPathName)
- {
- nRet = m_Lead.Save((LPSTR)lpszPathName, m_nFormat, m_nBits, m_nQFactor, m_fMultipage);
- if(nRet)
- {
- theApp.DisplayLEADError(nRet);
- return(FALSE);
- }
- SetModifiedFlag(FALSE);
- return(TRUE);
- }
- return(FALSE);
- }
-
- void CDrawDoc::OnObjectEllipse()
- {
- nObject = ID_OBJECT_ELLIPSE;
- }
-
- void CDrawDoc::OnObjectLine()
- {
- nObject = ID_OBJECT_LINE;
- }
-
- void CDrawDoc::OnObjectRectangle()
- {
- nObject = ID_OBJECT_RECTANGLE;
- }
-
- void CDrawDoc::OnUpdateObjectEllipse(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck( nObject == ID_OBJECT_ELLIPSE );
- }
-
- void CDrawDoc::OnUpdateObjectLine(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck( nObject == ID_OBJECT_LINE );
- }
-
- void CDrawDoc::OnUpdateObjectRectangle(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck( nObject == ID_OBJECT_RECTANGLE );
- }
-
- void CDrawDoc::OnDrawZoomin()
- {
- nDraw = ID_DRAW_ZOOMIN;
- }
-
- void CDrawDoc::OnUpdateDrawZoomin(CCmdUI* pCmdUI)
- {
- pCmdUI->SetCheck( nDraw == ID_DRAW_ZOOMIN );
-
- }
-
- void CDrawDoc::SetTitle(LPCTSTR lpszTitle)
- {
- // Trim the title if it contains the info that we add here.
- CString szNewTitle = lpszTitle;
- int nPos = szNewTitle.Find("(");
- if (nPos > 0)
- szNewTitle = szNewTitle.Left(nPos - 1);
-
- // Create strings for the bitmap width, height, and BPS
- CString sWidth, sHeight, sBPS;
- sWidth.Format("%d",(int)m_Lead.GetBitmapWidth());
- sHeight.Format("%d",(int)m_Lead.GetBitmapHeight());
- sBPS.Format("%d",(int)m_Lead.GetBitmapBits());
-
- // Add the bitmap width, height, and BPS to the title
- szNewTitle += " (" + sWidth + " x " + sHeight
- + " - " + sBPS + " BPP)";
-
- // Call the MFC function with the updated title.
- CDocument::SetTitle(szNewTitle);
- }
-
- void CDrawDoc::OnFileSaveAs()
- {
- CLeadDlg LTCommDlg;
- RECT rcWin;
- BOOL bContinue=FALSE;
- CString sFileName;
- int nRet;
-
- ::SetRect(&rcWin, 0, 0, 1, 1);
-
- if(LTCommDlg.Create(NULL,0,rcWin,theApp.m_pMainWnd,100))
- {
- LTCommDlg.SetEnableMethodErrors(FALSE);
- LTCommDlg.SetFileDlgFlags(0);
- LTCommDlg.SetSaveFormatFlags(DLG_FS_ALL);
- LTCommDlg.SetDialogTitle("Save File");
- LTCommDlg.SetUIFlags( DLG_FS_95STYLE | DLG_FS_MULTIPAGE | DLG_FS_QFACTOR );
- nRet = LTCommDlg.FileSave((long)theApp.m_pMainWnd->m_hWnd);
- if(nRet == 0)
- bContinue = TRUE;
- }
- if(bContinue)
- {
- sFileName = LTCommDlg.GetFileName();
- m_nFormat = LTCommDlg.GetSaveFormat();
- m_nBits = LTCommDlg.GetSaveBitsPerPixel();
- m_nQFactor = LTCommDlg.GetSaveQFactor();
- m_fMultipage = LTCommDlg.GetSaveMulti();
- m_Lead.SetSaveInterlaced(LTCommDlg.GetSaveInterlaced());
- OnSaveDocument((LPCTSTR)sFileName);
- }
- return;
- }
-