//----------------------------------------------------------------------------
// wxCanvasObject
//----------------------------------------------------------------------------
-enum DRAGMODE {DRAG_RECTANGLE,DRAG_ONTOP,DRAG_REDRAW};
+enum wxDRAG_MODE
+{
+ wxDRAG_RECTANGLE,
+ wxDRAG_ONTOP,
+ wxDRAG_REDRAW
+};
//:defenition
// wxCanvasObject is the base class for Canvas Objects.
//DRAG_RECTANGLE = as a rectangle when drag is in progress |
//DRAG_ONTOP = only redraw the object when dragging |
//DRAG_REDRAW = redraw the damaged areas when dragging
- void SetDragMode(DRAGMODE mode) { m_dragmode=mode; };
+ void SetDragMode(wxDRAG_MODE mode) { m_dragmode=mode; };
//return the dragmode
- DRAGMODE GetDragMode() { return m_dragmode; };
+ wxDRAG_MODE GetDragMode() { return m_dragmode; };
//called when starting a drag
virtual void DragStart();
bool m_isImage:1;
bool m_visible:1;
bool m_dragable:1;
- DRAGMODE m_dragmode:2;
+ wxDRAG_MODE m_dragmode:3;
//boundingbox in world coordinates
wxBoundingBox m_bbox;
if (event.LeftDown())
{
CaptureMouse();
- if (m_dragmode != DRAG_REDRAW)
+ if (m_dragmode != wxDRAG_REDRAW)
DragStart();
}
else if (event.LeftUp())
{
ReleaseMouse();
- if (m_dragmode != DRAG_REDRAW)
+ if (m_dragmode != wxDRAG_REDRAW)
DragEnd();
}
else if (IsCapturedMouse())
{
- if (m_dragmode != DRAG_REDRAW)
+ if (m_dragmode != wxDRAG_REDRAW)
DragRelative(x-xprev,y-yprev);
else
MoveRelative(x-xprev,y-yprev);
if (event.LeftDown())
{
obj->CaptureMouse();
- if (obj->GetDragMode() != DRAG_REDRAW)
+ if (obj->GetDragMode() != wxDRAG_REDRAW)
obj->DragStart();
}
else if (event.LeftUp())
{
obj->ReleaseMouse();
- if (obj->GetDragMode() != DRAG_REDRAW)
+ if (obj->GetDragMode() != wxDRAG_REDRAW)
obj->DragEnd();
}
else if (obj->IsCapturedMouse())
{
- if (obj->GetDragMode() != DRAG_REDRAW)
+ if (obj->GetDragMode() != wxDRAG_REDRAW)
obj->DragRelative(x-xprev,y-yprev);
else
obj->MoveRelative(x-xprev,y-yprev);
m_splitter = new MySplitterWindow(this, SPLITTER_WINDOW);
m_canvas1 = new MyCanvas(&m_canvasadmin, m_splitter, CANVAS1, wxPoint(0, 0), wxSize(400, 400),wxHSCROLL|wxVSCROLL);
- m_canvas1->SetYaxis(TRUE);
+ m_canvas1->SetYaxis(FALSE);
m_canvas1->SetMappingScroll(-300,-300,500,500,false);
m_canvas1->SetScroll(-400,-400,600,600);
m_canvas1->SetColour(wxColour(255, 255, 255) );
m_datatree->Append( new wxCanvasLine( 10,-15,i,300 ) );
/*
m_sm4 = new wxCanvasImage( image, 0,270,64,32 );
- m_sm4->SetDragMode(DRAG_RECTANGLE);
+ m_sm4->SetDragMode(wxDRAG_RECTANGLE);
m_datatree->Append( m_sm4 );
*/
m_ref2 = new MywxCanvasObjectRef(80,450, group1);
m_ref2->SetRotation(-35);
- m_ref2->SetDragMode(DRAG_RECTANGLE);
+ m_ref2->SetDragMode(wxDRAG_RECTANGLE);
m_datatree->Prepend( m_ref2 );
wxCanvasCircle* cir = new wxCanvasCircle( -100, -150, 100 );
cir->SetBrush(wxBrush(wxColour(19,215,6),wxHORIZONTAL_HATCH ));
cir->SetPen(wxPen(wxColour(198,3,105 ),30,wxSOLID));
- cir->SetDragMode(DRAG_REDRAW);
+ cir->SetDragMode(wxDRAG_REDRAW);
m_datatree->Prepend( cir );
wxCanvasEllipse* elp = new wxCanvasEllipse( -100, 250, 100,300 );
m_isVector = FALSE;
m_isImage = FALSE;
m_visible = TRUE;
- m_dragmode = DRAG_ONTOP;
+ m_dragmode = wxDRAG_ONTOP;
// handy when debugging
-// m_dragmode = DRAG_RECTANGLE;
+// m_dragmode = wxDRAG_RECTANGLE;
m_dragable = TRUE;
}
void wxCanvasObject::DragStart()
{
- if (m_dragmode == DRAG_RECTANGLE)
+ if (m_dragmode == wxDRAG_RECTANGLE)
{
this->SetVisible(FALSE);
wxTransformMatrix help;
dc.SetBrush(wxNullBrush);
dc.SetPen(wxNullPen);
}
- else
+ else if (m_dragmode != wxDRAG_REDRAW)
{
this->SetVisible(FALSE);
wxTransformMatrix help;
void wxCanvasObject::DragRelative( double x, double y)
{
- if (m_dragmode == DRAG_RECTANGLE)
+ if (m_dragmode == wxDRAG_RECTANGLE)
{
wxTransformMatrix help;
dc.SetBrush(wxNullBrush);
dc.SetPen(wxNullPen);
}
- else
+ else if (m_dragmode != wxDRAG_REDRAW)
{
wxClientDC dc(m_admin->GetActive());
wxMemoryDC tmp;
dcm.SelectObject(wxNullBitmap);
this->SetVisible(FALSE);
}
+ else
+ MoveRelative(x,y);
}