Source
xxxxxxxxxx
virtual casacore::String fileChooserDialog(const casacore::String& title = "File Chooser",
//# PlotCanvas.h: Main drawing area for different plot items to be attached.
//# Copyright (C) 2008
//# Associated Universities, Inc. Washington DC, USA.
//#
//# This library is free software; you can redistribute it and/or modify it
//# under the terms of the GNU Library General Public License as published by
//# the Free Software Foundation; either version 2 of the License, or (at your
//# option) any later version.
//#
//# This library is distributed in the hope that it will be useful, but WITHOUT
//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
//# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
//# License for more details.
//#
//# You should have received a copy of the GNU Library General Public License
//# along with this library; if not, write to the Free Software Foundation,
//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
//#
//# Correspondence concerning AIPS++ should be addressed as follows:
//# Internet email: aips2-request@nrao.edu.
//# Postal address: AIPS++ Project Office
//# National Radio Astronomy Observatory
//# 520 Edgemont Road
//# Charlottesville, VA 22903-2475 USA
//#
//# $Id: $
namespace casa {
//# Forward Declarations
class PlotFactory;
// Abstract parent for any class that wants to be notified when the canvas
// is about to start drawing. This class is needed because a canvas could
// start redrawing for a number of reasons (user-requested, items changing the
// scale, resizing, ...) and instead of forcing applications to catch all cases
// this class can be used to notify when a drawing has begun for any reason.
class PlotDrawWatcher {
public:
// Constructor.
PlotDrawWatcher() { }
// Destructor.
virtual ~PlotDrawWatcher() { }
// This method should be called by the canvas whenever drawing is about to
// begin. The watcher is given:
// * A pointer to the PlotOperation object which is updated with progress
// information,
// * A flag indicating whether the drawing will happen in its own thread or
// not,
// * A flag indicating which layers are going to be drawn (bitwise-or of
// PlotCanvasLayer values).
// The method should return true UNLESS the watcher wants to stop the
// canvas from drawing. For example, if a canvas does not have threaded
// drawing, the watcher may want to stop drawing initially in order to
// spawn a new thread and then redraw.
virtual bool canvasDrawBeginning(PlotOperationPtr drawOperation,
bool drawingIsThreaded, int drawnLayersFlag) = 0;
};
typedef casacore::CountedPtr<PlotDrawWatcher> PlotDrawWatcherPtr;
// PlotCanvas is an area for different PlotItems to be attached and drawn. It
// also has axes and other properties. It's one of the more important plotting
// classes.
class PlotCanvas {
public:
// Static //
// Position that the legend can be in, relative to the canvas.
enum LegendPosition {
INT_URIGHT, // inside the canvas, on the upper right
INT_LRIGHT, // inside the canvas, on the lower right
INT_ULEFT, // inside the canvas, on the upper left