You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
3.7 KiB
134 lines
3.7 KiB
/***************************************************************************
|
|
* Copyright (C) 2003-2005 by David Saxton *
|
|
* david@bluehaze.org *
|
|
* *
|
|
* 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. *
|
|
***************************************************************************/
|
|
|
|
#include "dptext.h"
|
|
#include "itemdocument.h"
|
|
#include "libraryitem.h"
|
|
#include "resizeoverlay.h"
|
|
|
|
#include <kiconloader.h>
|
|
#include <tdelocale.h>
|
|
#include <tqpainter.h>
|
|
|
|
Item* DPText::construct( ItemDocument *itemDocument, bool newItem, const char *id )
|
|
{
|
|
return new DPText( itemDocument, newItem, id );
|
|
}
|
|
|
|
LibraryItem* DPText::libraryItem()
|
|
{
|
|
TQStringList idList;
|
|
idList << "dp/text" << "dp/canvas_text" << "canvas_text";
|
|
|
|
return new LibraryItem(
|
|
idList,
|
|
i18n("Canvas Text"),
|
|
i18n("Other"),
|
|
TDEGlobal::iconLoader()->loadIcon( "text", TDEIcon::Small ),
|
|
LibraryItem::lit_drawpart,
|
|
DPText::construct );
|
|
}
|
|
|
|
DPText::DPText( ItemDocument *itemDocument, bool newItem, const char *id )
|
|
: DrawPart( itemDocument, newItem, (id) ? id : "canvas_text" )
|
|
{
|
|
m_rectangularOverlay = new RectangularOverlay(this);
|
|
m_name = i18n("Text");
|
|
m_desc = i18n("Doubleclick the Text Item to set the text");
|
|
|
|
createProperty( "text", Variant::Type::Multiline );
|
|
property("text")->setValue( i18n("Text") );
|
|
|
|
createProperty( "background", Variant::Type::Bool );
|
|
property("background")->setValue(false);
|
|
property("background")->setCaption( i18n("Display Background") );
|
|
property("background")->setAdvanced(true);
|
|
|
|
createProperty( "background-color", Variant::Type::Color );
|
|
property("background-color")->setValue(TQt::white);
|
|
property("background-color")->setCaption( i18n("Background Color") );
|
|
property("background-color")->setAdvanced(true);
|
|
|
|
createProperty( "frame-color", Variant::Type::Color );
|
|
property("frame-color")->setValue(TQt::black);
|
|
property("frame-color")->setCaption( i18n("Frame Color") );
|
|
property("frame-color")->setAdvanced(true);
|
|
|
|
createProperty( "text-color", Variant::Type::Color );
|
|
property("text-color")->setValue(TQt::black);
|
|
property("text-color")->setCaption( i18n("Text Color") );
|
|
}
|
|
|
|
DPText::~DPText()
|
|
{
|
|
}
|
|
|
|
void DPText::setSelected( bool yes )
|
|
{
|
|
if ( yes == isSelected() )
|
|
return;
|
|
|
|
DrawPart::setSelected(yes);
|
|
m_rectangularOverlay->showResizeHandles(yes);
|
|
}
|
|
|
|
|
|
void DPText::dataChanged()
|
|
{
|
|
m_caption = dataString("text");
|
|
b_displayBackground = dataBool("background");
|
|
m_backgroundColor = dataColor("background-color");
|
|
m_textColor = dataColor("text-color");
|
|
m_frameColor = dataColor("frame-color");
|
|
update();
|
|
}
|
|
|
|
|
|
void DPText::postResize()
|
|
{
|
|
setItemPoints( TQPointArray(m_sizeRect), false );
|
|
}
|
|
|
|
|
|
TQSize DPText::minimumSize() const
|
|
{
|
|
return TQSize( 48, 24 );
|
|
}
|
|
|
|
|
|
void DPText::drawShape( TQPainter &p )
|
|
{
|
|
TQRect bound = m_sizeRect;
|
|
bound.setWidth( bound.width()-2 );
|
|
bound.setHeight( bound.height()-2 );
|
|
bound.moveBy( int(x()+1), int(y()+1) );
|
|
|
|
if (b_displayBackground)
|
|
{
|
|
p.save();
|
|
p.setPen( TQPen( m_frameColor, 1, TQt::DotLine) );
|
|
p.setBrush(m_backgroundColor);
|
|
p.drawRect(bound);
|
|
p.restore();
|
|
}
|
|
|
|
const int pad = 6;
|
|
|
|
bound.setLeft( bound.left()+pad );
|
|
bound.setTop( bound.top()+pad );
|
|
bound.setRight( bound.right()-pad );
|
|
bound.setBottom( bound.bottom()-pad );
|
|
|
|
p.setPen(m_textColor);
|
|
p.setFont( font() );
|
|
p.drawText( bound, (TQt::WordBreak | TQt::AlignHCenter | TQt::AlignVCenter), m_caption );
|
|
}
|
|
|