// Created: 12/07/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
-// Licence: wxWindows licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
-#pragma implementation "canvas.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#endif
#ifndef WX_PRECOMP
-#include <wx/wx.h>
+#include "wx/wx.h"
#endif
-#include <wx/wxexpr.h>
+#if wxUSE_PROLOGIO
+#include "wx/deprecated/wxexpr.h"
+#endif
#ifdef new
#undef new
#endif
-#if wxUSE_IOSTREAMH
-#include <iostream.h>
-#else
-#include <iostream>
-#endif
-
#include <ctype.h>
#include <math.h>
#include <stdlib.h>
-#include <wx/ogl/basic.h>
-#include <wx/ogl/basicp.h>
-#include <wx/ogl/canvas.h>
-#include <wx/ogl/ogldiag.h>
-#include <wx/ogl/misc.h>
-#include <wx/ogl/lines.h>
-#include <wx/ogl/composit.h>
+#include "wx/ogl/ogl.h"
#define CONTROL_POINT_SIZE 6
EVT_MOUSE_EVENTS(wxShapeCanvas::OnMouseEvent)
END_EVENT_TABLE()
+const wxChar* wxShapeCanvasNameStr = wxT("shapeCanvas");
+
// Object canvas
-wxShapeCanvas::wxShapeCanvas(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style):
- wxScrolledWindow(parent, id, pos, size, style)
+wxShapeCanvas::wxShapeCanvas(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name):
+ wxScrolledWindow(parent, id, pos, size, style, name)
{
m_shapeDiagram = NULL;
m_dragState = NoDragging;
m_oldDragY = 0;
m_firstDragX = 0;
m_firstDragY = 0;
- m_checkTolerance = TRUE;
+ m_checkTolerance = true;
}
wxShapeCanvas::~wxShapeCanvas()
{
}
-void wxShapeCanvas::OnPaint(wxPaintEvent& event)
+void wxShapeCanvas::OnPaint(wxPaintEvent& WXUNUSED(event))
{
wxPaintDC dc(this);
// If we've ignored the tolerance once, then ALWAYS ignore
// tolerance in this drag, even if we come back within
// the tolerance range.
- m_checkTolerance = FALSE;
+ m_checkTolerance = false;
}
// Dragging - note that the effect of dragging is left entirely up
else if (dragging && m_draggedShape && m_dragState == ContinueDraggingLeft)
{
// Continue dragging
- m_draggedShape->GetEventHandler()->OnDragLeft(FALSE, m_oldDragX, m_oldDragY, keys, m_draggedAttachment);
- m_draggedShape->GetEventHandler()->OnDragLeft(TRUE, (double)x, (double)y, keys, m_draggedAttachment);
+ m_draggedShape->GetEventHandler()->OnDragLeft(false, m_oldDragX, m_oldDragY, keys, m_draggedAttachment);
+ m_draggedShape->GetEventHandler()->OnDragLeft(true, (double)x, (double)y, keys, m_draggedAttachment);
m_oldDragX = x; m_oldDragY = y;
}
else if (event.LeftUp() && m_draggedShape && m_dragState == ContinueDraggingLeft)
{
m_dragState = NoDragging;
- m_checkTolerance = TRUE;
+ m_checkTolerance = true;
- m_draggedShape->GetEventHandler()->OnDragLeft(FALSE, m_oldDragX, m_oldDragY, keys, m_draggedAttachment);
+ m_draggedShape->GetEventHandler()->OnDragLeft(false, m_oldDragX, m_oldDragY, keys, m_draggedAttachment);
m_draggedShape->GetEventHandler()->OnEndDragLeft((double)x, (double)y, keys, m_draggedAttachment);
m_draggedShape = NULL;
else if (dragging && m_draggedShape && m_dragState == ContinueDraggingRight)
{
// Continue dragging
- m_draggedShape->GetEventHandler()->OnDragRight(FALSE, m_oldDragX, m_oldDragY, keys, m_draggedAttachment);
- m_draggedShape->GetEventHandler()->OnDragRight(TRUE, (double)x, (double)y, keys, m_draggedAttachment);
+ m_draggedShape->GetEventHandler()->OnDragRight(false, m_oldDragX, m_oldDragY, keys, m_draggedAttachment);
+ m_draggedShape->GetEventHandler()->OnDragRight(true, (double)x, (double)y, keys, m_draggedAttachment);
m_oldDragX = x; m_oldDragY = y;
}
else if (event.RightUp() && m_draggedShape && m_dragState == ContinueDraggingRight)
{
m_dragState = NoDragging;
- m_checkTolerance = TRUE;
+ m_checkTolerance = true;
- m_draggedShape->GetEventHandler()->OnDragRight(FALSE, m_oldDragX, m_oldDragY, keys, m_draggedAttachment);
+ m_draggedShape->GetEventHandler()->OnDragRight(false, m_oldDragX, m_oldDragY, keys, m_draggedAttachment);
m_draggedShape->GetEventHandler()->OnEndDragRight((double)x, (double)y, keys, m_draggedAttachment);
m_draggedShape = NULL;
else if (dragging && !m_draggedShape && m_dragState == ContinueDraggingLeft)
{
// Continue dragging
- OnDragLeft(FALSE, m_oldDragX, m_oldDragY, keys);
- OnDragLeft(TRUE, (double)x, (double)y, keys);
+ OnDragLeft(false, m_oldDragX, m_oldDragY, keys);
+ OnDragLeft(true, (double)x, (double)y, keys);
m_oldDragX = x; m_oldDragY = y;
}
else if (event.LeftUp() && !m_draggedShape && m_dragState == ContinueDraggingLeft)
{
m_dragState = NoDragging;
- m_checkTolerance = TRUE;
+ m_checkTolerance = true;
- OnDragLeft(FALSE, m_oldDragX, m_oldDragY, keys);
+ OnDragLeft(false, m_oldDragX, m_oldDragY, keys);
OnEndDragLeft((double)x, (double)y, keys);
m_draggedShape = NULL;
}
else if (dragging && !m_draggedShape && m_dragState == ContinueDraggingRight)
{
// Continue dragging
- OnDragRight(FALSE, m_oldDragX, m_oldDragY, keys);
- OnDragRight(TRUE, (double)x, (double)y, keys);
+ OnDragRight(false, m_oldDragX, m_oldDragY, keys);
+ OnDragRight(true, (double)x, (double)y, keys);
m_oldDragX = x; m_oldDragY = y;
}
else if (event.RightUp() && !m_draggedShape && m_dragState == ContinueDraggingRight)
{
m_dragState = NoDragging;
- m_checkTolerance = TRUE;
+ m_checkTolerance = true;
- OnDragRight(FALSE, m_oldDragX, m_oldDragY, keys);
+ OnDragRight(false, m_oldDragX, m_oldDragY, keys);
OnEndDragRight((double)x, (double)y, keys);
m_draggedShape = NULL;
}
// Non-dragging events
else if (event.IsButton())
{
- m_checkTolerance = TRUE;
+ m_checkTolerance = true;
// Find the nearest object
int attachment = 0;
return NULL;
}
-// Helper function: TRUE if 'contains' wholly contains 'contained'.
+// Helper function: true if 'contains' wholly contains 'contained'.
static bool WhollyContains(wxShape *contains, wxShape *contained)
{
double xp1, yp1, xp2, yp2;
// the other objects
// (b) to find the control points FIRST if they exist
- wxNode *current = GetDiagram()->GetShapeList()->Last();
+ wxObjectList::compatibility_iterator current = GetDiagram()->GetShapeList()->GetLast();
while (current)
{
- wxShape *object = (wxShape *)current->Data();
+ wxShape *object = (wxShape *)current->GetData();
double dist;
int temp_attachment;
}
}
if (current)
- current = current->Previous();
+ current = current->GetPrevious();
}
- current = GetDiagram()->GetShapeList()->Last();
+ current = GetDiagram()->GetShapeList()->GetLast();
while (current)
{
- wxShape *object = (wxShape *)current->Data();
+ wxShape *object = (wxShape *)current->GetData();
double dist;
int temp_attachment;
// Check for division in case line straddles divisions (i.e. is not wholly contained).
if (!nearest_object || !(object->IsKindOf(CLASSINFO(wxDivisionShape)) || WhollyContains(object, nearest_object)))
{
- nearest = dist;
nearest_object = object;
nearest_attachment = temp_attachment;
- current = NULL;
+ current = GetDiagram()->GetShapeList()->GetFirst()->GetPrevious(); // finish loop
}
}
}
if (current)
- current = current->Previous();
+ current = current->GetPrevious();
}
*attachment = nearest_attachment;
*
*/
-void wxShapeCanvas::OnLeftClick(double x, double y, int keys)
+void wxShapeCanvas::OnLeftClick(double WXUNUSED(x), double WXUNUSED(y), int WXUNUSED(keys))
{
}
-void wxShapeCanvas::OnRightClick(double x, double y, int keys)
+void wxShapeCanvas::OnRightClick(double WXUNUSED(x), double WXUNUSED(y), int WXUNUSED(keys))
{
}
-void wxShapeCanvas::OnDragLeft(bool draw, double x, double y, int keys)
+void wxShapeCanvas::OnDragLeft(bool WXUNUSED(draw), double WXUNUSED(x), double WXUNUSED(y), int WXUNUSED(keys))
{
}
-void wxShapeCanvas::OnBeginDragLeft(double x, double y, int keys)
+void wxShapeCanvas::OnBeginDragLeft(double WXUNUSED(x), double WXUNUSED(y), int WXUNUSED(keys))
{
}
-void wxShapeCanvas::OnEndDragLeft(double x, double y, int keys)
+void wxShapeCanvas::OnEndDragLeft(double WXUNUSED(x), double WXUNUSED(y), int WXUNUSED(keys))
{
}
-void wxShapeCanvas::OnDragRight(bool draw, double x, double y, int keys)
+void wxShapeCanvas::OnDragRight(bool WXUNUSED(draw), double WXUNUSED(x), double WXUNUSED(y), int WXUNUSED(keys))
{
}
-void wxShapeCanvas::OnBeginDragRight(double x, double y, int keys)
+void wxShapeCanvas::OnBeginDragRight(double WXUNUSED(x), double WXUNUSED(y), int WXUNUSED(keys))
{
}
-void wxShapeCanvas::OnEndDragRight(double x, double y, int keys)
+void wxShapeCanvas::OnEndDragRight(double WXUNUSED(x), double WXUNUSED(y), int WXUNUSED(keys))
{
}