home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD2.bin / bbs / game / arachnid-1.1.lha / Arachnid / Window.c < prev   
C/C++ Source or Header  |  1993-12-27  |  4KB  |  126 lines

  1. #include <graphics/displayinfo.h>
  2. #include <functions.h>
  3.  
  4. struct Screen *Scr   = NULL;
  5. APTR   VisualInfo    = NULL;
  6. struct Window *Wnd   = NULL;
  7. struct Menu   *Menus = NULL;
  8.  
  9. struct TextAttr topaz8 = {(STRPTR)"topaz.font", 8, 0x00, 0x41};
  10.  
  11. struct NewMenu NewMenu[] = {
  12.         NM_TITLE, (STRPTR)"Game",     NULL, 0, 0, NULL,
  13.         NM_ITEM,  (STRPTR)"New",     (STRPTR)"N", 0, 0, NULL,
  14.         NM_ITEM,  (STRPTR)"Load",    (STRPTR)"L", 0, 0, NULL,
  15.         NM_ITEM,  (STRPTR)"Save as", (STRPTR)"A", 0, 0, NULL,
  16.         NM_ITEM,  (STRPTR)"Save",    (STRPTR)"S", 0, 0, NULL,
  17.         NM_ITEM,  (STRPTR)NM_BARLABEL, NULL, 0, 0, NULL,
  18.         NM_ITEM,  (STRPTR)"Quit",    (STRPTR)"Q", 0, 0, NULL,
  19.         NM_TITLE, (STRPTR)"Move",     NULL, 0, 0, NULL,
  20.         NM_ITEM,  (STRPTR)"Undo",    (STRPTR)"U", NM_ITEMDISABLED, 0, NULL,
  21.         NM_ITEM,  (STRPTR)"Replay",  (STRPTR)"R", 0, 0, NULL,
  22.         NM_ITEM,  (STRPTR)NM_BARLABEL, NULL, 0, 0, NULL,
  23.         NM_ITEM,  (STRPTR)"Deal Row",  NULL, 0, 0, NULL,
  24.         NM_TITLE, (STRPTR)"Cards",     NULL, 0, 0, NULL,
  25.         NM_ITEM,  (STRPTR)"Display Column", (STRPTR)"D", 0, 0, NULL,
  26.         NM_ITEM,  (STRPTR)"Locate Card", (STRPTR)"O", 0, 0, NULL,
  27.         NM_ITEM,  (STRPTR)NM_BARLABEL, NULL, 0, 0, NULL,
  28.         NM_ITEM,  (STRPTR)"Hide Deal and Discard", NULL, CHECKIT|MENUTOGGLE, 0, NULL,
  29.         NM_ITEM,  (STRPTR)"  Cheat Level", NULL, 0, 0, NULL,
  30.         NM_SUB,   (STRPTR)"none",     NULL, CHECKIT|CHECKED, 6, NULL,
  31.         NM_SUB,   (STRPTR)"invisible", NULL, CHECKIT, 5, NULL,
  32.         NM_SUB,   (STRPTR)"full",     NULL, CHECKIT, 3, NULL,
  33.         NM_ITEM,  (STRPTR)"Verbose",  NULL, CHECKED|CHECKIT|MENUTOGGLE, 0, NULL,
  34.         NM_ITEM,  (STRPTR)"Visual Dragging", NULL, CHECKIT|MENUTOGGLE, 0, NULL,
  35.         NM_TITLE, (STRPTR)"Help",     NULL, 0, 0, NULL,
  36.         NM_ITEM,  (STRPTR)"About",    (STRPTR)"I", 0, 0, NULL,
  37.         NM_ITEM,  (STRPTR)"Help",     (STRPTR)"H", 0, 0, NULL,
  38.         NM_END, NULL, NULL, 0, 0, NULL };
  39.  
  40. struct ColorSpec ScreenColors[] = {
  41.          0, 0x01, 0x0C, 0x04,  /* grün       */
  42.          1, 0x00, 0x00, 0x00,  /* schwarz    */
  43.          2, 0x0D, 0x0D, 0x0D,  /* n.c.(fast) */
  44.          3, 0x0F, 0x0F, 0x0F,  /* weiß       */
  45.          4, 0x0E, 0x02, 0x01,  /* rot        */
  46.          5, 0x0A, 0x08, 0x04,  /* gelb/braun */
  47.          6, 0x08, 0x06, 0x04,  /* n.c.       */
  48.          7, 0x09, 0x04, 0x00,  /* n.c.       */
  49.         ~0, 0x00, 0x00, 0x00 };
  50.  
  51. UWORD DriPens[] = {~0};
  52.  
  53. long SetupScreen(void)
  54. {
  55.   if(!(Scr = OpenScreenTags(NULL, SA_Left,      0,
  56.                                   SA_Top,       0,
  57.                                   SA_Width,     640,
  58.                                   SA_Height,    512,
  59.                                   SA_Depth,     3,
  60.                                   SA_Colors,   &ScreenColors[0],
  61.                                   SA_Type,      CUSTOMSCREEN,
  62.                                   SA_DisplayID, PAL_MONITOR_ID|HIRESLACE_KEY,
  63.                                   SA_Pens,     &DriPens[0],
  64.                                   SA_Title,     "Arachnid",
  65.                                   TAG_DONE)))
  66.     return(5);
  67.  
  68.   if(!(VisualInfo = GetVisualInfo(Scr, TAG_DONE))) return(6);
  69.  
  70.   return(0);
  71. }
  72.  
  73. void CloseDownScreen(void)
  74. {
  75.   if(VisualInfo)
  76.   {
  77.     FreeVisualInfo(VisualInfo);
  78.     VisualInfo = NULL;
  79.   }
  80.  
  81.   if(Scr)
  82.   {
  83.     CloseScreen(Scr);
  84.     Scr = NULL;
  85.   }
  86. }
  87.  
  88. long OpenWin(void)
  89. {
  90.   if(!(Menus = CreateMenus(NewMenu, GTMN_FrontPen, 0, TAG_DONE)))
  91.     return(8);
  92.  
  93.   LayoutMenus(Menus, VisualInfo, GTMN_TextAttr, &topaz8, TAG_DONE);
  94.  
  95.   if(!(Wnd = OpenWindowTags( NULL,
  96.              WA_IDCMP,        IDCMP_MOUSEBUTTONS|IDCMP_MENUPICK|IDCMP_VANILLAKEY|IDCMP_RAWKEY,
  97.              WA_Flags,        WFLG_SMART_REFRESH|WFLG_BORDERLESS|WFLG_REPORTMOUSE|WFLG_ACTIVATE,
  98.              WA_Title,        NULL,
  99.              WA_ScreenTitle,  "Arachnid",
  100.              WA_CustomScreen, Scr,
  101.              WA_AutoAdjust,   TRUE,
  102.              TAG_DONE )))
  103.     return(7);
  104.  
  105.   SetMenuStrip(Wnd, Menus);
  106.   GT_RefreshWindow(Wnd, NULL);
  107.  
  108.   return(0);
  109. }
  110.  
  111. void CloseWin(void)
  112. {
  113.   if(Menus)
  114.   {
  115.     ClearMenuStrip(Wnd);
  116.     FreeMenus(Menus);
  117.     Menus = NULL;
  118.   }
  119.  
  120.   if(Wnd)
  121.   {
  122.     CloseWindow(Wnd);
  123.     Wnd = NULL;
  124.   }
  125. }
  126.