]> git.saurik.com Git - wxWidgets.git/blob - utils/tex2rtf/src/readshg.h
Better doc
[wxWidgets.git] / utils / tex2rtf / src / readshg.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: readshg.h
3 // Purpose: Petr Smilauer's .SHG (Segmented Hypergraphics file) reading
4 // code.
5 // Note: .SHG is undocumented (anywhere!) so this is
6 // reverse-engineering
7 // and guesswork at its best.
8 // Author: Petr Smilauer
9 // Modified by:
10 // Created: 01/01/99
11 // RCS-ID: $Id$
12 // Copyright: (c) Petr Smilauer
13 // Licence: wxWindows licence
14 /////////////////////////////////////////////////////////////////////////////
15
16 #ifndef readshgh
17 #define readshgh
18
19 #include <stdio.h>
20 #include <stdlib.h>
21
22 typedef enum { TypePopup = 0xE2, TypeJump = 0xE3, TypeMacro = 0xC8} HotspotType;
23
24 #define NOT_VISIBLE 0x04
25
26 typedef struct
27 {
28 unsigned char hotspotType;// combines HotspotType /w NOT_VISIBLE if appropriate
29 unsigned char flag; // NOT_VISIBLE or 0 ??
30 unsigned char skip; // 0, always??
31 unsigned short left,
32 top,
33 width, // left+width/top+height give right/bottom,
34 height; // =>right and bottom edge are not 'included'
35 unsigned char magic[4]; // wonderful numbers: for macros, this seems
36 // (at least first 2 bytes) to represent offset into macro-strings block.
37 } ShgInfoBlock; // whole block is just 15 bytes long. How weird!
38
39 #define OFF_OFFSET 0x20 // this is offset, where WORD (?) lies
40 #define OFFSET_DELTA 9 // we must add this to get real offset from file beginning
41
42 struct HotSpot
43 {
44 HotspotType type;
45 unsigned int left,
46 top,
47 right,
48 bottom;
49 char szHlpTopic_Macro[65];
50 bool IsVisible;
51 };
52
53 // Returns the number of hotspots, and the array of hotspots.
54 // E.g.
55 // HotSpots *array;
56 // int n = ParseSHG("thing.shg", &array);
57
58 extern int ParseSHG( const char* fileName, HotSpot **hotspots);
59
60 // Converts Windows .SHG file to HTML map file
61 extern bool SHGToMap(char *filename, char *defaultFile);
62
63 #endif
64