home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / emxtutor.zip / emxsrcd1.zip / emx / src / emxdoc / lb.h < prev    next >
C/C++ Source or Header  |  1995-09-26  |  2KB  |  68 lines

  1. /* lb.h -- Line breaking
  2.    Copyright (c) 1993-1995 Eberhard Mattes
  3.  
  4. This file is part of emxdoc.
  5.  
  6. emxdoc is free software; you can redistribute it and/or modify it
  7. under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 2, or (at your option)
  9. any later version.
  10.  
  11. emxdoc is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with emxdoc; see the file COPYING.  If not, write to
  18. the Free Software Foundation, 59 Temple Place - Suite 330,
  19. Boston, MA 02111-1307, USA.  */
  20.  
  21.  
  22. #define LB_NOMEM        1
  23. #define LB_INVAL        2
  24. #define LB_INTERN       3
  25.  
  26. #define LBN_WORD        1
  27. #define LBN_PRE         2
  28. #define LBN_POST        3
  29. #define LBN_GLUE        4
  30. #define LBN_NEWLINE     5
  31. #define LBN_END         6
  32.  
  33. #define LB_INFINITY             10000
  34. #define LB_SQRT_INFINITY        100
  35.  
  36. #define LB_HYPHEN       '*'
  37.  
  38. struct lb;
  39. struct lbh;
  40.  
  41. struct lb_node
  42. {
  43.   int type;
  44.   int value;
  45.   const char *word;
  46.   const void *info;
  47. };
  48.  
  49. int lb_init (struct lb **pp, int lmargin, int rmargin);
  50. int lb_exit (struct lb **p);
  51. int lb_first_lmargin (struct lb *p, int margin);
  52. int lb_first_rmargin (struct lb *p, int margin);
  53. int lb_penalty (struct lb *p, int penalty);
  54. int lb_word (struct lb *p, int width, const char *word, const void *info);
  55. int lb_discr (struct lb *p, int width_word, const char *word,
  56.     int width_pre, const char *pre, int width_post, const char *post,
  57.     const void *info);
  58. int lb_hyphen (struct lb *p, int width, const void *info);
  59. int lb_glue (struct lb *p, int width, const void *info);
  60. int lb_format (struct lb *p);
  61. int lb_next (struct lb *p, struct lb_node *dst);
  62.  
  63. int lb_use_hyphenation (struct lb *p, const struct lbh *h);
  64.  
  65. int lbh_init (struct lbh **pp);
  66. int lbh_word (struct lbh *p, const char *s);
  67. int lbh_exit (struct lbh **pp);
  68.