104 lines
2.7 KiB
C++
104 lines
2.7 KiB
C++
#ifndef __SFFVIEW_H__
|
|
#define __SFFVIEW_H__
|
|
//
|
|
// This file is part of sffview, a program to view structured fax files (sff)
|
|
//
|
|
// Copyright (C) 1998-2012 Peter Schaefer-Hutter and contributors ("THE AUTHORS")
|
|
//
|
|
// Permission to use, copy, modify, distribute, and sell this software and
|
|
// its documentation for any purpose is hereby granted without fee.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
|
|
// EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
|
// WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
|
//
|
|
// IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL,
|
|
// INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY
|
|
// DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
|
// WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY
|
|
// THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE
|
|
// OR PERFORMANCE OF THIS SOFTWARE.
|
|
//
|
|
// Contributor(s):
|
|
// None
|
|
//
|
|
// You can contact the original author by email at peter.schaefer@gmx.de.
|
|
//
|
|
// I'm always pleased to hear that somebody is actually using my software.
|
|
// If you can manage it, e-mail me a quick notice. Thanks!
|
|
//
|
|
/*-RCS-Info----------------------------------------------------
|
|
|
|
$Id: sffview.h,v 1.3 2011/10/18 19:39:38 pschaefer Exp $
|
|
|
|
---RCS-Info--------------------------------------------------*/
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// Class declarations
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class SffCanvas : public wxScrolledWindow
|
|
{
|
|
public:
|
|
wxView *view;
|
|
|
|
SffCanvas(wxView *v, wxFrame *frame,
|
|
const wxPoint& pos,
|
|
const wxSize& size);
|
|
|
|
virtual void OnDraw(wxDC& dc);
|
|
|
|
void OnMouseEvent(wxMouseEvent& event);
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
};
|
|
|
|
class SffView : public wxView
|
|
{
|
|
DECLARE_DYNAMIC_CLASS(SffView)
|
|
|
|
public:
|
|
enum TScale {
|
|
FULLSCALE,
|
|
FULLPAGE,
|
|
FITWIDTH
|
|
};
|
|
|
|
protected:
|
|
wxMemoryDC *m_pMemDC;
|
|
wxUint32 m_nBitmapWidth;
|
|
wxUint32 m_nBitmapHeight;
|
|
|
|
double m_nZoom;
|
|
bool m_bXFlipped;
|
|
bool m_bYFlipped;
|
|
|
|
TScale m_nScaleType;
|
|
|
|
void SetBitmap(wxBitmap *pBmp);
|
|
|
|
public:
|
|
wxFrame *frame;
|
|
SffCanvas *canvas;
|
|
|
|
SffView() { canvas = (SffCanvas *)NULL; frame = (wxFrame *) NULL; };
|
|
virtual ~SffView();
|
|
|
|
void FlipX();
|
|
void FlipY();
|
|
|
|
void SetScale(TScale type);
|
|
void CalcScale();
|
|
|
|
bool OnCreate(wxDocument *doc, long flags);
|
|
void OnDraw(wxDC *dc);
|
|
void OnUpdate(wxView *sender, wxObject *hint = (wxObject *) NULL);
|
|
bool OnClose(bool deleteWindow = TRUE);
|
|
|
|
virtual wxPrintout* OnCreatePrintout();
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
};
|
|
|
|
#endif // __SFFVIEW_H__
|