documentiface.cpp

00001 /***************************************************************************
00002  *   Copyright (C) 2005 by David Saxton                                    *
00003  *   david@bluehaze.org                                                    *
00004  *                                                                         *
00005  *   This program is free software; you can redistribute it and/or modify  *
00006  *   it under the terms of the GNU General Public License as published by  *
00007  *   the Free Software Foundation; either version 2 of the License, or     *
00008  *   (at your option) any later version.                                   *
00009  ***************************************************************************/
00010 
00011 #include "circuitdocument.h"
00012 #include "connector.h"
00013 #include "cnitem.h"
00014 #include "documentiface.h"
00015 #include "flowcodedocument.h"
00016 #include "itemlibrary.h"
00017 #include "libraryitem.h"
00018 #include "mechanicsdocument.h"
00019 #include "textdocument.h"
00020 #include "view.h"
00021 
00022 
00023 //BEGIN class DocumentIface
00024 DocumentIface::DocumentIface( Document * document )
00025         : DCOPObject("Document")
00026 {
00027         m_pDocument = document;
00028 }
00029 
00030 
00031 DocumentIface::~DocumentIface()
00032 {
00033 }
00034 
00035 void DocumentIface::selectAll( )
00036 {
00037         m_pDocument->selectAll();
00038 }
00039 
00040 void DocumentIface::redo( )
00041 {
00042         m_pDocument->redo();
00043 }
00044 
00045 void DocumentIface::undo( )
00046 {
00047         m_pDocument->undo();
00048 }
00049 
00050 void DocumentIface::paste( )
00051 {
00052         m_pDocument->paste();
00053 }
00054 
00055 void DocumentIface::copy( )
00056 {
00057         m_pDocument->copy();
00058 }
00059 
00060 void DocumentIface::cut( )
00061 {
00062         m_pDocument->cut();
00063 }
00064 
00065 void DocumentIface::print( )
00066 {
00067         m_pDocument->print();
00068 }
00069 
00070 
00071 bool DocumentIface::close( )
00072 {
00073         return m_pDocument->fileClose();
00074 }
00075 
00076 void DocumentIface::saveAs( )
00077 {
00078         m_pDocument->fileSaveAs();
00079 }
00080 
00081 void DocumentIface::save( )
00082 {
00083         m_pDocument->fileSave();
00084 }
00085 
00086 bool DocumentIface::isRedoAvailable( )
00087 {
00088         return m_pDocument->isRedoAvailable();
00089 }
00090 
00091 bool DocumentIface::isUndoAvailable( )
00092 {
00093         return m_pDocument->isUndoAvailable();
00094 }
00095 
00096 bool DocumentIface::isModified( )
00097 {
00098         return m_pDocument->isModified();
00099 }
00100 
00101 bool DocumentIface::openURL( const QString & url )
00102 {
00103         return m_pDocument->openURL(url);
00104 }
00105 
00106 QString DocumentIface::url( )
00107 {
00108         return m_pDocument->url().url();
00109 }
00110 
00111 uint DocumentIface::numberOfViews( )
00112 {
00113         return m_pDocument->numberOfViews();
00114 }
00115 
00116 DCOPRef DocumentIface::activeView( )
00117 {
00118         return viewToRef( m_pDocument->activeView() );
00119 }
00120 
00121 QString DocumentIface::caption( ) const
00122 {
00123         return m_pDocument->caption();
00124 }
00125 
00126 DCOPRef DocumentIface::viewToRef( View * view )
00127 {
00128         return DCOPRef( view->dcopObject() );
00129 }
00130 //END class DocumentIface
00131 
00132 
00133 
00134 //BEGIN class FlowCodeDocumentIface
00135 FlowCodeDocumentIface::FlowCodeDocumentIface( FlowCodeDocument * document )
00136         : ICNDocumentIface(document)
00137 {
00138         m_pFlowCodeDocument = document;
00139 }
00140 
00141 void FlowCodeDocumentIface::setPicType( const QString & id )
00142 {
00143         m_pFlowCodeDocument->setPicType(id);
00144 }
00145 
00146 void FlowCodeDocumentIface::convertToMicrobe()          
00147 {
00148         m_pFlowCodeDocument->convertToMicrobe();
00149 }
00150 
00151 void FlowCodeDocumentIface::convertToHex()              
00152 {
00153         m_pFlowCodeDocument->convertToHex();
00154 }
00155 
00156 void FlowCodeDocumentIface::convertToPIC()
00157 {
00158         m_pFlowCodeDocument->convertToPIC();
00159 }
00160 
00161 void FlowCodeDocumentIface::convertToAssembly()
00162 {
00163         m_pFlowCodeDocument->convertToAssembly();
00164 }
00165 //END class FlowCodeDocumentIface
00166 
00167 
00168 //BEGIN class CircuitDocumentIface
00169 CircuitDocumentIface::CircuitDocumentIface( CircuitDocument * document )
00170         : ICNDocumentIface(document)
00171 {
00172         m_pCircuitDocument = document;
00173 }
00174 
00175 void CircuitDocumentIface::setOrientation0( )
00176 {
00177         m_pCircuitDocument->setOrientation0();
00178 }
00179 
00180 void CircuitDocumentIface::setOrientation90( )
00181 {
00182         m_pCircuitDocument->setOrientation90();
00183 }
00184 
00185 void CircuitDocumentIface::setOrientation180( )
00186 {
00187         m_pCircuitDocument->setOrientation180();
00188 }
00189 
00190 void CircuitDocumentIface::setOrientation270( )
00191 {
00192         m_pCircuitDocument->setOrientation270();
00193 }
00194 
00195 void CircuitDocumentIface::rotateCounterClockwise( )
00196 {
00197         m_pCircuitDocument->rotateCounterClockwise();
00198 }
00199 
00200 void CircuitDocumentIface::rotateClockwise( )
00201 {
00202         m_pCircuitDocument->rotateClockwise();
00203 }
00204 
00205 void CircuitDocumentIface::flip( )
00206 {
00207         m_pCircuitDocument->itemFlip();
00208 }
00209 
00210 void CircuitDocumentIface::displayEquations( )
00211 {
00212         m_pCircuitDocument->displayEquations();
00213 }
00214 
00215 void CircuitDocumentIface::createSubcircuit( )
00216 {
00217         m_pCircuitDocument->createSubcircuit();
00218 }
00219 //END class CircuitDocumentIface
00220 
00221 
00222 
00223 //BEGIN class ICNDocumentIface
00224 ICNDocumentIface::ICNDocumentIface( ICNDocument * document )
00225         : ItemDocumentIface(document)
00226 {
00227         m_pICNDocument = document;
00228 }
00229 
00230 void ICNDocumentIface::exportToImage( )
00231 {
00232         m_pICNDocument->exportToImage();
00233 }
00234 
00235 QCStringList ICNDocumentIface::nodeIDs( const QString & id )
00236 {
00237         CNItem * item = m_pICNDocument->cnItemWithID(id);
00238         
00239         QCStringList ids;
00240         if ( !item )
00241                 return ids;
00242         
00243         const NodeMap nm = item->nodeMap();
00244         const NodeMap::const_iterator end = nm.end();
00245         for ( NodeMap::const_iterator it = nm.begin(); it != end; ++it )
00246                 ids.append( it.key().ascii() );
00247         
00248         return ids;
00249 }
00250 
00251 QString ICNDocumentIface::makeConnection( const QString & item1, const QString & node1, const QString & item2, const QString & node2 )
00252 {
00253         CNItem * i1 = m_pICNDocument->cnItemWithID(item1);
00254         CNItem * i2 = m_pICNDocument->cnItemWithID(item2);
00255         
00256         if ( !i1 || !i2 )
00257                 return QString::null;
00258         
00259         Node * n1 = m_pICNDocument->nodeWithID( i1->nodeId(node1) );
00260         Node * n2 = m_pICNDocument->nodeWithID( i2->nodeId(node2) );
00261         
00262         if ( !n1 || !n2 )
00263                 return QString::null;
00264         
00265         Connector * connector = m_pICNDocument->createConnector( n1, n2 );
00266         return connector ? connector->id() : QString::null;
00267 }
00268 
00269 void ICNDocumentIface::selectConnector( const QString & id )
00270 {
00271         m_pICNDocument->select( m_pICNDocument->connectorWithID(id) );
00272 }
00273 
00274 void ICNDocumentIface::unselectConnector( const QString & id )
00275 {
00276         m_pItemDocument->unselect( m_pICNDocument->connectorWithID(id) );
00277 }
00278 //END class ICNDocumentIface
00279 
00280 
00281 
00282 //BEGIN class ItemDocumentIface
00283 ItemDocumentIface::ItemDocumentIface( ItemDocument * document )
00284         : DocumentIface(document)
00285 {
00286         m_pItemDocument = document;
00287 }
00288 
00289 QCStringList ItemDocumentIface::validItemIDs( )
00290 {
00291         QCStringList validIDs;
00292         
00293         LibraryItemList * allItems = itemLibrary()->items();
00294         const LibraryItemList::iterator end = allItems->end();
00295         for ( LibraryItemList::iterator it = allItems->begin(); it != end; ++it )
00296         {
00297                 QString id = (*it)->activeID();
00298                 if ( m_pItemDocument->isValidItem(id) )
00299                         validIDs << id.utf8();
00300         }
00301         return validIDs;
00302 }
00303 
00304 QString ItemDocumentIface::addItem( const QString & id, int x, int y )
00305 {
00306         Item * item = m_pItemDocument->addItem( id, QPoint( x, y ), true );
00307         return item ? item->id() : QString::null;
00308 }
00309 
00310 void ItemDocumentIface::selectItem( const QString & id )
00311 {
00312         m_pItemDocument->select( m_pItemDocument->itemWithID(id) );
00313 }
00314 
00315 void ItemDocumentIface::unselectItem( const QString & id )
00316 {
00317         m_pItemDocument->unselect( m_pItemDocument->itemWithID(id) );
00318 }
00319 
00320 void ItemDocumentIface::deleteSelection( )
00321 {
00322         m_pItemDocument->deleteSelection();
00323 }
00324 
00325 void ItemDocumentIface::clearHistory( )
00326 {
00327         m_pItemDocument->clearHistory();
00328 }
00329 
00330 void ItemDocumentIface::unselectAll( )
00331 {
00332         m_pItemDocument->unselectAll();
00333 }
00334 
00335 void ItemDocumentIface::alignHorizontally( )
00336 {
00337         m_pItemDocument->alignHorizontally();
00338 }
00339 
00340 void ItemDocumentIface::alignVertically( )
00341 {
00342         m_pItemDocument->alignVertically();
00343 }
00344 
00345 void ItemDocumentIface::distributeHorizontally( )
00346 {
00347         m_pItemDocument->distributeHorizontally();
00348 }
00349 
00350 void ItemDocumentIface::distributeVertically( )
00351 {
00352         m_pItemDocument->distributeVertically();
00353 }
00354 //END class ItemDocumentIface
00355 
00356 
00357 
00358 //BEGIN class TextDocumentIface
00359 TextDocumentIface::TextDocumentIface( TextDocument * document )
00360         : DocumentIface(document)
00361 {
00362         m_pTextDocument = document;
00363 }
00364 
00365 void TextDocumentIface::debugStepOver( )
00366 {
00367         m_pTextDocument->debugStepOver();
00368 }
00369 
00370 void TextDocumentIface::debugStepOut( )
00371 {
00372         m_pTextDocument->debugStepOut();
00373 }
00374 
00375 void TextDocumentIface::debugStep( )
00376 {
00377         m_pTextDocument->debugStep();
00378 }
00379 
00380 void TextDocumentIface::debugStop( )
00381 {
00382         m_pTextDocument->debugStop();
00383 }
00384 
00385 void TextDocumentIface::debugInterrupt( )
00386 {
00387         m_pTextDocument->debugInterrupt();
00388 }
00389 
00390 void TextDocumentIface::debugRun( )
00391 {
00392         m_pTextDocument->debugRun();
00393 }
00394 
00395 bool TextDocumentIface::isDebugging( )
00396 {
00397 #ifndef NO_GPSIM
00398         return m_pTextDocument->debuggerIsRunning();
00399 #else
00400         return false;
00401 #endif
00402 }
00403 
00404 void TextDocumentIface::clearBookmarks( )
00405 {
00406         m_pTextDocument->clearBookmarks();
00407 }
00408 
00409 void TextDocumentIface::convertToAssembly( )
00410 {
00411         m_pTextDocument->convertToAssembly();
00412 }
00413 
00414 void TextDocumentIface::convertToPIC( )
00415 {
00416         m_pTextDocument->convertToPIC();
00417 }
00418 
00419 void TextDocumentIface::convertToHex( )
00420 {
00421         m_pTextDocument->convertToHex();
00422 }
00423 
00424 void TextDocumentIface::convertToMicrobe( )
00425 {
00426         m_pTextDocument->convertToMicrobe();
00427 }
00428 
00429 void TextDocumentIface::formatAssembly( )
00430 {
00431         m_pTextDocument->formatAssembly();
00432 }
00433 //END class TextDocumentIface
00434 
00435 
00436 
00437 //BEGIN class MechanicsDocumentIface
00438 MechanicsDocumentIface::MechanicsDocumentIface( MechanicsDocument * document )
00439         : ItemDocumentIface(document)
00440 {
00441         m_pMechanicsDocument = document;
00442 }
00443 //END class MechanicsDocumentIface
00444 

Generated on Tue May 8 17:05:29 2007 for KTechLab by  doxygen 1.5.1