]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/prntbase.cpp
fixed linkage problem
[wxWidgets.git] / src / common / prntbase.cpp
index ee3811f915121b28012df4d51c97929484d1e4b2..23e49e721e0e8040c8125a9b15813afe8609f881 100644 (file)
@@ -189,7 +189,7 @@ wxPreviewCanvas::wxPreviewCanvas(wxPrintPreviewBase *preview, wxWindow *parent,
   m_printPreview = preview;
   SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE));
 
-  SetScrollbars(40, 40, 100, 100);
+  SetScrollbars(15, 18, 100, 100);
 }
 
 wxPreviewCanvas::~wxPreviewCanvas()
@@ -222,7 +222,7 @@ void wxPreviewCanvas::OnSysColourChanged(wxSysColourChangedEvent& event)
  */
 
 BEGIN_EVENT_TABLE(wxPreviewControlBar, wxPanel)
-       EVT_BUTTON(wxID_PREVIEW_CLOSE,          wxPreviewControlBar::OnClose)
+       EVT_BUTTON(wxID_PREVIEW_CLOSE,          wxPreviewControlBar::OnWindowClose)
        EVT_BUTTON(wxID_PREVIEW_PRINT,          wxPreviewControlBar::OnPrint)
        EVT_BUTTON(wxID_PREVIEW_PREVIOUS,       wxPreviewControlBar::OnPrevious)
        EVT_BUTTON(wxID_PREVIEW_NEXT,           wxPreviewControlBar::OnNext)
@@ -259,7 +259,7 @@ void wxPreviewControlBar::OnPaint(wxPaintEvent& WXUNUSED(event))
   dc.DrawLine( 0, h-1, w, h-1 );
 }
 
-void wxPreviewControlBar::OnClose(wxCommandEvent& WXUNUSED(event))
+void wxPreviewControlBar::OnWindowClose(wxCommandEvent& WXUNUSED(event))
 {
   wxPreviewFrame *frame = (wxPreviewFrame *)GetParent();
   frame->Close(TRUE);
@@ -312,6 +312,7 @@ void wxPreviewControlBar::CreateButtons()
 {
   SetSize(0, 0, 400, 40);
 
+  /*
 #ifdef __WXMSW__
   int fontSize = 9;
 #else
@@ -320,6 +321,7 @@ void wxPreviewControlBar::CreateButtons()
 
   wxFont buttonFont(fontSize, wxSWISS, wxNORMAL, wxBOLD);
   SetFont(buttonFont);
+ */
 
   int buttonWidth = 65;
 #ifdef __WXGTK__
@@ -330,7 +332,12 @@ void wxPreviewControlBar::CreateButtons()
 
   int x = 5;
   int y = 5;
+
+#ifdef __WXMOTIF__
+  int gap = 15;
+#else
   int gap = 5;
+#endif
 
   m_closeButton = new wxButton(this, wxID_PREVIEW_CLOSE, _("Close"),
        wxPoint(x, y), wxSize(buttonWidth, buttonHeight));
@@ -394,7 +401,7 @@ void wxPreviewControlBar::CreateButtons()
 
   delete[] choices;
 
-  m_closeButton->SetDefault();
+  //  m_closeButton->SetDefault();
 }
 
 void wxPreviewControlBar::SetZoomControl(int zoom)
@@ -408,7 +415,7 @@ void wxPreviewControlBar::SetZoomControl(int zoom)
 int wxPreviewControlBar::GetZoomControl()
 {
   char buf[20];
-  if (m_zoomControl && m_zoomControl->GetStringSelection())
+  if (m_zoomControl && (m_zoomControl->GetStringSelection() != ""))
   {
     strcpy(buf, m_zoomControl->GetStringSelection());
     buf[strlen(buf) - 1] = 0;
@@ -422,6 +429,10 @@ int wxPreviewControlBar::GetZoomControl()
  * Preview frame
  */
 
+BEGIN_EVENT_TABLE(wxPreviewFrame, wxFrame)
+    EVT_CLOSE(wxPreviewFrame::OnCloseWindow)
+END_EVENT_TABLE()
+
 wxPreviewFrame::wxPreviewFrame(wxPrintPreviewBase *preview, wxFrame *parent, const wxString& title,
     const wxPoint& pos, const wxSize& size, long style, const wxString& name):
  wxFrame(parent, -1, title, pos, size, style, name)
@@ -435,7 +446,7 @@ wxPreviewFrame::~wxPreviewFrame()
 {
 }
 
-bool wxPreviewFrame::OnClose()
+void wxPreviewFrame::OnCloseWindow(wxCloseEvent& event)
 {
   MakeModal(FALSE);
   
@@ -449,7 +460,8 @@ bool wxPreviewFrame::OnClose()
     m_printPreview->SetFrame(NULL);
   }
   delete m_printPreview;
-  return TRUE;
+
+  Destroy();
 }
 
 void wxPreviewFrame::Initialize()
@@ -705,14 +717,24 @@ bool wxPrintPreviewBase::DrawBlankPage(wxWindow *canvas, wxDC& dc)
   int shadowOffset = 4;
   dc.SetPen(*wxBLACK_PEN);
   dc.SetBrush(*wxBLACK_BRUSH);
+/*
   dc.DrawRectangle((int)(x-1 + shadowOffset), (int)(y-1 + shadowOffset), (int)(actualWidth+2), (int)(actualHeight+2));
+*/
+  dc.DrawRectangle((int)(x + shadowOffset), (int)(y + actualHeight+1), (int)(actualWidth), shadowOffset);
+  dc.DrawRectangle((int)(x + actualWidth), (int)(y + shadowOffset), shadowOffset, (int)(actualHeight));
 
   // Draw blank page allowing for 1-pixel border AROUND the actual page
   dc.SetPen(*wxBLACK_PEN);
   dc.SetBrush(*wxWHITE_BRUSH);
-  
 
-  dc.DrawRectangle((int)(x-1), (int)(y-1), (int)(actualWidth+2), (int)(actualHeight+2));
+/*
+  wxRegion update_region = canvas->GetUpdateRegion();
+  wxRect r = update_region.GetBox();
+  
+  printf( "x: %d y: %d w: %d h: %d.\n", (int)r.x, (int)r.y, (int)r.width, (int)r.height );
+*/
+  
+  dc.DrawRectangle((int)(x-2), (int)(y-1), (int)(actualWidth+3), (int)(actualHeight+2));
   
   return TRUE;
 }