1 /**********************************************************
2  * Version $Id$
3  *********************************************************/
4 
5 ///////////////////////////////////////////////////////////
6 //                                                       //
7 //                         SAGA                          //
8 //                                                       //
9 //      System for Automated Geoscientific Analyses      //
10 //                                                       //
11 //                    User Interface                     //
12 //                                                       //
13 //                    Program: SAGA                      //
14 //                                                       //
15 //-------------------------------------------------------//
16 //                                                       //
17 //                    VIEW_Ruler.h                       //
18 //                                                       //
19 //          Copyright (C) 2005 by Olaf Conrad            //
20 //                                                       //
21 //-------------------------------------------------------//
22 //                                                       //
23 // This file is part of 'SAGA - System for Automated     //
24 // Geoscientific Analyses'. SAGA is free software; you   //
25 // can redistribute it and/or modify it under the terms  //
26 // of the GNU General Public License as published by the //
27 // Free Software Foundation, either version 2 of the     //
28 // License, or (at your option) any later version.       //
29 //                                                       //
30 // SAGA is distributed in the hope that it will be       //
31 // useful, but WITHOUT ANY WARRANTY; without even the    //
32 // implied warranty of MERCHANTABILITY or FITNESS FOR A  //
33 // PARTICULAR PURPOSE. See the GNU General Public        //
34 // License for more details.                             //
35 //                                                       //
36 // You should have received a copy of the GNU General    //
37 // Public License along with this program; if not, see   //
38 // <http://www.gnu.org/licenses/>.                       //
39 //                                                       //
40 //-------------------------------------------------------//
41 //                                                       //
42 //    contact:    Olaf Conrad                            //
43 //                Institute of Geography                 //
44 //                University of Goettingen               //
45 //                Goldschmidtstr. 5                      //
46 //                37077 Goettingen                       //
47 //                Germany                                //
48 //                                                       //
49 //    e-mail:     oconrad@saga-gis.org                   //
50 //                                                       //
51 ///////////////////////////////////////////////////////////
52 
53 //---------------------------------------------------------
54 
55 
56 ///////////////////////////////////////////////////////////
57 //														 //
58 //														 //
59 //														 //
60 ///////////////////////////////////////////////////////////
61 
62 //---------------------------------------------------------
63 #ifndef _HEADER_INCLUDED__SAGA_GUI__VIEW_Ruler_H
64 #define _HEADER_INCLUDED__SAGA_GUI__VIEW_Ruler_H
65 
66 
67 ///////////////////////////////////////////////////////////
68 //														 //
69 //														 //
70 //														 //
71 ///////////////////////////////////////////////////////////
72 
73 //---------------------------------------------------------
74 #include <wx/panel.h>
75 
76 
77 ///////////////////////////////////////////////////////////
78 //														 //
79 //														 //
80 //														 //
81 ///////////////////////////////////////////////////////////
82 
83 //---------------------------------------------------------
84 #define RULER_HORIZONTAL		0x00
85 #define RULER_VERTICAL			0x01
86 #define RULER_EDGE_BLACK		0x02
87 #define RULER_EDGE_SUNKEN		0x04
88 #define RULER_DESCENDING		0x08
89 #define RULER_MODE_NORMAL		0x10
90 #define RULER_MODE_CORNERS		0x20
91 #define RULER_MODE_SCALE		0x40
92 #define RULER_TICKATBOTTOM		0x80
93 
94 
95 ///////////////////////////////////////////////////////////
96 //														 //
97 //														 //
98 //														 //
99 ///////////////////////////////////////////////////////////
100 
101 //---------------------------------------------------------
102 class CVIEW_Ruler : public wxPanel
103 {
104 public:
105 	CVIEW_Ruler(wxWindow *pParent, int Style = RULER_HORIZONTAL);
106 	virtual ~CVIEW_Ruler(void);
107 
108 	void						On_Paint			(wxPaintEvent &event);
109 
110 	void						Set_Mode			(int Mode);
111 	void						Set_Range			(double Min, double Max);
112 	void						Set_Range_Core		(double Min, double Max);
113 	void						Set_Position		(int Position);
114 
115 
116 private:
117 
118 	bool						m_bHorizontal, m_bAscendent, m_bTickAtTop;
119 
120 	int							m_Mode, m_Edge, m_Position;
121 
122 	double						m_Min, m_Max, m_Min_Core, m_Max_Core;
123 
124 	void						_Draw_Corners		(wxDC &dc, int Width, int Height);
125 	void						_Draw_Core			(wxDC &dc, int Width, int Height);
126 	void						_Draw_Position		(wxDC &dc, int Width, int Height, int Position);
127 
128 
129 //---------------------------------------------------------
130 DECLARE_EVENT_TABLE()
131 };
132 
133 
134 ///////////////////////////////////////////////////////////
135 //														 //
136 //														 //
137 //														 //
138 ///////////////////////////////////////////////////////////
139 
140 //---------------------------------------------------------
141 #endif // #ifndef _HEADER_INCLUDED__SAGA_GUI__VIEW_Ruler_H
142