Commit ed3f964c authored by Claes Sjofors's avatar Claes Sjofors

Ge axis arc added

parent fee04a8e
...@@ -159,3 +159,5 @@ ...@@ -159,3 +159,5 @@
101220 cs gdh Gdh fix to be able to set values in mounted volumes from opc. 101220 cs gdh Gdh fix to be able to set values in mounted volumes from opc.
110111 cs plc Plc loop options added for policy when execution time exceedes scantime. 110111 cs plc Plc loop options added for policy when execution time exceedes scantime.
110119 hw plc PID controller, derivative filtering modified, and function object Filter algorithm modified. 110119 hw plc PID controller, derivative filtering modified, and function object Filter algorithm modified.
110427 cs qmon Bugfix in buffering of subscription messages.
110427 cs tmon All timed out subscriptions immediately reset.
\ No newline at end of file
#define ge_bitmap_axisarc250_width 16
#define ge_bitmap_axisarc250_height 13
static unsigned char ge_bitmap_axisarc250_bits[] = {
0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0xb0, 0x06, 0x88, 0x08, 0x0c, 0x18,
0x12, 0x24, 0x02, 0x20, 0x01, 0x40, 0x01, 0x40, 0x07, 0x70, 0x00, 0x00,
0x00, 0x00};
...@@ -1624,6 +1624,23 @@ int Graph::get_attr_items( grow_tObject object, attr_sItem **itemlist, ...@@ -1624,6 +1624,23 @@ int Graph::get_attr_items( grow_tObject object, attr_sItem **itemlist,
&grow_info_cnt); &grow_info_cnt);
*item_cnt = 0; *item_cnt = 0;
} }
else if ( grow_GetObjectType( object) == glow_eObjectType_GrowAxisArc)
{
char transtab[][32] = {
"Angle1", "Angle1",
"Angle2", "Angle2",
"LineLength", "LineLength",
"MaxValue", "MaxValue",
"MinValue", "MinValue",
"Lines", "Lines",
"LongQuotient", "LongQuotient",
"ValueQuotient", "ValueQuotient",
"Dynamic", "Dynamic",
""};
grow_GetObjectAttrInfo( object, (char *)transtab, &grow_info,
&grow_info_cnt);
*item_cnt = 0;
}
else if ( grow_GetObjectType( object) == glow_eObjectType_GrowSlider) else if ( grow_GetObjectType( object) == glow_eObjectType_GrowSlider)
{ {
char transtab[][32] = { "SubGraph", "SubGraph", char transtab[][32] = { "SubGraph", "SubGraph",
...@@ -2451,6 +2468,10 @@ static int graph_grow_cb( GlowCtx *ctx, glow_tEvent event) ...@@ -2451,6 +2468,10 @@ static int graph_grow_cb( GlowCtx *ctx, glow_tEvent event)
grow_tObject t1; grow_tObject t1;
graph->create_axis( &t1, event->create_grow_object.x, event->create_grow_object.y); graph->create_axis( &t1, event->create_grow_object.x, event->create_grow_object.y);
} }
else if ( strcmp( sub_name, "pwr_axisarc") == 0) {
grow_tObject t1;
graph->create_axisarc( &t1, event->create_grow_object.x, event->create_grow_object.y);
}
else if ( strcmp( sub_name, "pwr_conglue") == 0) { else if ( strcmp( sub_name, "pwr_conglue") == 0) {
grow_tObject t1; grow_tObject t1;
...@@ -4743,6 +4764,27 @@ void Graph::create_axis( grow_tObject *object, double x, double y) ...@@ -4743,6 +4764,27 @@ void Graph::create_axis( grow_tObject *object, double x, double y)
grow_Redraw( grow->ctx); grow_Redraw( grow->ctx);
} }
void Graph::create_axisarc( grow_tObject *object, double x, double y)
{
double width = 5;
double height = 5;
glow_sAxisInfo info;
grow_CreateGrowAxisArc( grow->ctx, "",
x, y, x + width, y + height, 0, 180,
glow_eDrawType_Line, 1, 1,
glow_eDrawType_TextHelvetica, NULL, object);
info.max_value = 100;
info.min_value = 0;
info.lines = 11;
info.longquotient = 2;
info.valuequotient = 2;
strcpy( info.format, "%3.0f");
grow_SetAxisInfo( *object, &info);
grow_Redraw( grow->ctx);
}
int Graph::create_node_floating( double x, double y) int Graph::create_node_floating( double x, double y)
{ {
char sub_name[80] = "graph"; char sub_name[80] = "graph";
......
...@@ -1251,6 +1251,7 @@ class Graph { ...@@ -1251,6 +1251,7 @@ class Graph {
\param y y coordinate for object. \param y y coordinate for object.
*/ */
void create_axis( grow_tObject *object, double x, double y); void create_axis( grow_tObject *object, double x, double y);
void create_axisarc( grow_tObject *object, double x, double y);
int create_node_floating( double x, double y); int create_node_floating( double x, double y);
......
...@@ -289,6 +289,7 @@ ...@@ -289,6 +289,7 @@
#include "ge_bitmap_elheater247.h" #include "ge_bitmap_elheater247.h"
#include "ge_bitmap_limitswitch248.h" #include "ge_bitmap_limitswitch248.h"
#include "ge_bitmap_camera249.h" #include "ge_bitmap_camera249.h"
#include "ge_bitmap_axisarc250.h"
#define SUBPALETTE__INPUT_SYNTAX 2 #define SUBPALETTE__INPUT_SYNTAX 2
#define SUBPALETTE__OBJNOTFOUND 4 #define SUBPALETTE__OBJNOTFOUND 4
...@@ -629,6 +630,7 @@ void SubPaletteBrow::allocate_pixmaps() ...@@ -629,6 +630,7 @@ void SubPaletteBrow::allocate_pixmaps()
ALLOC_PIXMAP( ge_bitmap_elheater247, 247); ALLOC_PIXMAP( ge_bitmap_elheater247, 247);
ALLOC_PIXMAP( ge_bitmap_limitswitch248, 248); ALLOC_PIXMAP( ge_bitmap_limitswitch248, 248);
ALLOC_PIXMAP( ge_bitmap_camera249, 249); ALLOC_PIXMAP( ge_bitmap_camera249, 249);
ALLOC_PIXMAP( ge_bitmap_axisarc250, 250);
} }
......
...@@ -21,6 +21,7 @@ menu Analog ...@@ -21,6 +21,7 @@ menu Analog
subgraph XYCurve pwr_xycurve.component 25 subgraph XYCurve pwr_xycurve.component 25
subgraph Bar pwr_bar.component 26 subgraph Bar pwr_bar.component 26
subgraph Axis pwr_axis.component 27 subgraph Axis pwr_axis.component 27
subgraph AxisArc pwr_axisarc.component 250
} }
menu Process menu Process
{ {
......
...@@ -194,7 +194,8 @@ typedef enum { ...@@ -194,7 +194,8 @@ typedef enum {
glow_eObjectType_GrowScrollBar, glow_eObjectType_GrowScrollBar,
glow_eObjectType_GrowTable, glow_eObjectType_GrowTable,
glow_eObjectType_GrowFolder, glow_eObjectType_GrowFolder,
glow_eObjectType_GrowXYCurve glow_eObjectType_GrowXYCurve,
glow_eObjectType_GrowAxisArc
} glow_eObjectType; } glow_eObjectType;
//! Direction of a connection points, sliders etc //! Direction of a connection points, sliders etc
...@@ -1055,6 +1056,7 @@ typedef enum { ...@@ -1055,6 +1056,7 @@ typedef enum {
glow_eSave_GrowFolder = 41, glow_eSave_GrowFolder = 41,
glow_eSave_GrowTable = 42, glow_eSave_GrowTable = 42,
glow_eSave_GrowXYCurve = 43, glow_eSave_GrowXYCurve = 43,
glow_eSave_GrowAxisArc = 44,
glow_eSave_End = 99, glow_eSave_End = 99,
glow_eSave_Ctx_zoom_factor_x = 100, glow_eSave_Ctx_zoom_factor_x = 100,
glow_eSave_Ctx_base_zoom_factor = 101, glow_eSave_Ctx_base_zoom_factor = 101,
...@@ -1721,7 +1723,18 @@ typedef enum { ...@@ -1721,7 +1723,18 @@ typedef enum {
glow_eSave_GrowTable_column_adjustment10 = 4274, glow_eSave_GrowTable_column_adjustment10 = 4274,
glow_eSave_GrowTable_column_adjustment11 = 4275, glow_eSave_GrowTable_column_adjustment11 = 4275,
glow_eSave_GrowTable_column_adjustment12 = 4276, glow_eSave_GrowTable_column_adjustment12 = 4276,
glow_eSave_GrowXYCurve_trend_part = 4300 glow_eSave_GrowXYCurve_trend_part = 4300,
glow_eSave_GrowAxisArc_max_value = 4400,
glow_eSave_GrowAxisArc_min_value = 4401,
glow_eSave_GrowAxisArc_arc_part = 4402,
glow_eSave_GrowAxisArc_lines = 4403,
glow_eSave_GrowAxisArc_linelength = 4404,
glow_eSave_GrowAxisArc_longquotient = 4405,
glow_eSave_GrowAxisArc_valuequotient = 4406,
glow_eSave_GrowAxisArc_format = 4407,
glow_eSave_GrowAxisArc_text_size = 4408,
glow_eSave_GrowAxisArc_text_drawtype = 4409,
glow_eSave_GrowAxisArc_text_color_drawtype = 4410
} glow_eSave; } glow_eSave;
//! Relative or absolute position for an annotation //! Relative or absolute position for an annotation
......
...@@ -57,6 +57,7 @@ ...@@ -57,6 +57,7 @@
#include "glow_growimage.h" #include "glow_growimage.h"
#include "glow_growgroup.h" #include "glow_growgroup.h"
#include "glow_growaxis.h" #include "glow_growaxis.h"
#include "glow_growaxisarc.h"
#include "glow_growconglue.h" #include "glow_growconglue.h"
#include "glow_growwindow.h" #include "glow_growwindow.h"
#include "glow_growfolder.h" #include "glow_growfolder.h"
...@@ -222,6 +223,14 @@ void GlowArray::copy_from( const GlowArray& array) ...@@ -222,6 +223,14 @@ void GlowArray::copy_from( const GlowArray& array)
insert( n); insert( n);
break; break;
} }
case glow_eObjectType_GrowAxisArc:
{
GrowAxisArc *n = new GrowAxisArc(*(GrowAxisArc *)array.a[i]);
n->highlight = 0;
n->hot = 0;
insert( n);
break;
}
case glow_eObjectType_GrowConGlue: case glow_eObjectType_GrowConGlue:
{ {
GrowConGlue *n = new GrowConGlue(*(GrowConGlue *)array.a[i]); GrowConGlue *n = new GrowConGlue(*(GrowConGlue *)array.a[i]);
...@@ -1000,6 +1009,13 @@ void GlowArray::open( GrowCtx *ctx, ifstream& fp) ...@@ -1000,6 +1009,13 @@ void GlowArray::open( GrowCtx *ctx, ifstream& fp)
insert( r); insert( r);
break; break;
} }
case glow_eSave_GrowAxisArc:
{
GrowAxisArc *r = new GrowAxisArc( ctx, "");
r->open( fp);
insert( r);
break;
}
case glow_eSave_GrowConGlue: case glow_eSave_GrowConGlue:
{ {
GrowConGlue *r = new GrowConGlue( ctx, ""); GrowConGlue *r = new GrowConGlue( ctx, "");
......
...@@ -62,6 +62,7 @@ ...@@ -62,6 +62,7 @@
#include "glow_growslider.h" #include "glow_growslider.h"
#include "glow_growimage.h" #include "glow_growimage.h"
#include "glow_growaxis.h" #include "glow_growaxis.h"
#include "glow_growaxisarc.h"
#include "glow_growgroup.h" #include "glow_growgroup.h"
#include "glow_growconglue.h" #include "glow_growconglue.h"
#include "glow_growmenu.h" #include "glow_growmenu.h"
...@@ -1108,6 +1109,21 @@ void grow_CreateGrowAxis( grow_tCtx ctx, const char *name, ...@@ -1108,6 +1109,21 @@ void grow_CreateGrowAxis( grow_tCtx ctx, const char *name,
*axis = (grow_tObject) l1; *axis = (grow_tObject) l1;
} }
void grow_CreateGrowAxisArc( grow_tCtx ctx, const char *name,
double x1, double y1, double x2, double y2, int ang1, int ang2,
glow_eDrawType draw_type, int line_width, int text_size,
glow_eDrawType text_drawtype, void *user_data,
grow_tObject *axis)
{
GrowAxisArc *l1;
l1 = new GrowAxisArc( ctx, name, x1, y1, x2, y2, ang1, ang2, draw_type, line_width,
text_size, text_drawtype);
l1->set_user_data( user_data);
ctx->insert( l1);
ctx->nav_zoom();
*axis = (grow_tObject) l1;
}
void grow_CreateGrowConGlue( grow_tCtx ctx, const char *name, void grow_CreateGrowConGlue( grow_tCtx ctx, const char *name,
double x, double y, grow_tObject *conglue) double x, double y, grow_tObject *conglue)
{ {
...@@ -2357,6 +2373,101 @@ int grow_GetObjectAttrInfo( grow_tObject object, char *transtab, ...@@ -2357,6 +2373,101 @@ int grow_GetObjectAttrInfo( grow_tObject object, char *transtab,
} }
break; break;
} }
case glow_eObjectType_GrowAxisArc:
{
GrowAxisArc *op = (GrowAxisArc *)object;
char *name;
char *dynamic;
int dynsize;
if ( (name = growapi_translate( transtab, "Angle1")))
{
strcpy( attrinfo[i].name, name);
attrinfo[i].value_p = &op->angle1;
attrinfo[i].type = glow_eType_Int;
attrinfo[i++].size = sizeof( op->angle1);
}
if ( (name = growapi_translate( transtab, "Angle2")))
{
strcpy( attrinfo[i].name, name);
attrinfo[i].value_p = &op->angle2;
attrinfo[i].type = glow_eType_Int;
attrinfo[i++].size = sizeof( op->angle2);
}
if ( (name = growapi_translate( transtab, "LineLength")))
{
strcpy( attrinfo[i].name, name);
attrinfo[i].value_p = &op->linelength;
attrinfo[i].type = glow_eType_Double;
attrinfo[i++].size = sizeof( op->linelength);
}
if ( (name = growapi_translate( transtab, "MaxValue")))
{
strcpy( attrinfo[i].name, name);
attrinfo[i].value_p = &op->max_value;
attrinfo[i].type = glow_eType_Double;
attrinfo[i++].size = sizeof( op->max_value);
}
if ( (name = growapi_translate( transtab, "MinValue")))
{
strcpy( attrinfo[i].name, name);
attrinfo[i].value_p = &op->min_value;
attrinfo[i].type = glow_eType_Double;
attrinfo[i++].size = sizeof( op->min_value);
}
if ( (name = growapi_translate( transtab, "Lines")))
{
strcpy( attrinfo[i].name, name);
attrinfo[i].value_p = &op->lines;
attrinfo[i].type = glow_eType_Int;
attrinfo[i++].size = sizeof( op->lines);
}
if ( (name = growapi_translate( transtab, "LongQuotient")))
{
strcpy( attrinfo[i].name, name);
attrinfo[i].value_p = &op->longquotient;
attrinfo[i].type = glow_eType_Int;
attrinfo[i++].size = sizeof( op->longquotient);
}
if ( (name = growapi_translate( transtab, "ValueQuotient")))
{
strcpy( attrinfo[i].name, name);
attrinfo[i].value_p = &op->valuequotient;
attrinfo[i].type = glow_eType_Int;
attrinfo[i++].size = sizeof( op->valuequotient);
}
if ( (name = growapi_translate( transtab, "Format")))
{
strcpy( attrinfo[i].name, name);
attrinfo[i].value_p = &op->format;
attrinfo[i].type = glow_eType_String;
attrinfo[i++].size = sizeof( op->format);
}
if ( (name = growapi_translate( transtab, "Dynamic")))
{
strcpy( attrinfo[i].name, name);
op->get_dynamic( &dynamic, &dynsize);
attrinfo[i].value_p = malloc( 1024);
if ( dynsize)
strncpy( (char *) attrinfo[i].value_p, dynamic, 1024);
else
strcpy( (char *) attrinfo[i].value_p, "");
attrinfo[i].type = glow_eType_String;
attrinfo[i].size = 1024;
attrinfo[i].multiline = 1;
attrinfo[i++].info_type = grow_eInfoType_Dynamic;
}
break;
}
case glow_eObjectType_GrowNode: case glow_eObjectType_GrowNode:
case glow_eObjectType_GrowGroup: case glow_eObjectType_GrowGroup:
{ {
...@@ -3226,7 +3337,7 @@ void grow_UpdateObject( grow_tCtx ctx, grow_tObject object, ...@@ -3226,7 +3337,7 @@ void grow_UpdateObject( grow_tCtx ctx, grow_tObject object,
break; break;
if ( dynsize && strcmp( dynamic, (char *) info_p->value_p) != 0) if ( dynsize && strcmp( dynamic, (char *) info_p->value_p) != 0)
((GrowTrend *)object)->set_dynamic( (char *)info_p->value_p, ((GrowAxis *)object)->set_dynamic( (char *)info_p->value_p,
strlen( (char *)info_p->value_p)); strlen( (char *)info_p->value_p));
else if ( !dynsize) else if ( !dynsize)
((GrowAxis *)object)->set_dynamic( (char *)info_p->value_p, ((GrowAxis *)object)->set_dynamic( (char *)info_p->value_p,
...@@ -3245,6 +3356,42 @@ void grow_UpdateObject( grow_tCtx ctx, grow_tObject object, ...@@ -3245,6 +3356,42 @@ void grow_UpdateObject( grow_tCtx ctx, grow_tObject object,
((GrowAxis *)object)->get_node_borders(); ((GrowAxis *)object)->get_node_borders();
((GrowAxis *)object)->draw( &ctx->mw, INT_MIN, INT_MIN, INT_MAX, INT_MAX); ((GrowAxis *)object)->draw( &ctx->mw, INT_MIN, INT_MIN, INT_MAX, INT_MAX);
break; break;
case glow_eObjectType_GrowAxisArc:
// Set changed dynamic
info_p = info;
while ( info_p->info_type != grow_eInfoType_End)
{
switch( info_p->info_type)
{
case grow_eInfoType_Dynamic:
{
char *dynamic;
int dynsize;
((GrowAxisArc *)object)->get_dynamic( &dynamic, &dynsize);
if ( strcmp( (char *) info_p->value_p, "") == 0 && !dynsize)
break;
if ( dynsize && strcmp( dynamic, (char *) info_p->value_p) != 0)
((GrowAxisArc *)object)->set_dynamic( (char *)info_p->value_p,
strlen( (char *)info_p->value_p));
else if ( !dynsize)
((GrowAxisArc *)object)->set_dynamic( (char *)info_p->value_p,
strlen( (char *)info_p->value_p));
break;
}
default:
;
}
info_p++;
}
((GrowAxisArc *)object)->configure();
((GrowAxisArc *)object)->zoom();
((GrowAxisArc *)object)->nav_zoom();
((GrowAxisArc *)object)->get_node_borders();
((GrowAxisArc *)object)->draw( &ctx->mw, INT_MIN, INT_MIN, INT_MAX, INT_MAX);
break;
case glow_eObjectType_GrowNode: case glow_eObjectType_GrowNode:
case glow_eObjectType_GrowGroup: case glow_eObjectType_GrowGroup:
// Set changed annotations // Set changed annotations
...@@ -4077,8 +4224,12 @@ void grow_SetTrendLines( grow_tObject object, int vert_lines, ...@@ -4077,8 +4224,12 @@ void grow_SetTrendLines( grow_tObject object, int vert_lines,
void grow_SetAxisConf( grow_tObject object, double max_val, double min_val, void grow_SetAxisConf( grow_tObject object, double max_val, double min_val,
int no_of_lines, int long_quot, int value_quot, double rot, const char *format) int no_of_lines, int long_quot, int value_quot, double rot, const char *format)
{ {
((GrowAxis *)object)->set_conf( max_val, min_val, no_of_lines, if ( ((GlowArrayElem *)object)->type() == glow_eObjectType_GrowAxis)
long_quot, value_quot, rot, format); ((GrowAxis *)object)->set_conf( max_val, min_val, no_of_lines,
long_quot, value_quot, rot, format);
else if ( ((GlowArrayElem *)object)->type() == glow_eObjectType_GrowAxisArc)
((GrowAxisArc *)object)->set_conf( max_val, min_val, no_of_lines,
long_quot, value_quot, rot, format);
} }
void grow_SetModified( grow_tCtx ctx, int modified) void grow_SetModified( grow_tCtx ctx, int modified)
...@@ -4456,7 +4607,10 @@ void grow_GetBarInfo( grow_tObject object, glow_sBarInfo *info) ...@@ -4456,7 +4607,10 @@ void grow_GetBarInfo( grow_tObject object, glow_sBarInfo *info)
void grow_SetAxisInfo( grow_tObject object, glow_sAxisInfo *info) void grow_SetAxisInfo( grow_tObject object, glow_sAxisInfo *info)
{ {
((GrowAxis *)object)->set_axis_info( info); if ( ((GlowArrayElem *)object)->type() == glow_eObjectType_GrowAxis)
((GrowAxis *)object)->set_axis_info( info);
else if ( ((GlowArrayElem *)object)->type() == glow_eObjectType_GrowAxisArc)
((GrowAxisArc *)object)->set_axis_info( info);
} }
void grow_SetTableInfo( grow_tObject object, glow_sTableInfo *info) void grow_SetTableInfo( grow_tObject object, glow_sTableInfo *info)
......
...@@ -1196,6 +1196,28 @@ extern "C" { ...@@ -1196,6 +1196,28 @@ extern "C" {
glow_eDrawType draw_type, int line_width, int text_size, glow_eDrawType draw_type, int line_width, int text_size,
glow_eDrawType text_drawtype, void *user_data, glow_eDrawType text_drawtype, void *user_data,
grow_tObject *axis); grow_tObject *axis);
//! Create an image object, i.e an object of class GrowImage.
/*!
\param ctx Grow context.
\param name Object name (max 31 char).
\param x1 x coordinate for first corner.
\param y1 y coordinate for first corner.
\param x2 x coordinate for second corner.
\param y2 y coordinate for second corner.
\param ang1 Start angle of the arc in degrees from the x axis.
\param ang2 Lengh of the arc in degrees from the start angle.
\param draw_type Border color.
\param line_width Linewidth of border.
\param text_size Text size.
\param text_drawtype Drawtype for text.
\param user_data User data.
\param axis Created GrowImage object.
*/
void grow_CreateGrowAxisArc( grow_tCtx ctx, const char *name,
double x1, double y1, double x2, double y2, int ang1, int ang2,
glow_eDrawType draw_type, int line_width, int text_size,
glow_eDrawType text_drawtype, void *user_data,
grow_tObject *axis);
//! Create a connection glue object, i.e. an object of class GrowConGlue. //! Create a connection glue object, i.e. an object of class GrowConGlue.
/*! /*!
......
This diff is collapsed.
/*
* Proview $Id$
* Copyright (C) 2005 SSAB Oxelösund AB.
*
* 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 the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
#ifndef glow_growaxisarc_h
#define glow_growaxisarc_h
#include "glow_growarc.h"
/*! \file glow_growaxisarc.h
\brief Contains the GrowAxisArc class. */
/*! \addtogroup Glow */
/*@{*/
//! Class for drawing an axis object.
/*! A GrowAxisArc object is an object that displays an axis or scale.
The GrowAxisArc class contains function for drawing the object, and handle events when the
object is clicked on, moved etc.
*/
class GrowAxisArc : public GrowArc {
public:
//! Constuctor
/*!
\param glow_ctx The glow context.
\param name Name (max 31 char).
\param x1 x coordinate for first corner.
\param y1 y coordinate for first corner.
\param x2 x coordinate for second corner.
\param y2 y coordinate for second corner.
\param border_d_type Border color.
\param line_w Linewidth of border.
\param t_size Text size.
\param t_drawtype Drawtype for text.
\param nodraw Don't draw the object now.
*/
GrowAxisArc( GrowCtx *glow_ctx, const char *name, double x1 = 0, double y1 = 0,
double x2 = 0, double y2 = 0, int ang1 = 0, int ang2 = 0,
glow_eDrawType border_d_type = glow_eDrawType_Line,
int line_w = 1, int t_size = 2,
glow_eDrawType t_drawtype = glow_eDrawType_TextHelvetica,
int nodraw = 0);
//! Destructor
/*! Remove the object from context, and erase it from the screen.
*/
~GrowAxisArc();
//! Save the content of the object to file.
/*!
\param fp Ouput file.
\param mode Not used.
*/
void save( ofstream& fp, glow_eSaveMode mode);
//! Read the content of the object from file.
/*!
\param fp Input file.
*/
void open( ifstream& fp);
//! Erase the object
void erase( GlowWind *w)
{ erase( w, (GlowTransform *)NULL, hot, NULL);};
//! Draw the objects if any part is inside the drawing area.
/*!
\param ll_x Lower left x coordinate of drawing area.
\param ll_y Lower left y coordinate of drawing area.
\param ur_x Upper right x coordinate of drawing area.
\param ur_y Upper right y coordinate of drawing area.
*/
void draw( GlowWind *w, int ll_x, int ll_y, int ur_x, int ur_y);
//! Draw the objects if any part is inside the drawing area, and extends the drawing area.
/*!
\param ll_x Lower left x coordinate of drawing area.
\param ll_y Lower left y coordinate of drawing area.
\param ur_x Upper right x coordinate of drawing area.
\param ur_y Upper right y coordinate of drawing area.
If some part of object is inside the drawing area, and also outside the drawing area,
the drawingarea is extended so it contains the whole objects.
*/
void draw( GlowWind *w, int *ll_x, int *ll_y, int *ur_x, int *ur_y);
//! Set object highlight.
/*!
\param on If 1, set highlight. If 0, reset highlight.
*/
void set_highlight( int on);
//! Get the object type
/*!
\return The type of the object.
*/
glow_eObjectType type() { return glow_eObjectType_GrowAxisArc;};
int text_size; //!< Size of text.
glow_eDrawType text_drawtype; //!< Drawtype for text.
glow_eDrawType text_color_drawtype; //!< Text color.
double max_value; //!< Max value for the scale.
double min_value; //!< Min value for the scale.
int lines; //!< Number of perpendicular lines.
double linelength; //!< Length of perpendicular lines.
int longquotient; //!< Quotient of lines that are a little bit longer.
int valuequotient; //!< Quotient of lines that displays a value.
double increment; //!< Value difference between two lines.
char format[20]; //!< Format of displayed values.
//! Erase the object.
/*!
\param t Transform of parent node.
\param hot Draw as hot, with larger line width.
\param node Parent node. Can be zero.
*/
void erase( GlowWind *w, GlowTransform *t, int hot, void *node);
//! Draw the object.
/*!
\param t Transform of parent node. Can be zero.
\param highlight Draw with highlight colors.
\param hot Draw as hot, with larger line width.
\param node Parent node. Can be zero.
\param colornode The node that controls the color of the object. Can be zero.
The object is drawn with border, fill and shadow. If t is not zero, the current tranform is
multiplied with the parentnodes transform, to give the appropriate coordinates for the drawing.
*/
void draw( GlowWind *w, GlowTransform *t, int highlight, int hot, void *node, void *colornode);
//! Redraw the area inside the objects border.
void draw();
//! Configure the axis
/*! Calculate the layout for the axis, length of lines and which values that should be dislayed.
*/
void configure();
//! Moves object to alignment line or point.
/*!
\param x x coordinate of alignment point.
\param y y coordinate of alignment point.
\param direction Type of alignment.
*/
void align( double x, double y, glow_eAlignDirection direction);
//! Set the range for the scale value
/*!
\param min Min value.
\param max Max value.
*/
void set_range( double min, double max);
//! Set size of text.
/*!
\param size Text size.
*/
void set_textsize( int size);
//! Set text bold.
/*!
\param bold Text is bold.
*/
void set_textbold( int bold);
//! Set parameters for the axis.
/*!
\param info Info struct.
*/
void set_axis_info( glow_sAxisInfo *info);
//! Export the object as a javabean.
/*!
\param t Transform of parent node. Can be zero.
\param node Parent node. Can be zero.
\param pass Export pass.
\param shape_cnt Current index in a shape vector.
\param node_cnt Counter used for javabean name. Not used for this kind of object.
\param in_nc Member of a nodeclass. Not used for this kind of object.
\param fp Output file.
The object is transformed to the current zoom factor, and GlowExportJBean is used to generate
java code for the bean.
*/
void export_javabean( GlowTransform *t, void *node,
glow_eExportPass pass, int *shape_cnt, int node_cnt, int in_nc, ofstream &fp);
//! Set configuration values for the axis.
void set_conf( double max_val, double min_val, int no_of_lines,
int long_quot, int value_quot, double rot, const char *format);
//! Conversion between different versions of Glow
/*!
\param version Version to convert to.
*/
void convert( glow_eConvert version);
//! Set original text color.
/*!
\param drawtype Text color.
*/
void set_original_text_color( glow_eDrawType drawtype)
{ text_color_drawtype = drawtype; draw();};
//! Format axis text.
/*!
\param text Formated text.
\param fmt Format specification, c syntax or %1t(h:m:s), %2t (d h:m) for time formats.
\param value Value to format.
*/
void format_text( char *text, char *fmt, double value);
};
/*@}*/
#endif
...@@ -49,6 +49,7 @@ ...@@ -49,6 +49,7 @@
#include "glow_growimage.h" #include "glow_growimage.h"
#include "glow_growgroup.h" #include "glow_growgroup.h"
#include "glow_growaxis.h" #include "glow_growaxis.h"
#include "glow_growaxisarc.h"
#include "glow_growmenu.h" #include "glow_growmenu.h"
#include "glow_growfolder.h" #include "glow_growfolder.h"
#include "glow_growtable.h" #include "glow_growtable.h"
...@@ -2950,6 +2951,8 @@ void GrowCtx::set_select_textsize( int size) ...@@ -2950,6 +2951,8 @@ void GrowCtx::set_select_textsize( int size)
((GrowText *)a_sel[i])->set_textsize( size); ((GrowText *)a_sel[i])->set_textsize( size);
else if ( a_sel[i]->type() == glow_eObjectType_GrowAxis) else if ( a_sel[i]->type() == glow_eObjectType_GrowAxis)
((GrowAxis *)a_sel[i])->set_textsize( size); ((GrowAxis *)a_sel[i])->set_textsize( size);
else if ( a_sel[i]->type() == glow_eObjectType_GrowAxisArc)
((GrowAxisArc *)a_sel[i])->set_textsize( size);
else if ( a_sel[i]->type() == glow_eObjectType_GrowFolder) else if ( a_sel[i]->type() == glow_eObjectType_GrowFolder)
((GrowFolder *)a_sel[i])->set_textsize( size); ((GrowFolder *)a_sel[i])->set_textsize( size);
else if ( a_sel[i]->type() == glow_eObjectType_GrowTable) else if ( a_sel[i]->type() == glow_eObjectType_GrowTable)
...@@ -2964,6 +2967,8 @@ void GrowCtx::set_select_textbold( int bold) ...@@ -2964,6 +2967,8 @@ void GrowCtx::set_select_textbold( int bold)
((GrowText *)a_sel[i])->set_textbold( bold); ((GrowText *)a_sel[i])->set_textbold( bold);
else if ( a_sel[i]->type() == glow_eObjectType_GrowAxis) else if ( a_sel[i]->type() == glow_eObjectType_GrowAxis)
((GrowAxis *)a_sel[i])->set_textbold( bold); ((GrowAxis *)a_sel[i])->set_textbold( bold);
else if ( a_sel[i]->type() == glow_eObjectType_GrowAxisArc)
((GrowAxisArc *)a_sel[i])->set_textbold( bold);
else if ( a_sel[i]->type() == glow_eObjectType_GrowFolder) else if ( a_sel[i]->type() == glow_eObjectType_GrowFolder)
((GrowFolder *)a_sel[i])->set_textbold( bold); ((GrowFolder *)a_sel[i])->set_textbold( bold);
else if ( a_sel[i]->type() == glow_eObjectType_GrowTable) else if ( a_sel[i]->type() == glow_eObjectType_GrowTable)
...@@ -4336,6 +4341,10 @@ void GrowCtx::read_object( ifstream& fp, GlowArrayElem **o) ...@@ -4336,6 +4341,10 @@ void GrowCtx::read_object( ifstream& fp, GlowArrayElem **o)
n = new GrowAxis( this, ""); n = new GrowAxis( this, "");
break; break;
} }
case glow_eSave_GrowAxisArc: {
n = new GrowAxisArc( this, "");
break;
}
case glow_eSave_GrowConGlue: { case glow_eSave_GrowConGlue: {
n = new GrowConGlue( this, ""); n = new GrowConGlue( this, "");
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment