home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / x / volume10 / xt-examples / part03 / LabelP.h < prev    next >
C/C++ Source or Header  |  1990-11-04  |  3KB  |  88 lines

  1. /***********************************************************
  2. Copyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  3.  
  4.                         All Rights Reserved
  5.  
  6. Permission to use, copy, modify, and distribute these examples for any
  7. purpose and without fee is hereby granted, provided that the above
  8. copyright notice appear in all copies and that both that copyright
  9. notice and this permission notice appear in supporting documentation,
  10. and that the name of Digital not be used in advertising or publicity
  11. pertaining to distribution of the software without specific, written
  12. prior permission.
  13.  
  14. DIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  15. SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  16. FITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  17. OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  18. OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  19. OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  20. OR PERFORMANCE OF THIS SOFTWARE.
  21.  
  22. ******************************************************************/
  23.  
  24. /* Make it safe to include this file more than once. */
  25. #ifndef LABELP_H
  26. #define LABELP_H
  27.  
  28. /* Include the public header file for Label */
  29. #include "Label.h"
  30.  
  31. /* Label is derived from Core, so no need to include the superclass
  32.    private header file.  No internal types need to be defined. */
  33.  
  34. /* Define the Label instance part */
  35. typedef struct {
  36.   /* New resource fields */
  37.     String       label;        /* Text to display */
  38.     Pixel       foreground;        /* Foreground pixel value */
  39.     XFontStruct       *font;        /* Font to display in */
  40.     Justify       justify;        /* The justification value */
  41.     Dimension       space;        /* Inner padding value */
  42.     XtCallbackList lose_selection;  /* Notify app. of lost selection */
  43.  
  44.   /* New internal fields */
  45.     GC        gc;        /* Graphics context for displaying */
  46.     Dimension    label_width;    /* The calculated width */
  47.     Dimension    label_height;    /* The calculated height */
  48.     Cardinal    label_len;    /* The length of the text string */
  49.     Boolean    size_computed;    /* Whether the size was computed */
  50.     Dimension    desired_width;    /* The width the widget wants to be */
  51.     Dimension    desired_height;    /* The height the widget wants to be */
  52.     String    accel_string;    /* Accelerator string */
  53.     GC        current_gc;    /* GC we are currently using */
  54. } LabelPart;
  55.  
  56. /* Define the full instance record */
  57. typedef struct _LabelRec {
  58.     CorePart    core;
  59.     LabelPart    label;
  60. } LabelRec;
  61.  
  62. /* Define new type for the class method */
  63. typedef Boolean (*LabelSelectionProc)();
  64.     /* Widget    w;         */
  65.     /* Atom    selection;    */
  66.     /* Boolean  own;        */
  67.  
  68. /* Define class part structure */
  69. typedef struct {
  70.     LabelSelectionProc    select;
  71.     XtPointer        extension;
  72. } LabelClassPart;
  73.  
  74. /* Define the full class record */
  75. typedef struct _LabelClassRec {
  76.     CoreClassPart    core_class;
  77.     LabelClassPart    label_class;
  78. } LabelClassRec, *LabelWidgetClass;
  79.  
  80. /* External definition for class record */
  81. extern LabelClassRec labelClassRec;
  82.  
  83. /* Inheritance constant for select_text method */
  84. #define InheritSelectText ((LabelSelectionProc) _XtInherit)
  85.  
  86. /* End of preprocessor directives */
  87. #endif /* LABELP_H */
  88.