]> git.lyx.org Git - lyx.git/blob - src/frontends/qt2/lengthcombo.C
qtabular skeleton
[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
24 LengthCombo::LengthCombo(QWidget * parent, char * name)
25         : QComboBox(parent, name)
26 {
27         // FIXME: check these should all be here, I think not
28         insertItem(_("cm"));
29         insertItem(_("in"));
30         insertItem(_("pt"));
31         insertItem(_("mm"));
32         insertItem(_("pc"));
33         insertItem(_("ex"));
34         insertItem(_("em"));
35         insertItem(_("sp"));
36         insertItem(_("bp"));
37         insertItem(_("dd"));
38         insertItem(_("cc"));
39         insertItem(_("mu"));
40         insertItem(_("%p"));
41         insertItem(_("%c"));
42         insertItem(_("%l"));
43
44         connect(this, SIGNAL(activated(int)),
45                 this, SLOT(has_activated(int)));
46
47         QWhatsThis::add(this, _("FIXME - describe the units."));
48 }
49
50
51 LyXLength::UNIT LengthCombo::currentLengthItem() const
52 {
53         LyXLength::UNIT unit;
54         int i = currentItem();
55         switch (i) {
56                 default:
57                 case 0: unit = LyXLength::CM; break;
58                 case 1: unit = LyXLength::IN; break;
59                 case 2: unit = LyXLength::PT; break;
60                 case 3: unit = LyXLength::MM; break;
61                 case 4: unit = LyXLength::PC; break;
62                 case 5: unit = LyXLength::EX; break;
63                 case 6: unit = LyXLength::EM; break;
64                 case 7: unit = LyXLength::SP; break;
65                 case 8: unit = LyXLength::BP; break;
66                 case 9: unit = LyXLength::DD; break;
67                 case 10: unit = LyXLength::CC; break;
68                 case 11: unit = LyXLength::MU; break;
69                 case 12: unit = LyXLength::PPW; break;
70                 case 13: unit = LyXLength::PCW; break;
71                 case 14: unit = LyXLength::PLW; break;
72                 // FIXME: LyXLength::PTW ?
73         };
74         return unit;
75 }
76
77
78 void LengthCombo::has_activated(int)
79 {
80         emit selectionChanged(currentLengthItem());
81 }
82
83
84 void LengthCombo::setCurrentItem(LyXLength::UNIT unit)
85 {
86         int i;
87         switch (unit) {
88                 default:
89                 case LyXLength::CM: i = 0; break;
90                 case LyXLength::IN: i = 1; break;
91                 case LyXLength::PT: i = 2; break;
92                 case LyXLength::MM: i = 3; break;
93                 case LyXLength::PC: i = 4; break;
94                 case LyXLength::EX: i = 5; break;
95                 case LyXLength::EM: i = 6; break;
96                 case LyXLength::SP: i = 7; break;
97                 case LyXLength::BP: i = 8; break;
98                 case LyXLength::DD: i = 9; break;
99                 case LyXLength::CC: i = 10; break;
100                 case LyXLength::MU: i = 11; break;
101                 case LyXLength::PPW: i = 12; break;
102                 case LyXLength::PCW: i = 13; break;
103                 case LyXLength::PLW: i = 14; break;
104                 // FIXME: LyXLength::PTW ?
105         }
106         QComboBox::setCurrentItem(i);
107 }