]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/samples/ogl/ogledit/doc.cpp
Compile fix for sound without threads. Not sure
[wxWidgets.git] / contrib / samples / ogl / ogledit / doc.cpp
index 017f34f8687e2fd0e3768e5d54fe8e32dba43803..88a17da9ec636a6eb81348b1560b691de31787a1 100644 (file)
@@ -28,7 +28,6 @@
 #error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in wx_setup.h!
 #endif
 
-#include <wx/wxexpr.h>
 #include "ogledit.h"
 #include "doc.h"
 #include "view.h"
@@ -88,33 +87,37 @@ wxSTD istream& DiagramDocument::LoadObject(wxSTD istream& stream)
 
 wxOutputStream& DiagramDocument::SaveObject(wxOutputStream& stream)
 {
+#if wxUSE_PROLOGIO
+
   wxDocument::SaveObject(stream);
-  char buf[400];
-  (void) wxGetTempFileName("diag", buf);
+  wxChar buf[400];
+  (void) wxGetTempFileName(_T("diag"), buf);
 
   diagram.SaveFile(buf);
 
   wxTransferFileToStream(buf, stream);
 
   wxRemoveFile(buf);
-  
+
+#endif
 
   return stream;
 }
 
 wxInputStream& DiagramDocument::LoadObject(wxInputStream& stream)
 {
+#if wxUSE_PROLOGIO
   wxDocument::LoadObject(stream);
 
-
-  char buf[400];
-  (void) wxGetTempFileName("diag", buf);
+  wxChar buf[400];
+  (void) wxGetTempFileName(_T("diag"), buf);
 
   wxTransferStreamToFile(stream, buf);
 
   diagram.DeleteAllShapes();
   diagram.LoadFile(buf);
   wxRemoveFile(buf);
+#endif
 
   return stream;
 }
@@ -125,7 +128,7 @@ wxInputStream& DiagramDocument::LoadObject(wxInputStream& stream)
  * Implementation of drawing command
  */
 
