#include "resource2d\RectangularGrid.h"
#include "resource2d\CircularGrid.h"
-#define ValZWMin 1
-
#ifdef _DEBUG
//#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
-// the key for multi selection :
-#define MULTISELECTIONKEY MK_SHIFT
-
-// the key for shortcut ( use to activate dynamic rotation, panning )
-#define CASCADESHORTCUTKEY MK_CONTROL
-
-// define in witch case you want to display the popup
-#define POPUPONBUTTONDOWN
-
/////////////////////////////////////////////////////////////////////////////
// CHLRView2D
BEGIN_MESSAGE_MAP(CHLRView2D, OCC_2dView)
//{{AFX_MSG_MAP(CHLRView2D)
- ON_WM_MOUSEMOVE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
CHLRView2D::CHLRView2D()
{
+ /// TODO
+ /// Override MouseMove event to exclude rectangle selection emulation as
+ /// no selection is supported in DragEvent2D for this view.
}
CHLRView2D::~CHLRView2D()
{
}
-CHLRDoc* CHLRView2D::GetDocument() // non-debug version is inline
-{
- //ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(OCC_2dDoc)));
- return (CHLRDoc*)m_pDocument;
-}
-
-
-void CHLRView2D::OnInitialUpdate()
-{
- Handle(WNT_Window) aWNTWindow;
- aWNTWindow = new WNT_Window(GetSafeHwnd(),Quantity_NOC_GRAY);
- myV2dView = GetDocument()->GetViewer2D()->CreateView();
- myV2dView->SetWindow(aWNTWindow);
-
- // initialyse the grids dialogs
- TheRectangularGridDialog.Create(CRectangularGrid::IDD, NULL);
- TheCircularGridDialog.Create(CCircularGrid::IDD, NULL);
- TheRectangularGridDialog.SetViewer (GetDocument()->GetViewer2D());
- TheCircularGridDialog.SetViewer (GetDocument()->GetViewer2D());
-
- Standard_Integer w=100 , h=100 ; /* Debug Matrox */
- aWNTWindow->Size (w,h) ; /* Keeps me unsatisfied (rlb)..... */
- /* Resize is not supposed to be done on */
- /* Matrox */
- /* I suspect another problem elsewhere */
- ::PostMessage ( GetSafeHwnd () , WM_SIZE , SIZE_RESTORED , w + h*65536 ) ;
-}
-
-//-----------------------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------------------
-void CHLRView2D::DragEvent2D(const Standard_Integer /*x*/,
- const Standard_Integer /*y*/,
- const Standard_Integer /*TheState*/)
-{
-}
-
-
-//-----------------------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------------------
-void CHLRView2D::InputEvent2D(const Standard_Integer /*x*/,
- const Standard_Integer /*y*/)
-{
-}
-
-//-----------------------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------------------
-void CHLRView2D::MoveEvent2D(const Standard_Integer /*x*/,
- const Standard_Integer /*y*/)
+const Handle(AIS_InteractiveContext)& CHLRView2D::GetAISContext() const
{
+ return ((CHLRDoc*)m_pDocument)->GetInteractiveContext2D();
}
-//-----------------------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------------------
-void CHLRView2D::MultiMoveEvent2D(const Standard_Integer /*x*/,
- const Standard_Integer /*y*/)
-{
-}
-
-//-----------------------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------------------
-void CHLRView2D::MultiDragEvent2D(const Standard_Integer /*x*/,
- const Standard_Integer /*y*/,
- const Standard_Integer /*TheState*/)
-{
-}
-
-//-----------------------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------------------
-void CHLRView2D::MultiInputEvent2D(const Standard_Integer /*x*/,
- const Standard_Integer /*y*/)
-{
-}
-
-//-----------------------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------------------
-void CHLRView2D::OnMouseMove(UINT nFlags, CPoint point)
+CHLRDoc* CHLRView2D::GetDocument() // non-debug version is inline
{
- if ( (nFlags & MK_LBUTTON) &! (nFlags & MK_RBUTTON) ) // Left + Right is specific
- {
- if ( nFlags & CASCADESHORTCUTKEY )
- {
- // move with MB1 and CASCADESHORTCUTKEY : on the dynamic zooming
- // Do the zoom in function of mouse's coordinates
- myV2dView->Zoom(myXmax,myYmax,point.x,point.y);
- myXmax = point.x;
- myYmax = point.y;
- }
- else // if ( CASCADESHORTCUTKEY )
- {
- switch (myCurrentMode)
- {
- case CurAction2d_Nothing :
- myXmax = point.x;
- myYmax = point.y;
- DragEvent2D(myXmax,myYmax,0);
- break;
- case CurAction2d_DynamicZooming :
- myV2dView->Zoom(myXmax,myYmax,point.x,point.y);
- myXmax=point.x;
- myYmax=point.y;
- break;
- case CurAction2d_WindowZooming :
- myXmax = point.x;
- myYmax = point.y;
- break;
- case CurAction2d_DynamicPanning :
- myV2dView->Pan(point.x-myXmax,myYmax-point.y); // Realize the panning
- myXmax = point.x;
- myYmax = point.y;
- break;
- case CurAction2d_GlobalPanning :
- break;
- default :
- throw Standard_Failure(" incompatible Current Mode ");
- break;
- }
- }
- } else if ( nFlags & MK_MBUTTON)
- {
- if ( nFlags & CASCADESHORTCUTKEY )
- {
- myV2dView->Pan (point.x-myXmax,myYmax-point.y);
- myXmax = point.x;
- myYmax = point.y;
- }
- } else if ( (nFlags & MK_RBUTTON) &! (nFlags & MK_LBUTTON) )
- {
- }
- else if ( (nFlags & MK_RBUTTON) && (nFlags & MK_LBUTTON) )
- {
- if ( nFlags & CASCADESHORTCUTKEY )
- {
- myV2dView->Pan(point.x-myXmax,myYmax-point.y); // Realize the panning
- myXmax = point.x; myYmax = point.y;
- }
- }
- else
- { // No buttons
- myXmax = point.x;
- myYmax = point.y;
- if (nFlags & MULTISELECTIONKEY)
- {
- MultiMoveEvent2D(point.x,point.y);
- }
- else
- {
- MoveEvent2D(point.x,point.y);
- }
- }
+ //ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(OCC_2dDoc)));
+ return (CHLRDoc*)m_pDocument;
}
#ifdef _DEBUG