home *** CD-ROM | disk | FTP | other *** search
/ ActiveX Programming Unleashed CD / AXU.iso / componen / interact / demo / data.1 / PVIDO.H < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-21  |  33.3 KB  |  929 lines

  1. /***************************************************************************\
  2.  
  3.    (c) 1994-1996, ProtoView Development Co., All rights reserved
  4. \***************************************************************************/
  5.  
  6.  
  7.      /********************************************************************
  8.       *
  9.       *   Source File:  pvido.h
  10.       *   Module:       Header file for pvido application
  11.       *
  12.       ********************************************************************/
  13.  
  14.  
  15. #ifndef __PVIDO__H
  16. #define __PVIDO__H
  17.  
  18.  
  19.  
  20. #define  rgb_BLACK     RGB(  0,  0,  0)
  21. #define  rgb_BLUE      RGB(  0,  0,128)
  22. #define  rgb_GREEN     RGB(  0,128,  0)
  23. #define  rgb_CYAN      RGB(  0,128,128)
  24. #define  rgb_RED       RGB(128,  0,  0)
  25. #define  rgb_MAGENTA   RGB(128,  0,128)
  26. #define  rgb_BROWN     RGB(128,128,  0)
  27. #define  rgb_WHITE     RGB(255,255,255)
  28. #define  rgb_GRAY      RGB(192,192,192)
  29. #define  rgb_LTBLUE    RGB(  0,  0,255)
  30. #define  rgb_LTGREEN   RGB(  0,255,  0)
  31. #define  rgb_LTCYAN    RGB(  0,255,255)
  32. #define  rgb_LTRED     RGB(255,  0,  0)
  33. #define  rgb_LTMAGENTA RGB(255,  0,255)
  34. #define  rgb_YELLOW    RGB(255,255,  0)
  35.  
  36.  
  37. // zero
  38. #define zero 0
  39.  
  40.  
  41.  
  42.  
  43.  
  44. // copy @ pvGraphx
  45. typedef enum
  46. {
  47.     STYLE_3D_OUTDENT = zero,
  48.     STYLE_3D_HEAVY_OUTDENT,
  49.     STYLE_3D_INDENT,
  50.     STYLE_3D_HEAVY_INDENT,
  51.     STYLE_3D_SHADOW,
  52.     STYLE_3D_NONE
  53. } THREE_D_STYLE;
  54.  
  55.  
  56. typedef enum
  57. {
  58.     MS_INET2 = zero,
  59.     MS_INET3,
  60.     NETSCAPE
  61. } INET_HOST;
  62.  
  63.  
  64.  
  65. // Font Style definitions
  66. #define FS_BOLD            1
  67. #define FS_ITALIC          2
  68. #define FS_UNDERLINE       4
  69. #define FS_STRIKEOUT       8
  70.  
  71.  
  72. // IDO Styles
  73. //#define IDOS_LINETEXT                       0x0001
  74. #define IDOS_NOMOVE                           0x0002
  75. #define IDOS_NOMOVEENDPOINTS                  0x0002
  76. #define IDOS_NORESIZE                         0x0004
  77. #define IDOS_NOMOVEMIDPOINTS                  0x0004
  78. #define IDOS_NODELETE                         0x0008
  79. #define IDOS_NOEDIT                           0x0010
  80. #define IDOS_AUTORESIZE                       0x0020
  81. #define IDOS_NOSOURCE                         0x0040  // entity not valid source for snapping a new line
  82. #define IDOS_TRANSPARENT                      0x0080
  83. #define IDOS_STRETCHBITMAP                    0x0100
  84.  
  85.  
  86. // property page defines
  87. #define PP_ENTITY_TEXT     0
  88. #define PP_ENTITY_COLORS   1
  89. #define PP_ENTITY_STYLES   2
  90. #define PP_ENTITY_GRAPHICS 3
  91. #define PP_ENTITY_INTERNET 4
  92. #define IDO_PPE_TEXT     0
  93. #define IDO_PPE_COLORS   1
  94. #define IDO_PPE_STYLES   2
  95. #define IDO_PPE_GRAPHICS 3
  96. #define IDO_PPE_INTERNET 4
  97.  
  98. #define PP_LINE_TEXT    0
  99. #define PP_LINE_COLORS  1
  100. #define PP_LINE_STYLES  2
  101. #define IDO_PPR_TEXT    0
  102. #define IDO_PPR_COLORS  1
  103. #define IDO_PPR_STYLES  2
  104.  
  105. #define PP_IDO_COLORS   0
  106. #define PP_IDO_GRID     1
  107. #define IDO_PPI_COLORS   0
  108. #define IDO_PPI_GRID     1
  109.  
  110.  
  111.  
  112. typedef enum  // Used for adding entities based on relation to current entity
  113. {
  114.     RELATIVEPOS_NULL = zero,
  115.     RELATIVEPOS_LEFT,
  116.     RELATIVEPOS_RIGHT,
  117.     RELATIVEPOS_UP,
  118.     RELATIVEPOS_DOWN,
  119.     RELATIVEPOS_UPLEFT,
  120.     RELATIVEPOS_UPRIGHT,
  121.     RELATIVEPOS_DOWNLEFT,
  122.     RELATIVEPOS_DOWNRIGHT
  123.  
  124. } RELATIVEPOSITION;
  125.  
  126. typedef enum
  127. {
  128.     OBJECTTYPE_ENTITY = zero,
  129.     OBJECTTYPE_LINE,
  130.     OBJECTTYPE_CONTAINER
  131.  
  132. } OBJECTTYPE;
  133.  
  134. typedef enum
  135. {
  136.   // Simple shapes
  137.     ENTITYSHAPE_CIRCLE = zero,
  138.     ENTITYSHAPE_RECTANGLE,
  139.     ENTITYSHAPE_ROUNDRECT,
  140.     ENTITYSHAPE_OCTAGON,
  141.  
  142.   // Flow chart symbols
  143. //    ENTITYSHAPE_DECISIONBLOCK,
  144. //    ENTITYSHAPE_DOCUMENT,
  145. //    ENTITYSHAPE_DISPLAY,
  146. //    ENTITYSHAPE_ONLINESTORAGE,
  147. //    ENTITYSHAPE_MANUALINPUT,
  148. //    ENTITYSHAPE_MANUALOPERATION,
  149. //    ENTITYSHAPE_INPUTOUTPUT,
  150. //    ENTITYSHAPE_CONNECTOR,
  151. //    ENTITYSHAPE_MAGNETICTAPE,
  152. //    ENTITYSHAPE_PREPARATION,
  153. //    ENTITYSHAPE_TERMINAL,
  154. //    ENTITYSHAPE_OFFPAGECONNECTOR,
  155. //    ENTITYSHAPE_SUBPROCESS,
  156. //    ENTITYSHAPE_QUEUE
  157.  
  158. } ENTITYSHAPE;
  159.  
  160. // copy @ pvGraphx
  161. typedef enum
  162. {
  163.     ARROWSTYLE_NONE = zero,
  164.     ARROWSTYLE_STANDARD,
  165.     ARROWSTYLE_NARROW,
  166.     ARROWSTYLE_WIDE,
  167.     ARROWSTYLE_SWEEPED,
  168.     ARROWSTYLE_WHITECIRCLE,
  169.     ARROWSTYLE_BLACKCIRCLE
  170. } ARROWSTYLE;
  171.  
  172. typedef enum
  173. {
  174.     RELPOS_FREE = zero,
  175.     RELPOS_TOP,
  176.     RELPOS_BOTTOM,
  177.     RELPOS_LEFT,
  178.     RELPOS_RIGHT,
  179.     RELPOS_TOPLEFT,
  180.     RELPOS_TOPRIGHT,
  181.     RELPOS_BOTTOMLEFT,
  182.     RELPOS_BOTTOMRIGHT
  183. } RELPOS;
  184.  
  185. typedef enum
  186. {
  187.     LINESTYLE_STRAIGHT = zero,
  188.     LINESTYLE_90DEGREE,
  189.     LINESTYLE_3PT,
  190.     LINESTYLE_4PT
  191. } LINESTYLE;
  192.  
  193. typedef enum
  194. {
  195.     TEXTPOS_BOTTOM = zero,
  196.     TEXTPOS_TOP,
  197.     TEXTPOS_LEFT,
  198.     TEXTPOS_RIGHT,
  199.     TEXTPOS_CENTER
  200. } TEXTPOSSTYLE;
  201.  
  202.  
  203.  
  204.  
  205. //next 199
  206.  
  207. // IDO Messages
  208. #define IDOM_RESET                         WM_USER + 101   // !
  209. #define IDOM_READFILE                      WM_USER + 102   // !
  210. #define IDOM_SAVEFILE                      WM_USER + 103   // !
  211. #define IDOM_RESETPALETTE                  WM_USER + 167   // !
  212. #define IDOM_READPALETTE                   WM_USER + 165   // !
  213. #define IDOM_SAVEPALETTE                   WM_USER + 166   // !
  214. #define IDOM_GETFILENAME                   WM_USER + 104   // !
  215. #define IDOM_SETFILENAME                   WM_USER + 188   // !
  216. #define IDOM_GETVERSION                    WM_USER + 105   // !
  217. #define IDOM_GETINETPATH                   WM_USER + 192   // !
  218. #define IDOM_SETINETPATH                   WM_USER + 193   // !
  219.  
  220. #define IDOM_GETMODIFIED                   WM_USER + 194   // !
  221. #define IDOM_SETMODIFIED                   WM_USER + 195   // !
  222.  
  223. #define IDOM_READJOBSFILE                  WM_USER + 106  // !
  224.  
  225.  
  226. #define IDOM_ZOOM                          WM_USER + 107  // !
  227. #define IDOM_GETZOOMVALUE                  WM_USER + 196  // !
  228. #define IDOM_PRINT                         WM_USER + 108  // !
  229.  
  230. #define IDOM_MANAGECLASSES                 WM_USER + 110   // !
  231. #define IDOM_MANAGERULES                   WM_USER + 161   // !
  232. #define IDOM_SETUSERMENU                   WM_USER + 111   // !
  233. #define IDOM_GETUSERMENU                   WM_USER + 162   // !
  234.  
  235. #define IDOM_PROPERTYPAGEIDO              WM_USER + 112   // !
  236. #define IDOM_PROPERTYPAGEENTITY           WM_USER + 113   // !
  237. #define IDOM_PROPERTYPAGELINE             WM_USER + 114   // !
  238.  
  239. #define IDOM_SETGRIDCOLOR                WM_USER + 115  // !
  240. #define IDOM_SETIDOBKCOLOR               WM_USER + 116  // !
  241. #define IDOM_GETGRIDCOLOR                WM_USER + 117  // !
  242. #define IDOM_GETIDOBKCOLOR               WM_USER + 118  // !
  243.  
  244. #define IDOM_SETSHOWPRINTPAGES           WM_USER + 189 // !
  245. #define IDOM_GETSHOWPRINTPAGES           WM_USER + 190 // !
  246.  
  247. #define IDOM_SETGRIDLINES                  WM_USER + 119   // !
  248. #define IDOM_ISGRIDVISIBLE                 WM_USER + 120   // !
  249. #define IDOM_SETSNAPTOGRID                 WM_USER + 121   // !
  250. #define IDOM_ISSNAPTOGRID                  WM_USER + 122   // !
  251. #define IDOM_SETPALETTEVISIBLE             WM_USER + 123   // !
  252. #define IDOM_ISPALETTEVISIBLE              WM_USER + 124   // !
  253. #define IDOM_SETEDITMODE                   WM_USER + 125   // !
  254. #define IDOM_GETEDITMODE                   WM_USER + 126   // !
  255. #define IDOM_SETENFORCERULES               WM_USER + 127   // !
  256. #define IDOM_ARERULESENFORCED              WM_USER + 128   // !
  257. #define IDOM_GETGRIDHEIGHT                 WM_USER + 181   // !
  258. #define IDOM_SETGRIDHEIGHT                 WM_USER + 182   // !
  259. #define IDOM_GETGRIDWIDTH                  WM_USER + 183   // !
  260. #define IDOM_SETGRIDWIDTH                  WM_USER + 184   // !
  261.  
  262. #define IDOM_SETTOOLSPALETTEBUTTONTEXT   WM_USER + 191   // !
  263.  
  264. #define IDOM_ITERATEENTITYCLASSFIRST     WM_USER + 131   // !
  265. #define IDOM_ITERATEENTITYCLASSNEXT      WM_USER + 132   // !
  266. #define IDOM_ADDENTITYCLASS              WM_USER + 163   // !
  267. #define IDOM_DELETEENTITYCLASS           WM_USER + 175   // !
  268. #define IDOM_DOESENTITYCLASSEXIST        WM_USER + 179   // !
  269. #define IDOM_REDEFINEFROMENTITYCLASS     WM_USER + 177   // !
  270.  
  271. #define IDOM_ITERATERELATIONCLASSFIRST   WM_USER + 133   // !
  272. #define IDOM_ITERATERELATIONCLASSNEXT    WM_USER + 134   // !
  273. #define IDOM_ADDRELATIONCLASS            WM_USER + 164   // !
  274. #define IDOM_DELETERELATIONCLASS         WM_USER + 176   // !
  275. #define IDOM_DOESRELATIONCLASSEXIST      WM_USER + 180   // !
  276. #define IDOM_REDEFINEFROMRELATIONCLASS   WM_USER + 178   // !
  277.  
  278. #define IDOM_ITERATERULEFIRST            WM_USER + 129   // !
  279. #define IDOM_ITERATERULENEXT             WM_USER + 130   // !
  280. #define IDOM_ADDRULE                     WM_USER + 172   // !
  281. #define IDOM_DELETERULE                  WM_USER + 173   // !
  282. #define IDOM_DOESRULEEXIST               WM_USER + 174   // !
  283.  
  284. #define IDOM_ITERATEENTITYFIRST          WM_USER + 135  // !
  285. #define IDOM_ITERATEENTITYNEXT           WM_USER + 136  // !
  286. #define IDOM_ITERATERELATIONFIRST        WM_USER + 137  // !
  287. #define IDOM_ITERATERELATIONNEXT         WM_USER + 138  // !
  288.  
  289. #define IDOM_ITERATESELENTITYFIRST       WM_USER + 139  // !
  290. #define IDOM_ITERATESELENTITYNEXT        WM_USER + 140  // !
  291.  
  292.  
  293. #define IDOM_GETNUMENTITIES              WM_USER + 141   // !
  294. #define IDOM_GETNUMLINES                 WM_USER + 142   // !
  295. #define IDOM_GETSELENTITYCOUNT           WM_USER + 143   // !
  296. #define IDOM_SETSELECTENTITY             WM_USER + 185   // !
  297. #define IDOM_GETSELECTENTITY             WM_USER + 186   // !
  298.  
  299.  
  300. #define IDOM_GETCURRENTENTITY              WM_USER + 146   // !
  301. #define IDOM_SETCURRENTENTITY              WM_USER + 147   // !
  302.  
  303. #define IDOM_SETENTITYCOORDX               WM_USER + 148   // !
  304. #define IDOM_SETENTITYCOORDY               WM_USER + 149   // !
  305. #define IDOM_GETENTITYCOORDX               WM_USER + 150   // !
  306. #define IDOM_GETENTITYCOORDY               WM_USER + 151   // !
  307.  
  308. #define IDOM_GETCURRENTLINE                WM_USER + 159   // !
  309. #define IDOM_SETCURRENTLINE                WM_USER + 160   // !
  310.  
  311. #define IDOM_SETENTITYTEXT                 WM_USER + 154   // !
  312. #define IDOM_DOESENTITYEXIST               WM_USER + 155   // !
  313. #define IDOM_DOESRELATIONEXIST             WM_USER + 187   // !
  314.  
  315.  
  316. #define IDOM_SETPROPERTY                   WM_USER + 156   // !
  317. #define IDOM_GETPROPERTY                   WM_USER + 157   // !
  318. #define IDOM_SETINTERACTPROPERTY           WM_USER + 197   // !
  319. #define IDOM_GETINTERACTPROPERTY           WM_USER + 198   // !
  320. #define IDOM_SELECTOBJECT                  WM_USER + 158   // !
  321.  
  322. #define IDOM_DRAGADDENTITY                 WM_USER + 170   // !
  323. #define IDOM_DRAGADDRELATION               WM_USER + 171   // !
  324.  
  325. #define IDOM_ADDENTITYFROMCLASS            WM_USER + 202   // !
  326.    #define  IDO_NOTIFY_NOADDENTITY          1
  327.    #define  IDO_NOTIFY_ADDENTITY            2
  328.  
  329. #define IDOM_DELETEENTITY                  WM_USER + 203   // !
  330.    #define  IDO_NOTIFY_NODELETEENTITY       1
  331.    #define  IDO_NOTIFY_DELETEENTITY         2
  332.  
  333. #define IDOM_ADDRELATIONFROMCLASS          WM_USER + 204   // !
  334.    #define  IDO_NOTIFY_NOADDRELATION        1
  335.    #define  IDO_NOTIFY_ADDRELATION          2
  336.  
  337. #define IDOM_DELETERELATION                WM_USER + 205   // !
  338.    #define  IDO_NOTIFY_NODELETERELATION     1
  339.    #define  IDO_NOTIFY_DELETERELATION       2
  340.  
  341.  
  342. #define IDOM_NOTIFYRESULT                  WM_USER + 201   // !
  343. #define IDOM_GETCURRENTID                  WM_USER + 168   // !
  344. #define IDOM_GETCURRENTNAME                WM_USER + 169   // !
  345.  
  346.  
  347.  
  348. // for IDOM_SAVEFILE
  349. #define    SF_ALL                     0
  350. #define    SF_RULES_AND_CLASSES_ONLY  2
  351.  
  352. // for IDOM_READFILE
  353. #define    RF_ALL                     0
  354. #define    RF_RULES_AND_CLASSES_ONLY  1
  355.  
  356. // SETUSERMENU flags
  357. #define IDOMENU_IDO           1
  358. #define IDOMENU_ENTITY        2
  359. #define IDOMENU_LINE          3
  360.  
  361. // ZOOM flags
  362. #define IDO_ZOOM_IN      1
  363. #define IDO_ZOOM_OUT     2
  364. #define IDO_ZOOM_TO_FIT  4
  365. #define IDO_ZOOM_PERCENT 8
  366. // these are defined in MFC headers
  367. //#define ZOOM_IN      1
  368. //#define ZOOM_OUT     2
  369. //#define ZOOM_TO_FIT  4
  370. //#define ZOOM_PERCENT 8
  371.  
  372. // for IDOM_SELECTOBJECT
  373. #define BY_ID         1
  374. #define BY_NAME       2
  375. #define BY_CLASSNAME  4
  376. #define OBJ_ENTITY    8
  377. #define OBJ_LINE     16
  378.  
  379. // properties for InterAct
  380. #define PROP_IPRINTLANDSCAPE        101
  381.  
  382. // properties for all items
  383. #define PROP_TEXT                     1
  384. #define PROP_TEXTCOLOR                2
  385. #define PROP_BKCOLOR                  3
  386. #define PROP_OBJECT_REPAINT           4  // repaint the object
  387. #define PROP_USERDATA                 5
  388. #define PROP_FONT                    11
  389. #define PROP_STYLE                   13
  390. #define PROP_BRINGINTOVIEW           15
  391.  
  392. #define PROP_LTEXT                    6
  393. #define PROP_LTEXTCOLOR               7
  394. #define PROP_LBKCOLOR                 8
  395. #define PROP_LOBJECT_REPAINT          9  // repaint the object
  396. #define PROP_LUSERDATA               10
  397. #define PROP_LFONT                   12
  398. #define PROP_LSTYLE                  14
  399. #define PROP_LBRINGINTOVIEW          16
  400.  
  401. // props for entities alone
  402. #define PROP_ENTITY_SHAPE            30
  403. #define PROP_ENTITY_3D               31
  404. #define PROP_ENTITY_CONTAINER        32
  405. #define PROP_ENTITY_GRAPHIC          33
  406. #define PROP_ENTITY_RECT             34
  407. #define PROP_ENTITY_TEXTORIENTATION  35  // text for entity w/ graphic
  408. #define PROP_ENTITY_GETNUMAWAYLINES      36  // # lines pointing away from entity
  409. #define PROP_ENTITY_ITERATEFIRSTAWAYLINE 37  // info for line
  410. #define PROP_ENTITY_ITERATENEXTAWAYLINE  38  // info for line
  411. #define PROP_ENTITY_GETNUMHOMELINES      39  // # lines pointing to entity
  412. #define PROP_ENTITY_ITERATEFIRSTHOMELINE 40  // info for line
  413. #define PROP_ENTITY_ITERATENEXTHOMELINE  41  // info for line
  414. #define PROP_ENTITY_ITERATEFIRSTCONTAINED 42
  415. #define PROP_ENTITY_ITERATENEXTCONTAINED  43
  416. #define PROP_ENTITY_CONTAINEDCOUNT        44
  417. #define PROP_ENTITY_ADDTOCONTAINER        45
  418. #define PROP_ENTITY_REMOVEFROMCONTAINER   46
  419. #define PROP_ENTITY_BORDER                47
  420. #define PROP_ENTITY_INETHOST              48
  421. #define PROP_ENTITY_INETURL               49
  422. // props for lines alone
  423. #define PROP_LINE_STYLE              70
  424. #define PROP_LINE_SRC_ARROW_STYLE    71
  425. #define PROP_LINE_DST_ARROW_STYLE    72
  426. #define PROP_LINE_THICKNESS          73
  427. #define PROP_LINE_SRCENTITY          74
  428. #define PROP_LINE_DSTENTITY          75
  429.  
  430.  
  431.  
  432.  
  433. // IDO return values
  434. #define IDOR_SUCCESS                     1
  435.  
  436. #define IDOR_FAILURE                    -2
  437. #define IDOR_FILE_NOT_FOUND             -3
  438. #define IDOR_FILE_NOT_VALID             -4
  439. #define IDOR_FILE_VERSION_NOT_VALID     -5
  440. #define IDOR_OBJECT_NOT_FOUND           -6
  441. #define IDOR_INVALID_PARAMETER          -7
  442. #define IDOR_CLASS_NOT_FOUND            -8
  443. #define IDOR_DUPLICATE_USER_ID         -10
  444. #define IDOR_DUPLICATE_USER_NAME       -11
  445. #define IDOR_SRC_DEST_SAME             -12
  446. #define IDOR_INVALID_OBJECT            -13
  447.  
  448.  
  449. // IDO Notifications
  450. #define IDON_SELCHANGE                     0x06
  451. #define IDON_SETFOCUS                      0x07
  452. #define IDON_KILLFOCUS                     0x08
  453.  
  454. // these are message-based notifications
  455. #define NOTIFYBASE   300
  456.  
  457. #define IDOM_NOTIFY_BEFOREDIAGRAMSAVED    WM_USER + NOTIFYBASE +23  //!
  458. #define IDOM_NOTIFY_DIAGRAMSAVED          WM_USER + NOTIFYBASE +24  //!
  459. #define IDOM_NOTIFY_BEFOREDIAGRAMLOADED   WM_USER + NOTIFYBASE +25  //!
  460. #define IDOM_NOTIFY_DIAGRAMLOADED         WM_USER + NOTIFYBASE +26  //!
  461. #define IDOM_NOTIFY_BEFOREDIAGRAMRESET    WM_USER + NOTIFYBASE +27  //!
  462. #define IDOM_NOTIFY_DIAGRAMRESET          WM_USER + NOTIFYBASE +28  //!
  463. #define IDOM_N_BEFOREDIAGRAMSAVED    IDOM_NOTIFY_BEFOREDIAGRAMSAVED
  464. #define IDOM_N_DIAGRAMSAVED          IDOM_NOTIFY_DIAGRAMSAVED
  465. #define IDOM_N_BEFOREDIAGRAMLOADED   IDOM_NOTIFY_BEFOREDIAGRAMLOADED
  466. #define IDOM_N_DIAGRAMLOADED         IDOM_NOTIFY_DIAGRAMLOADED
  467. #define IDOM_N_BEFOREDIAGRAMRESET    IDOM_NOTIFY_BEFOREDIAGRAMRESET
  468. #define IDOM_N_DIAGRAMRESET          IDOM_NOTIFY_DIAGRAMRESET
  469.  
  470.  
  471. #define IDOM_NOTIFY_BEFOREPALETTESAVED    WM_USER + NOTIFYBASE +29  //!
  472. #define IDOM_NOTIFY_PALETTESAVED          WM_USER + NOTIFYBASE +30  //!
  473. #define IDOM_NOTIFY_BEFOREPALETTELOADED   WM_USER + NOTIFYBASE +31  //!
  474. #define IDOM_NOTIFY_PALETTELOADED         WM_USER + NOTIFYBASE +32  //!
  475. #define IDOM_NOTIFY_BEFOREPALETTERESET    WM_USER + NOTIFYBASE +33  //!
  476. #define IDOM_NOTIFY_PALETTERESET          WM_USER + NOTIFYBASE +34  //!
  477. #define IDOM_N_BEFOREPALETTESAVED    IDOM_NOTIFY_BEFOREPALETTESAVED
  478. #define IDOM_N_PALETTESAVED          IDOM_NOTIFY_PALETTESAVED
  479. #define IDOM_N_BEFOREPALETTELOADED   IDOM_NOTIFY_BEFOREPALETTELOADED
  480. #define IDOM_N_PALETTELOADED         IDOM_NOTIFY_PALETTELOADED
  481. #define IDOM_N_BEFOREPALETTERESET    IDOM_NOTIFY_BEFOREPALETTERESET
  482. #define IDOM_N_PALETTERESET          IDOM_NOTIFY_PALETTERESET
  483.  
  484.  
  485. #define IDOM_NOTIFY_BEFOREDISPLAYOPTIONSMENU   WM_USER + NOTIFYBASE +35  //!
  486. #define IDOM_NOTIFY_BEFOREDISPLAYHELP          WM_USER + NOTIFYBASE +36  //!
  487. #define IDOM_NOTIFY_BEFOREDISPLAYMANAGERULES   WM_USER + NOTIFYBASE +37  //!
  488. #define IDOM_NOTIFY_BEFOREDISPLAYMANAGECLASSES WM_USER + NOTIFYBASE +38  //!
  489. #define IDOM_NOTIFY_DISPLAYMANAGERULESBUTTON   WM_USER + NOTIFYBASE +39
  490. #define IDOM_NOTIFY_BEFOREDISPLAYTOOLSPALETTE  WM_USER + NOTIFYBASE +40  //!
  491. #define IDOM_NOTIFY_BEFOREHIDETOOLSPALETTE     WM_USER + NOTIFYBASE +41  //!
  492. #define IDOM_N_BEFOREDISPLAYOPTIONSMENU   IDOM_NOTIFY_BEFOREDISPLAYOPTIONSMENU
  493. #define IDOM_N_BEFOREDISPLAYHELP          IDOM_NOTIFY_BEFOREDISPLAYHELP
  494. #define IDOM_N_BEFOREDISPLAYMANAGERULES   IDOM_NOTIFY_BEFOREDISPLAYMANAGERULES
  495. #define IDOM_N_BEFOREDISPLAYMANAGECLASSES IDOM_NOTIFY_BEFOREDISPLAYMANAGECLASSES
  496. #define IDOM_N_DISPLAYMANAGERULESBUTTON   IDOM_NOTIFY_DISPLAYMANAGERULESBUTTON
  497. #define IDOM_N_BEFOREDISPLAYTOOLSPALETTE  IDOM_NOTIFY_BEFOREDISPLAYTOOLSPALETTE
  498. #define IDOM_N_BEFOREHIDETOOLSPALETTE     IDOM_NOTIFY_BEFOREHIDETOOLSPALETTE
  499.  
  500.  
  501. #define IDOM_NOTIFY_INVALIDEDITEVENT      WM_USER + NOTIFYBASE +3
  502. #define IDOM_N_INVALIDEDITEVENT      IDOM_NOTIFY_INVALIDEDITEVENT
  503.  
  504. #define IDOM_NOTIFY_ENTITYADDREQUEST      WM_USER + NOTIFYBASE +4
  505. #define IDOM_NOTIFY_ENTITYADDED           WM_USER + NOTIFYBASE +5
  506. #define IDOM_N_ENTITYADDREQUEST      IDOM_NOTIFY_ENTITYADDREQUEST
  507. #define IDOM_N_ENTITYADDED           IDOM_NOTIFY_ENTITYADDED
  508.  
  509. #define IDOM_NOTIFY_ENTITYDELETEREQUEST   WM_USER + NOTIFYBASE +6
  510. #define IDOM_NOTIFY_ENTITYDELETED         WM_USER + NOTIFYBASE +7
  511. #define IDOM_N_ENTITYDELETEREQUEST   IDOM_NOTIFY_ENTITYDELETEREQUEST
  512. #define IDOM_N_ENTITYDELETED         IDOM_NOTIFY_ENTITYDELETED
  513.  
  514. #define IDOM_NOTIFY_ENTITYBEFOREMOVE      WM_USER + NOTIFYBASE +42
  515. #define IDOM_NOTIFY_ENTITYMOVED           WM_USER + NOTIFYBASE +43
  516. #define IDOM_N_ENTITYBEFOREMOVE      IDOM_NOTIFY_ENTITYBEFOREMOVE
  517. #define IDOM_N_ENTITYMOVED           IDOM_NOTIFY_ENTITYMOVED
  518.  
  519.  
  520. #define IDOM_NOTIFY_RELATIONADDREQUEST    WM_USER + NOTIFYBASE +9
  521. #define IDOM_NOTIFY_RELATIONADDED         WM_USER + NOTIFYBASE +10
  522. #define IDOM_N_RELATIONADDREQUEST    IDOM_NOTIFY_RELATIONADDREQUEST
  523. #define IDOM_N_RELATIONADDED         IDOM_NOTIFY_RELATIONADDED
  524.  
  525. #define IDOM_NOTIFY_RELATIONDELETEREQUEST WM_USER + NOTIFYBASE +11
  526. #define IDOM_NOTIFY_RELATIONDELETED       WM_USER + NOTIFYBASE +12
  527. #define IDOM_N_RELATIONDELETEREQUEST IDOM_NOTIFY_RELATIONDELETEREQUEST
  528. #define IDOM_N_RELATIONDELETED       IDOM_NOTIFY_RELATIONDELETED
  529.  
  530.  
  531. #define IDOM_NOTIFY_CLICK_ENTITY          WM_USER + NOTIFYBASE +20  //!
  532. #define IDOM_NOTIFY_CLICK_RELATION        WM_USER + NOTIFYBASE +21  //!
  533. #define IDOM_NOTIFY_CLICK_IDO             WM_USER + NOTIFYBASE +22  //!
  534. #define IDOM_NOTIFY_CLICK_INTERACT        WM_USER + NOTIFYBASE +22  //!
  535. #define IDOM_N_CLICK_ENTITY          IDOM_NOTIFY_CLICK_ENTITY
  536. #define IDOM_N_CLICK_RELATION        IDOM_NOTIFY_CLICK_RELATION
  537. #define IDOM_N_CLICK_IDO             IDOM_NOTIFY_CLICK_INTERACT
  538. #define IDOM_N_CLICK_INTERACT        IDOM_NOTIFY_CLICK_INTERACT
  539.  
  540. #define NOTIFY_CLICK_LEFT        1  // passed in lParam
  541. #define NOTIFY_CLICK_RIGHT       2
  542. #define NOTIFY_CLICK_LEFT_DBL    3
  543. #define NOTIFY_CLICK_RIGHT_DBL   4
  544.  
  545.  
  546. #ifndef _RC_INVOKED
  547.  
  548. #pragma pack(1)
  549. typedef struct
  550. {
  551.    char szClassName[99+1];
  552.    char szBitmapName[99+1];
  553. } IDO_NEWCLASS, FAR * LPIDO_NEWCLASS;
  554. #pragma pack()
  555.  
  556. #pragma pack(1)
  557. typedef struct
  558. {
  559.    char szFontName[99+1];
  560.    int  cSize;
  561.    BOOL bBold;
  562.    BOOL bItalic;
  563.    BOOL bUnderline;
  564.    BOOL bStrikeout;
  565. } IDO_FONT, FAR * LPIDO_FONT;
  566. #pragma pack()
  567.  
  568. #pragma pack(1)
  569. typedef struct
  570. {
  571.    char          E1[99+1];
  572.    char          R1[99+1];
  573.    char          E2[99+1];
  574.    int           MaxCount;
  575. } IDO_RULE, FAR * LPIDO_RULE;
  576. #pragma pack()
  577.  
  578. #pragma pack(1)
  579. typedef struct
  580. {
  581.    long          id;
  582.    char          name[99+1];
  583.    char          classname[99+1];
  584.    char          text[99+1];
  585.    RECT          rect;
  586.    HWND          hIDO;
  587. } ENTITY_CLASS_STRUCT, FAR * LPENTITY_CLASS_STRUCT;
  588. #pragma pack()
  589.  
  590. #define ENTITY   ENTITY_CLASS_STRUCT
  591. #define LPENTITY LPENTITY_CLASS_STRUCT
  592.  
  593. #pragma pack(1)
  594. typedef struct
  595. {
  596.    long          Src_id;
  597.    long          Dst_id;
  598.    long          id;
  599.    char          Src_name[99+1];
  600.    char          Dst_name[99+1];
  601.    char          name[99+1];
  602.    char          classname[99+1];
  603.    char          text[99+1];
  604.    HWND          hIDO;
  605. } LINE_CLASS_STRUCT, FAR * LPLINE_CLASS_STRUCT;
  606. #pragma pack()
  607.  
  608.  
  609. #define RELATION   LINE_CLASS_STRUCT
  610. #define LPRELATION LPLINE_CLASS_STRUCT
  611.  
  612. #endif // __RC_FILE
  613.  
  614.  
  615. #ifdef __cplusplus
  616. extern "C"
  617. {
  618. #endif
  619.  
  620. // ido properties
  621. BOOL WINAPI idoGetEditMode(HWND);
  622. void WINAPI idoSetEditMode(HWND, BOOL);
  623.  
  624. int  WINAPI idoGetGridHeight(HWND);
  625. void WINAPI idoSetGridHeight(HWND, int);
  626.  
  627. int  WINAPI idoGetGridWidth(HWND);
  628. void WINAPI idoSetGridWidth(HWND, int);
  629.  
  630. COLORREF WINAPI idoGetGridLineColor(HWND);
  631. void     WINAPI idoSetGridLineColor(HWND, COLORREF);
  632.  
  633. COLORREF WINAPI idoGetBackColor(HWND);
  634. void     WINAPI idoSetBackColor(HWND, COLORREF);
  635.  
  636. BOOL WINAPI idoGetGridLines(HWND);
  637. void WINAPI idoSetGridLines(HWND, BOOL);
  638.  
  639. BOOL WINAPI idoGetPrinterLines(HWND);
  640. void WINAPI idoSetPrinterLines(HWND, BOOL);
  641.  
  642. BOOL WINAPI idoGetPrinterLandscape(HWND);
  643. void WINAPI idoSetPrinterLandscape(HWND, BOOL);
  644.  
  645. BOOL WINAPI idoGetSnapToGrid(HWND);
  646. void WINAPI idoSetSnapToGrid(HWND, BOOL);
  647.  
  648. BOOL WINAPI idoGetToolsPalette(HWND);
  649. void WINAPI idoSetToolsPalette(HWND, BOOL);
  650. BOOL WINAPI idoSetToolsPaletteButtonText(HWND, LPCSTR);
  651.  
  652. BOOL WINAPI idoGetRulesEnforced(HWND);
  653. void WINAPI idoSetRulesEnforced(HWND, BOOL);
  654.  
  655. BOOL WINAPI idoGetCurrentEntity(HWND, LPENTITY);
  656. BOOL WINAPI idoSetCurrentEntity(HWND, LPENTITY);
  657.  
  658. BOOL WINAPI idoGetCurrentRelation(HWND, LPRELATION);
  659. BOOL WINAPI idoSetCurrentRelation(HWND, LPRELATION);
  660.  
  661. BOOL WINAPI idoGetPopupMenu(HWND, long);
  662. BOOL WINAPI idoSetPopupMenu(HWND, long, BOOL);
  663.  
  664. void WINAPI idoSetModified(HWND, BOOL);
  665. BOOL WINAPI idoGetModified(HWND);
  666.  
  667. void WINAPI idoSetWindowStyle(HWND, long);
  668. long WINAPI idoGetWindowStyle(HWND);
  669.  
  670. void WINAPI idoSetBorder(HWND, BOOL);
  671. BOOL WINAPI idoGetBorder(HWND);
  672.  
  673. void WINAPI idoSetScrollBars(HWND, long);
  674. long WINAPI idoGetScrollBars(HWND);
  675. #define IDO_NONE    0
  676. #define IDO_HSCROLL 1
  677. #define IDO_VSCROLL 2
  678. #define IDO_BOTH    3
  679.  
  680. BOOL WINAPI idoGetRedraw(HWND);
  681. void WINAPI idoSetRedraw(HWND, BOOL);
  682.  
  683.  
  684. // ido methods
  685.  
  686. // responses to notifications
  687. void WINAPI idoCancelAction(HWND);
  688. void WINAPI idoAllowAction(HWND);
  689.  
  690. BOOL   WINAPI idoGetNotifyEntity(HWND, LPENTITY);
  691. BOOL   WINAPI idoGetNotifyRelation(HWND, LPRELATION);
  692. long   WINAPI idoGetNotifyID(HWND);
  693. LPCSTR WINAPI idoGetNotifyName(HWND);
  694.  
  695.  
  696. // retrieve count
  697. long WINAPI idoGetNumberOfSelectedEntities(HWND);
  698. long WINAPI idoGetNumberOfEntities(HWND);
  699. long WINAPI idoGetNumberOfRelations(HWND);
  700.  
  701. // selection
  702. BOOL WINAPI idoIterateSelectedEntityFirst(HWND);
  703. BOOL WINAPI idoIterateSelectedEntityNext(HWND, LPENTITY);
  704. BOOL WINAPI idoEntityGetSelect(LPENTITY);
  705. void WINAPI idoEntitySetSelect(LPENTITY, BOOL);
  706.  
  707.  
  708. // entities
  709. BOOL WINAPI idoIterateEntityFirst(HWND);
  710. BOOL WINAPI idoIterateEntityNext(HWND, LPENTITY);
  711.  
  712. BOOL WINAPI idoDragAddEntity(HWND, LPCSTR);
  713. BOOL WINAPI idoAddEntityFromClass(HWND, long, LPSTR, LPSTR, LPSTR, int, int, int, int);
  714. BOOL WINAPI idoDeleteEntity(HWND, LPENTITY);
  715. BOOL WINAPI idoDoesEntityExist(HWND, long, LPCSTR);
  716. BOOL WINAPI idoEntityDelete(LPENTITY);
  717.  
  718. // relations
  719. BOOL WINAPI idoIterateRelationFirst(HWND);
  720. BOOL WINAPI idoIterateRelationNext(HWND, LPRELATION);
  721.  
  722. BOOL WINAPI idoDragAddRelation(HWND, LPCSTR);
  723. BOOL WINAPI idoAddRelationFromClass(HWND, long, LPSTR, LPSTR, LPSTR, long, LPSTR, long, LPSTR);
  724. BOOL WINAPI idoDeleteRelation(HWND, LPRELATION);
  725. BOOL WINAPI idoDoesRelationExist(HWND, long, LPCSTR);
  726. BOOL WINAPI idoRelationDelete(LPRELATION);
  727.  
  728. // file IO
  729. long WINAPI idoGetVersion(HWND);
  730.  
  731. LPCSTR WINAPI idoGetFileName(HWND);
  732. void   WINAPI idoSetFileName(HWND, LPCSTR);
  733.  
  734. void WINAPI idoResetDiagram(HWND);
  735. BOOL WINAPI idoReadDiagram(HWND, LPSTR);
  736. BOOL WINAPI idoSaveDiagram(HWND, LPSTR);
  737.  
  738. void WINAPI idoResetPalette(HWND);
  739. BOOL WINAPI idoReadPalette(HWND, LPSTR);
  740. BOOL WINAPI idoSavePalette(HWND, LPSTR);
  741.  
  742. BOOL WINAPI idoReadJobsFile(HWND, LPSTR);
  743.  
  744. // misc
  745. void WINAPI idoZoom(HWND, int, long);
  746. short WINAPI idoGetZoomValue(HWND);
  747. void WINAPI idoSetZoomValue(HWND, short);
  748.  
  749. // inet new support
  750. LPCSTR    WINAPI idoGetInetPath(HWND);
  751. void      WINAPI idoSetInetPath(HWND, LPCSTR);
  752. void      WINAPI idoEntitySetInetHost(LPENTITY, INET_HOST);
  753. INET_HOST WINAPI idoEntityGetInetHost(LPENTITY);
  754. void      WINAPI idoEntitySetInetUrl(LPENTITY, LPCSTR);
  755. LPCSTR    WINAPI idoEntityGetInetUrl(LPENTITY);
  756.  
  757. // clipboard support
  758. void WINAPI idoCut(HWND);
  759. void WINAPI idoCopy(HWND);
  760. void WINAPI idoPaste(HWND);
  761.  
  762. // internal dialogs
  763. void WINAPI idoManageClasses(HWND);
  764. void WINAPI idoManageRules(HWND);
  765. void WINAPI idoPrintDiagram(HWND);
  766. void WINAPI idoPropertyPage(HWND, int);
  767. void WINAPI idoEntityPropertyPage(LPENTITY, int);
  768. void WINAPI idoRelationPropertyPage(LPRELATION, int);
  769.  
  770. // classes
  771. BOOL WINAPI idoAddEntityClass(HWND, LPSTR, LPSTR, LPENTITY);
  772. BOOL WINAPI idoDeleteEntityClass(HWND, LPSTR);
  773. BOOL WINAPI idoRedefineFromEntityClass(HWND, LPSTR);
  774. BOOL WINAPI idoGetEntityClass(HWND, LPSTR, LPENTITY);
  775. BOOL WINAPI idoIterateEntityClassFirst(HWND);
  776. BOOL WINAPI idoIterateEntityClassNext(HWND, LPSTR);
  777. BOOL WINAPI idoDoesEntityClassExist(HWND, LPSTR);
  778.  
  779. BOOL WINAPI idoAddRelationClass(HWND, LPSTR, LPSTR, LPRELATION);
  780. BOOL WINAPI idoDeleteRelationClass(HWND, LPSTR);
  781. BOOL WINAPI idoRedefineFromRelationClass(HWND, LPSTR);
  782. BOOL WINAPI idoGetRelationClass(HWND, LPSTR, LPRELATION);
  783. BOOL WINAPI idoIterateRelationClassFirst(HWND);
  784. BOOL WINAPI idoIterateRelationClassNext(HWND, LPSTR);
  785. BOOL WINAPI idoDoesRelationClassExist(HWND, LPSTR);
  786.  
  787. // rules
  788. BOOL WINAPI idoAddRule(HWND, LPSTR, LPSTR, LPSTR);
  789. BOOL WINAPI idoDeleteRule(HWND, LPIDO_RULE);
  790. BOOL WINAPI idoDoesRuleExist(HWND, LPSTR, LPSTR, LPSTR);
  791. BOOL WINAPI idoIterateRuleFirst(HWND);
  792. BOOL WINAPI idoIterateRuleNext(HWND, LPIDO_RULE);
  793.  
  794. // object retrieval
  795. BOOL WINAPI idoGetEntity(HWND, long, LPSTR, LPENTITY);
  796. BOOL WINAPI idoGetRelation(HWND, long, LPSTR, LPRELATION);
  797.  
  798.  
  799.  
  800. // entity properties
  801. void          WINAPI idoEntitySetBorder(LPENTITY, BOOL);
  802. BOOL          WINAPI idoEntityGetBorder(LPENTITY);
  803. void          WINAPI idoEntitySetFont(LPENTITY, LPIDO_FONT);
  804. LPIDO_FONT    WINAPI idoEntityGetFont(LPENTITY);
  805. void          WINAPI idoEntitySetUserData(LPENTITY, LPVOID);
  806. LPVOID        WINAPI idoEntityGetUserData(LPENTITY);
  807. void          WINAPI idoEntitySetBackColor(LPENTITY, COLORREF);
  808. COLORREF      WINAPI idoEntityGetBackColor(LPENTITY);
  809. void          WINAPI idoEntitySetTextColor(LPENTITY, COLORREF);
  810. COLORREF      WINAPI idoEntityGetTextColor(LPENTITY);
  811. void          WINAPI idoEntitySetText(LPENTITY, LPCSTR);
  812. LPCSTR        WINAPI idoEntityGetText(LPENTITY);
  813. void          WINAPI idoEntitySetShape(LPENTITY, ENTITYSHAPE);
  814. ENTITYSHAPE   WINAPI idoEntityGetShape(LPENTITY);
  815. void          WINAPI idoEntitySetFrame(LPENTITY, THREE_D_STYLE);
  816. THREE_D_STYLE WINAPI idoEntityGetFrame(LPENTITY);
  817. void          WINAPI idoEntitySetContainer(LPENTITY, long);
  818. long          WINAPI idoEntityGetContainer(LPENTITY);
  819. void          WINAPI idoEntitySetGraphic(LPENTITY, LPCSTR);
  820. LPCSTR        WINAPI idoEntityGetGraphic(LPENTITY);
  821. void          WINAPI idoEntitySetTextOrientation(LPENTITY, TEXTPOSSTYLE);
  822. TEXTPOSSTYLE  WINAPI idoEntityGetTextOrientation(LPENTITY);
  823. void          WINAPI idoEntitySetCoordX(LPENTITY, int);
  824. int           WINAPI idoEntityGetCoordX(LPENTITY);
  825. void          WINAPI idoEntitySetCoordY(LPENTITY, int);
  826. int           WINAPI idoEntityGetCoordY(LPENTITY);
  827. int           WINAPI idoEntityGetTop(LPENTITY);
  828. void          WINAPI idoEntitySetTop(LPENTITY, int);
  829. int           WINAPI idoEntityGetLeft(LPENTITY);
  830. void          WINAPI idoEntitySetLeft(LPENTITY, int);
  831. int           WINAPI idoEntityGetRight(LPENTITY);
  832. void          WINAPI idoEntitySetRight(LPENTITY, int);
  833. int           WINAPI idoEntityGetBottom(LPENTITY);
  834. void          WINAPI idoEntitySetBottom(LPENTITY, int);
  835. BOOL          WINAPI idoEntityGetRect(LPENTITY, LPRECT);
  836. void          WINAPI idoEntitySetRect(LPENTITY, LPRECT);
  837. BOOL          WINAPI idoEntityGetValidRelationDragSource(LPENTITY);
  838. void          WINAPI idoEntitySetValidRelationDragSource(LPENTITY, BOOL);
  839. BOOL          WINAPI idoEntityGetCanResize(LPENTITY);
  840. void          WINAPI idoEntitySetCanResize(LPENTITY, BOOL);
  841. BOOL          WINAPI idoEntityGetCanMove(LPENTITY);
  842. void          WINAPI idoEntitySetCanMove(LPENTITY, BOOL);
  843. BOOL          WINAPI idoEntityGetCanDelete(LPENTITY);
  844. void          WINAPI idoEntitySetCanDelete(LPENTITY, BOOL);
  845. BOOL          WINAPI idoEntityGetReadOnly(LPENTITY);
  846. void          WINAPI idoEntitySetReadOnly(LPENTITY, BOOL);
  847. BOOL          WINAPI idoEntityGetAutoResize(LPENTITY);
  848. void          WINAPI idoEntitySetAutoResize(LPENTITY, BOOL);
  849. BOOL          WINAPI idoEntityGetStretchBitmap(LPENTITY);
  850. void          WINAPI idoEntitySetStretchBitmap(LPENTITY, BOOL);
  851. BOOL          WINAPI idoEntityGetTransparent(LPENTITY);
  852. void          WINAPI idoEntitySetTransparent(LPENTITY, BOOL);
  853. BOOL          WINAPI idoEntityGetStyle(LPENTITY, long);
  854. void          WINAPI idoEntitySetStyle(LPENTITY, BOOL, long);
  855.  
  856. // entity methods
  857. long          WINAPI idoEntityGetRelationInCount(LPENTITY);
  858. BOOL          WINAPI idoEntityIterateRelationInFirst(LPENTITY);
  859. BOOL          WINAPI idoEntityIterateRelationInNext(LPENTITY, LPRELATION);
  860. long          WINAPI idoEntityGetRelationOutCount(LPENTITY);
  861. BOOL          WINAPI idoEntityIterateRelationOutFirst(LPENTITY);
  862. BOOL          WINAPI idoEntityIterateRelationOutNext(LPENTITY, LPRELATION);
  863. BOOL          WINAPI idoEntityRepaint(LPENTITY);
  864. BOOL          WINAPI idoEntityIterateContainedEntityFirst(LPENTITY);
  865. BOOL          WINAPI idoEntityIterateContainedEntityNext(LPENTITY, LPENTITY);
  866. long          WINAPI idoEntityGetContainedEntityCount(LPENTITY);
  867. BOOL          WINAPI idoEntityAddEntityToContainer(LPENTITY, LPENTITY);
  868. BOOL          WINAPI idoEntityRemoveEntityFromContainer(LPENTITY, LPENTITY);
  869. long          WINAPI idoEntityUserID(LPENTITY);
  870. LPCSTR        WINAPI idoEntityUserName(LPENTITY);
  871. LPCSTR        WINAPI idoEntityClassName(LPENTITY);
  872. BOOL          WINAPI idoEntityBringIntoView(LPENTITY);
  873.  
  874.  
  875. // relation properties
  876. void          WINAPI idoRelationSetFont(LPRELATION, LPIDO_FONT);
  877. LPIDO_FONT    WINAPI idoRelationGetFont(LPRELATION);
  878. void          WINAPI idoRelationSetUserData(LPRELATION, LPVOID);
  879. LPVOID        WINAPI idoRelationGetUserData(LPRELATION);
  880. void          WINAPI idoRelationSetBackColor(LPRELATION, COLORREF);
  881. COLORREF      WINAPI idoRelationGetBackColor(LPRELATION);
  882. void          WINAPI idoRelationSetTextColor(LPRELATION, COLORREF);
  883. COLORREF      WINAPI idoRelationGetTextColor(LPRELATION);
  884. void          WINAPI idoRelationSetText(LPRELATION, LPCSTR);
  885. LPCSTR        WINAPI idoRelationGetText(LPRELATION);
  886. void          WINAPI idoRelationSetSourceArrow(LPRELATION, ARROWSTYLE);
  887. ARROWSTYLE    WINAPI idoRelationGetSourceArrow(LPRELATION);
  888. void          WINAPI idoRelationSetDestinationArrow(LPRELATION, ARROWSTYLE);
  889. ARROWSTYLE    WINAPI idoRelationGetDestinationArrow(LPRELATION);
  890. void          WINAPI idoRelationSetType(LPRELATION, LINESTYLE);
  891. LINESTYLE     WINAPI idoRelationGetType(LPRELATION);
  892. void          WINAPI idoRelationSetThickness(LPRELATION, long);
  893. long          WINAPI idoRelationGetThickness(LPRELATION);
  894. BOOL          WINAPI idoRelationGetReadOnly(LPRELATION);
  895. void          WINAPI idoRelationSetReadOnly(LPRELATION, BOOL);
  896. BOOL          WINAPI idoRelationGetCanDelete(LPRELATION);
  897. void          WINAPI idoRelationSetCanDelete(LPRELATION, BOOL);
  898. BOOL          WINAPI idoRelationGetCanMoveEndPoints(LPRELATION);
  899. void          WINAPI idoRelationSetCanMoveEndPoints(LPRELATION, BOOL);
  900. BOOL          WINAPI idoRelationGetCanMoveMidPoints(LPRELATION);
  901. void          WINAPI idoRelationSetCanMoveMidPoints(LPRELATION, BOOL);
  902. BOOL          WINAPI idoRelationGetStyle(LPRELATION, long);
  903. void          WINAPI idoRelationSetStyle(LPRELATION, BOOL, long);
  904.  
  905. // relation methods
  906. BOOL          WINAPI idoRelationSourceEntity(LPRELATION, LPENTITY);
  907. BOOL          WINAPI idoRelationDestinationEntity(LPRELATION, LPENTITY);
  908. BOOL          WINAPI idoRelationRepaint(LPRELATION);
  909. long          WINAPI idoRelationUserID(LPRELATION);
  910. LPCSTR        WINAPI idoRelationUserName(LPRELATION);
  911. LPCSTR        WINAPI idoRelationClassName(LPRELATION);
  912. BOOL          WINAPI idoRelationBringIntoView(LPRELATION);
  913.  
  914.  
  915. // rule methods
  916. LPCSTR        WINAPI idoRuleDestinationEntityClassName(LPIDO_RULE);
  917. LPCSTR        WINAPI idoRuleSourceEntityClassName(LPIDO_RULE);
  918. LPCSTR        WINAPI idoRuleRelationClassName(LPIDO_RULE);
  919.  
  920. #ifdef __cplusplus
  921. }
  922. #endif
  923.  
  924.  
  925. #endif // __PVIDO__H
  926.  
  927.  
  928.  
  929.