class ScatterCtrl : public StaticRect, public ScatterDraw
Versatile 2D scatter graph control based on ScatterDraw.
It uses U++ Draw or Painter on demand to get better refresh speed or printing quality.
In ScatterCtrl_demo there is an overview of control possibilities.
ScatterCtrl()
Initializes the class.
void AddMouseBehavior(bool ctrl, bool alt, bool shift, bool left, bool middle, int middlewheel, bool right, ScatterAction action)
Add a new action to be launched when the combination of keys and mouse actions set by ctrl, alt, shift, left, middle, middlewheel and right is complied.
void RemoveMouseBehavior(ScatterAction action)
Remove all mouse and key combinations for action .
void ClearMouseBehavior()
Remove all mouse and key combinations to handle control.
void AddKeyBehavior(bool ctrl, bool alt, bool shift, int key, bool isVirtualKey, ScatterAction action)
Add a new action to be launched when the combination of keys set by ctrl, alt, shift and key is complied. isVirtualKey indicates if the key is a K_... virtual key or if it is a real char like 'e' or '+'.
void RemoveKeyBehavior(ScatterAction action)
Remove all key combinations for action.
void ClearKeyBehavior()
Remove all key combinations to handle control.
bool SetMouseBehavior(MouseBehaviour *mouseBehavior)
Sets mouseBehavior as the behavior of the mouse when used in ScatterCtrl.
See ScatterCtrl::MouseBehavior.
ScatterCtrl& SetMouseHandling(bool valx = true, bool valy = false)
If valx mouse can scroll or zoom in X axis.
If valy mouse can scroll or zoom in Y axis.
ScatterCtrl &SetSaveSize(Size &size)
Sets the Size size to save the control as a bitmap either to file or to clipboard.
Size &GetSaveSize()
Returns control size to save as a bitmap either to file or to clipboard..
ScatterCtrl &SetSaveSizeX(int cx)
Sets the width cx to save the control as a bitmap either to file or to clipboard.
ScatterCtrl &SetSaveSizeY(int cy)
Sets the width cy to save the control as a bitmap either to file or to clipboard.
ScatterCtrl &SetJPGQuality(int quality)
Sets the quality between 0 and 100 of the control when saved as a JPEG bitmap..
int GetJPGQuality()
Returns the JPEG bitmap quality.
enum Angle
It is the type for the rotaion angle. Values are
Angle_0
Angle_90: It is rotated 90º clockwise.
Angle_180
Angle_270: It is rotated 90º counterclockwise.
ScatterCtrl &Rotate(Angle angle)
Sets angle as the rotation angle.
Angle GetRotate()
Returns the rotation angle.
void Xmlize(XmlIO& xml)
Serialize the control as an XML.
void Jsonize(JsonIO& json)
Serialize the control as JSON.
void Serialize(Stream& s)
Serialize the control as a binary Stream.
bool GetMouseHandlingX()
Returns true if mouse can scroll or zoom in X axis.
bool GetMouseHandlingY()
Returns true if mouse can scroll or zoom in Y axis.
If show is true the context menu can be opened (right clicking by default).
ScatterCtrl& ShowPropertiesDlg(bool show = true)
If show is true, the context menu will have a "Properties" and "Data" dialogs.
In DEBUG mode both dialogs will always appear.
Here the "Properties" and here the "Data" dialog details are described.
ScatterCtrl& ShowProcessDlg(bool show = true)
If show is true, the context menu will have a "Process" dialog.
In DEBUG mode the "Process" menu will always appear.
Here the "Process" dialog details are described.
ScatterCtrl& ShowButtons(bool show = true)
If show is true, Properties, Data and Process buttons will appear at the right top end of the control.
In DEBUG mode these buttons will always appear.
ScatterCtrl &ShowInfo(bool show = true)
If show is true it shows a legend with mouse location when mouse is clicked.
void SaveAsMetafile(const char* file)
Windows
Saves the control as a windows metafile in file.
void SaveToClipboard(bool saveAsMetafile = false)
Saves the control to the clipboard as a bitmap.
Windows
If saveAsMetafile is true it saves a windows metafile.
void SaveToFile(String fileName = Null)
Saves the control to fileName as a bitmap depending of file extension.
JPEG and PNG are supported
If fileName is Null a FileSel is opened to ask the user for the name of the file.
virtual void Refresh()
Calls to Ctrl::Refresh().
virtual Size GetSize() const
Returns the visual control Size. ScatterDraw::GetImage() will return the Size of Image to be get by functions like GetImage().
ScatterCtrl& SetColor(const Upp::Color& color)
Calls to ScatterDraw::SetColor(color).
ScatterCtrl& SetGridColor(const Upp::Color& grid_color)
Calls to ScatterDraw::SetGridColor(grid_color).
ScatterCtrl& SetGridWidth(double grid_width)
Calls to ScatterDraw::SetGridWidth(grid_width).
ScatterCtrl& SetPlotAreaColor(const Upp::Color& p_a_color)
Calls to ScatterDraw::SetPlotAreaColor(p_a_color).
ScatterCtrl& SetAxisColor(const Upp::Color& axis_color)
Calls to ScatterDraw::SetAxisColor(axis_color).
ScatterCtrl& SetAxisWidth(int axis_width)
ScatterDraw::SetAxisWidth(axis_width)
ScatterCtrl& SetTitle(const String& title)
Calls to ScatterDraw::SetTitle(title);
ScatterCtrl& SetTitleFont(const Font& fontTitle)
Calls to ScatterDraw::SetTitleFont(fontTitle).
ScatterCtrl& SetTitleColor(const Upp::Color& colorTitle)
Calls to ScatterDraw::SetTitleColor(colorTitle).
ScatterCtrl& SetLabelsFont(const Font& fontLabels)
Calls to ScatterDraw::SetLabelsFont(fontLabels).
ScatterCtrl& SetLabelsColor(const Upp::Color& colorLabels)
Calls to ScatterDraw::SetLabelsColor(colorLabels).
ScatterCtrl& SetLabelX(const String& xLabel)
Calls to ScatterDraw::SetLabelX(xLabel).
ScatterCtrl& SetLabelY(const String& yLabel)
Calls to ScatterDraw::SetLabelY(yLabel).
ScatterCtrl& SetLabelY2(const String& yLabel)
Calls to ScatterDraw::SetLabelY(yLabel).
ScatterCtrl& SetPlotAreaMargin(int hLeft, int hRight, int vTop, int vBottom)
Calls to ScatterDraw::SetPlotAreaMargin(hLeft, hRight, vTop, vBottom).
ScatterCtrl& SetPlotAreaLeftMargin(int margin)
Calls ScatterDraw::SetPlotAreaLeftMargin(margin).
int GetPlotAreaLeftMargin()
Returns ScatterDraw::GetPlotAreaLeftMargin().
ScatterCtrl& SetPlotAreaTopMargin(int margin)
Calls to ScatterDraw::SetPlotAreaTopMargin(margin).
int GetPlotAreaTopMargin()
Returns ScatterDraw::GetPlotAreaTopMargin().
int GetPlotAreaRightMargin()
Returns ScatterDraw::GetPlotAreaRightMargin().
ScatterCtrl& SetPlotAreaRightMargin(int margin)
Calls to ScatterDraw::SetPlotAreaRightMargin(margin).
ScatterCtrl& SetPlotAreaBottomMargin(int margin)
Calls to ScatterDraw::SetPlotAreaBottomMargin(margin).
int GetPlotAreaBottomMargin()
Returns ScatterDraw::GetPlotAreaBottomMargin().
ScatterCtrl& ShowLegend(bool show = true)
Calls to ScatterDraw::ShowLegend(show).
bool GetShowLegend()
Returns ScatterDraw::GetShowLegend().
ScatterCtrl& SetLegendPos(const Point &pos)
Calls to ScatterDraw::SetLegendPos(pos).
ScatterCtrl& SetLegendPosX(int x)
Calls to ScatterDraw::SetLegendPosX(x).
ScatterCtrl& SetLegendPosY(int y)
Calls to ScatterDraw::SetLegendPosY(y).
Point& GetLegendPos()
Returns ScatterDraw::GetLegendPos().
ScatterCtrl& SetLegendNumCols(int num)
Calls to ScatterDraw::SetLegendNumCols(num)
int GetLegendNumCols()
Returns ScatterDraw::GetLegendNumCols().
ScatterCtrl& SetLegendRowSpacing(int num)
Calls to ScatterDraw::SetLegendRowSpacing(num)
int GetLegendRowSpacing()
Returns ScatterDraw::GetLegendRowSpacing().
ScatterCtrl& SetLegendAnchor(int anchor)
Calls to ScatterDraw::SetLegendAnchor(anchor)
int GetLegendAnchor()
Returns ScatterDraw::GetLegendAnchor().
ScatterCtrl& SetLegendFillColor(const Upp::Color &fill)
Calls to ScatterDraw::SetLegendFillColor(fill).
ScatterCtrl& SetLegendBorderColor(const Upp::Color &border)
Calls to ScatterDraw::SetLegendBorderColor(border).
Upp::Color& GetLegendFillColor()
Returns ScatterDraw::GetLegendFillColor().
Upp::Color& GetLegendBorderColor()
Returns ScatterDraw::GetLegendBorderColor().
enum ScatterAction action
Is the action to be launched if the previous conditions are complied. It can be:
NO_ACTION No action.
SCROLL Scrolls the graphs.
ZOOM_H_ENL Zooms horizontally enlarging the graphs.
ZOOM_H_RED Zooms horizontally reducing the graphs.
ZOOM_V_ENL Zooms vertically enlarging the graphs.
ZOOM_V_RED Zooms horizontally reducing the graphs.
SHOW_INFO Shows an info label including mouse real X and Y coordinates.
ZOOM_WINDOW Zoom in the window selected by the mouse.
SCROLL_LEFT Scrolls left the graph.
SCROLL_RIGHT Scrolls right the graph.
SCROLL_UP Scrolls up the graph.
SCROLL_DOWN Scrolls down the graph.
|