diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/drawfile_8h_source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/drawfile_8h_source.html Tue Mar 30 16:16:55 2010 +0100 @@ -0,0 +1,449 @@ + + + + +TB9.2 Example Applications: examples/PIPS/antiword/inc/drawfile.h Source File + + + + + +

examples/PIPS/antiword/inc/drawfile.h

00001 /*
+00002  * drawfile.h
+00003  * Copyright (C) 2005 A.J. van Os; Released under GNU GPL
+00004  *
+00005  * Description:
+00006  * Include file to deal with drawfiles
+00007  *
+00008  * Based on:
+00009  * C header file for DrawFile
+00010  * written by DefMod (May  4 2004) on Tue May  4 13:34:17 2004
+00011  * Jonathan Coxhead, jonathan@doves.demon.co.uk, 21 Aug 1995
+00012  * OSLib---efficient, type-safe, transparent, extensible,
+00013  * register-safe A P I coverage of RISC O S
+00014  * Copyright (C) 1994 Jonathan Coxhead
+00015  *
+00016  * All credit should go to him, but all the bugs are mine
+00017  */
+00018 
+00019 #if !defined(__drawfile_h)
+00020 #define __drawfile_h
+00021 
+00022 #include "DeskLib:Sprite.h"
+00023 #include "DeskLib:Wimp.h"
+00024 
+00025 #if !defined(BOOL)
+00026 #define BOOL int
+00027 #define TRUE 1
+00028 #define FALSE 0
+00029 #endif /* !BOOL */
+00030 
+00031 /*********************
+00032  * Conversion macros *
+00033  *********************/
+00034 #define Drawfile_DrawToScreen(i) ((i) / 256)
+00035 #define Drawfile_ScreenToDraw(i) ((i) * 256)
+00036 
+00037 /**********************************
+00038  * SWI names and SWI reason codes *
+00039  **********************************/
+00040 #define DrawFile_Render                         0x45540
+00041 #define DrawFile_BBox                           0x45541
+00042 #define DrawFile_DeclareFonts                   0x45542
+00043 
+00044 /********************
+00045  * Type definitions *
+00046  ********************/
+00047 typedef unsigned int                            bits;
+00048 typedef unsigned char                           byte;
+00049 
+00050 typedef byte drawfile_fontref;
+00051 
+00052 typedef byte drawfile_path_style_flags;
+00053 
+00054 typedef bits drawfile_text_flags;
+00055 
+00056 typedef bits drawfile_render_flags;
+00057 
+00058 typedef bits drawfile_declare_fonts_flags;
+00059 
+00060 typedef bits drawfile_paper_options;
+00061 
+00062 typedef bits drawfile_entry_mode;
+00063 
+00064 typedef enum {
+00065   drawfile_TYPE_FONT_TABLE = 0,
+00066   drawfile_TYPE_TEXT = 1,
+00067   drawfile_TYPE_PATH = 2,
+00068   drawfile_TYPE_SPRITE = 5,
+00069   drawfile_TYPE_GROUP = 6,
+00070   drawfile_TYPE_TAGGED = 7,
+00071   drawfile_TYPE_TEXT_AREA = 9,
+00072   drawfile_TYPE_TEXT_COLUMN = 10,
+00073   drawfile_TYPE_OPTIONS = 11,
+00074   drawfile_TYPE_TRFM_TEXT = 12,
+00075   drawfile_TYPE_TRFM_SPRITE = 13,
+00076   drawfile_TYPE_JPEG = 16
+00077 } drawfile_type;
+00078 
+00079 typedef enum {
+00080   drawfile_PATH_END_PATH = 0,
+00081   drawfile_PATH_CONTINUATION = 1,
+00082   drawfile_PATH_MOVE_TO = 2,
+00083   drawfile_PATH_SPECIAL_MOVE_TO = 3,
+00084   drawfile_PATH_CLOSE_GAP = 4,
+00085   drawfile_PATH_CLOSE_LINE = 5,
+00086   drawfile_PATH_BEZIER_TO = 6,
+00087   drawfile_PATH_GAP_TO = 7,
+00088   drawfile_PATH_LINE_TO = 8
+00089 } drawfile_path_type;
+00090 
+00091 typedef struct {
+00092   int start;
+00093   int element_count;
+00094   int elements [6];
+00095 } draw_dash_pattern;
+00096 
+00097 typedef struct {
+00098   int entries [3] [2];
+00099 } os_trfm;
+00100 
+00101 typedef struct {
+00102   void *data;
+00103   size_t length;
+00104 } drawfile_info;
+00105 
+00106 typedef struct {
+00107   drawfile_fontref font_ref;
+00108   char font_name [1];
+00109 } drawfile_font_def;
+00110 
+00111 typedef struct {
+00112   drawfile_fontref font_ref;
+00113   byte reserved [3];
+00114 } drawfile_text_style;
+00115 
+00116 typedef struct {
+00117   drawfile_path_style_flags flags;
+00118   byte reserved;
+00119   byte cap_width;
+00120   byte cap_length;
+00121 } drawfile_path_style;
+00122 
+00123 typedef struct {
+00124   drawfile_font_def font_def[1];
+00125 } drawfile_font_table;
+00126 
+00127 typedef struct {
+00128   wimp_box bbox;
+00129   palette_entry fill;
+00130   palette_entry bg_hint;
+00131   drawfile_text_style style;
+00132   int xsize;
+00133   int ysize;
+00134   wimp_coord base;
+00135   char text [1];
+00136 } drawfile_text;
+00137 
+00138 typedef struct {
+00139   wimp_box bbox;
+00140   palette_entry fill;
+00141   palette_entry outline;
+00142   int width;
+00143   drawfile_path_style style;
+00144   int path [1];
+00145 } drawfile_path;
+00146 
+00147 typedef struct {
+00148   wimp_box bbox;
+00149   palette_entry fill;
+00150   palette_entry outline;
+00151   int width;
+00152   drawfile_path_style style;
+00153   draw_dash_pattern pattern;
+00154   int path [1];
+00155 } drawfile_path_with_pattern;
+00156 
+00157 typedef struct {
+00158   wimp_box bbox;
+00159   sprite_header header;
+00160   byte data [1];
+00161 } drawfile_sprite;
+00162 
+00163 typedef struct  {
+00164   wimp_box bbox;
+00165   char name [12];
+00166   int objects [1];
+00167 } drawfile_group;
+00168 
+00169 typedef struct {
+00170   wimp_box bbox;
+00171   drawfile_type tag;
+00172   int object [1];
+00173 } drawfile_tagged;
+00174 
+00175 typedef struct {
+00176   wimp_box box;
+00177 } drawfile_text_column;
+00178 
+00179 typedef struct {
+00180   struct {
+00181     drawfile_type type;
+00182     int size;
+00183     drawfile_text_column data;
+00184   } columns [1];
+00185 } drawfile_text_column_list;
+00186 
+00187 typedef struct {
+00188   drawfile_type type;
+00189   int reserved [2];
+00190   palette_entry fill;
+00191   palette_entry bg_hint;
+00192   char text [1];
+00193 } drawfile_area_text;
+00194 
+00195 typedef struct {
+00196   wimp_box bbox;
+00197   drawfile_text_column_list header;
+00198   drawfile_area_text area_text;
+00199 } drawfile_text_area;
+00200 
+00201 typedef struct {
+00202   wimp_box bbox;
+00203   int paper_size;
+00204   drawfile_paper_options paper_options;
+00205   double grid_spacing;
+00206   int grid_division;
+00207   BOOL isometric;
+00208   BOOL auto_adjust;
+00209   BOOL show;
+00210   BOOL lock;
+00211   BOOL cm;
+00212   int zoom_mul;
+00213   int zoom_div;
+00214   BOOL zoom_lock;
+00215   BOOL toolbox;
+00216   drawfile_entry_mode entry_mode;
+00217   int undo_size;
+00218 } drawfile_options;
+00219 
+00220 typedef struct {
+00221   wimp_box bbox;
+00222   os_trfm trfm;
+00223   drawfile_text_flags flags;
+00224   palette_entry fill;
+00225   palette_entry bg_hint;
+00226   drawfile_text_style style;
+00227   int xsize;
+00228   int ysize;
+00229   wimp_coord base;
+00230   char text [1];
+00231 } drawfile_trfm_text;
+00232 
+00233 typedef struct {
+00234   wimp_box bbox;
+00235   os_trfm trfm;
+00236   sprite_header header;
+00237   byte data [1];
+00238 } drawfile_trfm_sprite;
+00239 
+00240 typedef struct {
+00241   wimp_box bbox;
+00242   int width;
+00243   int height;
+00244   int xdpi;
+00245   int ydpi;
+00246   os_trfm trfm;
+00247   int len;
+00248   byte data [1];
+00249 } drawfile_jpeg;
+00250 
+00251 /* ------------------------------------------------------------------------
+00252  * Type:          drawfile_object
+00253  *
+00254  * Description:   This type is used to declare pointers rather than objects
+00255  */
+00256 
+00257 typedef struct {
+00258   drawfile_type type;
+00259   int size;
+00260   union {
+00261     drawfile_font_table font_table;
+00262     drawfile_text text;
+00263     drawfile_path path;
+00264     drawfile_path_with_pattern path_with_pattern;
+00265     drawfile_sprite sprite;
+00266     drawfile_group group;
+00267     drawfile_tagged tagged;
+00268     drawfile_text_column text_column;
+00269     drawfile_text_area text_area;
+00270     drawfile_options options;
+00271     drawfile_trfm_text trfm_text;
+00272     drawfile_trfm_sprite trfm_sprite;
+00273     drawfile_jpeg jpeg;
+00274   } data;
+00275 } drawfile_object;
+00276 
+00277 typedef struct {
+00278   char tag [4];
+00279   int major_version;
+00280   int minor_version;
+00281   char source [12];
+00282   wimp_box bbox;
+00283   drawfile_object objects [1];
+00284 } drawfile_diagram;
+00285 
+00286 typedef bits drawfile_bbox_flags;
+00287 
+00288 typedef struct {
+00289   drawfile_object *object;
+00290   drawfile_diagram *diagram;
+00291   drawfile_object *font_table;
+00292   drawfile_declare_fonts_flags flags;
+00293   os_error *error;
+00294 } drawfile_declare_fonts_state;
+00295 
+00296 /************************
+00297  * Constant definitions *
+00298  ************************/
+00299 #define error_DRAW_FILE_NOT_DRAW                0x20C00u
+00300 #define error_DRAW_FILE_VERSION                 0x20C01u
+00301 #define error_DRAW_FILE_FONT_TAB                0x20C02u
+00302 #define error_DRAW_FILE_BAD_FONT_NO             0x20C03u
+00303 #define error_DRAW_FILE_BAD_MODE                0x20C04u
+00304 #define error_DRAW_FILE_BAD_FILE                0x20C05u
+00305 #define error_DRAW_FILE_BAD_GROUP               0x20C06u
+00306 #define error_DRAW_FILE_BAD_TAG                 0x20C07u
+00307 #define error_DRAW_FILE_SYNTAX                  0x20C08u
+00308 #define error_DRAW_FILE_FONT_NO                 0x20C09u
+00309 #define error_DRAW_FILE_AREA_VER                0x20C0Au
+00310 #define error_DRAW_FILE_NO_AREA_VER             0x20C0Bu
+00311 
+00312 #define drawfile_PATH_MITRED                    ((drawfile_path_style_flags) 0x0u)
+00313 #define drawfile_PATH_ROUND                     ((drawfile_path_style_flags) 0x1u)
+00314 #define drawfile_PATH_BEVELLED                  ((drawfile_path_style_flags) 0x2u)
+00315 #define drawfile_PATH_BUTT                      ((drawfile_path_style_flags) 0x0u)
+00316 #define drawfile_PATH_SQUARE                    ((drawfile_path_style_flags) 0x2u)
+00317 #define drawfile_PATH_TRIANGLE                  ((drawfile_path_style_flags) 0x3u)
+00318 #define drawfile_PATH_JOIN_SHIFT                0
+00319 #define drawfile_PATH_JOIN                      ((drawfile_path_style_flags) 0x3u)
+00320 #define drawfile_PATH_END_SHIFT                 2
+00321 #define drawfile_PATH_END                       ((drawfile_path_style_flags) 0xCu)
+00322 #define drawfile_PATH_START_SHIFT               4
+00323 #define drawfile_PATH_START                     ((drawfile_path_style_flags) 0x30u)
+00324 #define drawfile_PATH_WINDING_EVEN_ODD          ((drawfile_path_style_flags) 0x40u)
+00325 #define drawfile_PATH_DASHED                    ((drawfile_path_style_flags) 0x80u)
+00326 #define drawfile_PATH_CAP_WIDTH_SHIFT           16
+00327 #define drawfile_PATH_CAP_WIDTH                 ((drawfile_path_style_flags) 0xFF0000u)
+00328 #define drawfile_PATH_CAP_LENGTH_SHIFT          24
+00329 #define drawfile_PATH_CAP_LENGTH                ((drawfile_path_style_flags) 0xFF000000u)
+00330 #define drawfile_TEXT_KERN                      ((drawfile_text_flags) 0x1u)
+00331 #define drawfile_TEXT_RIGHT_TO_LEFT             ((drawfile_text_flags) 0x2u)
+00332 #define drawfile_TEXT_UNDERLINE                 ((drawfile_text_flags) 0x4u)
+00333 #define drawfile_RENDER_BBOXES                  ((drawfile_render_flags) 0x1u)
+00334 #define drawfile_RENDER_SUPPRESS                ((drawfile_render_flags) 0x2u)
+00335 #define drawfile_RENDER_GIVEN_FLATNESS          ((drawfile_render_flags) 0x4u)
+00336 #define drawfile_RENDER_GIVEN_COLOUR_MAPPING    ((drawfile_render_flags) 0x8u)
+00337 #define drawfile_NO_DOWNLOAD                    ((drawfile_declare_fonts_flags) 0x1u)
+00338 #define drawfile_PAPER_SHOW                     ((drawfile_paper_options) 0x1u)
+00339 #define drawfile_PAPER_LANDSCAPE                ((drawfile_paper_options) 0x10u)
+00340 #define drawfile_PAPER_DEFAULT                  ((drawfile_paper_options) 0x100u)
+00341 #define drawfile_ENTRY_MODE_LINE                ((drawfile_entry_mode) 0x1u)
+00342 #define drawfile_ENTRY_MODE_CLOSED_LINE         ((drawfile_entry_mode) 0x2u)
+00343 #define drawfile_ENTRY_MODE_CURVE               ((drawfile_entry_mode) 0x4u)
+00344 #define drawfile_ENTRY_MODE_CLOSED_CURVE        ((drawfile_entry_mode) 0x8u)
+00345 #define drawfile_ENTRY_MODE_RECTANGLE           ((drawfile_entry_mode) 0x10u)
+00346 #define drawfile_ENTRY_MODE_ELLIPSE             ((drawfile_entry_mode) 0x20u)
+00347 #define drawfile_ENTRY_MODE_TEXT_LINE           ((drawfile_entry_mode) 0x40u)
+00348 #define drawfile_ENTRY_MODE_SELECT              ((drawfile_entry_mode) 0x80u)
+00349 
+00350 /*************************
+00351  * Function declarations *
+00352  *************************/
+00353 
+00354 #if defined(__cplusplus)
+00355    extern "C" {
+00356 #endif /* __cplusplus */
+00357 
+00358 /* ------------------------------------------------------------------------
+00359  * Function:      drawfile_render()
+00360  *
+00361  * Description:   Calls SWI 0x45540
+00362  *
+00363  * Input:         flags - value of R0 on entry
+00364  *                diagram - value of R1 on entry
+00365  *                size - value of R2 on entry
+00366  *                trfm - value of R3 on entry
+00367  *                clip - value of R4 on entry
+00368  *                flatness - value of R5 on entry
+00369  */
+00370 
+00371 extern os_error *Drawfile_Render (drawfile_render_flags flags,
+00372       drawfile_diagram const *diagram,
+00373       int size,
+00374       os_trfm const *trfm,
+00375       wimp_box const *clip,
+00376       int flatness);
+00377 
+00378 /* ------------------------------------------------------------------------
+00379  * Function:      drawfile_bbox()
+00380  *
+00381  * Description:   Calls SWI 0x45541
+00382  *
+00383  * Input:         flags - value of R0 on entry
+00384  *                diagram - value of R1 on entry
+00385  *                size - value of R2 on entry
+00386  *                trfm - value of R3 on entry
+00387  *                bbox - value of R4 on entry
+00388  */
+00389 
+00390 extern os_error *Drawfile_Bbox (drawfile_bbox_flags flags,
+00391       drawfile_diagram const *diagram,
+00392       int size,
+00393       os_trfm const *trfm,
+00394       wimp_box *bbox);
+00395 
+00396 /* ------------------------------------------------------------------------
+00397  * Function:      Drawfile_DeclareFonts()
+00398  *
+00399  * Description:   Calls SWI 0x45542
+00400  *
+00401  * Input:         flags - value of R0 on entry
+00402  *                diagram - value of R1 on entry
+00403  *                size - value of R2 on entry
+00404  */
+00405 
+00406 extern os_error *Drawfile_DeclareFonts (drawfile_declare_fonts_flags flags,
+00407       drawfile_diagram const *diagram,
+00408       int size);
+00409 
+00410 /* ------------------------------------------------------------------------
+00411  * Function:      Drawfile_CreateDiagram()
+00412  *
+00413  */
+00414 
+00415 extern os_error * Drawfile_CreateDiagram(drawfile_info *info, size_t memory,
+00416         const char *creator, wimp_box box);
+00417 
+00418 extern os_error *Drawfile_AppendObject(drawfile_info *info, size_t memory,
+00419         const drawfile_object *object, BOOL rebind);
+00420 
+00421 extern os_error *Drawfile_RenderDiagram(drawfile_info *info,
+00422         window_redrawblock *redraw, double scale);
+00423 
+00424 extern os_error *Drawfile_VerifyDiagram(drawfile_info *info);
+00425 
+00426 extern void     Drawfile_QueryBox(drawfile_info *info,
+00427         wimp_box *rect, BOOL screenUnits);
+00428 
+00429 #if defined(__cplusplus)
+00430    }
+00431 #endif /* __cplusplus */
+00432 
+00433 #endif /* __drawfile.h */
+
+
Generated by  + +doxygen 1.6.2
+ +