File: Fl_Meter.h

package info (click to toggle)
rtai 3.6.1-1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 18,448 kB
  • ctags: 13,674
  • sloc: ansic: 64,656; sh: 11,769; cpp: 10,387; makefile: 1,324; yacc: 575; lex: 366; php: 313; asm: 173; perl: 108; xml: 73
file content (92 lines) | stat: -rw-r--r-- 2,462 bytes parent folder | download | duplicates (3)
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
/*
COPYRIGHT (C) 2003  Lorenzo Dozio (dozio@aero.polimi.it)
		    Roberto Bucher (roberto.bucher@supsi.ch)
		    Peter Brier (pbrier@dds.nl)

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

This library 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
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/

#ifndef _FL_METER_H_
#define _FL_METER_H_

#include <efltk/Fl.h>
#include <efltk/Fl_Gl_Window.h>
#include <efltk/Fl_Color.h>
#include <efltk/gl.h>
#include <GL/glu.h>
#include <stdlib.h>
#include <math.h>

/* Meter styles */
enum { MS_DIAL=1, MS_VALUE=2, MS_BAR=4, MS_BARCENTER=8, MS_ANGLE=16, MS_GRID=32 };

class Fl_Meter : public Fl_Gl_Window
{
	public:
		Fl_Meter(int x, int y, int w, int h, const char *title="rtMeter");
		void value(float);
		float value();
		void minimum_value(float);
		void maximum_value(float);
		void bg_color(float r, float g, float b);
		void bg_color(Fl_Color c);
		float bg_r();
		float bg_g();
		float bg_b();
		Fl_Color bg_color();
		void bg_free_color();
		void grid_color(float r, float g, float b);
		void grid_color(Fl_Color c);
		float grid_r();
		float grid_g();
		float grid_b();
		Fl_Color grid_color();
		void grid_free_color();
		void arrow_color(float r, float g, float b);
		void arrow_color(Fl_Color c);
		float arrow_r();
		float arrow_g();
		float arrow_b();
		Fl_Color arrow_color();
		void arrow_free_color();
		int meter_style(void);
		void meter_style(int);
	private:
		int Start_Deg, End_Deg;
		float Start_Rad, End_Rad;
		float Radius;
		float Arrow_Length;
		int N_Ticks;
		int N_Ticks_Per_Div;
		float Big_Ticks_Angle;
		float Small_Ticks_Angle;
		float Minimum_Value;
		float Maximum_Value;
		float Value, Unclipped_Value;
		int overload;
		float Bg_rgb[3];
		Fl_Color Bg_Color;
		float Grid_rgb[3];
		Fl_Color Grid_Color;
		float Arrow_rgb[3];
		Fl_Color Arrow_Color;
		int Meter_Style;
	protected:
		void initgl();
		void drawgrid();
		void draw();
};

#endif