-DiagramCommand::DiagramCommand(char *name, int command, DiagramDocument *ddoc, wxClassInfo *info, double xx, double yy,
+DiagramCommand::DiagramCommand(const wxString& name, int command, DiagramDocument *ddoc, wxClassInfo *info, double xx, double yy,
   bool sel, wxShape *theShape, wxShape *fs, wxShape *ts):
   wxCommand(TRUE, name)
 {
@@ -143,7 +146,7 @@ DiagramCommand::DiagramCommand(char *name, int command, DiagramDocument *ddoc, w
   deleteShape = FALSE;
 }
 
-DiagramCommand::DiagramCommand(char *name, int command, DiagramDocument *ddoc, wxBrush *backgroundColour, wxShape *theShape):
+DiagramCommand::DiagramCommand(const wxString& name, int command, DiagramDocument *ddoc, wxBrush *backgroundColour, wxShape *theShape):
   wxCommand(TRUE, name)
 {
   doc = ddoc;
@@ -160,7 +163,7 @@ DiagramCommand::DiagramCommand(char *name, int command, DiagramDocument *ddoc, w
   shapePen = NULL;
 }
 
-DiagramCommand::DiagramCommand(char *name, int command, DiagramDocument *ddoc, const wxString& lab, wxShape *theShape):
+DiagramCommand::DiagramCommand(const wxString& name, int command, DiagramDocument *ddoc, const wxString& lab, wxShape *theShape):
   wxCommand(TRUE, name)
 {
   doc = ddoc;
@@ -219,14 +222,14 @@ bool DiagramCommand::Do(void)
     }
     case OGLEDIT_ADD_SHAPE:
     {
-      wxShape *theShape = NULL;
+      wxShape *theShape;
       if (shape)
         theShape = shape; // Saved from undoing the shape
       else
       {
         theShape = (wxShape *)shapeInfo->CreateObject();
         theShape->AssignNewIds();
-        theShape->SetEventHandler(new MyEvtHandler(theShape, theShape, wxString("")));
+        theShape->SetEventHandler(new MyEvtHandler(theShape, theShape, wxEmptyString));
         theShape->SetCentreResize(FALSE);
         theShape->SetPen(wxBLACK_PEN);
         theShape->SetBrush(wxCYAN_BRUSH);
@@ -250,14 +253,14 @@ bool DiagramCommand::Do(void)
     }
     case OGLEDIT_ADD_LINE:
     {
-      wxShape *theShape = NULL;
+      wxShape *theShape;
       if (shape)
         theShape = shape; // Saved from undoing the line
       else
       {
         theShape = (wxShape *)shapeInfo->CreateObject();
         theShape->AssignNewIds();
-        theShape->SetEventHandler(new MyEvtHandler(theShape, theShape, wxString("")));
+        theShape->SetEventHandler(new MyEvtHandler(theShape, theShape, wxEmptyString));
         theShape->SetPen(wxBLACK_PEN);
         theShape->SetBrush(wxRED_BRUSH);
 
@@ -266,7 +269,7 @@ bool DiagramCommand::Do(void)
         // Yes, you can have more than 2 control points, in which case
         // it becomes a multi-segment line.
         lineShape->MakeLineControlPoints(2);
-        lineShape->AddArrow(ARROW_ARROW, ARROW_POSITION_END, 10.0, 0.0, "Normal arrowhead");
+        lineShape->AddArrow(ARROW_ARROW, ARROW_POSITION_END, 10.0, 0.0, _T("Normal arrowhead"));
       }
       
       doc->GetDiagram()->AddShape(theShape);
@@ -320,7 +323,7 @@ bool DiagramCommand::Do(void)
         wxClientDC dc(shape->GetCanvas());
         shape->GetCanvas()->PrepareDC(dc);
 
-        shape->FormatText(dc, (char*) (const char*) myHandler->label);
+        shape->FormatText(dc, /* (char*) (const char*) */ myHandler->label);
         shape->Draw(dc);
         
         doc->Modify(TRUE);
@@ -405,7 +408,7 @@ bool DiagramCommand::Undo(void)
         wxClientDC dc(shape->GetCanvas());
         shape->GetCanvas()->PrepareDC(dc);
 
-        shape->FormatText(dc, (char*) (const char*) myHandler->label);
+        shape->FormatText(dc, /* (char*) (const char*) */ myHandler->label);
         shape->Draw(dc);
         
         doc->Modify(TRUE);
@@ -421,13 +424,13 @@ bool DiagramCommand::Undo(void)
 // Remove each individual line connected to a shape by sending a command.
 void DiagramCommand::RemoveLines(wxShape *shape)
 {
-  wxNode *node = shape->GetLines().First();
+  wxNode *node = shape->GetLines().GetFirst();
   while (node)
   {
-    wxLineShape *line = (wxLineShape *)node->Data();
-    doc->GetCommandProcessor()->Submit(new DiagramCommand("Cut", OGLEDIT_CUT, doc, NULL, 0.0, 0.0, line->Selected(), line));
+    wxLineShape *line = (wxLineShape *)node->GetData();
+    doc->GetCommandProcessor()->Submit(new DiagramCommand(_T("Cut"), OGLEDIT_CUT, doc, NULL, 0.0, 0.0, line->Selected(), line));
     
-    node = shape->GetLines().First();
+    node = shape->GetLines().GetFirst();
   }
 }
 
@@ -435,7 +438,7 @@ void DiagramCommand::RemoveLines(wxShape *shape)
  * MyEvtHandler: an event handler class for all shapes
  */
  
-void MyEvtHandler::OnLeftClick(double x, double y, int keys, int attachment)
+void MyEvtHandler::OnLeftClick(double WXUNUSED(x), double WXUNUSED(y), int keys, int WXUNUSED(attachment))
 {
   wxClientDC dc(GetShape()->GetCanvas());
   GetShape()->GetCanvas()->PrepareDC(dc);
@@ -452,10 +455,10 @@ void MyEvtHandler::OnLeftClick(double x, double y, int keys, int attachment)
     {
       // Ensure no other shape is selected, to simplify Undo/Redo code
       bool redraw = FALSE;
-      wxNode *node = GetShape()->GetCanvas()->GetDiagram()->GetShapeList()->First();
+      wxNode *node = GetShape()->GetCanvas()->GetDiagram()->GetShapeList()->GetFirst();
       while (node)
       {
-        wxShape *eachShape = (wxShape *)node->Data();
+        wxShape *eachShape = (wxShape *)node->GetData();
         if (eachShape->GetParent() == NULL)
         {
           if (eachShape->Selected())
@@ -464,7 +467,7 @@ void MyEvtHandler::OnLeftClick(double x, double y, int keys, int attachment)
             redraw = TRUE;
           }
         }
-        node = node->Next();
+        node = node->GetNext();
       }
       GetShape()->Select(TRUE, &dc);
       if (redraw)
@@ -485,7 +488,7 @@ void MyEvtHandler::OnLeftClick(double x, double y, int keys, int attachment)
  * Implement connection of two shapes by right-dragging between them.
  */
 
-void MyEvtHandler::OnBeginDragRight(double x, double y, int keys, int attachment)
+void MyEvtHandler::OnBeginDragRight(double x, double y, int WXUNUSED(keys), int attachment)
 {
   // Force attachment to be zero for now. Eventually we can deal with
   // the actual attachment point, e.g. a rectangle side if attachment mode is on.
@@ -503,7 +506,7 @@ void MyEvtHandler::OnBeginDragRight(double x, double y, int keys, int attachment
   GetShape()->GetCanvas()->CaptureMouse();
 }
 
-void MyEvtHandler::OnDragRight(bool draw, double x, double y, int keys, int attachment)
+void MyEvtHandler::OnDragRight(bool WXUNUSED(draw), double x, double y, int WXUNUSED(keys), int attachment)
 {
   // Force attachment to be zero for now
   attachment = 0;
@@ -519,7 +522,7 @@ void MyEvtHandler::OnDragRight(bool draw, double x, double y, int keys, int atta
   dc.DrawLine((long) xp, (long) yp, (long) x, (long) y);
 }
 
-void MyEvtHandler::OnEndDragRight(double x, double y, int keys, int attachment)
+void MyEvtHandler::OnEndDragRight(double x, double y, int WXUNUSED(keys), int WXUNUSED(attachment))
 {
   GetShape()->GetCanvas()->ReleaseMouse();
   MyCanvas *canvas = (MyCanvas *)GetShape()->GetCanvas();
@@ -531,36 +534,38 @@ void MyEvtHandler::OnEndDragRight(double x, double y, int keys, int attachment)
   if (otherShape && !otherShape->IsKindOf(CLASSINFO(wxLineShape)))
   {
     canvas->view->GetDocument()->GetCommandProcessor()->Submit(
-      new DiagramCommand("wxLineShape", OGLEDIT_ADD_LINE, (DiagramDocument *)canvas->view->GetDocument(), CLASSINFO(wxLineShape),
+      new DiagramCommand(_T("wxLineShape"), OGLEDIT_ADD_LINE, (DiagramDocument *)canvas->view->GetDocument(), CLASSINFO(wxLineShape),
       0.0, 0.0, FALSE, NULL, GetShape(), otherShape));
   }
 }
 
-void MyEvtHandler::OnEndSize(double x, double y)
+void MyEvtHandler::OnEndSize(double WXUNUSED(x), double WXUNUSED(y))
 {
   wxClientDC dc(GetShape()->GetCanvas());
   GetShape()->GetCanvas()->PrepareDC(dc);
 
-  GetShape()->FormatText(dc, (char*) (const char*) label);
+  GetShape()->FormatText(dc, /* (char*) (const char*) */ label);
 }
 
 /*
  * Diagram
  */
+
+#if wxUSE_PROLOGIO
  
 bool MyDiagram::OnShapeSave(wxExprDatabase& db, wxShape& shape, wxExpr& expr)
 {
   wxDiagram::OnShapeSave(db, shape, expr);
   MyEvtHandler *handler = (MyEvtHandler *)shape.GetEventHandler();
-  expr.AddAttributeValueString("label", handler->label);
+  expr.AddAttributeValueString(_T("label"), handler->label);
   return TRUE;
 }
 
 bool MyDiagram::OnShapeLoad(wxExprDatabase& db, wxShape& shape, wxExpr& expr)
 {
   wxDiagram::OnShapeLoad(db, shape, expr);
-  char *label = NULL;
-  expr.AssignAttributeValue("label", &label);
+  wxChar *label = NULL;
+  expr.AssignAttributeValue(_T("label"), &label);
   MyEvtHandler *handler = new MyEvtHandler(&shape, &shape, wxString(label));
   shape.SetEventHandler(handler);
   
@@ -569,6 +574,8 @@ bool MyDiagram::OnShapeLoad(wxExprDatabase& db, wxShape& shape, wxExpr& expr)
   return TRUE;
 }
 
+#endif
+
 /*
  * New shapes
  */