1/* 2 * Copyright 2006-2007, Haiku. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Stephan A��mus <superstippi@gmx.de> 7 */ 8#ifndef SVG_EXPORTER_H 9#define SVG_EXPORTER_H 10 11 12#include "Exporter.h" 13 14#include <String.h> 15 16 17_BEGIN_ICON_NAMESPACE 18 class Gradient; 19 class Shape; 20 class Style; 21 class Transformable; 22_END_ICON_NAMESPACE 23 24_USING_ICON_NAMESPACE 25 26 27class SVGExporter : public Exporter { 28 public: 29 SVGExporter(); 30 virtual ~SVGExporter(); 31 32 // Exporter 33 virtual status_t Export(const Icon* icon, BPositionIO* stream); 34 35 virtual const char* MIMEType(); 36 virtual const char* Extension(); 37 38 // SVGExporter 39 void SetOriginalEntry(const entry_ref* ref); 40 41 private: 42 bool _DisplayWarning() const; 43 44 status_t _ExportShape(const Shape* shape, 45 BPositionIO* stream); 46 status_t _ExportGradient(const Gradient* gradient, 47 BPositionIO* stream); 48 void _AppendMatrix(const Transformable* object, 49 BString& string) const; 50 51 status_t _GetFill(const Style* style, 52 char* string, 53 BPositionIO* stream); 54 55 int32 fGradientCount; 56 entry_ref* fOriginalEntry; 57}; 58 59 60#endif // SVG_EXPORTER_H 61