196 lines
4.3 KiB
C++
196 lines
4.3 KiB
C++
// RulerBarView.cpp : implementation of the CRulerBarView class
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "RulerBar.h"
|
|
|
|
#include "RulerBarDoc.h"
|
|
#include "RulerBarView.h"
|
|
|
|
#include "MainFrm.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CRulerBarView
|
|
|
|
IMPLEMENT_DYNCREATE(CRulerBarView, CEditView)
|
|
|
|
BEGIN_MESSAGE_MAP(CRulerBarView, CEditView)
|
|
//{{AFX_MSG_MAP(CRulerBarView)
|
|
ON_WM_CREATE()
|
|
ON_WM_CONTEXTMENU()
|
|
//}}AFX_MSG_MAP
|
|
// Standard printing commands
|
|
ON_COMMAND(ID_FILE_PRINT, CEditView::OnFilePrint)
|
|
ON_COMMAND(ID_FILE_PRINT_DIRECT, CEditView::OnFilePrint)
|
|
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CEditView::OnFilePrintPreview)
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CRulerBarView construction/destruction
|
|
|
|
CRulerBarView::CRulerBarView()
|
|
{
|
|
// TODO: add construction code here
|
|
|
|
}
|
|
|
|
CRulerBarView::~CRulerBarView()
|
|
{
|
|
}
|
|
|
|
BOOL CRulerBarView::PreCreateWindow(CREATESTRUCT& cs)
|
|
{
|
|
// TODO: Modify the Window class or styles here by modifying
|
|
// the CREATESTRUCT cs
|
|
|
|
BOOL bPreCreated = CEditView::PreCreateWindow(cs);
|
|
cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL); // Enable word-wrapping
|
|
|
|
return bPreCreated;
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CRulerBarView drawing
|
|
|
|
void CRulerBarView::OnDraw(CDC* pDC)
|
|
{
|
|
CRulerBarDoc* pDoc = GetDocument();
|
|
ASSERT_VALID(pDoc);
|
|
// TODO: add draw code for native data here
|
|
|
|
UNREFERENCED_PARAMETER(pDC);
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CRulerBarView printing
|
|
|
|
BOOL CRulerBarView::OnPreparePrinting(CPrintInfo* pInfo)
|
|
{
|
|
// default CEditView preparation
|
|
return CEditView::OnPreparePrinting(pInfo);
|
|
}
|
|
|
|
void CRulerBarView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
|
|
{
|
|
// Default CEditView begin printing.
|
|
CEditView::OnBeginPrinting(pDC, pInfo);
|
|
}
|
|
|
|
void CRulerBarView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)
|
|
{
|
|
// Default CEditView end printing
|
|
CEditView::OnEndPrinting(pDC, pInfo);
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CRulerBarView diagnostics
|
|
|
|
#ifdef _DEBUG
|
|
void CRulerBarView::AssertValid() const
|
|
{
|
|
CEditView::AssertValid();
|
|
}
|
|
|
|
void CRulerBarView::Dump(CDumpContext& dc) const
|
|
{
|
|
CEditView::Dump(dc);
|
|
}
|
|
|
|
CRulerBarDoc* CRulerBarView::GetDocument() // non-debug version is inline
|
|
{
|
|
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CRulerBarDoc)));
|
|
return (CRulerBarDoc*)m_pDocument;
|
|
}
|
|
#endif //_DEBUG
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CRulerBarView message handlers
|
|
|
|
int CRulerBarView::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
|
{
|
|
if (CEditView::OnCreate(lpCreateStruct) == -1)
|
|
return -1;
|
|
|
|
// TODO: Add your specialized creation code here
|
|
VERIFY(m_ruler.Attach(this,TRUE,TRUE));
|
|
|
|
UpdateRulerBars();
|
|
|
|
return 0;
|
|
}
|
|
|
|
void CRulerBarView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
|
|
{
|
|
// TODO: Add your specialized code here and/or call the base class
|
|
UNREFERENCED_PARAMETER(pSender);
|
|
UNREFERENCED_PARAMETER(lHint);
|
|
UNREFERENCED_PARAMETER(pHint);
|
|
|
|
UpdateRulerBars();
|
|
}
|
|
|
|
void CRulerBarView::UpdateRulerBars()
|
|
{
|
|
ASSERT(m_ruler.IsAttached());
|
|
|
|
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
|
|
|
|
m_ruler.SetShowHorzRulerBar(pMainFrame->m_bShowHorz);
|
|
m_ruler.SetShowVertRulerBar(pMainFrame->m_bShowVert);
|
|
|
|
m_ruler.SetVertRulerBarWidth(pMainFrame->m_nSize);
|
|
m_ruler.SetHorzRulerBarHeight(pMainFrame->m_nSize);
|
|
|
|
switch(pMainFrame->m_nUnit)
|
|
{
|
|
case 0:
|
|
{
|
|
m_ruler.CalibrateRuler(100,TRUE,FALSE);
|
|
m_ruler.CalibrateRuler(100,FALSE,FALSE);
|
|
m_ruler.RedrawAttached();
|
|
|
|
break;
|
|
}
|
|
case 1:
|
|
{
|
|
m_ruler.GetHorzRulerBar()->SetCalibrate(254,FALSE);
|
|
m_ruler.GetVertRulerBar()->SetCalibrate(254,FALSE);
|
|
m_ruler.RedrawAttached();
|
|
|
|
break;
|
|
}
|
|
case 2:
|
|
{
|
|
m_ruler.GetHorzRulerBar()->SetCalibrate(2540,FALSE);
|
|
m_ruler.GetVertRulerBar()->SetCalibrate(2540,FALSE);
|
|
m_ruler.RedrawAttached();
|
|
|
|
break;
|
|
}
|
|
default:
|
|
ASSERT(FALSE);
|
|
}
|
|
}
|
|
|
|
|
|
void CRulerBarView::OnContextMenu(CWnd* pWnd, CPoint point)
|
|
{
|
|
UNREFERENCED_PARAMETER(pWnd);
|
|
|
|
// TODO: Add your message handler code here
|
|
CMenu menu;
|
|
if(menu.CreatePopupMenu())
|
|
{
|
|
menu.AppendMenu(MF_STRING,ID_VIEW_CUSTOMIZE_RULERS,
|
|
_T("&Customize Ruler Bars"));
|
|
|
|
menu.TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,AfxGetMainWnd());
|
|
}
|
|
}
|