diff options
Diffstat (limited to 'chalk/ui/kis_text_brush.cc')
-rw-r--r-- | chalk/ui/kis_text_brush.cc | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/chalk/ui/kis_text_brush.cc b/chalk/ui/kis_text_brush.cc new file mode 100644 index 00000000..ef376373 --- /dev/null +++ b/chalk/ui/kis_text_brush.cc @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2004 Cyrille Berger <cberger@cberger.net> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <tqfontmetrics.h> +#include <tqpainter.h> +#include <tqspinbox.h> +#include <tqcheckbox.h> +#include <tqlabel.h> + +#include <kfontdialog.h> + +#include <klineedit.h> +#include "kis_text_brush.h" + +void KisTextBrushResource::updateBrush() +{ + TQFontMetrics metric(m_font); + int w = metric.width(m_txt); + int h = metric.height(); + TQPixmap px(w,h); + TQPainter p; + p.begin(&px); + p.setFont( m_font ); + p.fillRect(0,0, w, h, TQt::white); + p.setPen(TQt::black); + p.drawText(0, metric.ascent(), m_txt ); + p.end(); + setImage(px.convertToImage ()); +} + +KisTextBrush::KisTextBrush(TQWidget *tqparent, const char* name, const TQString& caption) + : KisWdgTextBrush(tqparent, name), + m_textBrushResource(new KisTextBrushResource()) +{ + setCaption(caption); + connect((TQObject*)lineEdit, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT(rebuildTextBrush())); + connect((TQObject*)bnFont, TQT_SIGNAL(clicked()), this, TQT_SLOT(getFont())); + m_font = font(); + rebuildTextBrush(); +} + + +void KisTextBrush::getFont() +{ + KFontDialog::getFont( m_font, false/*, TQWidget* tqparent! */ ); + rebuildTextBrush(); +} + +void KisTextBrush::rebuildTextBrush() +{ + lblFont->setText(TQString(m_font.family() + ", %1").tqarg(m_font.pointSize())); + lblFont->setFont(m_font); + m_textBrushResource->setFont(m_font); + m_textBrushResource->setText(lineEdit->text()); + m_textBrushResource->updateBrush(); + emit(activatedResource(m_textBrushResource)); +} + +#include "kis_text_brush.moc" |