home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c034 / 7.ddi / INCLUDE / PMMLE.H$ / PMMLE.bin
Encoding:
Text File  |  1989-11-02  |  8.6 KB  |  233 lines

  1. /***************************************************************************\
  2. *
  3. * Module Name: PMMLE.H
  4. *
  5. * OS/2 Presentation Manager MultiLine Edit Control - Version 1.0
  6. *
  7. * Copyright (c) 1989-1990, Microsoft Corporation.  All rights reserved.
  8. *
  9. \***************************************************************************/
  10.  
  11. /***************************************************************************\
  12. * MLE Class and dialog code
  13. \***************************************************************************/
  14. /* in pmwin.h */
  15.  
  16. #define PMMLE_INCLUDED
  17.  
  18. /***************************************************************************\
  19. * MLE Window styles ( in addition to WS_* )
  20. \***************************************************************************/
  21. #define MLS_WORDWRAP        0x00000001L
  22. #define MLS_BORDER        0x00000002L
  23. #define MLS_VSCROLL        0x00000004L
  24. #define MLS_HSCROLL        0x00000008L
  25. #define MLS_READONLY        0x00000010L
  26. #define MLS_IGNORETAB        0x00000020L
  27.  
  28. /***************************************************************************\
  29. * MLE External Data Types
  30. \***************************************************************************/
  31. typedef LONG  IPT;    /* insertion point            */
  32. typedef PLONG PIPT;    /* insertion point            */
  33. typedef LONG  PIX;    /* pixel                */
  34. typedef ULONG LINE;    /* Line number                */
  35.  
  36. typedef struct _MLEFORMATRECT {  /* MLEFRD format rectangle data    */
  37.     LONG cxFormat;         /* format rectangle width        */
  38.     LONG cyFormat;         /* format rectangle height        */
  39. } MLEFORMATRECT;
  40. typedef MLEFORMATRECT FAR *PFORMATRECT;
  41.  
  42. typedef struct _MLECTLDATA { /* MLECTL control data            */
  43.     USHORT    cbCtlData;    /* Length of the MLECTLDATA structure    */
  44.     USHORT    afIEFormat;    /* import/export format         */
  45.     ULONG    cchText;    /* text limit                */
  46.     IPT    iptAnchor;    /* beginning of selection        */
  47.     IPT    iptCursor;    /* ending of selection            */
  48.     LONG    cxFormat;    /* format rectangle width        */
  49.     LONG    cyFormat;    /* format rectangle height        */
  50.     ULONG    afFormatFlags;    /* formatting rectangle flags        */
  51. } MLECTLDATA;
  52. typedef MLECTLDATA FAR *PMLECTLDATA;
  53.  
  54. /***************************************************************************\
  55. * afFormatFlags mask
  56. \***************************************************************************/
  57. #define MLFFMTRECT_LIMITHORZ    0x00000001L
  58. #define MLFFMTRECT_LIMITVERT    0x00000002L
  59. #define MLFFMTRECT_MATCHWINDOW    0x00000004L
  60. #define MLFFMTRECT_FORMATRECT    0x00000007L
  61. /***************************************************************************\
  62. * afIEFormat - Import/Export Format flags
  63. \***************************************************************************/
  64. #define MLFIE_CFTEXT        0
  65. #define MLFIE_NOTRANS        1
  66. #define MLFIE_WINFMT        2
  67. #define MLFIE_RTF        3
  68.  
  69. /***************************************************************************\
  70. * MLN_OVERFLOW structure
  71. \***************************************************************************/
  72. typedef struct _MLEOVERFLOW { /* MLEOVR overflow structure            */
  73.     ULONG afErrInd;     /* see mask below                */
  74.     LONG nBytesOver;    /* number of bytes overflowed            */
  75.     LONG pixHorzOver;    /* number of pixels horizontally overflowed */
  76.     LONG pixVertOver;    /* number of pixels vertically overflowed   */
  77. }  MLEOVERFLOW;
  78. typedef MLEOVERFLOW FAR *POVERFLOW;
  79.  
  80. /***************************************************************************\
  81. * afErrInd - error format rectangle flags
  82. \***************************************************************************/
  83. #define MLFEFR_RESIZE        0x00000001L
  84. #define MLFEFR_TABSTOP        0x00000002L
  85. #define MLFEFR_FONT        0x00000004L
  86. #define MLFEFR_TEXT        0x00000008L
  87. #define MLFEFR_WORDWRAP     0x00000010L
  88. #define MLFETL_TEXTBYTES    0x00000020L
  89.  
  90. /*************************************************************************\
  91. * MLN_MARGIN structure
  92. \*************************************************************************/
  93. typedef struct _MLEMARGSTRUCT { /* MLEMRG margin structure         */
  94.     USHORT afMargins;    /* margin indicator             */
  95.     USHORT usMouMsg;    /* mouse message             */
  96.     IPT    iptNear;     /* geometrically nearest insertion point */
  97. } MLEMARGSTRUCT;
  98. typedef MLEMARGSTRUCT FAR *PMARGSTRUCT;
  99.  
  100. /***************************************************************************\
  101. * afFlags - margin notification indicators
  102. \***************************************************************************/
  103. #define MLFMARGIN_LEFT        0x0001
  104. #define MLFMARGIN_BOTTOM    0x0002
  105. #define MLFMARGIN_RIGHT     0x0003
  106. #define MLFMARGIN_TOP        0x0004
  107.  
  108. /***************************************************************************\
  109. * MLM_QUERYSELECTION flags
  110. \***************************************************************************/
  111. #define MLFQS_MINMAXSEL     0
  112. #define MLFQS_MINSEL        1
  113. #define MLFQS_MAXSEL        2
  114. #define MLFQS_ANCHORSEL     3
  115. #define MLFQS_CURSORSEL     4
  116.  
  117. /***************************************************************************\
  118. * MLN_CLPBDFAIL flags
  119. \***************************************************************************/
  120. #define MLFCLPBD_TOOMUCHTEXT    0x00000001L
  121. #define MLFCLPBD_ERROR        0x00000002L
  122.  
  123. /***************************************************************************\
  124. * MLM_SEARCH structure
  125. \***************************************************************************/
  126. typedef struct _MLE_SEARCHDATA { /* mlesrch */
  127.     USHORT cb;        /* size of search spec structure    */
  128.     PCHAR  pchFind;     /* string to search for         */
  129.     PCHAR  pchReplace;    /* string to replace with        */
  130.     SHORT  cchFind;     /* length of pchFindString        */
  131.     SHORT  cchReplace;    /* length of replace string        */
  132.     IPT    iptStart;    /* point at which to start search    */
  133.                 /* (negative indicates cursor pt)    */
  134.                 /* becomes pt where string found    */
  135.     IPT    iptStop;     /* point at which to stop search    */
  136.                 /* (negative indicates EOT)        */
  137.     USHORT cchFound;    /* Length of found string at iptStart    */
  138. } MLE_SEARCHDATA;
  139. typedef MLE_SEARCHDATA FAR *PMLE_SEARCHDATA;
  140.  
  141. /***************************************************************************\
  142. * MLM_SEARCH style flags
  143. \***************************************************************************/
  144. #define MLFSEARCH_CASESENSITIVE     0x00000001L
  145. #define MLFSEARCH_SELECTMATCH        0x00000002L
  146. #define MLFSEARCH_CHANGEALL        0x00000004L
  147.  
  148. /***************************************************************************\
  149. * MLE messages - MLM from 0x01b0 to 0x01de; MLN from 0x0001 to 0x000f
  150. \***************************************************************************/
  151. /* formatting messages */
  152. #define MLM_SETTEXTLIMIT    0x01b0
  153. #define MLM_QUERYTEXTLIMIT    0x01b1
  154. #define MLM_SETFORMATRECT    0x01b2
  155. #define MLM_QUERYFORMATRECT    0x01b3
  156. #define MLM_SETWRAP        0x01b4
  157. #define MLM_QUERYWRAP        0x01b5
  158. #define MLM_SETTABSTOP        0x01b6
  159. #define MLM_QUERYTABSTOP    0x01b7
  160. #define MLM_SETREADONLY     0x01b8
  161. #define MLM_QUERYREADONLY    0x01b9
  162.  
  163. /* text content manipulation and queries messages */
  164. #define MLM_QUERYCHANGED    0x01ba
  165. #define MLM_SETCHANGED        0x01bb
  166. #define MLM_QUERYLINECOUNT    0x01bc
  167. #define MLM_CHARFROMLINE    0x01bd
  168. #define MLM_LINEFROMCHAR    0x01be
  169. #define MLM_QUERYLINELENGTH    0x01bf
  170. #define MLM_QUERYTEXTLENGTH    0x01c0
  171.  
  172. /* text import and export messages */
  173. #define MLM_FORMAT            0x01c1
  174. #define MLM_SETIMPORTEXPORT        0x01c2
  175. #define MLM_IMPORT            0x01c3
  176. #define MLM_EXPORT            0x01c4
  177. #define MLM_DELETE            0x01c6
  178. #define MLM_QUERYFORMATLINELENGTH    0x01c7
  179. #define MLM_QUERYFORMATTEXTLENGTH    0x01c8
  180. #define MLM_INSERT            0x01c9
  181.  
  182. /* selection messages */
  183. #define MLM_SETSEL            0x01ca
  184. #define MLM_QUERYSEL            0x01cb
  185. #define MLM_QUERYSELTEXT        0x01cc
  186.  
  187. /* undo and redo messages */
  188. #define MLM_QUERYUNDO            0x01cd
  189. #define MLM_UNDO            0x01ce
  190. #define MLM_RESETUNDO            0x01cf
  191.  
  192. /* text attributes messages */
  193. #define MLM_QUERYFONT            0x01d0
  194. #define MLM_SETFONT            0x01d1
  195. #define MLM_SETTEXTCOLOR        0x01d2
  196. #define MLM_QUERYTEXTCOLOR        0x01d3
  197. #define MLM_SETBACKCOLOR        0x01d4
  198. #define MLM_QUERYBACKCOLOR        0x01d5
  199.  
  200. /* scrolling messages */
  201. #define MLM_QUERYFIRSTCHAR        0x01d6
  202. #define MLM_SETFIRSTCHAR        0x01d7
  203.  
  204. /* clipboard messages */
  205. #define MLM_CUT             0x01d8
  206. #define MLM_COPY            0x01d9
  207. #define MLM_PASTE            0x01da
  208. #define MLM_CLEAR            0x01db
  209.  
  210. /* display manipulation messages */
  211. #define MLM_ENABLEREFRESH        0x01dc
  212. #define MLM_DISABLEREFRESH        0x01dd
  213.  
  214. /* search message */
  215. #define MLM_SEARCH            0x01de
  216. #define MLM_QUERYIMPORTEXPORT        0x01df
  217.  
  218. /* notification messages */
  219. #define MLN_OVERFLOW            0x0001
  220. #define MLN_PIXHORZOVERFLOW        0x0002
  221. #define MLN_PIXVERTOVERFLOW        0x0003
  222. #define MLN_TEXTOVERFLOW        0x0004
  223. #define MLN_VSCROLL            0x0005
  224. #define MLN_HSCROLL            0x0006
  225. #define MLN_CHANGE            0x0007
  226. #define MLN_SETFOCUS            0x0008
  227. #define MLN_KILLFOCUS            0x0009
  228. #define MLN_MARGIN            0x000a
  229. #define MLN_SEARCHPAUSE         0x000b
  230. #define MLN_MEMERROR            0x000c
  231. #define MLN_UNDOOVERFLOW        0x000d
  232. #define MLN_CLPBDFAIL            0x000f
  233.