Hello,

 I've just started looking in using plplot with wxWidgets backend and so
it's perfectly possible that I'm doing something wrong but it didn't build
for me out of the box because of a couple of missing headers. To be more
precise, here is what I did:

0. Checked out latest (r9437) svn revision under Debian Linux
1. Ran "cmake -DDEFAULT_NO_BINDINGS=on -DENABLE_cxx=on -DENABLE_wxwidgets=on\
   DEFAULT_NO_DEVICES=on PLD_wxwidgets=on ~/src/plplot" in the build
   directory
2. Did make and got errors because of undeclared wxGraphicsContext and
   wxPaintDC

The trivial patch below fixes them:

diff -r bc2186e13860 bindings/wxwidgets/wxPLplotwindow.cpp
--- a/bindings/wxwidgets/wxPLplotwindow.cpp     Mon Feb 02 23:25:14 2009 +0100
+++ b/bindings/wxwidgets/wxPLplotwindow.cpp     Mon Feb 02 23:54:16 2009 +0100
@@ -22,7 +22,8 @@
 #include "plplotP.h"
 #include "wxPLplotwindow.h"
 #include "wxPLplotstream.h"
-#include "wx/window.h"
+#include <wx/window.h>
+#include <wx/dcclient.h>
 //#include "wx/log.h"

 BEGIN_EVENT_TABLE( wxPLplotwindow, wxWindow )
diff -r bc2186e13860 drivers/wxwidgets.h
--- a/drivers/wxwidgets.h       Mon Feb 02 23:25:14 2009 +0100
+++ b/drivers/wxwidgets.h       Mon Feb 02 23:54:16 2009 +0100
@@ -304,6 +304,8 @@


 #if wxUSE_GRAPHICS_CONTEXT
+#include <wx/graphics.h>
+
 class wxPLDevGC : public wxPLDevBase
 {
 public: /* methods */


But I still wonder how did it manage to compile before. The wxPaintDC
declaration could be included from wx/window.h in the previous wxWidgets
versions (although this was never guaranteed to work) but wx/graphics.h
definitely was never included from anywhere else so it's a mystery to me
how did it work. Anyhow, I hope the patch above can be applied if it seems
to be the right thing to do.


 And, as I was already patching it anyhow, here is another simple patch
suppressing the g++ (4.1) warnings about conversions from double to int.
Again, this might not be totally correct as perhaps rounding was meant
instead of truncation but as it is, the patch preserves the original
behaviour while getting rid of the warnings.

diff -r cfa4ac2c8e9e drivers/wxwidgets_gc.cpp
--- a/drivers/wxwidgets_gc.cpp  Mon Feb 02 23:30:53 2009 +0100
+++ b/drivers/wxwidgets_gc.cpp  Mon Feb 02 23:55:11 2009 +0100
@@ -297,8 +297,10 @@
     m_context->Translate( w, 0 );
   }

-  textWidth += w;
-  textHeight = textHeight>(h+yOffset/scaley) ? textHeight : (h+yOffset/scaley);
+  textWidth += static_cast<int>(w);
+  textHeight = textHeight>(h+yOffset/scaley)
+                ? textHeight
+                : static_cast<int>((h+yOffset/scaley));
   memset( utf8_string, '\0', max_string_length );
 }

@@ -314,8 +316,9 @@
   plP_fci2hex( fci, &fontWeight, PL_FCI_WEIGHT );
   if( m_font )
     delete m_font;
-  m_font=wxFont::New(fontSize*fontScale, fontFamilyLookup[fontFamily],
-                         fontStyleLookup[fontStyle] & 
fontWeightLookup[fontWeight] );
+  m_font=wxFont::New(static_cast<int>(fontSize*fontScale),
+                     fontFamilyLookup[fontFamily],
+                     fontStyleLookup[fontStyle] & fontWeightLookup[fontWeight] 
);
   m_font->SetUnderlined( underlined );
   m_context->SetFont( *m_font, wxColour(textRed, textGreen, textBlue) );
 }

 Thanks,
VZ

Attachment: pgp1JXxzTxcDW.pgp
Description: PGP signature

------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to