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
/*
* Proview Open Source Process Control.
* Copyright (C) 2005-2014 SSAB EMEA AB.
*
* This file is part of Proview.
*
* 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 Proview. If not, see <http://www.gnu.org/licenses/>
*
* Linking Proview statically or dynamically with other modules is
* making a combined work based on Proview. Thus, the terms and
* conditions of the GNU General Public License cover the whole
* combination.
*
* In addition, as a special exception, the copyright holders of
* Proview give you permission to, from the build function in the
* Proview Configurator, combine Proview with modules generated by the
* Proview PLC Editor to a PLC program, regardless of the license
* terms of these modules. You may copy and distribute the resulting
* combined work under the terms of your choice, provided that every
* copy of the combined work is accompanied by a complete copy of
* the source code of Proview (the version used to produce the
* combined work), being distributed under the terms of the GNU
* General Public License plus this exception.
**/
#ifndef flow_radiobutton_h
#define flow_radiobutton_h
#include <iostream>
#include <fstream>
#include "flow.h"
#include "flow_ctx.h"
#include "flow_point.h"
#include "flow_array_elem.h"
class FlowRadiobutton : public FlowArrayElem {
public:
FlowRadiobutton( FlowCtx *flow_ctx, double x = 0, double y = 0,
double w = 0, double h = 0, int annot_num = 0,
flow_eDrawType d_type = flow_eDrawType_Line, int line_w = 1) :
ctx(flow_ctx), ll(flow_ctx,x,y), ur(flow_ctx,x+w,y+h),
draw_type(d_type), line_width(line_w), number(annot_num) {};
friend ostream& operator<< ( ostream& o, const FlowRadiobutton r);
void zoom();
void nav_zoom();
void print_zoom();
void traverse( int x, int y);
int event_handler( void *pos, flow_eEvent event, int x, int y, void *node);
void conpoint_select( void *pos, int x, int y, double *distance,
void **cp) {};
void print( void *pos, void *node, int highlight);
void save( ofstream& fp, flow_eSaveMode mode);
void open( ifstream& fp);
void draw( void *pos, int hightlight, int dimmed, int hot, void *node);
void nav_draw( void *pos, int highlight, void *node);
void draw_inverse( void *pos, int hot, void *node)
{ erase( pos, hot, node);};
void erase( void *pos, int hot, void *node);
void nav_erase( void *pos, void *node);
void get_borders( double pos_x, double pos_y, double *x_right,
double *x_left, double *y_high, double *y_low, void *node);
void move( void *pos, double x, double y, int highlight, int dimmed, int hot);
void shift( void *pos, double delta_x, double delta_y,
int highlight, int dimmed, int hot);
int get_conpoint( int num, double *x, double *y, flow_eDirection *dir)
{ return 0;};
flow_eObjectType type() { return flow_eObjectType_Radiobutton;};
FlowCtx *ctx;
double width() { return ur.x - ll.x;};
double height() { return ur.y - ll.y;};
FlowPoint ll;
FlowPoint ur;
flow_eDrawType draw_type;
int line_width;
int number;
};
#endif