]> git.saurik.com Git - wxWidgets.git/commitdiff
Applied patch [ 596061 ] Adds more navigation buttons to preview
authorJulian Smart <julian@anthemion.co.uk>
Fri, 16 Aug 2002 16:18:28 +0000 (16:18 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Fri, 16 Aug 2002 16:18:28 +0000 (16:18 +0000)
By Juergen Geltinger (jgelti)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16546 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/prntbase.h
src/common/prntbase.cpp
utils/tex2rtf/docs/tex2rtf.hpj

index d51919bab1191c61397e1a69fcb8beadf065ef27..701964170cbcd2c48836958cf22ea07bc00d943e 100644 (file)
@@ -223,8 +223,12 @@ private:
 #define wxPREVIEW_PREVIOUS     2
 #define wxPREVIEW_NEXT         4
 #define wxPREVIEW_ZOOM         8
+#define wxPREVIEW_FIRST       16
+#define wxPREVIEW_LAST        32
+#define wxPREVIEW_GOTO        64
 
-#define wxPREVIEW_DEFAULT      wxPREVIEW_PREVIOUS|wxPREVIEW_NEXT|wxPREVIEW_ZOOM
+#define wxPREVIEW_DEFAULT  wxPREVIEW_PREVIOUS|wxPREVIEW_NEXT|wxPREVIEW_ZOOM\
+                          |wxPREVIEW_FIRST|wxPREVIEW_GOTO|wxPREVIEW_LAST
 
 // Ids for controls
 #define wxID_PREVIEW_CLOSE      1
@@ -232,6 +236,9 @@ private:
 #define wxID_PREVIEW_PREVIOUS   3
 #define wxID_PREVIEW_PRINT      4
 #define wxID_PREVIEW_ZOOM       5
+#define wxID_PREVIEW_FIRST      6
+#define wxID_PREVIEW_LAST       7
+#define wxID_PREVIEW_GOTO       8
 
 class WXDLLEXPORT wxPreviewControlBar: public wxPanel
 {
@@ -257,8 +264,14 @@ public:
     void OnWindowClose(wxCommandEvent& event);
     void OnNext();
     void OnPrevious();
+    void OnFirst();
+    void OnLast();
+    void OnGoto();
     void OnNextButton(wxCommandEvent & WXUNUSED(event)) { OnNext(); }
     void OnPreviousButton(wxCommandEvent & WXUNUSED(event)) { OnPrevious(); }
+    void OnFirstButton(wxCommandEvent & WXUNUSED(event)) { OnFirst(); }
+    void OnLastButton(wxCommandEvent & WXUNUSED(event)) { OnLast(); }
+    void OnGotoButton(wxCommandEvent & WXUNUSED(event)) { OnGoto(); }
     void OnChar(wxKeyEvent &event);
     void OnZoom(wxCommandEvent& event);
     void OnPaint(wxPaintEvent& event);
@@ -270,6 +283,9 @@ protected:
     wxButton*             m_previousPageButton;
     wxButton*             m_printButton;
     wxChoice*             m_zoomControl;
+    wxButton*             m_firstPageButton;
+    wxButton*             m_lastPageButton;
+    wxButton*             m_gotoPageButton;
     long                  m_buttonFlags;
 
 private:
index 2c878ff2dd50c99c0af1b818fc042fb0b3a06756..c1a6732be559ddfbb58bee9b45810aa620feea0f 100644 (file)
@@ -47,7 +47,7 @@
 #include <string.h>
 
 #include <wx/sizer.h>
-                                                                            
+                                         
 #ifdef __WXMSW__
     #include "wx/msw/private.h"
     #include <commdlg.h>
@@ -234,6 +234,9 @@ BEGIN_EVENT_TABLE(wxPreviewControlBar, wxPanel)
     EVT_BUTTON(wxID_PREVIEW_PRINT,    wxPreviewControlBar::OnPrint)
     EVT_BUTTON(wxID_PREVIEW_PREVIOUS, wxPreviewControlBar::OnPreviousButton)
     EVT_BUTTON(wxID_PREVIEW_NEXT,     wxPreviewControlBar::OnNextButton)
+    EVT_BUTTON(wxID_PREVIEW_FIRST,    wxPreviewControlBar::OnFirstButton)
+    EVT_BUTTON(wxID_PREVIEW_LAST,     wxPreviewControlBar::OnLastButton)
+    EVT_BUTTON(wxID_PREVIEW_GOTO,     wxPreviewControlBar::OnGotoButton)
     EVT_CHAR(wxPreviewControlBar::OnChar)
     EVT_CHOICE(wxID_PREVIEW_ZOOM,     wxPreviewControlBar::OnZoom)
     EVT_PAINT(wxPreviewControlBar::OnPaint)
@@ -288,6 +291,12 @@ void wxPreviewControlBar::OnChar(wxKeyEvent &event)
       OnNext(); break;
    case WXK_PRIOR:
       OnPrevious(); break;
+   case WXK_HOME:
+      OnFirst(); break;
+   case WXK_END:
+      OnLast(); break;
+   case WXK_TAB:
+      OnGoto(); break;
    default:
       event.Skip();
    }
@@ -323,6 +332,60 @@ void wxPreviewControlBar::OnPrevious(void)
     }
 }
 
