home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / GFX / Painting / XiPaint3.2-Aminet11.lzx / XiPaint / Developer / OutputLib / libraries / screenmode.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-10  |  6.1 KB  |  146 lines

  1. /*
  2.  * ScreenMode.h   enthält Deklarationen von Konstanten und Strukturen,
  3.  *                die von anderen Funktionen gebraucht werden.
  4.  *
  5.  * $Id: ScreenMode.h,v 1.2 1993/06/24 13:28:19 David_Göhler Exp David_Göhler $
  6.  */
  7.  
  8. #ifndef VILINTUISUP_SCREENMODE_H
  9. #define VILINTUISUP_SCREENMODE_H
  10.  
  11. #ifndef EXEC_NODES_H
  12. #include <exec/nodes.h>
  13. #endif
  14.  
  15. #ifndef UTILITY_TAGITEM_H
  16. #include <utility/tagitem.h>
  17. #endif
  18.  
  19. #define ZEICHENZAHL 40             /* Zeichenzahl des Listview-Gadgets  */
  20.  
  21. /*
  22.  * Struktur zur Verwaltung von ScreenModes in einem normalen Listview
  23.  * Da eine Exec-Node noch keine Speicherplatz für einen String enthält
  24.  * (sie hat nur einen Zeiger auf einen String, aber keine Platz dafür)
  25.  * muß man diesen der Node anfügen. Das gleiche gilt verständlicherweise
  26.  * für die DisplayID.
  27.  */
  28.  
  29. struct Zeile {                     /* Die Struktur heißt Zeile           */
  30.     struct Node Node;              /* Zur Verkettung untereinander       */
  31.     char        Text[ZEICHENZAHL]; /* ZEICHENZAHL Zeichen Platz          */
  32.     ULONG       DisplayID;         /* ScreenModus-Display-ID             */
  33.     UWORD       Width;             /* Breite dieses Modus                */
  34.     UWORD       Height;            /* Höhe dieses Modus                  */
  35.     UWORD       Depth;             /* Tiefe dieses Modus                 */
  36. };
  37.  
  38. /*
  39.  * Für das spezielle ScreenMode-Fenster der VilIntuiSup-Library kann
  40.  * man ein TagItem-Array angeben. Hierüber läßt sich eine Auswahl
  41.  * treffen, was für Texte ausgegeben werden und welche ScreenModes im
  42.  * Fenster erscheinen.
  43.  *
  44.  * Im Hilfstext sollten "\n" vorkommen, wenn er länger wird.
  45.  *
  46.  * Font- und Fenstereinstellungen (Größe, Auswahl) kann man momentan
  47.  * nicht treffen. Als Font wird der System-Default-Font verwendet.
  48.  * Das Fenster wird immer mittig auf dem sichtbaren Bildschirmteil
  49.  * des Default-Public-Screens geöffnet (wichtig bei Auto-Rollen-Screens).
  50.  * Die Breite des Fensters wird durch die Breite des breitesten
  51.  * Eintrags im gültigen Font errechnet. Die Höhe wird so gewählt, das
  52.  * höchstens 12 Zeilen im Listview zu sehen sind.
  53.  */
  54.  
  55. #define TAVIS_FIRSTITEM         TAG_USER + 4711 /* TAVIS = TagItemVilIntuiSup */
  56.  
  57. /****** Values for filtering alien modes *********************/
  58. #define TAVIS_MINDEPTH          TAVIS_FIRSTITEM +  0
  59. #define TAVIS_MAXDEPTH          TAVIS_FIRSTITEM +  1
  60. #define TAVIS_MINHEIGHT         TAVIS_FIRSTITEM +  2
  61. #define TAVIS_MAXHEIGHT         TAVIS_FIRSTITEM +  3
  62. #define TAVIS_MINWIDTH          TAVIS_FIRSTITEM +  4
  63. #define TAVIS_MAXWIDTH          TAVIS_FIRSTITEM +  5
  64.  
  65. /****** Values for string constants **************************/
  66. #define TAVIS_WINDOWTITLE       TAVIS_FIRSTITEM +  6
  67.  
  68. #define TAVIS_LISTVIEW          TAVIS_FIRSTITEM +  7
  69. #define TAVIS_OKGADGET          TAVIS_FIRSTITEM +  8
  70. #define TAVIS_CANCELGADGET      TAVIS_FIRSTITEM +  9
  71.  
  72. #define TAVIS_HELP_TEXT         TAVIS_FIRSTITEM +  10
  73. #define TAVIS_ABOUT_TEXT        TAVIS_FIRSTITEM +  11
  74. #define TAVIS_NOTICE_TEXT       TAVIS_FIRSTITEM +  12
  75. #define TAVIS_CHOOSE_TEXT       TAVIS_FIRSTITEM +  13
  76.  
  77. #define TAVIS_MENU_QUIT         TAVIS_FIRSTITEM +  14
  78. #define TAVIS_MENU_HELP         TAVIS_FIRSTITEM +  15
  79. #define TAVIS_MENU_ABOUT        TAVIS_FIRSTITEM +  16
  80. #define TAVIS_MENU_PROJECT      TAVIS_FIRSTITEM +  17
  81.  
  82. /****** Values for special functions *************************/
  83. #define TAVIS_CUSTOM_LIST       TAVIS_FIRSTITEM +  20
  84.  
  85. /*
  86.  * Der neuen Funktion VillageModeID kann man diverse
  87.  * TagItems übergeben. Die neuen IDs werden im folgenden
  88.  * definiert. Die bereits definierten TAVIS_MIN/MAX...-
  89.  * TagItems können auch bei VillageModeID verwendet werden.
  90.  *
  91.  * Nicht alle TagItems lassen sich mit allen anderen
  92.  * frei kombinieren. Im Zweifelsfall hat das zuerst genannte
  93.  * Tag Vorrang.
  94.  */
  95.  
  96. /****** Values for screen handling ***************************/
  97. #define TAVIS_SCREEN_HEIGHT     TAVIS_FIRSTITEM +  30
  98. #define TAVIS_SCREEN_WIDTH      TAVIS_FIRSTITEM +  31
  99. #define TAVIS_SCREEN_DEPTH      TAVIS_FIRSTITEM +  32
  100. #define TAVIS_SCREEN_MODEID     TAVIS_FIRSTITEM +  33
  101.  
  102. /* set this TRUE in conjunction with the above tags          */
  103. #define TAVIS_BEST_MODEID       TAVIS_FIRSTITEM +  34
  104.  
  105. /* to open a screen behind all others                        */
  106. #define TAVIS_OPEN_BEHIND       TAVIS_FIRSTITEM +  35
  107.  
  108. /* if you want autoscroll, set this to TRUE and
  109.  * suplly MODEID, DEPTH, HEIGHT and WIDTH                    */
  110. #define TAVIS_AUTOSCROLL        TAVIS_FIRSTITEM +  36
  111.  
  112. /* if it is ok to get a smaller screen than the desired one
  113.  * set ti_Data to TRUE, default ist TRUE.                    */
  114. #define TAVIS_ALLOW_FALLBACK    TAVIS_FIRSTITEM +  37
  115.  
  116. /* if you want to get additional memory on the board
  117.  * supply a pointer to a ULONG, where the desired size
  118.  * is written. After allocation, you will find an
  119.  * offset to the first adress of the screen you can get
  120.  * via LockVillageScreen in the ULONG. If the offset is
  121.  * zero, the allocation failed. The offset is only valid,
  122.  * if the screen is locked.                                  */
  123. #define TAVIS_ADDITIONAL_MEM    TAVIS_FIRSTITEM +  38
  124.  
  125. /* to here about errors, supply the address of a ULONG
  126.  * for #define's see below                                   */
  127. #define TAVIS_ERROR_CODE        TAVIS_FIRSTITEM +  39
  128.  
  129. /* if you want to get two screens, you can easily switch     */
  130. #define TAVIS_DOUBLE_BUFFER     TAVIS_FIRSTITEM +  40
  131.  
  132. /* to supply an old style struct Dimensions structure
  133.  * ti_Data should be a pointer to the structure              */
  134. #define TAVIS_DM_STRUCT         TAVIS_FIRSTITEM +  41
  135.  
  136. /****** Error Codes for TAVIS_ERROR_CODE *********************/
  137. #define TAVIS_ERR_OK                    0  /* all O.K.                        */
  138. #define TAVIS_ERR_NOMEM                 1  /* not enough memory for screen    */
  139. #define TAVIS_ERR_MODE_NOT_AVAILABLE    2  /* Mode with ModeID not present    */
  140. #define TAVIS_ERR_DIM_TOO_BIG           3  /* dimensions are too big          */
  141. #define TAVIS_ERR_DIM_TOO_DEPTH         4  /* color depth is too big          */
  142. #define TAVIS_ERR_DOUBLE_BUF_TOO_BIG    5  /* not enough memory for doublebuf */
  143. #define TAVIS_ERR_CANT_OPEN_SCREEN      6  /* original OpenScreen failed      */
  144.  
  145. #endif /* VILINTUISUP_SCREENMODE_H */
  146.