]> git.lyx.org Git - lyx.git/blob - src/frontends/qt2/chardlgimpl.C
implement getLabelList
[lyx.git] / src / frontends / qt2 / chardlgimpl.C
1 /**
2  * \file chardlgimpl.C
3  * Copyright 2001 The LyX Team.
4  * See the file COPYING.
5  *
6  * \author Edwin Leuven, leuven@fee.uva.nl
7  */
8
9 #include "chardlg.h"
10 #include "chardlgimpl.h"
11 #include "FormCharacter.h"
12 #include "lyxtext.h"
13 #include "language.h"
14
15 #include <qcombobox.h>
16 #include <qcheckbox.h>
17 #include <qpushbutton.h>
18 #include <qgroupbox.h>
19
20 CharDlgImpl::CharDlgImpl(FormCharacter* form, QWidget * parent,  const char* name, bool modal, WFlags fl )
21     : CharDlg( parent, name, modal, fl ), form_(form)
22 {
23    setCaption(name);
24 }
25
26 CharDlgImpl::~CharDlgImpl()
27 {
28 }
29
30 LyXFont CharDlgImpl::getChar()
31 {
32    LyXFont font(LyXFont::ALL_IGNORE);
33    
34    int pos = family->currentItem();
35    switch (pos) {
36       case 0: font.setFamily(LyXFont::IGNORE_FAMILY); break;
37       case 1: font.setFamily(LyXFont::INHERIT_FAMILY); break;
38       case 2: font.setFamily(LyXFont::ROMAN_FAMILY); break;
39       case 3: font.setFamily(LyXFont::SANS_FAMILY); break;
40       case 4: font.setFamily(LyXFont::TYPEWRITER_FAMILY); break;
41    }
42    
43    pos = series->currentItem();
44    switch (pos) {
45       case 0: font.setSeries(LyXFont::IGNORE_SERIES); break;
46       case 1: font.setSeries(LyXFont::INHERIT_SERIES); break;
47       case 2: font.setSeries(LyXFont::MEDIUM_SERIES); break;
48       case 3: font.setSeries(LyXFont::BOLD_SERIES); break;
49    }
50    
51    pos = shape->currentItem();
52    switch (pos) {
53       case 0: font.setShape(LyXFont::IGNORE_SHAPE); break;
54       case 1: font.setShape(LyXFont::INHERIT_SHAPE); break;
55       case 2: font.setShape(LyXFont::UP_SHAPE); break;
56       case 3: font.setShape(LyXFont::ITALIC_SHAPE); break;
57       case 4: font.setShape(LyXFont::SLANTED_SHAPE); break;
58       case 5: font.setShape(LyXFont::SMALLCAPS_SHAPE); break;
59    }
60    
61    pos = size->currentItem();
62    switch (pos) {
63       case 0: font.setSize(LyXFont::IGNORE_SIZE); break;
64       case 1: font.setSize(LyXFont::INHERIT_SIZE); break;
65       case 2: font.setSize(LyXFont::SIZE_TINY); break;
66       case 3: font.setSize(LyXFont::SIZE_SCRIPT); break;
67       case 4: font.setSize(LyXFont::SIZE_FOOTNOTE); break;
68       case 5: font.setSize(LyXFont::SIZE_SMALL); break;
69       case 6: font.setSize(LyXFont::SIZE_NORMAL); break;
70       case 7: font.setSize(LyXFont::SIZE_LARGE); break;
71       case 8: font.setSize(LyXFont::SIZE_LARGER); break;
72       case 9: font.setSize(LyXFont::SIZE_LARGEST); break;
73       case 10: font.setSize(LyXFont::SIZE_HUGE); break;
74       case 11: font.setSize(LyXFont::SIZE_HUGER); break;
75       case 12: font.setSize(LyXFont::INCREASE_SIZE); break;
76       case 13: font.setSize(LyXFont::DECREASE_SIZE); break;
77    }
78    
79    pos = misc->currentItem();
80    switch (pos) {
81       case 0: font.setEmph(LyXFont::IGNORE);
82       font.setUnderbar(LyXFont::IGNORE);
83       font.setNoun(LyXFont::IGNORE);
84       font.setLatex(LyXFont::IGNORE);
85       break;
86       case 1: font.setEmph(LyXFont::INHERIT);
87       font.setUnderbar(LyXFont::INHERIT);
88       font.setNoun(LyXFont::INHERIT);
89       font.setLatex(LyXFont::INHERIT);
90       break;
91       case 2: font.setEmph(LyXFont::TOGGLE); break;
92       case 3: font.setUnderbar(LyXFont::TOGGLE); break;
93       case 4: font.setNoun(LyXFont::TOGGLE); break;
94       case 5: font.setLatex(LyXFont::TOGGLE); break;
95    }
96    
97    pos = color->currentItem();
98    switch (pos) {
99       case 0: font.setColor(LColor::ignore); break;
100       case 1: font.setColor(LColor::inherit); break;
101       case 2: font.setColor(LColor::none); break;
102       case 3: font.setColor(LColor::black); break;
103       case 4: font.setColor(LColor::white); break;
104       case 5: font.setColor(LColor::red); break;
105       case 6: font.setColor(LColor::green); break;
106       case 7: font.setColor(LColor::blue); break;
107       case 8: font.setColor(LColor::cyan); break;
108       case 9: font.setColor(LColor::magenta); break;
109       case 10: font.setColor(LColor::yellow); break;
110    }
111    
112    pos = lang->currentItem();
113    if (pos==0) {
114      font.setLanguage(ignore_language);
115    } else if (pos!=1) {
116      const char * language = lang->currentText();
117      font.setLanguage(languages.getLanguage(language));
118    };
119
120    return font;
121 }
122
123 void CharDlgImpl::closeEvent(QCloseEvent * e)
124 {
125    form_->close();
126    e->accept();
127 }
128
129 void CharDlgImpl::setReadOnly(bool readonly)
130 {
131    sizeGB->setEnabled(!readonly);
132    charGB->setEnabled(!readonly);
133    miscGB->setEnabled(!readonly);
134    okPB->setEnabled(!readonly);
135    applyPB->setEnabled(!readonly);
136 }