+void wxPreviewControlBar::OnFirst(void)
+{
+    wxPrintPreviewBase *preview = GetPrintPreview();
+    if (preview)
+    {
+        int currentPage = preview->GetMinPage();
+        if (preview->GetPrintout()->HasPage(currentPage))
+        {
+            preview->SetCurrentPage(currentPage);
+        }
+    }
+}
+
+void wxPreviewControlBar::OnLast(void)
+{
+    wxPrintPreviewBase *preview = GetPrintPreview();
+    if (preview)
+    {
+        int currentPage = preview->GetMaxPage();
+        if (preview->GetPrintout()->HasPage(currentPage))
+        {
+            preview->SetCurrentPage(currentPage);
+        }
+    }
+}
+
+void wxPreviewControlBar::OnGoto(void)
+{
+    wxPrintPreviewBase *preview = GetPrintPreview();
+    if (preview)
+    {
+        long currentPage;
+
+        if (preview->GetMinPage() > 0)
+        {
+            wxString strPrompt;
+            wxString strPage;
+
+            strPrompt.Printf( _("%d...%d"),
+                preview->GetMinPage(), preview->GetMaxPage());
+            strPage.Printf( _("%d"), preview->GetCurrentPage() );
+
+            strPage =
+                wxGetTextFromUser( strPrompt, _("Goto Page"), strPage);
+
+            if ( strPage.ToLong( &currentPage ) )
+                if (preview->GetPrintout()->HasPage(currentPage))
+                {
+                    preview->SetCurrentPage(currentPage);
+                }
+        }
+    }
+}
+
 void wxPreviewControlBar::OnZoom(wxCommandEvent& WXUNUSED(event))
 {
     int zoom = GetZoomControl();
@@ -345,7 +408,8 @@ void wxPreviewControlBar::CreateButtons()
       SetFont(buttonFont);
     */
 
-    int buttonWidth = 65;
+    int buttonWidth = 60;
+    int buttonNavigation = 30;
 #ifdef __WXGTK__
     int buttonHeight = -1;
 #else
@@ -373,17 +437,38 @@ void wxPreviewControlBar::CreateButtons()
         x += gap + buttonWidth;
     }
 
+    if (m_buttonFlags & wxPREVIEW_FIRST)
+    {
+        m_firstPageButton = new wxButton(this, wxID_PREVIEW_FIRST, wxT("|<<"), wxPoint(x, y),
+            wxSize(buttonNavigation, buttonHeight));
+        x += gap + buttonNavigation;
+    }
+
     if (m_buttonFlags & wxPREVIEW_PREVIOUS)
     {
         m_previousPageButton = new wxButton(this, wxID_PREVIEW_PREVIOUS, wxT("<<"), wxPoint(x, y),
-            wxSize(buttonWidth, buttonHeight));
-        x += gap + buttonWidth;
+            wxSize(buttonNavigation, buttonHeight));
+        x += gap + buttonNavigation;
     }
 
     if (m_buttonFlags & wxPREVIEW_NEXT)
     {
         m_nextPageButton = new wxButton(this, wxID_PREVIEW_NEXT, wxT(">>"),
-            wxPoint(x, y), wxSize(buttonWidth, buttonHeight));
+            wxPoint(x, y), wxSize(buttonNavigation, buttonHeight));
+        x += gap + buttonNavigation;
+    }
+
+    if (m_buttonFlags & wxPREVIEW_LAST)
+    {
+        m_lastPageButton = new wxButton(this, wxID_PREVIEW_LAST, wxT(">>|"), wxPoint(x, y),
+            wxSize(buttonNavigation, buttonHeight));
+        x += gap + buttonNavigation;
+    }
+
+    if (m_buttonFlags & wxPREVIEW_GOTO)
+    {
+        m_gotoPageButton = new wxButton(this, wxID_PREVIEW_GOTO, wxT("Goto..."), wxPoint(x, y),
+            wxSize(buttonWidth, buttonHeight));
         x += gap + buttonWidth;
     }
 
@@ -618,7 +703,7 @@ bool wxPrintPreviewBase::SetCurrentPage(int pageNum)
     if (m_previewCanvas)
     {
         if (!RenderPage(pageNum))
-               return FALSE;
+            return FALSE;
         m_previewCanvas->Refresh();
     }
     return TRUE;
@@ -630,7 +715,7 @@ bool wxPrintPreviewBase::PaintPage(wxWindow *canvas, wxDC& dc)
 
     if (!m_previewBitmap)
         if (!RenderPage(m_currentPage))
-               return FALSE;
+            return FALSE;
 
     if (!m_previewBitmap)
         return FALSE;
index ccb40cccad48166a24592e0b31a94051a3d09821..29fcd8b21b6db9fd03e1285eb4fd8f176c98de71 100644 (file)
@@ -1,6 +1,6 @@
 [OPTIONS]
 BMROOT=c:\wx2dev\wxWind~1\utils\tex2rtf\docs ; Assume that bitmaps are where the source is
-TITLE=Tex2RTF Manual
+TITLE=Tex2RTF
 CONTENTS=Contents
 COMPRESS=HIGH