21#include "KPrPartObject.h"
22#include "KPrDocument.h"
24#include "KPrGradient.h"
27#include "KoOasisContext.h"
28#include <tdeparts/partmanager.h>
34KPrPartObject::KPrPartObject( KPrChild *_child )
38 pen = KoPen( TQt::black, 1.0, TQt::NoPen );
39 _enableDrawing =
true;
42KPrPartObject &KPrPartObject::operator=(
const KPrPartObject & )
47void KPrPartObject::updateChildGeometry()
49 KoTextZoomHandler* zh = child->parent()->zoomHandler();
50 child->setGeometry( zh->zoomRect( getRect() ),
true );
51 child->setRotationPoint( TQPoint( zh->zoomItX( getOrig().x() + getSize().width() / 2 ),
52 zh->zoomItY( getOrig().y() + getSize().height() / 2 ) ) );
55void KPrPartObject::rotate(
float _angle )
57 KPrObject::rotate( _angle );
59 child->setRotation( _angle );
60 KoTextZoomHandler* zh = child->parent()->zoomHandler();
61 child->setRotationPoint( TQPoint( zh->zoomItX( getOrig().x() + getSize().width() / 2 ),
62 zh->zoomItY( getOrig().y() + getSize().height() / 2 ) ) );
65bool KPrPartObject::saveOasisObjectAttributes( KPOasisSaveContext &sc )
const
67 kdDebug() <<
"KPrPartObject::saveOasisPart " << sc.partIndexObj << endl;
69 sc.xmlWriter.startElement(
"draw:object" );
70 const TQString name = TQString(
"Object_%1" ).arg( sc.partIndexObj + 1 );
72 child->saveOasisAttributes( sc.xmlWriter, name );
74 sc.xmlWriter.endElement();
78const char * KPrPartObject::getOasisElementName()
const
84void KPrPartObject::loadOasis(
const TQDomElement &element, KoOasisContext&context,
KPrLoadingInfo *)
86 kdDebug()<<
"void KPrPartObject::loadOasis(const TQDomElement &element)******************\n";
88 TQDomElement objectElement = KoDom::namedItemNS( element, KoXmlNS::draw,
"object" );
89 child->loadOasis( element, objectElement );
90 if(element.hasAttributeNS( KoXmlNS::draw,
"name" ))
91 KPrObject::objectName = element.attributeNS( KoXmlNS::draw,
"name", TQString());
92 (void)child->loadOasisDocument( context.store(), context.manifestDocument() );
95void KPrPartObject::draw( TQPainter *_painter, KoTextZoomHandler *_zoomhandler,
96 int pageNum, SelectionMode selectionMode,
bool drawContour )
98 updateChildGeometry();
99 double ow = ext.width();
100 double oh = ext.height();
102 TQSize size( _zoomhandler->zoomSize( ext ) );
103 int penw = ( ( pen.style() == TQt::NoPen ) ? 1 :
int( pen.pointWidth() ) ) / 2;
107 pen2 = TQPen( TQt::black, 1, TQt::NoPen );
109 pen2 = pen.zoomedPen( _zoomhandler );
112 child->transform( *_painter );
113 _painter->setPen( TQt::NoPen );
114 _painter->setBrush( getBrush() );
117 if ( getFillType() == FT_BRUSH || !gradient )
118 _painter->drawRect( penw, penw, _zoomhandler->zoomItX( ext.width() - 2 * penw ),
119 _zoomhandler->zoomItY( ext.height() - 2 * penw ) );
121 gradient->setSize( size );
122 _painter->drawPixmap( penw, penw, gradient->pixmap(), 0, 0,
123 _zoomhandler->zoomItX( ow - 2 * penw ),
124 _zoomhandler->zoomItY( oh - 2 * penw ) );
129 if ( getFillType() == FT_BRUSH || !gradient )
130 _painter->drawRect( _zoomhandler->zoomItX( penw ), _zoomhandler->zoomItY( penw ),
131 _zoomhandler->zoomItX( ext.width() - 2 * penw ),
132 _zoomhandler->zoomItY( ext.height() - 2 * penw ) );
134 gradient->setSize( size );
135 _painter->drawPixmap( penw, penw, gradient->pixmap(), 0, 0,
136 _zoomhandler->zoomItX( ow - 2 * penw ),
137 _zoomhandler->zoomItY( oh - 2 * penw ) );
141 _painter->setPen( pen2 );
142 _painter->setBrush( TQt::NoBrush );
143 _painter->drawRect( _zoomhandler->zoomItX( penw ), _zoomhandler->zoomItY( penw ),
144 _zoomhandler->zoomItX( ow - 2 * penw ), _zoomhandler->zoomItY( oh - 2 * penw ) );
145 paint( _painter, _zoomhandler, pageNum, selectionMode, drawContour );
148 KPrObject::draw( _painter, _zoomhandler, pageNum, selectionMode, drawContour );
151void KPrPartObject::slot_changed( KoChild *_koChild )
153 KoTextZoomHandler* zh = child->parent()->zoomHandler();
154 KoRect g = zh->unzoomRect( _koChild->geometry() );
155 KPrObject::setOrig( g.x(), g.y() );
156 KPrObject::setSize( g.width(), g.height() );
159void KPrPartObject::paint( TQPainter *_painter, KoTextZoomHandler *_zoomHandler,
160 int ,
bool ,
bool drawContour )
162 if ( !_enableDrawing )
return;
165 TQPen pen3( TQt::black, 1, TQt::DotLine );
166 _painter->setPen( pen3 );
167 _painter->setRasterOp( TQt::NotXorROP );
168 _painter->drawRect( _zoomHandler->zoomRect( KoRect( KoPoint( 0.0, 0.0 ), getSize() ) ) );
172 if ( !child || !child->document() )
175 int penw = ( pen.style() == TQt::NoPen ) ? 0 : int( pen.pointWidth() );
176 KoRect r( KoPoint( penw, penw ), KoPoint( getSize().width() - ( penw * 2.0 ),
177 getSize().height() - ( penw * 2.0 ) ) );
178 double zoomX =
static_cast<double>( _zoomHandler->zoom() ) / 100;
179 double zoomY =
static_cast<double>( _zoomHandler->zoom() ) / 100;
180 child->document()->paintEverything( *_painter,
181 _zoomHandler->zoomRect( r ),
188void KPrPartObject::activate( TQWidget *_widget )
190 KPrView *view =
dynamic_cast<KPrView*
>( _widget );
191 KoDocument* part = child->document();
194 view->partManager()->addPart( part,
false );
195 view->partManager()->setActivePart( part, view );
198void KPrPartObject::deactivate()
202#include "KPrPartObject.moc"
Temporary information used only during loading.