00001 /* 00002 * The information in this file is 00003 * Copyright(c) 2007 Ball Aerospace & Technologies Corporation 00004 * and is subject to the terms and conditions of the 00005 * GNU Lesser General Public License Version 2.1 00006 * The license text is available from 00007 * http://www.gnu.org/licenses/lgpl.html 00008 */ 00009 00010 #ifndef POLARPLOT_H 00011 #define POLARPLOT_H 00012 00013 #include "PlotView.h" 00014 00015 class PolarGridlines; 00016 00017 /** 00018 * A polar plot. 00019 * 00020 * This subclass of Subject will notify upon the following conditions: 00021 * - Everything documented in PlotView. 00022 * 00023 * @see PlotView 00024 */ 00025 class PolarPlot : public PlotView 00026 { 00027 public: 00028 /** 00029 * @copydoc SessionItem::getContextMenuActions() 00030 * 00031 * @default The default implementation returns the context menu actions 00032 * listed \ref polarplot "here". The default actions can be 00033 * removed or additional actions can be added by attaching to the 00034 * signalAboutToShowContextMenu() signal. 00035 */ 00036 virtual std::list<ContextMenuAction> getContextMenuActions() const = 0; 00037 00038 /** 00039 * Returns a pointer to the plot's gridlines. 00040 * 00041 * @return A pointer to the plot's gridlines object. 00042 */ 00043 virtual PolarGridlines* getGridlines() = 0; 00044 00045 /** 00046 * Returns read-only access to the plot's gridlines. 00047 * 00048 * @return A const pointer to the plot's gridlines object. The plot 00049 * object represented by the returned pointer should not be 00050 * modified. To modify the values, call the non-const version of 00051 * getGridlines(). 00052 */ 00053 virtual const PolarGridlines* getGridlines() const = 0; 00054 00055 protected: 00056 /** 00057 * This object should be destroyed by calling DesktopServices::deleteView(). 00058 */ 00059 virtual ~PolarPlot() {} 00060 }; 00061 00062 #endif