2 /* This file is part of
3 * =================================================
5 * LyX, The Document Processor
6 * Copyright 1995 Matthias Ettrich.
7 * Copyright 1995-2000 The LyX Team.
9 * This file Copyright 2000 Baruch Even
10 * ================================================= */
13 #ifndef RADIOBUTTONGROUP_H
14 #define RADIOBUTTONGROUP_H
26 #include FORMS_H_LOCATION
28 /** This class simplifies the work with a group of radio buttons,
29 * the idea is that you register a bunch of radio buttons with the accompanying
30 * value for each radio button and then you get to query or set the active
31 * button in a single function call.
34 class RadioButtonGroup {
36 /// Constructor. Allocate space for 'n' items in the group.
37 RadioButtonGroup(unsigned n = 5) : map(n) {};
39 /// Register a radio button with it's corresponding value.
40 void registerRadioButton(FL_OBJECT *button, int value);
41 /// Reset registrations.
44 // Set the active button.
45 void setButton(int value);
47 // Get the active button.
52 typedef pair<FL_OBJECT *, int> ButtonValuePair;
54 typedef vector<ButtonValuePair> ButtonValueMap;