1
// -*- Mode: c++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4; -*-
2
/* This file is part of the KDE project
3
Copyright (C) 2002,2003,2004 Laurent MONTEL <montel@kde.org>
5
This library is free software; you can redistribute it and/or
6
modify it under the terms of the GNU Library General Public
7
License as published by the Free Software Foundation; either
8
version 2 of the License, or (at your option) any later version.
10
This library is distributed in the hope that it will be useful,
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
Library General Public License for more details.
15
You should have received a copy of the GNU Library General Public License
16
along with this library; see the file COPYING.LIB. If not, write to
17
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18
* Boston, MA 02110-1301, USA.
21
#include "KPrPageIface.h"
24
#include "KPrTextObject.h"
26
#include "KPrBackground.h"
27
#include <kapplication.h>
28
#include <dcopclient.h>
29
#include "KPrDocument.h"
30
#include "KPrCanvas.h"
33
#include "KPrCommand.h"
37
KPrPageIface::KPrPageIface( KPrPage *_page, int pgnum )
38
// Make up a nice DCOPObject name like "Document-0 Page-1".
39
// ### But the page number will be stale if pages are added/removed/moved around....
40
: DCOPObject( QCString( _page->kPresenterDoc()->dcopObject()->objId() ) + " Page-" + QString::number( pgnum ).latin1() )
45
DCOPRef KPrPageIface::textObject( int num )
47
KPrTextObject * textObj=m_page->textFrameSet(num);
49
return DCOPRef( kapp->dcopClient()->appId(),
50
textObj->dcopObject()->objId() );
54
//return a reference to selected object
55
DCOPRef KPrPageIface::selectedObject( )
57
KPrObject * obj=m_page->getSelectedObj();
59
return DCOPRef( kapp->dcopClient()->appId(),
60
obj->dcopObject()->objId() );
65
int KPrPageIface::numTextObject() const
67
return m_page->numTextObject();
70
DCOPRef KPrPageIface::object( int num )
72
if( num >= (int)m_page->objNums())
74
return DCOPRef( kapp->dcopClient()->appId(),
75
m_page->getObject(num)->dcopObject()->objId() );
78
QString KPrPageIface::manualTitle()const
80
return m_page->manualTitle();
83
void KPrPageIface::insertManualTitle(const QString & title)
85
m_page->insertManualTitle(title);
86
m_page->kPresenterDoc()->updateSideBarItem( m_page );
89
QString KPrPageIface::pageTitle( const QString &_title ) const
91
return m_page->pageTitle(_title);
94
void KPrPageIface::setNoteText( const QString &_text )
96
m_page->setNoteText(_text);
99
QString KPrPageIface::noteText( )const
101
return m_page->noteText();
104
unsigned int KPrPageIface::objNums() const
106
return m_page->objNums();
109
int KPrPageIface::numSelected() const
111
return m_page->numSelected();
114
DCOPRef KPrPageIface::groupObjects()
116
m_page->groupObjects();
117
return selectedObject();
120
void KPrPageIface::ungroupObjects()
123
//m_page->ungroupObjects();
126
void KPrPageIface::raiseObjs()
128
m_page->raiseObjs(false);
131
void KPrPageIface::lowerObjs()
133
m_page->lowerObjs(false);
136
void KPrPageIface::sendBackward()
138
m_page->lowerObjs(true);
141
void KPrPageIface::bringForward()
143
m_page->raiseObjs(true);
146
void KPrPageIface::copyObjs()
149
//m_page->copyObjs();
152
void KPrPageIface::slotRepaintVariable()
154
m_page->slotRepaintVariable();
157
void KPrPageIface::recalcPageNum()
159
m_page->recalcPageNum();
162
void KPrPageIface::setPageTimer( int pageTimer )
164
m_page->setPageTimer(pageTimer);
167
void KPrPageIface::setPageSoundEffect( bool soundEffect )
169
m_page->setPageSoundEffect(soundEffect);
172
void KPrPageIface::setPageSoundFileName( const QString &fileName )
174
m_page->setPageSoundFileName(fileName);
177
int KPrPageIface::backXFactor() const
179
return m_page->getBackXFactor();
182
int KPrPageIface::backYFactor( ) const
184
return m_page->getBackYFactor();
187
int KPrPageIface::pageTimer( ) const
189
return m_page->getPageTimer();
192
bool KPrPageIface::pageSoundEffect( ) const
194
return m_page->getPageSoundEffect();
197
int KPrPageIface::backType() const
199
return (int)m_page->getBackType();
202
int KPrPageIface::backView() const
204
return (int)m_page->getBackView();
207
QColor KPrPageIface::backColor1() const
209
return m_page->getBackColor1();
212
QColor KPrPageIface::backColor2() const
214
return m_page->getBackColor2();
217
int KPrPageIface::backColorType() const
219
return (int)m_page->getBackColorType();
222
QString KPrPageIface::backPixFilename() const
224
return m_page->getBackPictureKey().filename();
227
QString KPrPageIface::backClipFilename() const
229
return m_page->getBackPictureKey().filename();
232
int KPrPageIface::pageEffect() const
234
return (int)m_page->getPageEffect();
237
void KPrPageIface::setPageEffect(const QString &effect )
240
m_page->setPageEffect(PEF_NONE);
241
else if(effect=="CLOSE_HORZ")
242
m_page->setPageEffect(PEF_CLOSE_HORZ);
243
else if(effect=="CLOSE_VERT")
244
m_page->setPageEffect(PEF_CLOSE_VERT);
245
else if(effect=="CLOSE_ALL")
246
m_page->setPageEffect(PEF_CLOSE_ALL);
247
else if(effect=="OPEN_HORZ")
248
m_page->setPageEffect(PEF_OPEN_HORZ);
249
else if(effect=="OPEN_VERT")
250
m_page->setPageEffect(PEF_OPEN_VERT);
251
else if(effect=="OPEN_ALL")
252
m_page->setPageEffect(PEF_OPEN_ALL);
253
else if(effect=="INTERLOCKING_HORZ_1")
254
m_page->setPageEffect(PEF_INTERLOCKING_HORZ_1);
255
else if(effect=="INTERLOCKING_HORZ_2")
256
m_page->setPageEffect(PEF_INTERLOCKING_HORZ_2);
257
else if(effect=="INTERLOCKING_VERT_1")
258
m_page->setPageEffect(PEF_INTERLOCKING_VERT_1);
259
else if(effect=="INTERLOCKING_VERT_2")
260
m_page->setPageEffect(PEF_INTERLOCKING_VERT_2);
261
else if(effect=="SURROUND1")
262
m_page->setPageEffect(PEF_SURROUND1);
263
else if(effect=="FLY1")
264
m_page->setPageEffect(PEF_FLY1);
265
else if(effect=="BLINDS_HOR")
266
m_page->setPageEffect(PEF_BLINDS_HOR);
267
else if(effect=="BLINDS_VER")
268
m_page->setPageEffect(PEF_BLINDS_VER);
269
else if(effect=="BOX_IN")
270
m_page->setPageEffect(PEF_BOX_IN);
271
else if(effect=="BOX_OUT")
272
m_page->setPageEffect(PEF_BOX_OUT);
273
else if(effect=="CHECKBOARD_ACROSS")
274
m_page->setPageEffect(PEF_CHECKBOARD_ACROSS);
275
else if(effect=="CHECKBOARD_DOWN")
276
m_page->setPageEffect(PEF_CHECKBOARD_DOWN);
277
else if(effect=="COVER_DOWN")
278
m_page->setPageEffect(PEF_COVER_DOWN);
279
else if(effect=="UNCOVER_DOWN")
280
m_page->setPageEffect(PEF_UNCOVER_DOWN);
281
else if(effect=="COVER_UP")
282
m_page->setPageEffect(PEF_COVER_UP);
283
else if(effect=="UNCOVER_UP")
284
m_page->setPageEffect(PEF_UNCOVER_UP);
285
else if(effect=="COVER_LEFT")
286
m_page->setPageEffect(PEF_COVER_LEFT);
287
else if(effect=="UNCOVER_LEFT")
288
m_page->setPageEffect(PEF_UNCOVER_LEFT);
289
else if(effect=="COVER_RIGHT")
290
m_page->setPageEffect(PEF_COVER_RIGHT);
291
else if(effect=="UNCOVER_RIGHT")
292
m_page->setPageEffect(PEF_UNCOVER_RIGHT);
293
else if(effect=="COVER_LEFT_UP")
294
m_page->setPageEffect(PEF_COVER_LEFT_UP);
295
else if(effect=="UNCOVER_LEFT_UP")
296
m_page->setPageEffect(PEF_UNCOVER_LEFT_UP);
297
else if(effect=="COVER_LEFT_DOWN")
298
m_page->setPageEffect(PEF_COVER_LEFT_DOWN);
299
else if(effect=="UNCOVER_LEFT_DOWN")
300
m_page->setPageEffect(PEF_UNCOVER_LEFT_DOWN);
301
else if(effect=="COVER_RIGHT_UP")
302
m_page->setPageEffect(PEF_COVER_RIGHT_UP);
303
else if(effect=="UNCOVER_RIGHT_UP")
304
m_page->setPageEffect(PEF_UNCOVER_RIGHT_UP);
305
else if(effect=="COVER_RIGHT_DOWN")
306
m_page->setPageEffect(PEF_COVER_RIGHT_DOWN);
307
else if(effect=="UNCOVER_RIGHT_DOWN")
308
m_page->setPageEffect(PEF_UNCOVER_RIGHT_DOWN);
309
else if(effect=="DISSOLVE")
310
m_page->setPageEffect(PEF_DISSOLVE);
311
else if(effect=="STRIPS_LEFT_UP")
312
m_page->setPageEffect(PEF_STRIPS_LEFT_UP);
313
else if(effect=="STRIPS_LEFT_DOWN")
314
m_page->setPageEffect(PEF_STRIPS_LEFT_DOWN);
315
else if(effect=="STRIPS_RIGHT_UP")
316
m_page->setPageEffect(PEF_STRIPS_RIGHT_UP);
317
else if(effect=="STRIPS_RIGHT_DOWN")
318
m_page->setPageEffect(PEF_STRIPS_RIGHT_DOWN);
319
else if(effect=="MELTING")
320
m_page->setPageEffect(PEF_MELTING);
321
else if(effect=="RANDOM")
322
m_page->setPageEffect(PEF_RANDOM);
324
kdDebug(33001) << "Error in setPageEffect" << endl;
327
QString KPrPageIface::pageEffectString( )const
329
switch(m_page->getPageEffect( ))
332
return QString("NONE");
335
return QString("CLOSE_HORZ");
338
return QString("CLOSE_VERT");
341
return QString("CLOSE_ALL");
344
return QString("OPEN_HORZ");
347
return QString("OPEN_VERT");
350
return QString("OPEN_ALL");
352
case PEF_INTERLOCKING_HORZ_1:
353
return QString("INTERLOCKING_HORZ_1");
355
case PEF_INTERLOCKING_HORZ_2:
356
return QString("INTERLOCKING_HORZ_2");
358
case PEF_INTERLOCKING_VERT_1:
359
return QString("INTERLOCKING_VERT_1");
361
case PEF_INTERLOCKING_VERT_2:
362
return QString("INTERLOCKING_VERT_2");
365
return QString("SURROUND1");
368
return QString("BLINDS_HOR");
371
return QString("BLINDS_VER");
374
return QString("BOX_IN");
377
return QString("BOX_OUT");
379
case PEF_CHECKBOARD_ACROSS:
380
return QString("CHECKBOARD_ACROSS");
383
return QString("COVER_DOWN");
385
case PEF_UNCOVER_DOWN:
386
return QString("UNCOVER_DOWN");
389
return QString("COVER_UP");
392
return QString("UNCOVER_UP");
395
return QString("COVER_LEFT");
397
case PEF_UNCOVER_LEFT:
398
return QString("UNCOVER_LEFT");
400
case PEF_COVER_RIGHT:
401
return QString("COVER_RIGHT");
403
case PEF_UNCOVER_RIGHT:
404
return QString("UNCOVER_RIGHT");
406
case PEF_COVER_LEFT_UP:
407
return QString("COVER_LEFT_UP");
409
case PEF_UNCOVER_LEFT_UP:
410
return QString("UNCOVER_LEFT_UP");
412
case PEF_COVER_LEFT_DOWN:
413
return QString("COVER_LEFT_DOWN");
415
case PEF_UNCOVER_LEFT_DOWN:
416
return QString("UNCOVER_LEFT_DOWN");
418
case PEF_COVER_RIGHT_UP:
419
return QString("COVER_RIGHT_UP");
421
case PEF_UNCOVER_RIGHT_UP:
422
return QString("UNCOVER_RIGHT_UP");
424
case PEF_COVER_RIGHT_DOWN:
425
return QString("COVER_RIGHT_DOWN");
427
case PEF_UNCOVER_RIGHT_DOWN:
428
return QString("UNCOVER_RIGHT_DOWN");
431
return QString("DISSOLVE");
433
case PEF_STRIPS_LEFT_UP:
434
return QString("STRIPS_LEFT_UP");
436
case PEF_STRIPS_LEFT_DOWN:
437
return QString("STRIPS_LEFT_DOWN");
439
case PEF_STRIPS_RIGHT_UP:
440
return QString("STRIPS_RIGHT_UP");
442
case PEF_STRIPS_RIGHT_DOWN:
443
return QString("STRIPS_RIGHT_DOWN");
446
return QString("MELTING");
449
return QString("RANDOM");
452
kdDebug(33001) << "Page effect not defined!" << endl;
458
bool KPrPageIface::backUnbalanced() const
460
return (int)m_page->getBackUnbalanced();
463
QString KPrPageIface::pageSoundFileName() const
465
return m_page->getPageSoundFileName();
468
QRect KPrPageIface::pageRect() const
470
return m_page->getZoomPageRect();
473
bool KPrPageIface::isSlideSelected()
475
return m_page->isSlideSelected();
478
void KPrPageIface::slideSelected(bool _b)
480
m_page->slideSelected(_b);
481
m_page->kPresenterDoc()->updateSideBarItem( m_page );
482
m_page->kPresenterDoc()->updatePresentationButton();
485
void KPrPageIface::changePicture( const QString & filename )
487
// TODO: find a better parent
488
m_page->changePicture(filename, 0);
491
//create a rectangle and return a dcop reference!
492
DCOPRef KPrPageIface::insertRectangle(double x, double y, double h, double w)
494
KPrView *view=m_page->kPresenterDoc()->firstView();
495
m_page->kPresenterDoc()->deSelectAllObj();
498
view->getCanvas()->insertRect( KoRect( x, y, h, w ) );
499
return selectedObject();
502
DCOPRef KPrPageIface::insertEllipse( double x, double y, double h, double w )
504
KPrView *view=m_page->kPresenterDoc()->firstView();
505
m_page->kPresenterDoc()->deSelectAllObj();
509
view->getCanvas()->insertEllipse( KoRect( x, y, h, w ) );
510
return selectedObject();
513
DCOPRef KPrPageIface::insertPie( double x, double y, double h, double w )
515
KPrView *view=m_page->kPresenterDoc()->firstView();
516
m_page->kPresenterDoc()->deSelectAllObj();
520
view->getCanvas()->insertPie( KoRect( x, y, h, w ) );
521
return selectedObject();
524
DCOPRef KPrPageIface::insertLine( double x1, double y1, double x2, double y2 )
526
KPrView *view=m_page->kPresenterDoc()->firstView();
527
m_page->kPresenterDoc()->deSelectAllObj();
531
view->getCanvas()->insertLine( KoPoint( x1, y1), KoPoint( x2, y2 ) );
532
return selectedObject();
535
DCOPRef KPrPageIface::insertTextObject( double x, double y, double h, double w )
537
KPrView *view=m_page->kPresenterDoc()->firstView();
538
m_page->kPresenterDoc()->deSelectAllObj();
542
view->getCanvas()->insertTextObject( KoRect( x, y, h, w ) );
543
return selectedObject();
546
DCOPRef KPrPageIface::insertPicture( const QString & file, double x, double y, double h, double w )
548
m_page->setInsPictureFile(file);
549
KPrView *view=m_page->kPresenterDoc()->firstView();
550
m_page->kPresenterDoc()->deSelectAllObj();
554
view->getCanvas()->insertPicture( KoRect( x, y, h, w ) );
555
return selectedObject();
558
void KPrPageIface::setBackGroundColor1(const QColor &col)
560
const QColor col2=backColor2();
561
m_page->setBackColor( col, col2, m_page->getBackColorType(),
562
m_page->getBackUnbalanced(), backXFactor(), backYFactor() );
565
void KPrPageIface::setBackGroundColor2(const QColor &col)
567
const QColor col1=backColor1();
568
m_page->setBackColor( col1, col, m_page->getBackColorType(),
569
m_page->getBackUnbalanced(), backXFactor(), backYFactor() );
572
void KPrPageIface::setBackGroundColorType(const QString &type)
577
else if(type=="GHORZ")
579
else if(type=="GVERT")
581
else if(type=="GDIAGONAL1")
582
bctype=BCT_GDIAGONAL1;
583
else if(type=="GDIAGONAL2")
584
bctype=BCT_GDIAGONAL2;
585
else if(type=="GCIRCLE")
587
else if(type=="GRECT")
589
else if(type=="GPIPECROSS")
590
bctype=BCT_GPIPECROSS;
591
else if(type=="GPYRAMID")
595
kdDebug(33001)<<"Error KPrPageIface::setBackGroundColorType" << endl;
599
m_page->setBackColor( backColor1(), backColor2(), bctype,m_page->getBackUnbalanced(),
600
backXFactor(), backYFactor() );
603
void KPrPageIface::deSelectAllObj()
605
m_page->deSelectAllObj();
608
bool KPrPageIface::oneObjectTextExist() const
610
return m_page->oneObjectTextExist();
613
bool KPrPageIface::isOneObjectSelected() const
615
return m_page->isOneObjectSelected();
618
bool KPrPageIface::haveASelectedPartObj() const
620
return m_page->haveASelectedPartObj();
623
bool KPrPageIface::haveASelectedGroupObj() const
625
return m_page->haveASelectedGroupObj();
628
void KPrPageIface::rotateAllObjSelected(float _newAngle)
630
KCommand *cmd= m_page->rotateSelectedObjects( _newAngle);
634
void KPrPageIface::moveAllObjectSelected( int diffx,int diffy)
636
KPrView *_view=m_page->kPresenterDoc()->firstView();
639
KCommand *cmd=m_page->moveObject(_view, diffx,diffy);
644
void KPrPageIface::deleteAllObjectSelected()
646
KCommand * cmd=m_page->deleteSelectedObjects();
650
bool KPrPageIface::hasHeader()const
652
return m_page->hasHeader();
655
bool KPrPageIface::hasFooter()const
657
return m_page->hasFooter();
660
void KPrPageIface::setHeader( bool b )
662
m_page->setHeader( b );
665
void KPrPageIface::setFooter( bool b )
667
m_page->setFooter( b );
671
void KPrPageIface::setUseMasterBackground( bool useMasterBackground )
673
m_page->setUseMasterBackground( useMasterBackground );
676
bool KPrPageIface::useMasterBackground() const
678
return m_page->useMasterBackground();
681
void KPrPageIface::setDisplayObjectFromMasterPage( bool _b )
683
m_page->setDisplayObjectFromMasterPage( _b );
686
bool KPrPageIface::displayObjectFromMasterPage() const
688
return m_page->displayObjectFromMasterPage();
691
void KPrPageIface::setDisplayBackground( bool _b )
693
m_page->setDisplayBackground( _b );
696
bool KPrPageIface::displayBackground() const
698
return m_page->displayBackground();