Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
2.4 KiB

  1. #ifndef DISPUL_DEFINED
  2. #define DISPUL_DEFINED
  3. #include "lsdefs.h"
  4. #include "dispi.h"
  5. #include "plsdnode.h"
  6. /* all we need to remember about a merge is in this structure - enough to draw UL */
  7. /* in case of bad metrics, only first three are filled. */
  8. typedef struct {
  9. UINT kul; /* kind of UL-line, simple, wavy, etc, opaque to LS */
  10. DWORD cNumberOfLines; /* number of lines in UL: possible values 1,2 */
  11. long vpUnderlineOrigin; /* UnderlineOrigin position */
  12. long dvpFirstUnderlineOffset; /* from UnderlineOrigin position */
  13. long dvpFirstUnderlineSize;
  14. long dvpGapBetweenLines;
  15. long dvpSecondUnderlineSize;
  16. } LSULMETRIC;
  17. /* all we need to remember - enough to draw SS */
  18. typedef struct {
  19. UINT kul; /* kind of SS-line, same as UL-types */
  20. DWORD cNumberOfLines; /* number of lines in SS: possible values 1,2 */
  21. long dvp1stSSSize; /* SS line width */
  22. long dvp1stSSOffset; /* position relative to the baseline, filled page direction (normally > 0) */
  23. long dvp2ndSSSize; /* 1stSS is common for single and double SS, save space */
  24. long dvp2ndSSOffset; /* normally dvp1stSSOffset < dvp2ndSSOffset */
  25. } LSSTRIKEMETRIC;
  26. LSERR GetUnderlineMergeMetric(
  27. PLSC,
  28. PLSDNODE, /* dnode to start UL merging */
  29. POINTUV, /* starting pen point (u,v) */
  30. long, /* upLimUnderline */
  31. LSTFLOW,
  32. LSCP, /* cpLimBreak */
  33. LSULMETRIC*, /* merge metrics */
  34. int*, /* nodes to display in the merge */
  35. BOOL*); /* good metrics? */
  36. LSERR DrawUnderlineMerge(
  37. PLSC,
  38. PLSDNODE, /* dnode to start underlining */
  39. const POINT*, /* pptOrg (x,y) */
  40. int, /* nodes to display in the merge */
  41. long, /* upStartUnderline */
  42. BOOL, /* good metrics? */
  43. const LSULMETRIC*, /* merge metrics */
  44. UINT, /* kDisp : transparent or opaque */
  45. const RECT*, /* &rcClip: clipping rect (x,y) */
  46. long, /* upLimUnderline */
  47. LSTFLOW);
  48. LSERR GetStrikeMetric(
  49. PLSC,
  50. PLSDNODE, /* dnode to strike */
  51. LSTFLOW,
  52. LSSTRIKEMETRIC*, /* strike metrics */
  53. BOOL*); /* good metrics? */
  54. LSERR StrikeDnode(PLSC,
  55. PLSDNODE, /* dnode to start underlining */
  56. const POINT*, /* pptOrg (x,y) */
  57. POINTUV, /* starting pen point (u,v) */
  58. const LSSTRIKEMETRIC*, /* merge metrics */
  59. UINT, /* kDisp : transparent or opaque */
  60. const RECT*, /* &rcClip: clipping rect (x,y) */
  61. long, /* upLimUnderline */
  62. LSTFLOW);
  63. #endif /* ndef DISPUL_DEFINED */