From: Julian Smart Date: Fri, 16 Aug 2002 16:18:28 +0000 (+0000) Subject: Applied patch [ 596061 ] Adds more navigation buttons to preview X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/bf89b538f24d96be1dbb5bfa4037397b5438c5e2?ds=inline Applied patch [ 596061 ] Adds more navigation buttons to preview By Juergen Geltinger (jgelti) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16546 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/prntbase.h b/include/wx/prntbase.h index d51919bab1..701964170c 100644 --- a/include/wx/prntbase.h +++ b/include/wx/prntbase.h @@ -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: diff --git a/src/common/prntbase.cpp b/src/common/prntbase.cpp index 2c878ff2dd..c1a6732be5 100644 --- a/src/common/prntbase.cpp +++ b/src/common/prntbase.cpp @@ -47,7 +47,7 @@ #include #include - + #ifdef __WXMSW__ #include "wx/msw/private.h" #include @@ -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( ¤tPage ) ) + 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; diff --git a/utils/tex2rtf/docs/tex2rtf.hpj b/utils/tex2rtf/docs/tex2rtf.hpj index ccb40cccad..29fcd8b21b 100644 --- a/utils/tex2rtf/docs/tex2rtf.hpj +++ b/utils/tex2rtf/docs/tex2rtf.hpj @@ -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