// This file is part of fityk program. Copyright (C) Marcin Wojdyr
// Licence: GNU General Public License version 2
// $Id: aplot.h 288 2007-04-22 02:14:02Z wojdyr $
#ifndef FITYK__WX_APLOT__H__
#define FITYK__WX_APLOT__H__
#include "plot.h"
enum Aux_plot_kind_enum
{
apk_empty,
apk_diff,
apk_diff_stddev,
apk_diff_y_perc,
apk_cum_chi2
};
//Auxiliary plot, usually shows residuals or peak positions
class AuxPlot : public FPlot
{
public:
AuxPlot(wxWindow *parent, FPlot *master_, wxString const& name_)
: FPlot(parent), master(master_), name(name_),
y_zoom(1.), y_zoom_base(1.), fit_y_once(false) {}
~AuxPlot() {}
void OnPaint(wxPaintEvent &event);
void draw(wxDC &dc, bool monochrome=false);
void OnLeaveWindow (wxMouseEvent& event);
void OnMouseMove(wxMouseEvent &event);
void OnLeftDown (wxMouseEvent &event);
void OnLeftUp (wxMouseEvent &event);
void OnRightDown (wxMouseEvent &event);
void OnMiddleDown (wxMouseEvent &event);
void OnKeyDown (wxKeyEvent& event);
bool cancel_mouse_left_press();
void set_scale();
bool is_zoomable(); //false if kind is eg. empty or peak-position
void OnPopupPlot (wxCommandEvent& event);
void OnPopupPlotCtr (wxCommandEvent& event);
void OnPopupReversedDiff (wxCommandEvent& event);
void OnPopupColor (wxCommandEvent& event);
void OnPopupYZoom (wxCommandEvent& event);
void OnPopupYZoomFit (wxCommandEvent& event);
void OnPopupYZoomAuto (wxCommandEvent& event);
void OnTicsFont (wxCommandEvent&) { change_tics_font(); }
void save_settings(wxConfigBase *cf) const;
void read_settings(wxConfigBase *cf);
private:
FPlot* master;
wxString name;
Aux_plot_kind_enum kind;
bool mark_peak_ctrs;
bool reversed_diff;
double y_zoom, y_zoom_base;
bool auto_zoom_y;
bool fit_y_once;
int cursor_id;
static const int move_plot_margin_width = 20;
void draw_diff (wxDC& dc, std::vector<Point>::const_iterator first,
std::vector<Point>::const_iterator last);
void draw_zoom_text(wxDC& dc, bool set_pen=true);
void fit_y_zoom(Data const* data, Sum const* sum);
DECLARE_EVENT_TABLE()
};
#endif
syntax highlighted by Code2HTML, v. 0.9.1