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
This commit is contained in:
Julian Smart
2002-08-16 16:18:28 +00:00
parent 9f4de2dcf8
commit bf89b538f2
3 changed files with 110 additions and 9 deletions

View 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:

View File

@@ -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;

View 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