]> git.lyx.org Git - lyx.git/blob - src/frontends/qt2/lengthcombo.C
Lots and lots of little trivial bits.
[lyx.git] / src / frontends / qt2 / lengthcombo.C
1 /**
2  * \file lengthcombo.C
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author John Levon
7  *
8  * Full author contact details are available in file CREDITS
9  */
10
11 #include <config.h>
12
13 #ifdef __GNUG__
14 #pragma implementation
15 #endif
16
17 #include "gettext.h"
18
19 #include "lengthcombo.h"
20
21 #include <qwhatsthis.h>
22
23 LengthCombo::LengthCombo(QWidget * parent, char * name)
24         : QComboBox(parent, name)
25 {
26         // FIXME: check these should all be here, I think not
27         insertItem(_("cm"));
28         insertItem(_("in"));
29         insertItem(_("pt"));
30         insertItem(_("mm"));
31         insertItem(_("pc"));
32         insertItem(_("ex"));
33         insertItem(_("em"));
34         insertItem(_("sp"));
35         insertItem(_("bp"));
36         insertItem(_("dd"));
37         insertItem(_("cc"));
38         insertItem(_("mu"));
39         insertItem(_("%p"));
40         insertItem(_("%c"));
41         insertItem(_("%l"));
42
43         connect(this, SIGNAL(activated(int)),
44                 this, SLOT(has_activated(int)));
45
46         QWhatsThis::add(this, _("FIXME - describe the units."));
47 }
48
49
50 LyXLength::UNIT LengthCombo::currentLengthItem() const
51 {
52         LyXLength::UNIT unit;
53         int i = currentItem();
54         switch (i) {
55                 default:
56                 case 0: unit = LyXLength::CM; break;
57                 case 1: unit = LyXLength::IN; break;
58                 case 2: unit = LyXLength::PT; break;
59                 case 3: unit = LyXLength::MM; break;
60                 case 4: unit = LyXLength::PC; break;
61                 case 5: unit = LyXLength::EX; break;
62                 case 6: unit = LyXLength::EM; break;
63                 case 7: unit = LyXLength::SP; break;
64                 case 8: unit = LyXLength::BP; break;
65                 case 9: unit = LyXLength::DD; break;
66                 case 10: unit = LyXLength::CC; break;
67                 case 11: unit = LyXLength::MU; break;
68                 case 12: unit = LyXLength::PPW; break;
69                 case 13: unit = LyXLength::PCW; break;
70                 case 14: unit = LyXLength::PLW; break;
71                 // FIXME: LyXLength::PTW ?
72         };
73         return unit;
74 }
75
76
77 void LengthCombo::has_activated(int)
78 {
79         emit selectionChanged(currentLengthItem());
80 }
81
82
83 void LengthCombo::setCurrentItem(LyXLength::UNIT unit)
84 {
85         int i;
86         switch (unit) {
87                 default:
88                 case LyXLength::CM: i = 0; break;
89                 case LyXLength::IN: i = 1; break;
90                 case LyXLength::PT: i = 2; break;
91                 case LyXLength::MM: i = 3; break;
92                 case LyXLength::PC: i = 4; break;
93                 case LyXLength::EX: i = 5; break;
94                 case LyXLength::EM: i = 6; break;
95                 case LyXLength::SP: i = 7; break;
96                 case LyXLength::BP: i = 8; break;
97                 case LyXLength::DD: i = 9; break;
98                 case LyXLength::CC: i = 10; break;
99                 case LyXLength::MU: i = 11; break;
100                 case LyXLength::PPW: i = 12; break;
101                 case LyXLength::PCW: i = 13; break;
102                 case LyXLength::PLW: i = 14; break;
103                 // FIXME: LyXLength::PTW ?
104         }
105         QComboBox::setCurrentItem(i);
106 }