1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
|
#ifndef __CHART_MATRIX_DISPLAY_PROPERTIES_H__
#define __CHART_MATRIX_DISPLAY_PROPERTIES_H__
/*LICENSE_START*/
/*
* Copyright (C) 2014 Washington University School of Medicine
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
/*LICENSE_END*/
#include "BrainConstants.h"
#include "CaretObject.h"
#include "ChartMatrixScaleModeEnum.h"
#include "SceneableInterface.h"
namespace caret {
class AnnotationColorBar;
class SceneClassAssistant;
class ChartMatrixDisplayProperties : public CaretObject, public SceneableInterface {
public:
ChartMatrixDisplayProperties();
virtual ~ChartMatrixDisplayProperties();
ChartMatrixDisplayProperties(const ChartMatrixDisplayProperties& obj);
ChartMatrixDisplayProperties& operator=(const ChartMatrixDisplayProperties& obj);
float getCellWidth() const;
void setCellWidth(const float cellSizeX);
float getCellHeight() const;
void setCellHeight(const float cellHeight);
float getViewZooming() const;
void setViewZooming(const float viewZooming);
void getViewPanning(float viewPanningOut[2]) const;
void setViewPanning(const float viewPanning[2]);
ChartMatrixScaleModeEnum::Enum getScaleMode() const;
void setScaleMode(const ChartMatrixScaleModeEnum::Enum scaleMode);
bool isGridLinesDisplayed() const;
void setGridLinesDisplayed(const bool displayGridLines);
void resetPropertiesToDefault();
bool isSelectedRowColumnHighlighted() const;
void setSelectedRowColumnHighlighted(const bool highlightStatus);
AnnotationColorBar* getColorBar();
const AnnotationColorBar* getColorBar() const;
// ADD_NEW_METHODS_HERE
virtual AString toString() const;
virtual SceneClass* saveToScene(const SceneAttributes* sceneAttributes,
const AString& instanceName);
virtual void restoreFromScene(const SceneAttributes* sceneAttributes,
const SceneClass* sceneClass);
static void setManualScaleModeWindowWidthHeightScaling(const float windowWidthScaling,
const float windowHeightScaling);
// If there will be sub-classes of this class that need to save
// and restore data from scenes, these pure virtual methods can
// be uncommented to force their implemetation by sub-classes.
// protected:
// virtual void saveSubClassDataToScene(const SceneAttributes* sceneAttributes,
// SceneClass* sceneClass) = 0;
//
// virtual void restoreSubClassDataFromScene(const SceneAttributes* sceneAttributes,
// const SceneClass* sceneClass) = 0;
private:
void copyHelperChartMatrixDisplayProperties(const ChartMatrixDisplayProperties& obj);
SceneClassAssistant* m_sceneAssistant;
/** matrix cell width in pixels*/
float m_cellWidth;
/** matrix cell height in pixels*/
float m_cellHeight;
/** zooming for view of matrix*/
float m_viewZooming;
/** panning for view of matrix*/
float m_viewPanning[2];
/** scale mode for view of matrix*/
ChartMatrixScaleModeEnum::Enum m_scaleMode;
/** Highlight the selected row/column */
bool m_highlightSelectedRowColumn;
/** Display grid lines */
bool m_displayGridLines;
/** The color bar displayed in the graphics window */
AnnotationColorBar* m_colorBar;
static float s_manualScaleModeWindowWidthScaling;
static float s_manualScaleModeWindowHeightScaling;
// ADD_NEW_MEMBERS_HERE
};
#ifdef __CHART_MATRIX_DISPLAY_PROPERTIES_DECLARE__
float ChartMatrixDisplayProperties::s_manualScaleModeWindowWidthScaling = 1.0;
float ChartMatrixDisplayProperties::s_manualScaleModeWindowHeightScaling = 1.0;
#endif // __CHART_MATRIX_DISPLAY_PROPERTIES_DECLARE__
} // namespace
#endif //__CHART_MATRIX_DISPLAY_PROPERTIES_H__
|