From: Robin Dunn Date: Mon, 13 Sep 1999 03:08:57 +0000 (+0000) Subject: Some OGl updates: X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/a097c93d4feee4f424476b5e8a91a5c1c52e1c1e Some OGl updates: uses wxINVERT instead of wxXOR a couple minor tweaks VC makefiles now use Debug and Release for object files depending on FINAL git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3623 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/utils/ogl/docs/ogl.tex b/utils/ogl/docs/ogl.tex index e02dba2772..c9c9c215f3 100644 --- a/utils/ogl/docs/ogl.tex +++ b/utils/ogl/docs/ogl.tex @@ -11,7 +11,7 @@ \input psbox.tex \parindent 0pt \parskip 11pt -\title{Manual for Object Graphics Library 3.0} +\title{Object Graphics Library 3.0} \author{Julian Smart} \date{September 1998} diff --git a/utils/ogl/docs/tex2rtf.ini b/utils/ogl/docs/tex2rtf.ini index a71be69313..41dd2cffa3 100644 --- a/utils/ogl/docs/tex2rtf.ini +++ b/utils/ogl/docs/tex2rtf.ini @@ -24,3 +24,12 @@ combineSubSections = yes \const [0] {{\bf const}} \constfunc [3] {{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}} \windowstyle [1] {{\bf #1}\index{#1}} + +;; +;; These two are for generating MS HTML Help project, contents and index files. +;; +htmlWorkshopFiles = true +htmlIndex = true +\pythonnote [1] {{\bf \fcol{blue}{wxPython note:}} #1} +%\pythonnote [1] {} + diff --git a/utils/ogl/samples/ogledit/makefile.vc b/utils/ogl/samples/ogledit/makefile.vc index 37336c627a..d4c3e723c2 100644 --- a/utils/ogl/samples/ogledit/makefile.vc +++ b/utils/ogl/samples/ogledit/makefile.vc @@ -2,7 +2,7 @@ # File: makefile.vc # Author: Julian Smart # Created: 1993 -# Updated: +# Updated: # Copyright: (c) 1993, AIAI, University of Edinburgh # # "%W% %G%" @@ -20,7 +20,7 @@ THISDIR = $(WXDIR)\utils\ogl\samples\ogledit OGLDIR = $(WXDIR)\utils\ogl OGLINC = $(OGLDIR)\src -OGLLIB = $(WXDIR)\lib\ogl.lib +OGLLIB = $(WXDIR)\lib\ogl$(LIBEXT).lib PROGRAM=ogledit diff --git a/utils/ogl/samples/studio/makefile.vc b/utils/ogl/samples/studio/makefile.vc index f56b35519b..b88314a836 100644 --- a/utils/ogl/samples/studio/makefile.vc +++ b/utils/ogl/samples/studio/makefile.vc @@ -2,7 +2,7 @@ # File: makefile.vc # Author: Julian Smart # Created: 1999 -# Updated: +# Updated: # Copyright: (c) Julian Smart # # "%W% %G%" @@ -20,7 +20,7 @@ THISDIR = $(STUDIODIR) OGLDIR = $(WXDIR)\utils\ogl OGLINC = $(OGLDIR)\src -OGLLIB = $(WXDIR)\lib\ogl.lib +OGLLIB = $(WXDIR)\lib\ogl$(LIBEXT).lib !include $(WXDIR)\src\makevc.env @@ -32,7 +32,7 @@ PROGRAM=studio OBJECTS = $(PROGRAM).obj doc.obj shapes.obj symbols.obj view.obj cspalette.obj\ mainfrm.obj project.obj dialogs.obj csprint.obj -all: wx ogl $(PROGRAM).exe +all: ogl $(PROGRAM).exe $(PROGRAM): $(PROGRAM).exe diff --git a/utils/ogl/src/basic.cpp b/utils/ogl/src/basic.cpp index 19426d340e..24a51a3d24 100644 --- a/utils/ogl/src/basic.cpp +++ b/utils/ogl/src/basic.cpp @@ -602,7 +602,7 @@ void wxShape::FormatText(wxDC& dc, const wxString& s, int i) wxNode *node = m_regions.Nth(i); if (!node) return; - + wxShapeRegion *region = (wxShapeRegion *)node->Data(); region->SetText(s); dc.SetFont(* region->GetFont()); @@ -709,7 +709,7 @@ wxShape *wxShape::GetTopAncestor() { if (!GetParent()) return this; - + if (GetParent()->IsKindOf(CLASSINFO(wxDivisionShape))) return this; else return GetParent()->GetTopAncestor(); @@ -1182,7 +1182,7 @@ void wxShape::ApplyAttachmentOrdering(wxList& linesToSort) { // This is a temporary store of all the lines. wxList linesStore; - + wxNode *node = m_lines.First(); while (node) { @@ -1224,7 +1224,7 @@ void wxShape::SortLines(int attachment, wxList& linesToSort) // This is a temporary store of all the lines at this attachment // point. We'll tick them off as we've processed them. wxList linesAtThisAttachment; - + wxNode *node = m_lines.First(); while (node) { @@ -1317,7 +1317,7 @@ void wxShape::OnDragLeft(bool draw, double x, double y, int keys, int attachment wxClientDC dc(GetCanvas()); GetCanvas()->PrepareDC(dc); - dc.SetLogicalFunction(wxXOR); + dc.SetLogicalFunction(OGLRBLF); wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); dc.SetPen(dottedPen); @@ -1362,7 +1362,7 @@ void wxShape::OnBeginDragLeft(double x, double y, int keys, int attachment) yy = y + DragOffsetY; m_canvas->Snap(&xx, &yy); // m_xpos = xx; m_ypos = yy; - dc.SetLogicalFunction(wxXOR); + dc.SetLogicalFunction(OGLRBLF); wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); dc.SetPen(dottedPen); @@ -1530,7 +1530,7 @@ void wxShape::Flash() wxClientDC dc(GetCanvas()); GetCanvas()->PrepareDC(dc); - dc.SetLogicalFunction(wxXOR); + dc.SetLogicalFunction(OGLRBLF); Draw(dc); dc.SetLogicalFunction(wxCOPY); Draw(dc); @@ -1730,7 +1730,7 @@ void wxShape::WriteAttributes(wxExpr *clause) } else if (brushColour != "WHITE") clause->AddAttributeValueString("brush_colour", brushColour); - + if (m_brush->GetStyle() != wxSOLID) clause->AddAttributeValue("brush_style", (long)m_brush->GetStyle()); } @@ -2131,7 +2131,7 @@ void wxShape::ReadRegions(wxExpr *clause) width = widthExpr->RealValue(); height = heightExpr->RealValue(); - + minWidth = minWidthExpr->RealValue(); minHeight = minHeightExpr->RealValue(); @@ -2392,42 +2392,42 @@ void wxShape::MakeControlPoints() double left = (double)(- (widthMin / 2.0)); double right = (double)(widthMin / 2.0 + (maxX - minX)); - wxControlPoint *control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, left, top, + wxControlPoint *control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, left, top, CONTROL_POINT_DIAGONAL); m_canvas->AddShape(control); m_controlPoints.Append(control); - control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, 0, top, + control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, 0, top, CONTROL_POINT_VERTICAL); m_canvas->AddShape(control); m_controlPoints.Append(control); - control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, right, top, + control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, right, top, CONTROL_POINT_DIAGONAL); m_canvas->AddShape(control); m_controlPoints.Append(control); - control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, right, 0, + control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, right, 0, CONTROL_POINT_HORIZONTAL); m_canvas->AddShape(control); m_controlPoints.Append(control); - control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, right, bottom, + control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, right, bottom, CONTROL_POINT_DIAGONAL); m_canvas->AddShape(control); m_controlPoints.Append(control); - control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, 0, bottom, + control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, 0, bottom, CONTROL_POINT_VERTICAL); m_canvas->AddShape(control); m_controlPoints.Append(control); - control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, left, bottom, + control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, left, bottom, CONTROL_POINT_DIAGONAL); m_canvas->AddShape(control); m_controlPoints.Append(control); - control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, left, 0, + control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, left, 0, CONTROL_POINT_HORIZONTAL); m_canvas->AddShape(control); m_controlPoints.Append(control); @@ -2534,7 +2534,7 @@ void wxShape::OnDrawControlPoints(wxDC& dc) { if (!m_drawHandles) return; - + dc.SetBrush(* wxBLACK_BRUSH); dc.SetPen(* wxBLACK_PEN); @@ -2673,7 +2673,7 @@ bool wxShape::AttachmentIsValid(int attachment) const return FALSE; } -bool wxShape::GetAttachmentPosition(int attachment, double *x, double *y, +bool wxShape::GetAttachmentPosition(int attachment, double *x, double *y, int nth, int no_arcs, wxLineShape *line) { if (m_attachmentMode == ATTACHMENT_MODE_NONE) diff --git a/utils/ogl/src/basic.h b/utils/ogl/src/basic.h index 8374b2c345..9c52020c85 100644 --- a/utils/ogl/src/basic.h +++ b/utils/ogl/src/basic.h @@ -118,6 +118,12 @@ class WXDLLEXPORT wxExprDatabase; // Round up #define WXROUND(x) ( (long) (x + 0.5) ) + +// logical function to use when drawing rubberband boxes, etc. +#define OGLRBLF wxINVERT + + + class wxShapeEvtHandler: public wxObject { DECLARE_DYNAMIC_CLASS(wxShapeEvtHandler) diff --git a/utils/ogl/src/basic2.cpp b/utils/ogl/src/basic2.cpp index ba46cca6fe..4bc1c10363 100644 --- a/utils/ogl/src/basic2.cpp +++ b/utils/ogl/src/basic2.cpp @@ -328,7 +328,7 @@ bool wxPolygonShape::HitTest(double x, double y, int *attachment, double *distan void wxPolygonShape::SetSize(double new_width, double new_height, bool recursive) { SetAttachmentSize(new_width, new_height); - + // Multiply all points by proportion of new size to old size double x_proportion = (double)(fabs(new_width/m_originalWidth)); double y_proportion = (double)(fabs(new_height/m_originalHeight)); @@ -464,7 +464,7 @@ bool wxPolygonShape::GetPerimeterPoint(double x1, double y1, node = node->Next(); } } - + double *xpoints = new double[n]; double *ypoints = new double[n]; @@ -479,7 +479,7 @@ bool wxPolygonShape::GetPerimeterPoint(double x1, double y1, i ++; } - oglFindEndForPolyline(n, xpoints, ypoints, + oglFindEndForPolyline(n, xpoints, ypoints, x1, y1, x2, y2, x3, y3); delete[] xpoints; @@ -799,7 +799,7 @@ bool wxPolygonShape::AttachmentIsValid(int attachment) { if (!m_points) return FALSE; - + if ((attachment >= 0) && (attachment < m_points->Number())) return TRUE; @@ -1207,7 +1207,7 @@ bool wxCircleShape::GetPerimeterPoint(double x1, double y1, double x2, double y2, double *x3, double *y3) { - oglFindEndForCircle(m_width/2, + oglFindEndForCircle(m_width/2, m_xpos, m_ypos, // Centre of circle x2, y2, // Other end of line x3, y3); @@ -1302,7 +1302,7 @@ void wxShape::OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y wxClientDC dc(GetCanvas()); GetCanvas()->PrepareDC(dc); - dc.SetLogicalFunction(wxXOR); + dc.SetLogicalFunction(OGLRBLF); wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); dc.SetPen(dottedPen); @@ -1338,7 +1338,7 @@ void wxShape::OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y if (this->GetFixedWidth()) new_width = bound_x; - + if (this->GetFixedHeight()) new_height = bound_y; @@ -1390,7 +1390,7 @@ void wxShape::OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y pt->sm_controlPointDragPosY = (double)(newY1 + (newHeight/2.0)); if (this->GetFixedWidth()) newWidth = bound_x; - + if (this->GetFixedHeight()) newHeight = bound_y; @@ -1411,7 +1411,7 @@ void wxShape::OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int this->Erase(dc); */ - dc.SetLogicalFunction(wxXOR); + dc.SetLogicalFunction(OGLRBLF); double bound_x; double bound_y; @@ -1471,7 +1471,7 @@ void wxShape::OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int if (this->GetFixedWidth()) new_width = bound_x; - + if (this->GetFixedHeight()) new_height = bound_y; @@ -1566,11 +1566,11 @@ void wxShape::OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int ke if (!eraseIt) theObject->Show(TRUE); */ - + // Recursively redraw links if we have a composite. if (theObject->GetChildren().Number() > 0) theObject->DrawLinks(dc, -1, TRUE); - + double width, height; theObject->GetBoundingBoxMax(&width, &height); theObject->GetEventHandler()->OnEndSize(width, height); @@ -1636,7 +1636,7 @@ void wxPolygonShape::OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, d wxClientDC dc(GetCanvas()); GetCanvas()->PrepareDC(dc); - dc.SetLogicalFunction(wxXOR); + dc.SetLogicalFunction(OGLRBLF); wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); dc.SetPen(dottedPen); @@ -1675,7 +1675,7 @@ void wxPolygonShape::OnSizingBeginDragLeft(wxControlPoint* pt, double x, double this->Erase(dc); - dc.SetLogicalFunction(wxXOR); + dc.SetLogicalFunction(OGLRBLF); double bound_x; double bound_y; diff --git a/utils/ogl/src/composit.cpp b/utils/ogl/src/composit.cpp index c5118f64e7..f8161b4153 100644 --- a/utils/ogl/src/composit.cpp +++ b/utils/ogl/src/composit.cpp @@ -43,7 +43,7 @@ wxMenu *oglPopupDivisionMenu = NULL; /* * Division control point */ - + class wxDivisionControlPoint: public wxControlPoint { DECLARE_DYNAMIC_CLASS(wxDivisionControlPoint) @@ -168,7 +168,7 @@ void wxCompositeShape::OnDragLeft(bool draw, double x, double y, int keys, int a wxClientDC dc(GetCanvas()); GetCanvas()->PrepareDC(dc); - dc.SetLogicalFunction(wxXOR); + dc.SetLogicalFunction(OGLRBLF); wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); dc.SetPen(dottedPen); dc.SetBrush((* wxTRANSPARENT_BRUSH)); @@ -187,7 +187,7 @@ void wxCompositeShape::OnBeginDragLeft(double x, double y, int keys, int attachm Erase(dc); - dc.SetLogicalFunction(wxXOR); + dc.SetLogicalFunction(OGLRBLF); wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); dc.SetPen(dottedPen); @@ -228,7 +228,7 @@ void wxCompositeShape::OnEndDragLeft(double x, double y, int keys, int attachmen double offsetY = yy - objectStartY; Move(dc, GetX() + offsetX, GetY() + offsetY); - + if (m_canvas && !m_canvas->GetQuickEditMode()) m_canvas->Redraw(dc); } @@ -284,7 +284,7 @@ void wxCompositeShape::SetSize(double w, double h, bool recursive) object->Show(FALSE); object->Move(dc, newX, newY); object->Show(TRUE); - + // Now set the scaled size object->GetBoundingBoxMin(&xBound, &yBound); object->SetSize(object->GetFixedWidth() ? xBound : xScale*xBound, @@ -377,7 +377,7 @@ void wxCompositeShape::Copy(wxShape& copy) wxShape *newObject = object->CreateNewCopy(FALSE, FALSE); if (newObject->GetId() == 0) newObject->SetId(NewId()); - + newObject->SetParent(&compositeCopy); compositeCopy.m_children.Append(newObject); @@ -405,7 +405,7 @@ void wxCompositeShape::Copy(wxShape& copy) wxShape *constrainedObject = (wxShape *)node2->Data(); wxShape *newConstrained = (wxShape *)(oglObjectCopyMapping.Find((long)constrainedObject)->Data()); newConstrainedList.Append(newConstrained); - node2 = node2->Next(); + node2 = node2->Next(); } wxOGLConstraint *newConstraint = new wxOGLConstraint(constraint->m_constraintType, newConstraining, @@ -726,7 +726,7 @@ void wxCompositeShape::ReadConstraints(wxExpr *clause, wxExprDatabase *database) m_constrainingObject = (wxShape *)objExpr1->GetClientData(); else wxFatalError("Couldn't find constraining image of composite.", "Object graphics error"); - + int i = 0; wxExpr *currentIdExpr = constrainedExpr->Nth(i); while (currentIdExpr) @@ -938,7 +938,7 @@ void wxDivisionShape::OnEndDragLeft(double x, double y, int keys, int attachment } return; } - + wxClientDC dc(GetCanvas()); GetCanvas()->PrepareDC(dc); @@ -1080,7 +1080,7 @@ bool wxDivisionShape::Divide(int direction) double newYPos2 = (double)(y1 + (3.0*GetHeight()/4.0)); wxDivisionShape *newDivision = compositeParent->OnCreateDivision(); newDivision->Show(TRUE); - + Erase(dc); // Anything adjoining the bottom of this division now adjoins the @@ -1109,7 +1109,7 @@ bool wxDivisionShape::Divide(int direction) // Division is now receiving mouse events _before_ the contained object, // because it was added last (on top of all others) - // Add after the image that visualizes the container + // Add after the image that visualizes the container compositeParent->AddChild(newDivision, compositeParent->FindContainerImage()); m_handleSide = DIVISION_SIDE_BOTTOM; @@ -1131,7 +1131,7 @@ bool wxDivisionShape::Divide(int direction) double newYPos2 = GetY(); wxDivisionShape *newDivision = compositeParent->OnCreateDivision(); newDivision->Show(TRUE); - + Erase(dc); // Anything adjoining the left of this division now adjoins the @@ -1320,7 +1320,7 @@ bool wxDivisionShape::AdjustLeft(double left, bool test) GetCanvas()->PrepareDC(dc); Move(dc, newX, GetY()); - + return TRUE; } @@ -1341,7 +1341,7 @@ bool wxDivisionShape::AdjustTop(double top, bool test) GetCanvas()->PrepareDC(dc); Move(dc, GetX(), newY); - + return TRUE; } @@ -1362,7 +1362,7 @@ bool wxDivisionShape::AdjustRight(double right, bool test) GetCanvas()->PrepareDC(dc); Move(dc, newX, GetY()); - + return TRUE; } @@ -1383,7 +1383,7 @@ bool wxDivisionShape::AdjustBottom(double bottom, bool test) GetCanvas()->PrepareDC(dc); Move(dc, GetX(), newY); - + return TRUE; } @@ -1415,7 +1415,7 @@ void wxDivisionControlPoint::OnBeginDragLeft(double x, double y, int keys, int a originalY = division->GetY(); originalW = division->GetWidth(); originalH = division->GetHeight(); - + wxControlPoint::OnBeginDragLeft(x, y, keys, attachment); } @@ -1453,7 +1453,7 @@ void wxDivisionControlPoint::OnEndDragLeft(double x, double y, int keys, int att success = FALSE; else division->ResizeAdjoining(DIVISION_SIDE_LEFT, x, FALSE); - + break; } case DIVISION_SIDE_TOP: @@ -1464,7 +1464,7 @@ void wxDivisionControlPoint::OnEndDragLeft(double x, double y, int keys, int att success = FALSE; else division->ResizeAdjoining(DIVISION_SIDE_TOP, y, FALSE); - + break; } case DIVISION_SIDE_RIGHT: @@ -1475,7 +1475,7 @@ void wxDivisionControlPoint::OnEndDragLeft(double x, double y, int keys, int att success = FALSE; else division->ResizeAdjoining(DIVISION_SIDE_RIGHT, x, FALSE); - + break; } case DIVISION_SIDE_BOTTOM: @@ -1486,7 +1486,7 @@ void wxDivisionControlPoint::OnEndDragLeft(double x, double y, int keys, int att success = FALSE; else division->ResizeAdjoining(DIVISION_SIDE_BOTTOM, y, FALSE); - + break; } } @@ -1564,7 +1564,7 @@ bool wxDivisionShape::ResizeAdjoining(int side, double newPos, bool test) } node = node->Next(); } - + return TRUE; } @@ -1572,7 +1572,7 @@ bool wxDivisionShape::ResizeAdjoining(int side, double newPos, bool test) * Popup menu for editing divisions * */ - + void oglGraphicsDivisionMenuProc(wxMenu& menu, wxCommandEvent& event) { wxDivisionShape *division = (wxDivisionShape *)menu.GetClientData(); @@ -1628,7 +1628,7 @@ void wxDivisionShape::EditEdge(int side) GraphicsForm *form = new GraphicsForm("Containers"); int lineWidth = currentPen->GetWidth(); - + form->Add(wxMakeFormShort("Width", &lineWidth, wxFORM_DEFAULT, NULL, NULL, wxVERTICAL, 150)); form->Add(wxMakeFormString("Colour", pColour, wxFORM_CHOICE, @@ -1696,7 +1696,7 @@ void wxDivisionShape::EditEdge(int side) else if (strcmp(*pStyle, "Dot Dash") == 0) lineStyle = wxDOT_DASH; } - + wxPen *newPen = wxThePenList->FindOrCreatePen(*pColour, lineWidth, lineStyle); if (!pen) pen = wxBLACK_PEN; @@ -1723,7 +1723,7 @@ void wxDivisionShape::PopupMenu(double x, double y) oglPopupDivisionMenu->Enable(DIVISION_MENU_EDIT_TOP_EDGE, TRUE); else oglPopupDivisionMenu->Enable(DIVISION_MENU_EDIT_TOP_EDGE, FALSE); - + int x1, y1; m_canvas->ViewStart(&x1, &y1); diff --git a/utils/ogl/src/divided.cpp b/utils/ogl/src/divided.cpp index ba8cd615ac..f178550d5c 100644 --- a/utils/ogl/src/divided.cpp +++ b/utils/ogl/src/divided.cpp @@ -151,7 +151,7 @@ void wxDividedShape::SetRegionSizes() { if (GetRegions().Number() == 0) return; - + double defaultProportion = (double)(GetRegions().Number() > 0 ? (1.0/((double)(GetRegions().Number()))) : 0.0); double currentY = (double)(m_ypos - (m_height / 2.0)); double maxY = (double)(m_ypos + (m_height / 2.0)); @@ -440,7 +440,7 @@ void wxDividedShape::EditRegions() #if 0 if (GetRegions().Number() < 2) return; - + wxBeginBusyCursor(); GraphicsForm *form = new GraphicsForm("Divided nodes"); @@ -596,7 +596,7 @@ void wxDividedShapeControlPoint::OnDragLeft(bool draw, double x, double y, int k wxClientDC dc(GetCanvas()); GetCanvas()->PrepareDC(dc); - dc.SetLogicalFunction(wxXOR); + dc.SetLogicalFunction(OGLRBLF); wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); dc.SetPen(dottedPen); dc.SetBrush((* wxTRANSPARENT_BRUSH)); @@ -615,7 +615,7 @@ void wxDividedShapeControlPoint::OnBeginDragLeft(double x, double y, int keys, i GetCanvas()->PrepareDC(dc); wxDividedShape *dividedObject = (wxDividedShape *)m_shape; - dc.SetLogicalFunction(wxXOR); + dc.SetLogicalFunction(OGLRBLF); wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); dc.SetPen(dottedPen); dc.SetBrush((* wxTRANSPARENT_BRUSH)); @@ -637,7 +637,7 @@ void wxDividedShapeControlPoint::OnEndDragLeft(double x, double y, int keys, int wxNode *node = dividedObject->GetRegions().Nth(regionId); if (!node) return; - + wxShapeRegion *thisRegion = (wxShapeRegion *)node->Data(); wxShapeRegion *nextRegion = NULL; // Region below this one @@ -648,7 +648,7 @@ void wxDividedShapeControlPoint::OnEndDragLeft(double x, double y, int keys, int // Find the old top and bottom of this region, // and calculate the new proportion for this region // if legal. - + double currentY = (double)(dividedObject->GetY() - (dividedObject->GetHeight() / 2.0)); double maxY = (double)(dividedObject->GetY() + (dividedObject->GetHeight() / 2.0)); diff --git a/utils/ogl/src/lines.cpp b/utils/ogl/src/lines.cpp index a62cffbfa3..1eaed26ee7 100644 --- a/utils/ogl/src/lines.cpp +++ b/utils/ogl/src/lines.cpp @@ -80,7 +80,7 @@ wxLineShape::wxLineShape() newRegion = new wxShapeRegion; newRegion->SetName("Start"); newRegion->SetSize(150, 50); - m_regions.Append((wxObject *)newRegion); + m_regions.Append((wxObject *)newRegion); newRegion = new wxShapeRegion; newRegion->SetName("End"); @@ -213,7 +213,7 @@ void wxLineShape::FormatText(wxDC& dc, const wxString& s, int i) wxNode *node = m_regions.Nth(i); if (!node) return; - + wxShapeRegion *region = (wxShapeRegion *)node->Data(); region->SetText(s); dc.SetFont(* region->GetFont()); @@ -225,7 +225,7 @@ void wxLineShape::FormatText(wxDC& dc, const wxString& s, int i) w = 100; h = 50; region->SetSize(w, h); } - + wxStringList *string_list = oglFormatText(dc, s, (w-5), (h-5), region->GetFormatMode()); node = string_list->First(); while (node) @@ -444,7 +444,7 @@ void wxLineShape::SetEnds(double x1, double y1, double x2, double y2) first_point->y = y1; last_point->x = x2; last_point->y = y2; - + m_xpos = (double)((x1 + x2)/2.0); m_ypos = (double)((y1 + y2)/2.0); } @@ -707,7 +707,7 @@ void wxLineShape::DrawArrow(wxDC& dc, wxArrowHead *arrow, double xOffset, bool p deltaX = x4 - positionOnLineX; deltaY = y4 - positionOnLineY; } - + switch (arrow->_GetType()) { case ARROW_ARROW: @@ -787,7 +787,7 @@ void wxLineShape::DrawArrow(wxDC& dc, wxArrowHead *arrow, double xOffset, bool p | / | / | /theta - | /(x1, y1) + | /(x1, y1) |______________________ */ double theta = 0.0; @@ -1017,7 +1017,7 @@ bool wxLineShape::OnMovePre(wxDC& dc, double x, double y, double old_x, double o { xr = 0.0; yr = 0.0; } - + m_labelObjects[i]->Move(dc, xp+xr, yp+yr); } } @@ -1028,7 +1028,7 @@ void wxLineShape::OnMoveLink(wxDC& dc, bool moveControlPoints) { if (!m_from || !m_to) return; - + if (m_lineControlPoints->Number() > 2) Initialise(); @@ -1038,7 +1038,7 @@ void wxLineShape::OnMoveLink(wxDC& dc, bool moveControlPoints) double other_end_x, other_end_y; FindLineEndPoints(&end_x, &end_y, &other_end_x, &other_end_y); - + wxNode *first = m_lineControlPoints->First(); wxRealPoint *first_point = (wxRealPoint *)first->Data(); wxNode *last = m_lineControlPoints->Last(); @@ -1090,7 +1090,7 @@ void wxLineShape::FindLineEndPoints(double *fromX, double *fromY, double *toX, d { if (!m_from || !m_to) return; - + // Do each end - nothing in the middle. User has to move other points // manually if necessary. double end_x, end_y; @@ -1221,7 +1221,7 @@ void wxLineShape::OnDrawControlPoints(wxDC& dc) { if (!m_drawHandles) return; - + // Draw temporary label rectangles if necessary for (int i = 0; i < 3; i++) { @@ -1314,7 +1314,7 @@ void wxLineShape::MakeControlPoints() wxRealPoint *first_point = (wxRealPoint *)first->Data(); wxRealPoint *last_point = (wxRealPoint *)last->Data(); - wxLineControlPoint *control = new wxLineControlPoint(m_canvas, this, CONTROL_POINT_SIZE, + wxLineControlPoint *control = new wxLineControlPoint(m_canvas, this, CONTROL_POINT_SIZE, first_point->x, first_point->y, CONTROL_POINT_ENDPOINT_FROM); control->m_point = first_point; @@ -1327,7 +1327,7 @@ void wxLineShape::MakeControlPoints() { wxRealPoint *point = (wxRealPoint *)node->Data(); - control = new wxLineControlPoint(m_canvas, this, CONTROL_POINT_SIZE, + control = new wxLineControlPoint(m_canvas, this, CONTROL_POINT_SIZE, point->x, point->y, CONTROL_POINT_LINE); control->m_point = point; @@ -1337,7 +1337,7 @@ void wxLineShape::MakeControlPoints() node = node->Next(); } - control = new wxLineControlPoint(m_canvas, this, CONTROL_POINT_SIZE, + control = new wxLineControlPoint(m_canvas, this, CONTROL_POINT_SIZE, last_point->x, last_point->y, CONTROL_POINT_ENDPOINT_TO); control->m_point = last_point; @@ -1473,11 +1473,11 @@ void wxLineShape::ReadAttributes(wxExpr *clause) node = next; } } - + newRegion = new wxShapeRegion; newRegion->SetName("Start"); newRegion->SetSize(150, 50); - m_regions.Append((wxObject *)newRegion); + m_regions.Append((wxObject *)newRegion); newRegion = new wxShapeRegion; newRegion->SetName("End"); @@ -1540,7 +1540,7 @@ void wxLineShape::ReadAttributes(wxExpr *clause) double arrowSize = 0.0; wxString arrowName(""); long arrowId = -1; - + wxExpr *type_expr = node->Nth(0); wxExpr *end_expr = node->Nth(1); wxExpr *dist_expr = node->Nth(2); @@ -1720,7 +1720,7 @@ void wxLineControlPoint::OnBeginDragLeft(double x, double y, int keys, int attac { m_shape->GetEventHandler()->OnSizingBeginDragLeft(this, x, y, keys, attachment); } - + void wxLineControlPoint::OnEndDragLeft(double x, double y, int keys, int attachment) { m_shape->GetEventHandler()->OnSizingEndDragLeft(this, x, y, keys, attachment); @@ -1735,7 +1735,7 @@ void wxLineShape::OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, doub wxClientDC dc(GetCanvas()); GetCanvas()->PrepareDC(dc); - dc.SetLogicalFunction(wxXOR); + dc.SetLogicalFunction(OGLRBLF); wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); dc.SetPen(dottedPen); @@ -1793,7 +1793,7 @@ void wxLineShape::OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, lineShape->GetTo()->OnDrawContents(dc); this->SetDisableLabel(TRUE); - dc.SetLogicalFunction(wxXOR); + dc.SetLogicalFunction(OGLRBLF); lpt->m_xpos = x; lpt->m_ypos = y; lpt->m_point->x = x; lpt->m_point->y = y; @@ -1933,7 +1933,7 @@ void wxLineControlPoint::OnBeginDragRight(double x, double y, int keys, int atta m_oldCursor = wxSTANDARD_CURSOR; } } - + void wxLineControlPoint::OnEndDragRight(double x, double y, int keys, int attachment) { wxClientDC dc(GetCanvas()); @@ -2136,7 +2136,7 @@ bool wxLineShape::ClearArrow(const wxString& name) * Finds an arrowhead at the given position (if -1, any position) * */ - + wxArrowHead *wxLineShape::FindArrowHead(int position, const wxString& name) { wxNode *node = m_arcArrows.First(); @@ -2168,7 +2168,7 @@ wxArrowHead *wxLineShape::FindArrowHead(long arrowId) * Deletes an arrowhead at the given position (if -1, any position) * */ - + bool wxLineShape::DeleteArrowHead(int position, const wxString& name) { wxNode *node = m_arcArrows.First(); @@ -2244,7 +2244,7 @@ int wxLineShape::FindLinePosition(double x, double y) { double startX, startY, endX, endY; GetEnds(&startX, &startY, &endX, &endY); - + // Find distances from centre, start and end. The smallest wins. double centreDistance = (double)(sqrt((x - m_xpos)*(x - m_xpos) + (y - m_ypos)*(y - m_ypos))); double startDistance = (double)(sqrt((x - startX)*(x - startX) + (y - startY)*(y - startY))); @@ -2373,7 +2373,7 @@ wxArrowHead::wxArrowHead(wxArrowHead& toCopy) m_metaFile = NULL; m_id = NewId(); } - + wxArrowHead::~wxArrowHead() { if (m_metaFile) delete m_metaFile; @@ -2387,7 +2387,7 @@ void wxArrowHead::SetSize(double size) double oldWidth = m_metaFile->m_width; if (oldWidth == 0.0) return; - + double scale = (double)(size/oldWidth); if (scale != 1.0) m_metaFile->Scale(scale, scale); @@ -2422,7 +2422,7 @@ void wxLabelShape::OnDraw(wxDC& dc) { if (m_lineShape && !m_lineShape->GetDrawHandles()) return; - + double x1 = (double)(m_xpos - m_width/2.0); double y1 = (double)(m_ypos - m_height/2.0); diff --git a/utils/ogl/src/makefile.vc b/utils/ogl/src/makefile.vc index 8c5bf6f9b3..e00e2e5c6b 100644 --- a/utils/ogl/src/makefile.vc +++ b/utils/ogl/src/makefile.vc @@ -1,8 +1,8 @@ -# + # File: makefile.vc # Author: Julian Smart # Created: 1993 -# Updated: +# Updated: # Copyright: (c) 1993, AIAI, University of Edinburgh # # "%W% %G%" @@ -11,12 +11,13 @@ # Use FINAL=1 argument to nmake to build final version with no debugging # info + # Set WXDIR for your system WXDIR = $(WXWIN) OBJECTSDIR = $(WXDIR)\utils\ogl THISDIR = $(WXDIR)\utils\ogl\src -EXTRALIBS=$(WXDIR)\lib\ogl.lib $(WXDIR)\lib\mfutils.lib -EXTRAINC=/I$(WXDIR)\utils\mfutils\src /I$(WXDIR)\utils\prologio\src +#EXTRALIBS=$(WXDIR)\lib\ogl.lib $(WXDIR)\lib\mfutils.lib +#EXTRAINC=/I$(WXDIR)\utils\mfutils\src /I$(WXDIR)\utils\prologio\src EXTRAFLAGS=/DPROLOGIO=1 DOCDIR=$(WXDIR)\docs LOCALDOCDIR=$(WXDIR)\utils\ogl\docs @@ -24,16 +25,19 @@ LOCALDOCDIR=$(WXDIR)\utils\ogl\docs !include $(WXDIR)\src\makevc.env PROGRAM=test - -OBJECTS = $(THISDIR)\basic.obj $(THISDIR)\basic2.obj $(THISDIR)\canvas.obj $(THISDIR)\ogldiag.obj $(THISDIR)\lines.obj $(THISDIR)\misc.obj $(THISDIR)\divided.obj $(THISDIR)\constrnt.obj\ - $(THISDIR)\composit.obj $(THISDIR)\drawn.obj $(THISDIR)\bmpshape.obj $(THISDIR)\mfutils.obj -LIBTARGET=$(WXDIR)\lib\ogl.lib +OBJECTS = $(D)\basic.obj $(D)\basic2.obj $(D)\canvas.obj $(D)\ogldiag.obj $(D)\lines.obj $(D)\misc.obj $(D)\divided.obj $(D)\constrnt.obj\ + $(D)\composit.obj $(D)\drawn.obj $(D)\bmpshape.obj $(D)\mfutils.obj -all: $(LIBTARGET) +LIBTARGET=$(WXDIR)\lib\ogl$(LIBEXT).lib + +all: $(D) $(LIBTARGET) $(PROGRAM): $(PROGRAM).exe +$(D) : + mkdir $(D) + wx: cd $(WXDIR)\src\msw nmake -f makefile.vc FINAL=$(FINAL) @@ -54,68 +58,68 @@ $(OBJECTS) # NOTE: This causes a floating point stack error when optimized, # so DON'T optimize! -basic.obj: basic.$(SRCSUFF) basic.h lines.h misc.h canvas.h +$(D)\basic.obj: basic.$(SRCSUFF) basic.h lines.h misc.h canvas.h cl @<< -$(CPPFLAGS) /Od /c /Tp $*.$(SRCSUFF) +$(CPPFLAGS) /Od /c /Fo$@ /Tp $(*B).$(SRCSUFF) << -$(THISDIR)\basic2.obj: basic2.$(SRCSUFF) basic.h lines.h misc.h canvas.h +$(D)\basic2.obj: basic2.$(SRCSUFF) basic.h lines.h misc.h canvas.h cl @<< -$(CPPFLAGS) /Od /c /Tp $*.$(SRCSUFF) +$(CPPFLAGS) /Od /c /Fo$@ /Tp $(*B).$(SRCSUFF) << -$(THISDIR)\canvas.obj: canvas.$(SRCSUFF) basic.h misc.h canvas.h +$(D)\canvas.obj: canvas.$(SRCSUFF) basic.h misc.h canvas.h cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) +$(CPPFLAGS) /c /Fo$@ /Tp $(*B).$(SRCSUFF) << -$(THISDIR)\ogldiag.obj: ogldiag.$(SRCSUFF) ogldiag.h canvas.h basic.h +$(D)\ogldiag.obj: ogldiag.$(SRCSUFF) ogldiag.h canvas.h basic.h cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) +$(CPPFLAGS) /c /Fo$@ /Tp $(*B).$(SRCSUFF) << -$(THISDIR)\lines.obj: lines.$(SRCSUFF) basic.h misc.h canvas.h lines.h basicp.h linesp.h +$(D)\lines.obj: lines.$(SRCSUFF) basic.h misc.h canvas.h lines.h basicp.h linesp.h cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) +$(CPPFLAGS) /c /Fo$@ /Tp $(*B).$(SRCSUFF) << -$(THISDIR)\misc.obj: misc.$(SRCSUFF) basic.h misc.h constrnt.h basicp.h +$(D)\misc.obj: misc.$(SRCSUFF) basic.h misc.h constrnt.h basicp.h cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) +$(CPPFLAGS) /c /Fo$@ /Tp $(*B).$(SRCSUFF) << -$(THISDIR)\divided.obj: divided.$(SRCSUFF) basic.h misc.h canvas.h divided.h basicp.h +$(D)\divided.obj: divided.$(SRCSUFF) basic.h misc.h canvas.h divided.h basicp.h cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) +$(CPPFLAGS) /c /Fo$@ /Tp $(*B).$(SRCSUFF) << -$(THISDIR)\constrnt.obj: constrnt.$(SRCSUFF) basic.h constrnt.h +$(D)\constrnt.obj: constrnt.$(SRCSUFF) basic.h constrnt.h cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) +$(CPPFLAGS) /c /Fo$@ /Tp $(*B).$(SRCSUFF) << -$(THISDIR)\composit.obj: composit.$(SRCSUFF) basic.h misc.h canvas.h constrnt.h composit.h basicp.h +$(D)\composit.obj: composit.$(SRCSUFF) basic.h misc.h canvas.h constrnt.h composit.h basicp.h cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) +$(CPPFLAGS) /c /Fo$@ /Tp $(*B).$(SRCSUFF) << -$(THISDIR)\drawn.obj: drawn.$(SRCSUFF) basic.h misc.h canvas.h drawn.h drawnp.h basicp.h +$(D)\drawn.obj: drawn.$(SRCSUFF) basic.h misc.h canvas.h drawn.h drawnp.h basicp.h cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) +$(CPPFLAGS) /c /Fo$@ /Tp $(*B).$(SRCSUFF) << -$(THISDIR)\bmpshape.obj: bmpshape.$(SRCSUFF) basic.h misc.h canvas.h bmpshape.h +$(D)\bmpshape.obj: bmpshape.$(SRCSUFF) basic.h misc.h canvas.h bmpshape.h cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) +$(CPPFLAGS) /c /Fo$@ /Tp $(*B).$(SRCSUFF) << -$(THISDIR)\mfutils.obj: mfutils.$(SRCSUFF) mfutils.h +$(D)\mfutils.obj: mfutils.$(SRCSUFF) mfutils.h cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) +$(CPPFLAGS) /c /Fo$@ /Tp $(*B).$(SRCSUFF) << clean: - -erase *.obj + -erase $(D)\*.obj -erase *.sbr -erase *.exe -erase *.res @@ -129,10 +133,15 @@ DOCSOURCES=$(LOCALDOCDIR)\ogl.tex \ $(LOCALDOCDIR)\topics.tex $(LOCALDOCDIR)\sample.tex html: $(DOCDIR)\html\ogl\ogl.htm +htmlhelp: $(DOCDIR)\html\ogl\ogl.chm hlp: $(DOCDIR)\winhelp\ogl.hlp pdfrtf: $(DOCDIR)\pdf\ogl.rtf ps: $(DOCDIR)\ps\ogl.ps +touchmanual: + touch $(LOCALDOCDIR)\ogl.tex + + $(DOCDIR)\winhelp\ogl.hlp: $(LOCALDOCDIR)\ogl.rtf $(LOCALDOCDIR)\ogl.hpj cd $(LOCALDOCDIR) -erase ogl.ph @@ -143,24 +152,32 @@ $(DOCDIR)\winhelp\ogl.hlp: $(LOCALDOCDIR)\ogl.rtf $(LOCALDOCDIR)\ogl.hpj $(LOCALDOCDIR)\ogl.rtf: $(DOCSOURCES) cd $(LOCALDOCDIR) - -start /w tex2rtf $(LOCALDOCDIR)\ogl.tex $(LOCALDOCDIR)\ogl.rtf -twice -winhelp + -start $(WAITFLAG) tex2rtf $(LOCALDOCDIR)\ogl.tex $(LOCALDOCDIR)\ogl.rtf -twice -winhelp cd $(THISDIR) $(DOCDIR)\pdf\ogl.rtf: $(DOCSOURCES) cd $(LOCALDOCDIR) -copy *.bmp $(DOCDIR)\pdf - -start /w tex2rtf $(LOCALDOCDIR)\ogl.tex $(DOCDIR)\pdf\ogl.rtf -twice -rtf + -start $(WAITFLAG) tex2rtf $(LOCALDOCDIR)\ogl.tex $(DOCDIR)\pdf\ogl.rtf -twice -rtf cd $(THISDIR) $(DOCDIR)\html\ogl\ogl.htm: $(DOCSOURCES) cd $(LOCALDOCDIR) -mkdir $(DOCDIR)\html\ogl copy *.gif $(DOCDIR)\html\ogl - -start /w tex2rtf $(LOCALDOCDIR)\ogl.tex $(DOCDIR)\html\ogl\ogl.htm -twice -html + -start $(WAITFLAG) tex2rtf $(LOCALDOCDIR)\ogl.tex $(DOCDIR)\html\ogl\ogl.htm -twice -html -erase $(DOCDIR)\html\ogl\*.con + -erase *.con -erase $(DOCDIR)\html\ogl\*.ref cd $(THISDIR) + +$(DOCDIR)\html\ogl\ogl.chm: $(DOCDIR)\html\ogl\ogl.htm $(DOCDIR)\html\ogl\ogl.hhp + cd $(DOCDIR)\html\ogl + -hhc ogl.hhp + cd $(THISDIR) + + $(LOCALDOCDIR)\ogl.dvi: $(DOCSOURCES) cd $(LOCALDOCDIR) -latex ogl