summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFridrich Štrba <fridrich.strba@bluewin.ch>2015-05-17 18:50:56 +0200
committerFridrich Štrba <fridrich.strba@bluewin.ch>2015-05-17 18:50:56 +0200
commitb78fa71bb976dcc5521d3f92d69663032b1b4139 (patch)
tree1eef1c5cbb586a773e84649ff708acfe6a9f88f7
parent1da9f329d0ed20390b0ec854596912024ca7b509 (diff)
Output SymbolInstance
Change-Id: I57a9d6834ade9cd6603a8bf1fd81adf7ef6d9230
-rw-r--r--src/lib/FHCollector.cpp18
-rw-r--r--src/lib/FHCollector.h1
2 files changed, 19 insertions, 0 deletions
diff --git a/src/lib/FHCollector.cpp b/src/lib/FHCollector.cpp
index c88d160..f8bb63d 100644
--- a/src/lib/FHCollector.cpp
+++ b/src/lib/FHCollector.cpp
@@ -501,6 +501,7 @@ void libfreehand::FHCollector::_outputSomething(unsigned somethingId, ::libreven
_outputDisplayText(_findDisplayText(somethingId), painter);
_outputImageImport(_findImageImport(somethingId), painter);
_outputNewBlend(_findNewBlend(somethingId), painter);
+ _outputSymbolInstance(_findSymbolInstance(somethingId), painter);
}
void libfreehand::FHCollector::_outputGroup(const libfreehand::FHGroup *group, ::librevenge::RVNGDrawingInterface *painter)
@@ -570,6 +571,23 @@ void libfreehand::FHCollector::_outputNewBlend(const libfreehand::FHNewBlend *ne
m_currentTransforms.pop();
}
+void libfreehand::FHCollector::_outputSymbolInstance(const libfreehand::FHSymbolInstance *symbolInstance, ::librevenge::RVNGDrawingInterface *painter)
+{
+ if (!painter || !symbolInstance)
+ return;
+
+ m_currentTransforms.push(symbolInstance->m_xForm);
+
+ const FHSymbolClass *symbolClass = _findSymbolClass(symbolInstance->m_symbolClassId);
+ if (symbolClass)
+ {
+ _outputSomething(symbolClass->m_groupId, painter);
+ }
+
+ if (!m_currentTransforms.empty())
+ m_currentTransforms.pop();
+}
+
void libfreehand::FHCollector::outputDrawing(::librevenge::RVNGDrawingInterface *painter)
{
diff --git a/src/lib/FHCollector.h b/src/lib/FHCollector.h
index 84ef5d3..3093655 100644
--- a/src/lib/FHCollector.h
+++ b/src/lib/FHCollector.h
@@ -92,6 +92,7 @@ private:
void _outputDisplayText(const FHDisplayText *displayText, ::librevenge::RVNGDrawingInterface *painter);
void _outputImageImport(const FHImageImport *image, ::librevenge::RVNGDrawingInterface *painter);
void _outputNewBlend(const FHNewBlend *newBlend, ::librevenge::RVNGDrawingInterface *painter);
+ void _outputSymbolInstance(const FHSymbolInstance *symbolInstance, ::librevenge::RVNGDrawingInterface *painter);
void _outputSomething(unsigned somethingId, ::librevenge::RVNGDrawingInterface *painter);
const std::vector<unsigned> *_findListElements(unsigned id);