#ifdef __GNUG__
#pragma implementation "lines.h"
+#pragma implementation "linesp.h"
#endif
// For compilers that support precompilation, includes "wx.h".
#include <wx/wx.h>
#endif
-#ifdef PROLOGIO
#include <wx/wxexpr.h>
-#endif
-#if USE_IOSTREAMH
+#if wxUSE_IOSTREAMH
#include <iostream.h>
#else
#include <iostream>
wxShapeRegion *region = (wxShapeRegion *)node->Data();
region->SetText(s);
- dc.SetFont(region->GetFont());
+ dc.SetFont(* region->GetFont());
region->GetSize(&w, &h);
// Initialize the size if zero
// First, clear a rectangle for the text IF there is any
if (region->GetFormattedText().Number() > 0)
{
- dc.SetPen(g_oglWhiteBackgroundPen);
- dc.SetBrush(g_oglWhiteBackgroundBrush);
+ dc.SetPen(* g_oglWhiteBackgroundPen);
+ dc.SetBrush(* g_oglWhiteBackgroundBrush);
// Now draw the text
- if (region->GetFont()) dc.SetFont(region->GetFont());
+ if (region->GetFont()) dc.SetFont(* region->GetFont());
- dc.DrawRectangle((double)(xp - w/2.0), (double)(yp - h/2.0), (double)w, (double)h);
+ dc.DrawRectangle((long)(xp - w/2.0), (long)(yp - h/2.0), (long)w, (long)h);
- if (m_pen) dc.SetPen(m_pen);
+ if (m_pen) dc.SetPen(* m_pen);
dc.SetTextForeground(* region->GetActualColourObject());
#ifdef __WXMSW__
if (region->GetFormattedText().Number() > 0)
{
- dc.SetPen(g_oglWhiteBackgroundPen);
- dc.SetBrush(g_oglWhiteBackgroundBrush);
+ dc.SetPen(* g_oglWhiteBackgroundPen);
+ dc.SetBrush(* g_oglWhiteBackgroundBrush);
- dc.DrawRectangle((double)(xp - w/2.0), (double)(yp - h/2.0), (double)w, (double)h);
+ dc.DrawRectangle((long)(xp - w/2.0), (long)(yp - h/2.0), (long)w, (long)h);
}
}
&side1_x, &side1_y, &side2_x, &side2_y);
wxPoint points[4];
- points[0].x = tip_x; points[0].y = tip_y;
- points[1].x = side1_x; points[1].y = side1_y;
- points[2].x = side2_x; points[2].y = side2_y;
- points[3].x = tip_x; points[3].y = tip_y;
+ points[0].x = (int) tip_x; points[0].y = (int) tip_y;
+ points[1].x = (int) side1_x; points[1].y = (int) side1_y;
+ points[2].x = (int) side2_x; points[2].y = (int) side2_y;
+ points[3].x = (int) tip_x; points[3].y = (int) tip_y;
- dc.SetPen(m_pen);
- dc.SetBrush(m_brush);
+ dc.SetPen(* m_pen);
+ dc.SetBrush(* m_brush);
dc.DrawPolygon(4, points);
break;
}
double x1 = (double)(x - (diameter/2.0));
double y1 = (double)(y - (diameter/2.0));
- dc.SetPen(m_pen);
+ dc.SetPen(* m_pen);
if (arrow->_GetType() == ARROW_HOLLOW_CIRCLE)
- dc.SetBrush(g_oglWhiteBackgroundBrush);
+ dc.SetBrush(* g_oglWhiteBackgroundBrush);
else
- dc.SetBrush(m_brush);
+ dc.SetBrush(* m_brush);
- dc.DrawEllipse(x1, y1, diameter, diameter);
+ dc.DrawEllipse((long) x1, (long) y1, (long) diameter, (long) diameter);
break;
}
case ARROW_SINGLE_OBLIQUE:
arrow->GetMetaFile()->GetBounds(&minX, &minY, &maxX, &maxY);
// Make erasing rectangle slightly bigger or you get droppings.
int extraPixels = 4;
- dc.DrawRectangle((double)(deltaX + x + minX - (extraPixels/2.0)), (double)(deltaY + y + minY - (extraPixels/2.0)),
- (double)(maxX - minX + extraPixels), (double)(maxY - minY + extraPixels));
+ dc.DrawRectangle((long)(deltaX + x + minX - (extraPixels/2.0)), (long)(deltaY + y + minY - (extraPixels/2.0)),
+ (long)(maxX - minX + extraPixels), (long)(maxY - minY + extraPixels));
}
else
arrow->GetMetaFile()->Draw(dc, x+deltaX, y+deltaY);
double bound_x, bound_y;
GetBoundingBoxMax(&bound_x, &bound_y);
- if (m_font) dc.SetFont(m_font);
+ if (m_font) dc.SetFont(* m_font);
// Undraw text regions
for (int i = 0; i < 3; i++)
}
// Undraw line
- dc.SetPen(g_oglWhiteBackgroundPen);
- dc.SetBrush(g_oglWhiteBackgroundBrush);
+ dc.SetPen(* g_oglWhiteBackgroundPen);
+ dc.SetBrush(* g_oglWhiteBackgroundBrush);
// Drawing over the line only seems to work if the line has a thickness
// of 1.
if (old_pen && (old_pen->GetWidth() > 1))
{
- dc.DrawRectangle((double)(m_xpos - (bound_x/2.0) - 2.0), (double)(m_ypos - (bound_y/2.0) - 2.0),
- (double)(bound_x+4.0), (double)(bound_y+4.0));
+ dc.DrawRectangle((long)(m_xpos - (bound_x/2.0) - 2.0), (long)(m_ypos - (bound_y/2.0) - 2.0),
+ (long)(bound_x+4.0), (long)(bound_y+4.0));
}
else
{
// if (moveControlPoints && m_lineControlPoints && !(x_offset == 0.0 && y_offset == 0.0))
// Only move control points if it's a self link. And only works if attachment mode is ON.
- if ((m_from == m_to) && m_from->GetAttachmentMode() && moveControlPoints && m_lineControlPoints && !(x_offset == 0.0 && y_offset == 0.0))
+ if ((m_from == m_to) && (m_from->GetAttachmentMode() != ATTACHMENT_MODE_NONE) && moveControlPoints && m_lineControlPoints && !(x_offset == 0.0 && y_offset == 0.0))
{
wxNode *node = m_lineControlPoints->First();
while (node)
if (m_lineControlPoints->Number() > 2)
{
- if (m_from->GetAttachmentMode())
+ if (m_from->GetAttachmentMode() != ATTACHMENT_MODE_NONE)
{
int nth, no_arcs;
FindNth(m_from, &nth, &no_arcs, FALSE); // Not incoming
(double)second_point->x, (double)second_point->y,
&end_x, &end_y);
- if (m_to->GetAttachmentMode())
+ if (m_to->GetAttachmentMode() != ATTACHMENT_MODE_NONE)
{
int nth, no_arcs;
FindNth(m_to, &nth, &no_arcs, TRUE); // Incoming
double toX = m_to->GetX();
double toY = m_to->GetY();
- if (m_from->GetAttachmentMode())
+ if (m_from->GetAttachmentMode() != ATTACHMENT_MODE_NONE)
{
int nth, no_arcs;
FindNth(m_from, &nth, &no_arcs, FALSE);
fromY = end_y;
}
- if (m_to->GetAttachmentMode())
+ if (m_to->GetAttachmentMode() != ATTACHMENT_MODE_NONE)
{
int nth, no_arcs;
FindNth(m_to, &nth, &no_arcs, TRUE);
toY = other_end_y;
}
- if (!m_from->GetAttachmentMode())
+ if (m_from->GetAttachmentMode() == ATTACHMENT_MODE_NONE)
(void) m_from->GetPerimeterPoint(m_from->GetX(), m_from->GetY(),
toX, toY,
&end_x, &end_y);
- if (!m_to->GetAttachmentMode())
+ if (m_to->GetAttachmentMode() == ATTACHMENT_MODE_NONE)
(void) m_to->GetPerimeterPoint(m_to->GetX(), m_to->GetY(),
fromX, fromY,
&other_end_x, &other_end_y);
if (m_lineControlPoints)
{
if (m_pen)
- dc.SetPen(m_pen);
+ dc.SetPen(* m_pen);
if (m_brush)
- dc.SetBrush(m_brush);
+ dc.SetBrush(* m_brush);
int n = m_lineControlPoints->Number();
wxPoint *points = new wxPoint[n];
wxPen *solid_pen =
wxThePenList->FindOrCreatePen(m_pen->GetColour(), 1, wxSOLID);
if (solid_pen)
- dc.SetPen(solid_pen);
+ dc.SetPen(* solid_pen);
}
DrawArrows(dc);
}
}
}
-
-#ifdef PROLOGIO
-char *wxLineShape::GetFunctor()
-{
- return "arc_image";
-}
-#endif
-
void wxLineShape::SetTo(wxShape *object)
{
m_to = object;
}
#ifdef PROLOGIO
-void wxLineShape::WritePrologAttributes(wxExpr *clause)
+void wxLineShape::WriteAttributes(wxExpr *clause)
{
- wxShape::WritePrologAttributes(clause);
+ wxShape::WriteAttributes(clause);
if (m_from)
clause->AddAttributeValue("from", m_from->GetId());
clause->AddAttributeValue("keep_lines_straight", (long)m_maintainStraightLines);
// Make a list of lists for the (sp)line controls
- wxExpr *list = new wxExpr(PrologList);
+ wxExpr *list = new wxExpr(wxExprList);
wxNode *node = m_lineControlPoints->First();
while (node)
{
wxRealPoint *point = (wxRealPoint *)node->Data();
- wxExpr *point_list = new wxExpr(PrologList);
+ wxExpr *point_list = new wxExpr(wxExprList);
wxExpr *x_expr = new wxExpr((double) point->x);
wxExpr *y_expr = new wxExpr((double) point->y);
point_list->Append(x_expr);
// (arrowType arrowEnd xOffset arrowSize)
if (m_arcArrows.Number() > 0)
{
- wxExpr *arrow_list = new wxExpr(PrologList);
+ wxExpr *arrow_list = new wxExpr(wxExprList);
node = m_arcArrows.First();
while (node)
{
wxArrowHead *head = (wxArrowHead *)node->Data();
- wxExpr *head_list = new wxExpr(PrologList);
+ wxExpr *head_list = new wxExpr(wxExprList);
head_list->Append(new wxExpr((long)head->_GetType()));
head_list->Append(new wxExpr((long)head->GetArrowEnd()));
head_list->Append(new wxExpr(head->GetXOffset()));
head_list->Append(new wxExpr(head->GetArrowSize()));
- head_list->Append(new wxExpr(PrologString, (head->GetName() ? head->GetName() : "")));
+ head_list->Append(new wxExpr(wxExprString, head->GetName()));
head_list->Append(new wxExpr(head->GetId()));
// New members of wxArrowHead
}
}
-void wxLineShape::ReadPrologAttributes(wxExpr *clause)
+void wxLineShape::ReadAttributes(wxExpr *clause)
{
- wxShape::ReadPrologAttributes(clause);
+ wxShape::ReadAttributes(clause);
int iVal = (int) m_isSpline;
clause->AssignAttributeValue("is_spline", &iVal);
if (lpt->m_type == CONTROL_POINT_ENDPOINT_FROM || lpt->m_type == CONTROL_POINT_ENDPOINT_TO)
{
- m_canvas->SetCursor(g_oglBullseyeCursor);
+ m_canvas->SetCursor(* g_oglBullseyeCursor);
lpt->m_oldCursor = wxSTANDARD_CURSOR;
}
}
if (lpt->m_type == CONTROL_POINT_ENDPOINT_FROM)
{
if (lpt->m_oldCursor)
- m_canvas->SetCursor(lpt->m_oldCursor);
+ m_canvas->SetCursor(* lpt->m_oldCursor);
// this->Erase(dc);
if (lpt->m_type == CONTROL_POINT_ENDPOINT_TO)
{
if (lpt->m_oldCursor)
- m_canvas->SetCursor(lpt->m_oldCursor);
+ m_canvas->SetCursor(* lpt->m_oldCursor);
// lpt->m_xpos = x; lpt->m_ypos = y;
if (m_pen)
{
if (m_pen->GetWidth() == 0)
- dc.SetPen(g_oglTransparentPen);
+ dc.SetPen(* g_oglTransparentPen);
else
- dc.SetPen(m_pen);
+ dc.SetPen(* m_pen);
}
- dc.SetBrush(wxTRANSPARENT_BRUSH);
+ dc.SetBrush(* wxTRANSPARENT_BRUSH);
if (m_cornerRadius > 0.0)
dc.DrawRoundedRectangle(WXROUND(x1), WXROUND(y1), WXROUND(m_width), WXROUND(m_height), m_cornerRadius);