]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/dc.cpp
wxGTK's built-in dockable menu now give their
[wxWidgets.git] / src / gtk / dc.cpp
index 44fe792814d64d4d95e4331081e6a7534cd778d9..f101829e97dcbda5a689e2d28d11ea285b4b5c47 100644 (file)
@@ -14,6 +14,9 @@
 
 #include "wx/dc.h"
 
 
 #include "wx/dc.h"
 
+#include "gdk/gdk.h"
+#include "gtk/gtk.h"
+
 //-----------------------------------------------------------------------------
 // constants
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 // constants
 //-----------------------------------------------------------------------------
@@ -54,15 +57,17 @@ wxDC::wxDC()
     m_scaleX = 1.0;
     m_scaleY = 1.0;
   
     m_scaleX = 1.0;
     m_scaleY = 1.0;
   
-    m_mappingMode = MM_TEXT;
-    m_needComputeScaleX = FALSE;
-    m_needComputeScaleY = FALSE;
+    m_mappingMode = wxMM_TEXT;
+    m_needComputeScaleX = FALSE; /* not used yet */
+    m_needComputeScaleY = FALSE; /* not used yet */
   
   
-    m_signX = 1;  // default x-axis left to right
-    m_signY = 1;  // default y-axis top down
+    m_signX = 1;  /* default x-axis left to right */
+    m_signY = 1;  /* default y-axis top down. -1 in postscript. */
 
 
-    m_maxX = m_maxY = -100000;
-    m_minY = m_minY =  100000;
+    m_maxX = 0;
+    m_maxY = 0;
+    m_minX = 0;
+    m_minY = 0;
 
     m_logicalFunction = wxCOPY;
 //  m_textAlignment = wxALIGN_TOP_LEFT;
 
     m_logicalFunction = wxCOPY;
 //  m_textAlignment = wxALIGN_TOP_LEFT;
@@ -75,7 +80,7 @@ wxDC::wxDC()
     m_brush = *wxTRANSPARENT_BRUSH;
     m_backgroundBrush = *wxWHITE_BRUSH;
   
     m_brush = *wxTRANSPARENT_BRUSH;
     m_backgroundBrush = *wxWHITE_BRUSH;
   
-//  m_palette = wxAPP_COLOURMAP;
+//  m_palette = wxAPP_COLOURMAP; /* I'll learn to handle palettes later in my life */
 }
 
 wxDC::~wxDC()
 }
 
 wxDC::~wxDC()
@@ -189,13 +194,20 @@ void wxDC::GetSize( int* width, int* height ) const
     if (height) *height = m_maxY-m_minY;
 }
 
     if (height) *height = m_maxY-m_minY;
 }
 
-void wxDC::GetSizeMM( long* width, long* height ) const
+void wxDC::GetSizeMM( int* width, int* height ) const
 {
     int w = 0;
     int h = 0;
     GetSize( &w, &h );
 {
     int w = 0;
     int h = 0;
     GetSize( &w, &h );
-    if (width) *width = long( double(w) / (m_scaleX*m_mm_to_pix_x) );
-    if (height) *height = long( double(h) / (m_scaleY*m_mm_to_pix_y) );
+    if (width) *width = int( double(w) / (m_scaleX*m_mm_to_pix_x) );
+    if (height) *height = int( double(h) / (m_scaleY*m_mm_to_pix_y) );
+}
+
+// Resolution in pixels per logical inch
+wxSize wxDC::GetPPI(void) const
+{
+    // TODO (should probably be pure virtual)
+    return wxSize(0, 0);
 }
 
 void wxDC::SetTextForeground( const wxColour &col )
 }
 
 void wxDC::SetTextForeground( const wxColour &col )
@@ -212,25 +224,25 @@ void wxDC::SetMapMode( int mode )
 {
     switch (mode) 
     {
 {
     switch (mode) 
     {
-        case MM_TWIPS:
+        case wxMM_TWIPS:
           SetLogicalScale( twips2mm*m_mm_to_pix_x, twips2mm*m_mm_to_pix_y );
           break;
           SetLogicalScale( twips2mm*m_mm_to_pix_x, twips2mm*m_mm_to_pix_y );
           break;
-        case MM_POINTS:
+        case wxMM_POINTS:
           SetLogicalScale( pt2mm*m_mm_to_pix_x, pt2mm*m_mm_to_pix_y );
           break;
           SetLogicalScale( pt2mm*m_mm_to_pix_x, pt2mm*m_mm_to_pix_y );
           break;
-        case MM_METRIC:
+        case wxMM_METRIC:
           SetLogicalScale( m_mm_to_pix_x, m_mm_to_pix_y );
           break;
           SetLogicalScale( m_mm_to_pix_x, m_mm_to_pix_y );
           break;
-        case MM_LOMETRIC:
+        case wxMM_LOMETRIC:
           SetLogicalScale( m_mm_to_pix_x/10.0, m_mm_to_pix_y/10.0 );
           break;
         default:
           SetLogicalScale( m_mm_to_pix_x/10.0, m_mm_to_pix_y/10.0 );
           break;
         default:
-        case MM_TEXT:
+        case wxMM_TEXT:
           SetLogicalScale( 1.0, 1.0 );
           break;
     }
 /*  we don't do this mega optimisation
           SetLogicalScale( 1.0, 1.0 );
           break;
     }
 /*  we don't do this mega optimisation
-    if (mode != MM_TEXT)
+    if (mode != wxMM_TEXT)
     {
         m_needComputeScaleX = TRUE;
         m_needComputeScaleY = TRUE;
     {
         m_needComputeScaleX = TRUE;
         m_needComputeScaleY = TRUE;