19#include "stenciltexteditor.h"
21#include <tqtoolbutton.h>
24#include <tqpopupmenu.h>
26#include <kiconloader.h>
28#include <tdefontcombo.h>
29#include <kcolorbutton.h>
32#include <karrowbutton.h>
34#include "kivio_stenciltexteditorui.h"
38StencilTextEditor::StencilTextEditor(
const TQString& caption, TQWidget *parent,
const char *name)
39 : KDialogBase(parent, name, true, caption, KDialogBase::Ok|KDialogBase::Cancel)
43 m_mainWidget =
new StencilTextEditorUI(
this);
44 setMainWidget(m_mainWidget);
46 m_mainWidget->m_boldButton->setIconSet(SmallIconSet(
"format-text-bold", 16));
47 m_mainWidget->m_italicsButton->setIconSet(SmallIconSet(
"format-text-italic", 16));
48 m_mainWidget->m_underLineButton->setIconSet(SmallIconSet(
"format-text-underline", 16));
50 TQPopupMenu* menu =
new TQPopupMenu(m_mainWidget->m_hAlignButton,
"hAlignMenu");
51 menu->setCheckable(
true);
52 menu->insertItem(SmallIconSet(
"format-text-direction-ltr", 16), i18n(
"Align Left"), TQt::AlignLeft);
53 menu->insertItem(SmallIconSet(
"text_center", 16), i18n(
"Align Center"), TQt::AlignHCenter);
54 menu->insertItem(SmallIconSet(
"format-text-direction-rtl", 16), i18n(
"Align Right"), TQt::AlignRight);
55 m_mainWidget->m_hAlignButton->setPopup(menu);
56 connect(menu, TQ_SIGNAL(activated(
int)),
this, TQ_SLOT(setHorizontalAlign(
int)));
57 connect(m_mainWidget->m_hAlignButton, TQ_SIGNAL(clicked()),
this, TQ_SLOT(showHAlignPopup()));
59 menu =
new TQPopupMenu(m_mainWidget->m_vAlignButton,
"hAlignMenu");
60 menu->setCheckable(
true);
61 menu->insertItem(SmallIconSet(
"align_top", 16), i18n(
"Align Top"), TQt::AlignTop);
62 menu->insertItem(SmallIconSet(
"align_vcenter", 16), i18n(
"Align Vertical Center"), TQt::AlignVCenter);
63 menu->insertItem(SmallIconSet(
"align_bottom", 16), i18n(
"Align Bottom"), TQt::AlignBottom);
64 m_mainWidget->m_vAlignButton->setPopup(menu);
65 connect(menu, TQ_SIGNAL(activated(
int)),
this, TQ_SLOT(setVerticalAlign(
int)));
66 connect(m_mainWidget->m_vAlignButton, TQ_SIGNAL(clicked()),
this, TQ_SLOT(showVAlignPopup()));
68 connect(m_mainWidget->m_fontCombo, TQ_SIGNAL(activated(
int)),
this, TQ_SLOT(updateFormating()));
69 connect(m_mainWidget->m_fontSizeCombo, TQ_SIGNAL(activated(
int)),
this, TQ_SLOT(updateFormating()));
70 connect(m_mainWidget->m_boldButton, TQ_SIGNAL(clicked()),
this, TQ_SLOT(updateFormating()));
71 connect(m_mainWidget->m_italicsButton, TQ_SIGNAL(clicked()),
this, TQ_SLOT(updateFormating()));
72 connect(m_mainWidget->m_underLineButton, TQ_SIGNAL(clicked()),
this, TQ_SLOT(updateFormating()));
73 connect(m_mainWidget->m_textColorButton, TQ_SIGNAL(clicked()),
this, TQ_SLOT(updateFormating()));
75 m_mainWidget->m_textArea->setFocus();
78StencilTextEditor::~StencilTextEditor()
82void StencilTextEditor::setFont(
const TQFont& font)
84 m_mainWidget->m_textArea->setFont(font);
85 m_mainWidget->m_fontCombo->setCurrentFont(font.family());
86 m_mainWidget->m_fontSizeCombo->setCurrentText(TQString::number(font.pointSize()));
87 m_mainWidget->m_boldButton->setOn(font.bold());
88 m_mainWidget->m_italicsButton->setOn(font.italic());
89 m_mainWidget->m_underLineButton->setOn(font.underline());
92void StencilTextEditor::setFontColor(
const TQColor& color)
94 m_mainWidget->m_textArea->setPaletteForegroundColor(color);
95 m_mainWidget->m_textColorButton->setColor(color);
98void StencilTextEditor::setBackgroundColor(
const TQColor& color)
100 m_mainWidget->m_textArea->setPaletteBackgroundColor(color);
103void StencilTextEditor::setHorizontalAlign(
int flag)
106 m_mainWidget->m_hAlignButton->popup()->setItemChecked(m_hAlign,
false);
109 m_mainWidget->m_hAlignButton->popup()->setItemChecked(flag,
true);
110 m_mainWidget->m_hAlignButton->setIconSet(*(m_mainWidget->m_hAlignButton->popup()->iconSet(flag)));
111 m_mainWidget->m_textArea->setAlignment(flag|verticalAlignment());
115void StencilTextEditor::setVerticalAlign(
int flag)
118 m_mainWidget->m_vAlignButton->popup()->setItemChecked(m_vAlign,
false);
121 m_mainWidget->m_vAlignButton->popup()->setItemChecked(flag,
true);
122 m_mainWidget->m_vAlignButton->setIconSet(*(m_mainWidget->m_vAlignButton->popup()->iconSet(flag)));
123 m_mainWidget->m_textArea->setAlignment(flag|horizontalAlignment());
127TQFont StencilTextEditor::font()
const
130 font.setFamily(m_mainWidget->m_fontCombo->currentFont());
131 font.setPointSize(m_mainWidget->m_fontSizeCombo->currentText().toInt());
132 font.setBold(m_mainWidget->m_boldButton->isOn());
133 font.setItalic(m_mainWidget->m_italicsButton->isOn());
134 font.setUnderline(m_mainWidget->m_underLineButton->isOn());
139TQColor StencilTextEditor::fontColor()
const
141 return m_mainWidget->m_textColorButton->color();
144TQt::AlignmentFlags StencilTextEditor::horizontalAlignment()
const
146 return static_cast<TQt::AlignmentFlags
>(m_hAlign);
149TQt::AlignmentFlags StencilTextEditor::verticalAlignment()
const
151 return static_cast<TQt::AlignmentFlags
>(m_vAlign);
154void StencilTextEditor::setText(
const TQString& text)
156 m_mainWidget->m_textArea->setText(text);
159TQString StencilTextEditor::text()
const
161 return m_mainWidget->m_textArea->text();
164void StencilTextEditor::updateFormating()
166 m_mainWidget->m_textArea->setFont(font());
168 m_mainWidget->m_textArea->setPaletteForegroundColor(fontColor());
171 m_mainWidget->m_textArea->selectAll(
true);
172 m_mainWidget->m_textArea->setAlignment(horizontalAlignment()|verticalAlignment());
173 m_mainWidget->m_textArea->selectAll(
false);
175 m_mainWidget->m_textArea->setFocus();
178void StencilTextEditor::showHAlignPopup()
180 m_mainWidget->m_hAlignButton->openPopup();
183void StencilTextEditor::showVAlignPopup()
185 m_mainWidget->m_vAlignButton->openPopup();
190#include "stenciltexteditor.moc"