You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
283 lines
8.7 KiB
283 lines
8.7 KiB
/* This file is part of the KDE project
|
|
Copyright (C) 2003 Percy Leonhardt
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Library General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public License
|
|
along with this library; see the file COPYING.LIB. If not, write to
|
|
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
* Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
|
|
#ifndef STYLEFACTORY_H
|
|
#define STYLEFACTORY_H
|
|
|
|
#include <tqptrlist.h>
|
|
#include <tqstring.h>
|
|
|
|
#include <tqdom.h>
|
|
|
|
class StyleFactory;
|
|
|
|
class StrokeDashStyle
|
|
{
|
|
public:
|
|
StrokeDashStyle( int style );
|
|
~StrokeDashStyle() {};
|
|
|
|
void toXML( TQDomDocument & doc, TQDomElement & e ) const;
|
|
TQString name() const { return m_name; };
|
|
|
|
private:
|
|
StrokeDashStyle() {};
|
|
|
|
TQString m_name, m_style, m_dots1, m_dots2, m_dots1_length, m_dots2_length,
|
|
m_distance;
|
|
};
|
|
|
|
class GradientStyle
|
|
{
|
|
public:
|
|
GradientStyle( TQDomElement & gradient, int index );
|
|
~GradientStyle() {};
|
|
|
|
void toXML( TQDomDocument & doc, TQDomElement & e ) const;
|
|
TQString name() const { return m_name; };
|
|
|
|
private:
|
|
GradientStyle() {};
|
|
|
|
TQString m_name, m_style, m_cx, m_cy, m_start_color, m_end_color,
|
|
m_start_intensity, m_end_intensity, m_angle, m_border;
|
|
};
|
|
|
|
class MarkerStyle
|
|
{
|
|
public:
|
|
MarkerStyle( int style );
|
|
~MarkerStyle() {};
|
|
|
|
void toXML( TQDomDocument & doc, TQDomElement & e ) const;
|
|
TQString name() const { return m_name; };
|
|
|
|
private:
|
|
MarkerStyle() {};
|
|
|
|
TQString m_name, m_viewBox, m_d;
|
|
};
|
|
|
|
class HatchStyle
|
|
{
|
|
public:
|
|
HatchStyle( int style, TQString & color );
|
|
~HatchStyle() {};
|
|
|
|
void toXML( TQDomDocument & doc, TQDomElement & e ) const;
|
|
TQString name() const { return m_name; };
|
|
|
|
private:
|
|
HatchStyle() {};
|
|
|
|
TQString m_name, m_style, m_color, m_distance, m_rotation;
|
|
};
|
|
|
|
class FillImageStyle
|
|
{
|
|
public:
|
|
FillImageStyle( TQString & name );
|
|
~FillImageStyle() {};
|
|
|
|
void toXML( TQDomDocument & doc, TQDomElement & e ) const;
|
|
|
|
private:
|
|
FillImageStyle() {};
|
|
|
|
TQString m_name, m_href, m_type, m_show, m_actuate;
|
|
};
|
|
|
|
class PageMasterStyle
|
|
{
|
|
public:
|
|
PageMasterStyle( TQDomElement & e, const uint index );
|
|
~PageMasterStyle() {};
|
|
|
|
void toXML( TQDomDocument & doc, TQDomElement & e ) const;
|
|
bool operator==( const PageMasterStyle & pageMasterStyle ) const;
|
|
TQString name() const { return m_name; };
|
|
TQString style() const { return m_style; };
|
|
|
|
private:
|
|
PageMasterStyle() {};
|
|
|
|
TQString m_name, m_page_width, m_page_height, m_orientation, m_style;
|
|
TQString m_margin_top, m_margin_bottom, m_margin_left, m_margin_right;
|
|
};
|
|
|
|
class PageStyle
|
|
{
|
|
public:
|
|
PageStyle( StyleFactory * styleFactory, TQDomElement & e, const uint index );
|
|
~PageStyle() {};
|
|
|
|
void toXML( TQDomDocument & doc, TQDomElement & e ) const;
|
|
bool operator==( const PageStyle & pageStyle ) const;
|
|
TQString name() const { return m_name; };
|
|
|
|
private:
|
|
PageStyle() {};
|
|
|
|
TQString m_name, m_bg_visible, m_bg_objects_visible, m_fill, m_fill_color,
|
|
m_fill_image_name, m_fill_image_width, m_fill_image_height,
|
|
m_fill_image_ref_point, m_fill_gradient_name, m_repeat, m_page_effect,
|
|
m_page_duration;
|
|
};
|
|
|
|
class TextStyle
|
|
{
|
|
public:
|
|
TextStyle( TQDomElement & e, const uint index );
|
|
~TextStyle() {};
|
|
|
|
void toXML( TQDomDocument & doc, TQDomElement & e ) const;
|
|
bool operator==( const TextStyle & textStyle ) const;
|
|
TQString name() const { return m_name; };
|
|
|
|
private:
|
|
TextStyle() {};
|
|
|
|
TQString m_name, m_font_size, m_font_family, m_font_family_generic,
|
|
m_color, m_font_pitch, m_font_style, m_font_weight, m_text_shadow,
|
|
m_text_underline, m_text_underline_color, m_text_crossing_out;
|
|
};
|
|
|
|
class GraphicStyle
|
|
{
|
|
public:
|
|
GraphicStyle( StyleFactory * styleFactory, TQDomElement & e, const uint index );
|
|
GraphicStyle( const char * name,
|
|
const char * stroke, const char * stroke_color,
|
|
const char * stroke_width, const char * shadow,
|
|
const char * shadow_offset_x, const char * shadow_offset_y,
|
|
const char * shadow_color, const char * margin_left,
|
|
const char * margin_right, const char * margin_top,
|
|
const char * margin_bottom, const char * color,
|
|
const char * text_outline, const char * text_crossing_out,
|
|
const char * font_family, const char * font_size,
|
|
const char * font_style, const char * text_shadow,
|
|
const char * text_underline, const char * font_weight,
|
|
const char * line_height, const char * text_align,
|
|
const char * fill, const char * fill_color,
|
|
const char * enable_numbering );
|
|
~GraphicStyle() {};
|
|
|
|
void toXML( TQDomDocument & doc, TQDomElement & e ) const;
|
|
bool operator==( const GraphicStyle & graphicStyle ) const;
|
|
TQString name() const { return m_name; };
|
|
|
|
private:
|
|
GraphicStyle() {};
|
|
|
|
TQString m_name, m_stroke, m_stroke_color, m_stroke_width, m_shadow,
|
|
m_shadow_offset_x, m_shadow_offset_y, m_shadow_color, m_margin_left,
|
|
m_margin_right, m_margin_top, m_margin_bottom, m_color, m_text_outline,
|
|
m_text_crossing_out, m_font_family, m_font_size, m_font_style,
|
|
m_text_shadow, m_text_underline, m_font_weight, m_line_height,
|
|
m_text_align, m_fill, m_fill_color, m_enable_numbering, m_stroke_dash,
|
|
m_fill_hatch_name, m_marker_start, m_marker_start_width,
|
|
m_marker_end, m_marker_end_width, m_fill_gradient_name, m_transparency, m_textAlignment,
|
|
m_textMarginLeft, m_textMarginBottom, m_textMarginTop, m_textMarginRight;
|
|
};
|
|
|
|
class ParagraphStyle
|
|
{
|
|
public:
|
|
ParagraphStyle( TQDomElement & e, const uint index );
|
|
~ParagraphStyle() {};
|
|
|
|
void toXML( TQDomDocument & doc, TQDomElement & e ) const;
|
|
bool operator==( const ParagraphStyle & paragraphStyle ) const;
|
|
TQString name() const { return m_name; };
|
|
|
|
private:
|
|
ParagraphStyle() {};
|
|
TQString parseBorder( TQDomElement e );
|
|
|
|
TQString m_name, m_margin_left, m_margin_right, m_text_indent, m_text_align,
|
|
m_enable_numbering, m_text_shadow, m_margin_top, m_margin_bottom,
|
|
m_border_left, m_border_right, m_border_top, m_border_bottom,
|
|
m_line_height, m_line_height_at_least, m_line_spacing;
|
|
};
|
|
|
|
class ListStyle
|
|
{
|
|
public:
|
|
ListStyle( TQDomElement & e, const uint index );
|
|
~ListStyle() {};
|
|
|
|
void toXML( TQDomDocument & doc, TQDomElement & e ) const;
|
|
bool operator==( const ListStyle & listStyle ) const;
|
|
TQString name() const { return m_name; };
|
|
|
|
private:
|
|
ListStyle() {};
|
|
|
|
typedef enum {
|
|
LLS_NUMBER,
|
|
LLS_BULLET
|
|
} list_level_style_t;
|
|
|
|
float m_min_label_width;
|
|
list_level_style_t m_listLevelStyle;
|
|
TQString m_name, m_num_suffix, m_num_format, m_bullet_char, m_color,
|
|
m_font_size, m_font_family;
|
|
};
|
|
|
|
class StyleFactory
|
|
{
|
|
public:
|
|
StyleFactory();
|
|
~StyleFactory();
|
|
|
|
void addOfficeStyles( TQDomDocument & doc, TQDomElement & styles );
|
|
void addOfficeMaster( TQDomDocument & doc, TQDomElement & master );
|
|
void addOfficeAutomatic( TQDomDocument & doc, TQDomElement & automatic );
|
|
void addAutomaticStyles( TQDomDocument & doc, TQDomElement & autoStyles );
|
|
|
|
TQString createStrokeDashStyle( int style );
|
|
TQString createGradientStyle( TQDomElement & gradient );
|
|
TQString createMarkerStyle( int style );
|
|
TQString createHatchStyle( int style, TQString & color );
|
|
TQString createListStyle( TQDomElement & e );
|
|
TQString createPageStyle( TQDomElement & e );
|
|
TQString createTextStyle( TQDomElement & e );
|
|
TQString createGraphicStyle( TQDomElement & e );
|
|
TQString createParagraphStyle( TQDomElement & e );
|
|
TQString createPageMasterStyle( TQDomElement & e );
|
|
|
|
static TQString toCM( const TQString & point );
|
|
|
|
private:
|
|
TQPtrList<StrokeDashStyle> m_strokeDashStyles;
|
|
TQPtrList<GradientStyle> m_gradientStyles;
|
|
TQPtrList<HatchStyle> m_hatchStyles;
|
|
TQPtrList<MarkerStyle> m_markerStyles;
|
|
TQPtrList<FillImageStyle> m_fillImageStyles;
|
|
TQPtrList<ListStyle> m_listStyles;
|
|
TQPtrList<PageStyle> m_pageStyles;
|
|
TQPtrList<TextStyle> m_textStyles;
|
|
TQPtrList<GraphicStyle> m_graphicStyles;
|
|
TQPtrList<ParagraphStyle> m_paragraphStyles;
|
|
TQPtrList<PageMasterStyle> m_pageMasterStyles;
|
|
};
|
|
|
|
#endif
|