summaryrefslogtreecommitdiffstats
path: root/src/documentiface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/documentiface.cpp')
-rw-r--r--src/documentiface.cpp445
1 files changed, 445 insertions, 0 deletions
diff --git a/src/documentiface.cpp b/src/documentiface.cpp
new file mode 100644
index 0000000..dd7e0eb
--- /dev/null
+++ b/src/documentiface.cpp
@@ -0,0 +1,445 @@
+/***************************************************************************
+ * Copyright (C) 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 "circuitdocument.h"
+#include "connector.h"
+#include "cnitem.h"
+#include "documentiface.h"
+#include "flowcodedocument.h"
+#include "itemlibrary.h"
+#include "libraryitem.h"
+#include "mechanicsdocument.h"
+#include "textdocument.h"
+#include "view.h"
+
+
+//BEGIN class DocumentIface
+DocumentIface::DocumentIface( Document * document )
+ : DCOPObject("Document")
+{
+ m_pDocument = document;
+}
+
+
+DocumentIface::~DocumentIface()
+{
+}
+
+void DocumentIface::selectAll( )
+{
+ m_pDocument->selectAll();
+}
+
+void DocumentIface::redo( )
+{
+ m_pDocument->redo();
+}
+
+void DocumentIface::undo( )
+{
+ m_pDocument->undo();
+}
+
+void DocumentIface::paste( )
+{
+ m_pDocument->paste();
+}
+
+void DocumentIface::copy( )
+{
+ m_pDocument->copy();
+}
+
+void DocumentIface::cut( )
+{
+ m_pDocument->cut();
+}
+
+void DocumentIface::print( )
+{
+ m_pDocument->print();
+}
+
+
+bool DocumentIface::close( )
+{
+ return m_pDocument->fileClose();
+}
+
+void DocumentIface::saveAs( )
+{
+ m_pDocument->fileSaveAs();
+}
+
+void DocumentIface::save( )
+{
+ m_pDocument->fileSave();
+}
+
+bool DocumentIface::isRedoAvailable( )
+{
+ return m_pDocument->isRedoAvailable();
+}
+
+bool DocumentIface::isUndoAvailable( )
+{
+ return m_pDocument->isUndoAvailable();
+}
+
+bool DocumentIface::isModified( )
+{
+ return m_pDocument->isModified();
+}
+
+bool DocumentIface::openURL( const QString & url )
+{
+ return m_pDocument->openURL(url);
+}
+
+QString DocumentIface::url( )
+{
+ return m_pDocument->url().url();
+}
+
+uint DocumentIface::numberOfViews( )
+{
+ return m_pDocument->numberOfViews();
+}
+
+DCOPRef DocumentIface::activeView( )
+{
+ return viewToRef( m_pDocument->activeView() );
+}
+
+QString DocumentIface::caption( ) const
+{
+ return m_pDocument->caption();
+}
+
+DCOPRef DocumentIface::viewToRef( View * view )
+{
+ return DCOPRef( view->dcopObject() );
+}
+//END class DocumentIface
+
+
+
+//BEGIN class FlowCodeDocumentIface
+FlowCodeDocumentIface::FlowCodeDocumentIface( FlowCodeDocument * document )
+ : ICNDocumentIface(document)
+{
+ m_pFlowCodeDocument = document;
+}
+
+void FlowCodeDocumentIface::setPicType( const QString & id )
+{
+ m_pFlowCodeDocument->setPicType(id);
+}
+
+void FlowCodeDocumentIface::convertToMicrobe()
+{
+ m_pFlowCodeDocument->convertToMicrobe();
+}
+
+void FlowCodeDocumentIface::convertToHex()
+{
+ m_pFlowCodeDocument->convertToHex();
+}
+
+void FlowCodeDocumentIface::convertToPIC()
+{
+ m_pFlowCodeDocument->convertToPIC();
+}
+
+void FlowCodeDocumentIface::convertToAssembly()
+{
+ m_pFlowCodeDocument->convertToAssembly();
+}
+//END class FlowCodeDocumentIface
+
+
+
+//BEGIN class CircuitDocumentIface
+CircuitDocumentIface::CircuitDocumentIface( CircuitDocument * document )
+ : ICNDocumentIface(document)
+{
+ m_pCircuitDocument = document;
+}
+
+void CircuitDocumentIface::setOrientation0( )
+{
+ m_pCircuitDocument->setOrientation0();
+}
+
+void CircuitDocumentIface::setOrientation90( )
+{
+ m_pCircuitDocument->setOrientation90();
+}
+
+void CircuitDocumentIface::setOrientation180( )
+{
+ m_pCircuitDocument->setOrientation180();
+}
+
+void CircuitDocumentIface::setOrientation270( )
+{
+ m_pCircuitDocument->setOrientation270();
+}
+
+void CircuitDocumentIface::rotateCounterClockwise( )
+{
+ m_pCircuitDocument->rotateCounterClockwise();
+}
+
+void CircuitDocumentIface::rotateClockwise( )
+{
+ m_pCircuitDocument->rotateClockwise();
+}
+
+void CircuitDocumentIface::flip( )
+{
+ m_pCircuitDocument->itemFlip();
+}
+
+void CircuitDocumentIface::displayEquations( )
+{
+ m_pCircuitDocument->displayEquations();
+}
+
+void CircuitDocumentIface::createSubcircuit( )
+{
+ m_pCircuitDocument->createSubcircuit();
+}
+//END class CircuitDocumentIface
+
+
+
+//BEGIN class ICNDocumentIface
+ICNDocumentIface::ICNDocumentIface( ICNDocument * document )
+ : ItemDocumentIface(document)
+{
+ m_pICNDocument = document;
+}
+
+void ICNDocumentIface::exportToImage( )
+{
+ m_pICNDocument->exportToImage();
+}
+
+QCStringList ICNDocumentIface::nodeIDs( const QString & id )
+{
+ CNItem * item = m_pICNDocument->cnItemWithID(id);
+
+ QCStringList ids;
+ if ( !item )
+ return ids;
+
+ const NodeMap nm = item->nodeMap();
+ const NodeMap::const_iterator end = nm.end();
+ for ( NodeMap::const_iterator it = nm.begin(); it != end; ++it )
+ ids.append( it.key().ascii() );
+
+ return ids;
+}
+
+QString ICNDocumentIface::makeConnection( const QString & item1, const QString & node1, const QString & item2, const QString & node2 )
+{
+ CNItem * i1 = m_pICNDocument->cnItemWithID(item1);
+ CNItem * i2 = m_pICNDocument->cnItemWithID(item2);
+
+ if ( !i1 || !i2 )
+ return QString::null;
+
+ Node * n1 = m_pICNDocument->nodeWithID( i1->nodeId(node1) );
+ Node * n2 = m_pICNDocument->nodeWithID( i2->nodeId(node2) );
+
+ if ( !n1 || !n2 )
+ return QString::null;
+
+ Connector * connector = m_pICNDocument->createConnector( n1, n2 );
+ return connector ? connector->id() : QString::null;
+}
+
+void ICNDocumentIface::selectConnector( const QString & id )
+{
+ m_pICNDocument->select( m_pICNDocument->connectorWithID(id) );
+}
+
+void ICNDocumentIface::unselectConnector( const QString & id )
+{
+ m_pItemDocument->unselect( m_pICNDocument->connectorWithID(id) );
+}
+//END class ICNDocumentIface
+
+
+
+//BEGIN class ItemDocumentIface
+ItemDocumentIface::ItemDocumentIface( ItemDocument * document )
+ : DocumentIface(document)
+{
+ m_pItemDocument = document;
+}
+
+QCStringList ItemDocumentIface::validItemIDs( )
+{
+ QCStringList validIDs;
+
+ LibraryItemList * allItems = itemLibrary()->items();
+ const LibraryItemList::iterator end = allItems->end();
+ for ( LibraryItemList::iterator it = allItems->begin(); it != end; ++it )
+ {
+ QString id = (*it)->activeID();
+ if ( m_pItemDocument->isValidItem(id) )
+ validIDs << id.utf8();
+ }
+ return validIDs;
+}
+
+QString ItemDocumentIface::addItem( const QString & id, int x, int y )
+{
+ Item * item = m_pItemDocument->addItem( id, QPoint( x, y ), true );
+ return item ? item->id() : QString::null;
+}
+
+void ItemDocumentIface::selectItem( const QString & id )
+{
+ m_pItemDocument->select( m_pItemDocument->itemWithID(id) );
+}
+
+void ItemDocumentIface::unselectItem( const QString & id )
+{
+ m_pItemDocument->unselect( m_pItemDocument->itemWithID(id) );
+}
+
+void ItemDocumentIface::deleteSelection( )
+{
+ m_pItemDocument->deleteSelection();
+}
+
+void ItemDocumentIface::clearHistory( )
+{
+ m_pItemDocument->clearHistory();
+}
+
+void ItemDocumentIface::unselectAll( )
+{
+ m_pItemDocument->unselectAll();
+}
+
+void ItemDocumentIface::alignHorizontally( )
+{
+ m_pItemDocument->alignHorizontally();
+}
+
+void ItemDocumentIface::alignVertically( )
+{
+ m_pItemDocument->alignVertically();
+}
+
+void ItemDocumentIface::distributeHorizontally( )
+{
+ m_pItemDocument->distributeHorizontally();
+}
+
+void ItemDocumentIface::distributeVertically( )
+{
+ m_pItemDocument->distributeVertically();
+}
+//END class ItemDocumentIface
+
+
+
+//BEGIN class TextDocumentIface
+TextDocumentIface::TextDocumentIface( TextDocument * document )
+ : DocumentIface(document)
+{
+ m_pTextDocument = document;
+}
+
+void TextDocumentIface::debugStepOver( )
+{
+ m_pTextDocument->debugStepOver();
+}
+
+void TextDocumentIface::debugStepOut( )
+{
+ m_pTextDocument->debugStepOut();
+}
+
+void TextDocumentIface::debugStep( )
+{
+ m_pTextDocument->debugStep();
+}
+
+void TextDocumentIface::debugStop( )
+{
+ m_pTextDocument->debugStop();
+}
+
+void TextDocumentIface::debugInterrupt( )
+{
+ m_pTextDocument->debugInterrupt();
+}
+
+void TextDocumentIface::debugRun( )
+{
+ m_pTextDocument->debugRun();
+}
+
+bool TextDocumentIface::isDebugging( )
+{
+#ifndef NO_GPSIM
+ return m_pTextDocument->debuggerIsRunning();
+#else
+ return false;
+#endif
+}
+
+void TextDocumentIface::clearBookmarks( )
+{
+ m_pTextDocument->clearBookmarks();
+}
+
+void TextDocumentIface::convertToAssembly( )
+{
+ m_pTextDocument->convertToAssembly();
+}
+
+void TextDocumentIface::convertToPIC( )
+{
+ m_pTextDocument->convertToPIC();
+}
+
+void TextDocumentIface::convertToHex( )
+{
+ m_pTextDocument->convertToHex();
+}
+
+void TextDocumentIface::convertToMicrobe( )
+{
+ m_pTextDocument->convertToMicrobe();
+}
+
+void TextDocumentIface::formatAssembly( )
+{
+ m_pTextDocument->formatAssembly();
+}
+//END class TextDocumentIface
+
+
+
+//BEGIN class MechanicsDocumentIface
+MechanicsDocumentIface::MechanicsDocumentIface( MechanicsDocument * document )
+ : ItemDocumentIface(document)
+{
+ m_pMechanicsDocument = document;
+}
+//END class MechanicsDocumentIface
+