2
/******************************************************************************
3
* MODULE : attribute_widget.cpp
4
* DESCRIPTION: Abstract attribute widgets accept events for
5
* setting and retrieving attributes of a widget
6
* COPYRIGHT : (C) 1999 Joris van der Hoeven
7
*******************************************************************************
8
* This software falls under the GNU general public license and comes WITHOUT
9
* ANY WARRANTY WHATSOEVER. See the file $TEXMACS_PATH/LICENSE for more details.
10
* If you don't have this file, write to the Free Software Foundation, Inc.,
11
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
12
******************************************************************************/
14
#include "Widget/attribute_widget.hpp"
16
/******************************************************************************
17
* Constructors for abstract attribute widgets
18
******************************************************************************/
20
attribute_widget_rep::attribute_widget_rep (display dis, gravity grav):
21
basic_widget_rep (dis, grav) {}
22
attribute_widget_rep::attribute_widget_rep (display dis, array<widget> a,
24
basic_widget_rep (dis, a, grav) {}
25
attribute_widget_rep::attribute_widget_rep (display dis, array<widget> a,
26
array<string> name, gravity grav): basic_widget_rep (dis, a, name, grav) {}
28
/******************************************************************************
29
* Retrieving information from attribute widgets
30
******************************************************************************/
33
attribute_widget_rep::handle_get_integer (get_integer_event ev) {
34
fatal_error ("Could not get integer attribute " * ev->which);
38
attribute_widget_rep::handle_get_double (get_double_event ev) {
39
fatal_error ("Could not get double attribute " * ev->which);
43
attribute_widget_rep::handle_get_string (get_string_event ev) {
44
fatal_error ("Could not get string attribute " * ev->which);
48
attribute_widget_rep::handle_get_coord1 (get_coord1_event ev) {
49
fatal_error ("Could not get coord1 attribute " * ev->which);
53
attribute_widget_rep::handle_get_coord2 (get_coord2_event ev) {
54
fatal_error ("Could not get coord2 attribute " * ev->which);
58
attribute_widget_rep::handle_get_coord3 (get_coord3_event ev) {
59
fatal_error ("Could not get coord3 attribute " * ev->which);
63
attribute_widget_rep::handle_get_coord4 (get_coord4_event ev) {
64
fatal_error ("Could not get coord4 attribute " * ev->which);
67
/******************************************************************************
68
* Setting attributes of attribute widgets
69
******************************************************************************/
72
attribute_widget_rep::handle_set_integer (set_integer_event ev) {
73
fatal_error ("Could not set integer attribute " * ev->which);
77
attribute_widget_rep::handle_set_double (set_double_event ev) {
78
fatal_error ("Could not set double attribute " * ev->which);
82
attribute_widget_rep::handle_set_string (set_string_event ev) {
83
fatal_error ("Could not set string attribute " * ev->which);
87
attribute_widget_rep::handle_set_coord1 (set_coord1_event ev) {
88
fatal_error ("Could not set coord1 attribute " * ev->which);
92
attribute_widget_rep::handle_set_coord2 (set_coord2_event ev) {
93
fatal_error ("Could not set coord2 attribute " * ev->which);
97
attribute_widget_rep::handle_set_coord3 (set_coord3_event ev) {
98
fatal_error ("Could not set coord3 attribute " * ev->which);
102
attribute_widget_rep::handle_set_coord4 (set_coord4_event ev) {
103
fatal_error ("Could not set coord4 attribute " * ev->which);
106
/******************************************************************************
107
* The main event handler
108
******************************************************************************/
111
attribute_widget_rep::handle (event ev) {
112
if (basic_widget_rep::handle (ev)) return true;
114
case GET_INTEGER_EVENT:
115
handle_get_integer (ev);
117
case GET_DOUBLE_EVENT:
118
handle_get_double (ev);
120
case GET_STRING_EVENT:
121
handle_get_string (ev);
123
case GET_COORD1_EVENT:
124
handle_get_coord1 (ev);
126
case GET_COORD2_EVENT:
127
handle_get_coord2 (ev);
129
case GET_COORD3_EVENT:
130
handle_get_coord3 (ev);
132
case GET_COORD4_EVENT:
133
handle_get_coord4 (ev);
136
case SET_INTEGER_EVENT:
137
handle_set_integer (ev);
139
case SET_DOUBLE_EVENT:
140
handle_set_double (ev);
142
case SET_STRING_EVENT:
143
handle_set_string (ev);
145
case SET_COORD1_EVENT:
146
handle_set_coord1 (ev);
148
case SET_COORD2_EVENT:
149
handle_set_coord2 (ev);
151
case SET_COORD3_EVENT:
152
handle_set_coord3 (ev);
154
case SET_COORD4_EVENT:
155
handle_set_coord4 (ev);