XamlRendition.h

00001 //
00002 //  Copyright (c) 1996-2006 by Autodesk, Inc.
00003 //
00004 //  By using this code, you are agreeing to the terms and conditions of
00005 //  the License Agreement included in the documentation for this code.
00006 //
00007 //  AUTODESK MAKES NO WARRANTIES, EXPRESS OR IMPLIED, AS TO THE CORRECTNESS
00008 //  OF THIS CODE OR ANY DERIVATIVE WORKS WHICH INCORPORATE IT. AUTODESK
00009 //  PROVIDES THE CODE ON AN "AS-IS" BASIS AND EXPLICITLY DISCLAIMS ANY
00010 //  LIABILITY, INCLUDING CONSEQUENTIAL AND INCIDENTAL DAMAGES FOR ERRORS,
00011 //  OMISSIONS, AND OTHER PROBLEMS IN THE CODE.
00012 //
00013 //  Use, duplication, or disclosure by the U.S. Government is subject to
00014 //  restrictions set forth in FAR 52.227-19 (Commercial Computer Software
00015 //  Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) (Rights in Technical
00016 //  Data and Computer Software), as applicable.
00017 //
00018 #if !defined WT_XAML_RENDITION
00019 #define WT_XAML_RENDITION
00020 
00021 #include "whiptk/typedefs_defines.h"
00022 #include "whiptk/rendition.h"
00023 #include "XAML/XamlColor.h"
00024 #include "XAML/XamlColorMap.h"
00025 #include "XAML/XamlDelineate.h"
00026 #include "XAML/XamlFill.h"
00027 #include "XAML/XamlView.h"
00028 #include "XAML/XamlViewport.h"
00029 #include "XAML/XamlVisible.h"
00030 #include "XAML/XamlLineWeight.h"
00031 #include "XAML/XamlProjection.h"
00032 #include "XAML/XamlURL.h"
00033 #include "XAML/XamlLayer.h"
00034 #include "XAML/XamlObject_Node.h"
00035 #include "XAML/XamlFont.h"
00036 #include "XAML/XamlFontExtension.h"
00037 #include "XAML/XamlCode_Page.h"
00038 #include "XAML/XamlLinePattern.h"
00039 #include "XAML/XamlDashPattern.h"
00040 #include "XAML/XamlLineStyle.h"
00041 #include "XAML/XamlFillPattern.h"
00042 #include "XAML/XamlPenPattern.h"
00043 #include "XAML/XamlMacro_Scale.h"
00044 #include "XAML/XamlMacro_Index.h"
00045 #include "XAML/XamlMerge_Control.h"
00046 #include "XAML/XamlText_Background.h"
00047 #include "XAML/XamlText_HAlign.h"
00048 #include "XAML/XamlText_VAlign.h"
00049 #include "XAML/XamlUserFillPattern.h"
00050 #include "XAML/XamlUserHatchPattern.h"
00051 #include "XAML/XamlContrastColor.h"
00052 #include "XAML/XamlAttribute_Url.h"
00053 
00054 #ifdef WHIP_ATTRIBUTE_LIST
00055 #undef WHIP_ATTRIBUTE_LIST
00056 #endif
00057 
00058 #define WHIP_ATTRIBUTE_LIST \
00059     WHIP_ATTRIBUTE_MACRO(Attribute_URL,attribute_url)\
00060     WHIP_ATTRIBUTE_MACRO(Code_Page,code_page)\
00061     WHIP_ATTRIBUTE_MACRO(Color,color)\
00062     WHIP_ATTRIBUTE_MACRO(Color_Map,color_map)\
00063     WHIP_ATTRIBUTE_MACRO(Contrast_Color,contrast_color)\
00064     WHIP_ATTRIBUTE_MACRO(Dash_Pattern,dash_pattern)\
00065     WHIP_ATTRIBUTE_MACRO(Delineate,delineate)\
00066     WHIP_ATTRIBUTE_MACRO(Fill,fill)\
00067     WHIP_ATTRIBUTE_MACRO(Fill_Pattern,fill_pattern)\
00068     WHIP_ATTRIBUTE_MACRO(Font,font)\
00069     WHIP_ATTRIBUTE_MACRO(Font_Extension,font_extension)\
00070     WHIP_ATTRIBUTE_MACRO(Layer,layer)\
00071     WHIP_ATTRIBUTE_MACRO(Line_Pattern,line_pattern)\
00072     WHIP_ATTRIBUTE_MACRO(Line_Style,line_style)\
00073     WHIP_ATTRIBUTE_MACRO(Line_Weight,line_weight)\
00074     WHIP_ATTRIBUTE_MACRO(Macro_Scale,macro_scale)\
00075     WHIP_ATTRIBUTE_MACRO(Macro_Index,macro_index)\
00076     WHIP_ATTRIBUTE_MACRO(Merge_Control,merge_control)\
00077     WHIP_ATTRIBUTE_MACRO(Object_Node,object_node)\
00078     WHIP_ATTRIBUTE_MACRO(Pen_Pattern,pen_pattern)\
00079     WHIP_ATTRIBUTE_MACRO(Projection,projection)\
00080     WHIP_ATTRIBUTE_MACRO(User_Fill_Pattern,user_fill_pattern)\
00081     WHIP_ATTRIBUTE_MACRO(User_Hatch_Pattern,user_hatch_pattern)\
00082     WHIP_ATTRIBUTE_MACRO(Text_Background,text_background)\
00083     WHIP_ATTRIBUTE_MACRO(Text_HAlign,text_halign)\
00084     WHIP_ATTRIBUTE_MACRO(Text_VAlign,text_valign)\
00085     WHIP_ATTRIBUTE_MACRO(URL,url)\
00086     WHIP_ATTRIBUTE_MACRO(Viewport,viewport)\
00087     WHIP_ATTRIBUTE_MACRO(Visibility,visibility)
00088 
00089 //NO    WHIP_ATTRIBUTE_MACRO(BlockRef,blockref)
00090 //NO    WHIP_ATTRIBUTE_MACRO(Marker_Size,marker_size)
00091 //NO    WHIP_ATTRIBUTE_MACRO(Marker_Symbol,marker_symbol)
00092 
00093 
00094 class XAMLTK_API WT_XAML_Rendition :
00095     public WT_Rendition
00096 {
00097 
00098 public:
00099     WT_XAML_Rendition(void);
00100     WT_XAML_Rendition( WT_XAML_Rendition const &other) 
00101     : WT_Rendition( other )
00102     #define WHIP_ATTRIBUTE_MACRO(class_name, class_lower) \
00103         , m_xaml_##class_lower (other.m_xaml_##class_lower)
00104         WHIP_ATTRIBUTE_LIST
00105     #undef WHIP_ATTRIBUTE_MACRO
00106     {}
00107     
00108     virtual ~WT_XAML_Rendition(void);
00109 
00110 #define WHIP_ATTRIBUTE_MACRO(class_name, class_lower) \
00111     WT_XAML_##class_name            m_xaml_##class_lower;
00112     WHIP_ATTRIBUTE_LIST
00113 #undef WHIP_ATTRIBUTE_MACRO
00114 
00116     WT_XAML_Rendition & operator= (WT_XAML_Rendition const & other)
00117     {
00118         WT_Rendition::operator = (other);
00119         
00120         #define WHIP_ATTRIBUTE_MACRO(class_name, class_lower) \
00121             m_xaml_##class_lower = other.m_xaml_##class_lower;
00122             WHIP_ATTRIBUTE_LIST
00123         #undef WHIP_ATTRIBUTE_MACRO
00124 
00125         return *this;
00126     }
00127 
00128     #define WHIP_ATTRIBUTE_MACRO(class_name, class_lower) \
00129         virtual WT_##class_name const & class_lower()    const { return m_xaml_##class_lower; }
00130         WHIP_ATTRIBUTE_LIST
00131     #undef WHIP_ATTRIBUTE_MACRO
00132 
00133     #define WHIP_ATTRIBUTE_MACRO(class_name, class_lower) \
00134         virtual WT_##class_name & class_lower() { m_changed_flags |= class_name##_Bit; return m_xaml_##class_lower; }
00135         WHIP_ATTRIBUTE_LIST
00136     #undef WHIP_ATTRIBUTE_MACRO
00137 
00138          virtual WT_Result sync(WT_File & file, WT_Integer32 required = 0);
00139 
00140      WT_Result sync_parts(WT_File & file, WT_Integer32 needed);
00141 };
00142 
00143 
00144 
00145 #endif //WT_XAML_RENDITION

Generated on Tue Jan 6 22:40:06 2009 for Autodesk DWF Toolkit by  doxygen 1.4.5