sfftools/sffview/tags/REL0_5_0/sffview.h

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__