home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / database / cdmusic.zip / CDMCRT.CPP < prev    next >
C/C++ Source or Header  |  1993-06-15  |  10KB  |  233 lines

  1. #include "cdmusic.h"
  2. #include "cdmcrt.h"
  3.  
  4. extern char artist[ 80 ];
  5. extern char title[ 80 ];
  6. extern REQUIREDFIELDARRAY TR_TrackRecord[],
  7.               DR_DiscRecord[];
  8. extern TRACKFIELDARRAY TR_TrackArray[ 99 ];
  9.  
  10. #if defined(UseMouse)
  11.   char MouseChar = 4;
  12. #endif
  13.  
  14. //Color set used by entry screen
  15. ColorSet cdColors = {
  16.   /* TextColor */        WhiteOnBlue,     /* TextMono */         WhiteOnBlack,
  17.   /* CtrlColor */        YellowOnBlue,    /* CtrlMono */         WhiteOnBlack,
  18.   /* FrameColor */       CyanOnBlue,      /* FrameMono */        LtGrayOnBlack,
  19.   /* HeaderColor */      WhiteOnCyan,     /* HeaderMono */       BlackOnLtGray,
  20.   /* ShadowColor */      DkGrayOnBlack,   /* ShadowMono */       WhiteOnBlack,
  21.   /* HighlightColor */   WhiteOnRed,      /* HighlightMono */    BlackOnLtGray,
  22.   /* PromptColor */      LtGrayOnBlue,    /* PromptMono */       LtGrayOnBlack,
  23.   /* SelPromptColor */   LtGrayOnBlue,    /* SelPromptMono */    LtGrayOnBlack,
  24.   /* ProPromptColor */   LtGrayOnBlue,    /* ProPromptMono */    LtGrayOnBlack,
  25.   /* FieldColor */       YellowOnBlue,    /* FieldMono */        LtGrayOnBlack,
  26.   /* SelFieldColor */    BlueOnCyan,      /* SelFieldMono */     WhiteOnBlack,
  27.   /* ProFieldColor */    LtGrayOnBlue,    /* ProFieldMono */     LtGrayOnBlack,
  28.   /* ScrollBarColor */   CyanOnBlue,      /* ScrollBarMono */    LtGrayOnBlack,
  29.   /* SliderColor */      CyanOnBlue,      /* SliderMono */       WhiteOnBlack,
  30.   /* HotSpotColor */     BlackOnCyan,     /* HotSpotMono */      BlackOnLtGray,
  31.   /* BlockColor */       YellowOnCyan,    /* BlockMono */        WhiteOnBlack,
  32.   /* MarkerColor */      WhiteOnCyan,     /* MarkerMono */       BlackOnLtGray,
  33.   /* DelimColor */       YellowOnBlue,    /* DelimMono */        WhiteOnBlack,
  34.   /* SelDelimColor */    BlueOnCyan,      /* SelDelimMono */     WhiteOnBlack,
  35.   /* ProDelimColor */    YellowOnBlue,    /* ProDelimMono */     WhiteOnBlack,
  36.   /* SelItemColor */     YellowOnCyan,    /* SelItemMono */      BlackOnLtGray,
  37.   /* ProItemColor */     LtGrayOnBlue,    /* ProItemMono */      LtGrayOnBlack,
  38.   /* HighItemColor */    WhiteOnBlue,     /* HighItemMono */     WhiteOnBlack,
  39.   /* AltItemColor */     WhiteOnBlue,     /* AltItemMono */      WhiteOnBlack,
  40.   /* AltSelItemColor */  WhiteOnCyan,     /* AltSelItemMono */   BlackOnLtGray,
  41.   /* FlexAHelpColor */   WhiteOnBlue,     /* FlexAHelpMono */    WhiteOnBlack,
  42.   /* FlexBHelpColor */   WhiteOnBlue,     /* FlexBHelpMono */    WhiteOnBlack,
  43.   /* FlexCHelpColor */   LtCyanOnBlue,    /* FlexCHelpMono */    BlackOnLtGray,
  44.   /* UnselXrefColor */   YellowOnBlue,    /* UnselXrefMono */    LtBlueOnBlack,
  45.   /* SelXrefColor */     WhiteOnCyan,     /* SelXrefMono */      BlackOnLtGray,
  46.   /* MouseColor */       WhiteOnRed,      /* MouseMono */        BlackOnLtGray
  47. };
  48.  
  49.  
  50. //Color set used by entry screen
  51. ColorSet EsColors = {
  52.   /* TextColor */        YellowOnBlue,    /* TextMono */         WhiteOnBlack,
  53.   /* CtrlColor */        YellowOnBlue,    /* CtrlMono */         WhiteOnBlack,
  54.   /* FrameColor */       CyanOnBlue,      /* FrameMono */        LtGrayOnBlack,
  55.   /* HeaderColor */      WhiteOnCyan,     /* HeaderMono */       BlackOnLtGray,
  56.   /* ShadowColor */      DkGrayOnBlack,   /* ShadowMono */       WhiteOnBlack,
  57.   /* HighlightColor */   WhiteOnRed,      /* HighlightMono */    BlackOnLtGray,
  58.   /* PromptColor */      LtGrayOnBlue,    /* PromptMono */       LtGrayOnBlack,
  59.   /* SelPromptColor */   LtGrayOnBlue,    /* SelPromptMono */    LtGrayOnBlack,
  60.   /* ProPromptColor */   LtGrayOnBlue,    /* ProPromptMono */    LtGrayOnBlack,
  61.   /* FieldColor */       YellowOnBlue,    /* FieldMono */        LtGrayOnBlack,
  62.   /* SelFieldColor */    BlueOnCyan,      /* SelFieldMono */     WhiteOnBlack,
  63.   /* ProFieldColor */    LtGrayOnBlue,    /* ProFieldMono */     LtGrayOnBlack,
  64.   /* ScrollBarColor */   CyanOnBlue,      /* ScrollBarMono */    LtGrayOnBlack,
  65.   /* SliderColor */      CyanOnBlue,      /* SliderMono */       WhiteOnBlack,
  66.   /* HotSpotColor */     BlackOnCyan,     /* HotSpotMono */      BlackOnLtGray,
  67.   /* BlockColor */       YellowOnCyan,    /* BlockMono */        WhiteOnBlack,
  68.   /* MarkerColor */      WhiteOnCyan,     /* MarkerMono */       BlackOnLtGray,
  69.   /* DelimColor */       YellowOnBlue,    /* DelimMono */        WhiteOnBlack,
  70.   /* SelDelimColor */    BlueOnCyan,      /* SelDelimMono */     WhiteOnBlack,
  71.   /* ProDelimColor */    YellowOnBlue,    /* ProDelimMono */     WhiteOnBlack,
  72.   /* SelItemColor */     YellowOnCyan,    /* SelItemMono */      BlackOnLtGray,
  73.   /* ProItemColor */     LtGrayOnBlue,    /* ProItemMono */      LtGrayOnBlack,
  74.   /* HighItemColor */    WhiteOnBlue,     /* HighItemMono */     WhiteOnBlack,
  75.   /* AltItemColor */     WhiteOnBlue,     /* AltItemMono */      WhiteOnBlack,
  76.   /* AltSelItemColor */  WhiteOnCyan,     /* AltSelItemMono */   BlackOnLtGray,
  77.   /* FlexAHelpColor */   WhiteOnBlue,     /* FlexAHelpMono */    WhiteOnBlack,
  78.   /* FlexBHelpColor */   WhiteOnBlue,     /* FlexBHelpMono */    WhiteOnBlack,
  79.   /* FlexCHelpColor */   LtCyanOnBlue,    /* FlexCHelpMono */    BlackOnLtGray,
  80.   /* UnselXrefColor */   YellowOnBlue,    /* UnselXrefMono */    LtBlueOnBlack,
  81.   /* SelXrefColor */     WhiteOnCyan,     /* SelXrefMono */      BlackOnLtGray,
  82.   /* MouseColor */       WhiteOnRed,      /* MouseMono */        BlackOnLtGray
  83. };
  84.  
  85. FrameArray Frame1 = "┌└┐┘──││";
  86. #define WinOptions  wBordered+wClear+wUserContents
  87.  
  88. //---------------------------------------------------------------------------
  89. word cd_discscrn(EntryScreen &ES, ColorSet &EsColors )
  90.   //-Initialize entry screen generated by MAKESCRN
  91. {
  92.     if (! ES.InitCustom(5, 5, 55, 15, EsColors, WinOptions))
  93.       return ES.InitStatus;
  94.     ES.wFrame.SetFrameType(Frame1);
  95.     ES.EnableExplosions(15);
  96.     ES.wFrame.AddShadow(shBR, shSeeThru);
  97.     ES.wFrame.AddHeader("DISC INFORMATION", heTL);
  98.     ES.wFrame.AddHeader("F1 - SEARCH, F2 - TRACK, F3 - QUIT, F9 - PRINT", heBL);
  99.     ES.esFieldOptionsOn(efCursorToEnd);
  100.     ES.SetWrapMode(WrapAtEdges);
  101.  
  102.     ES.esFieldOptionsOn( efClickExit + efClearFirstChar + efProtected );
  103.  
  104.     ES.AddSimpleStringField(
  105.       DR_DiscRecord[ DR_DiscID ].fldName, 1, 2,
  106.       'X', 1, 18, 15, 80, 0,
  107.       DR_DiscRecord[ DR_DiscID ].fldBuffer );
  108.  
  109.     ES.esFieldOptionsOff( efProtected );
  110.     ES.AddSimpleStringField(
  111.       DR_DiscRecord[ DR_Artist ].fldName, 2, 2,
  112.       'X', 2, 18, 24, 80, 0,
  113.       DR_DiscRecord[ DR_Artist ].fldBuffer );
  114.  
  115.     ES.AddSimpleStringField(
  116.       DR_DiscRecord[ DR_Title ].fldName, 3, 2,
  117.       'X', 3, 18, 24, 80, 0,
  118.       DR_DiscRecord[ DR_Title ].fldBuffer );
  119.  
  120.     ES.esFieldOptionsOn( efProtected );
  121.     ES.AddSimpleStringField(
  122.       DR_DiscRecord[ DR_Tracks ].fldName, 4, 2,
  123.       'X', 4, 18, 15, 80, 0,
  124.       DR_DiscRecord[ DR_Tracks ].fldBuffer );
  125.  
  126.     ES.AddSimpleStringField(
  127.       DR_DiscRecord[ DR_Min ].fldName, 5, 2,
  128.       'X', 5, 18, 15, 80, 0,
  129.       DR_DiscRecord[ DR_Min ].fldBuffer );
  130.  
  131.     ES.AddSimpleStringField(
  132.       DR_DiscRecord[ DR_Sec ].fldName, 6, 2,
  133.       'X', 6, 18, 15, 80, 0,
  134.       DR_DiscRecord[ DR_Sec ].fldBuffer );
  135.  
  136.     ES.AddSimpleStringField(
  137.       DR_DiscRecord[ DR_Entry ].fldName, 7, 2,
  138.       'X', 7, 18, 15, 80, 0,
  139.       DR_DiscRecord[ DR_Entry ].fldBuffer );
  140.  
  141.     return ES.RawError();
  142. };
  143.  
  144. //------------------------------------------------------------------------------------------------
  145. word cd_trackscrn( ScrollingEntryScreen &ES, ColorSet &EsColors )
  146.   //-Initialize entry screen generated by MAKESCRN
  147.   {
  148.     int lciteration;
  149.     char lcNumber[ 16 ];
  150.  
  151.     lciteration = 1;
  152.     while ( ( TR_TrackArray[ lciteration ].title != NULL ) &&
  153.             ( lciteration < 15 ) )
  154.       {
  155.         lciteration++;
  156.       }
  157.     if (! ES.InitCustom( 15, 9, 65, lciteration + 7, EsColors, WinOptions))
  158.       return ES.InitStatus;
  159.     ES.wFrame.SetFrameType(Frame1);
  160.     ES.EnableExplosions(15);
  161.     ES.wFrame.AddShadow(shBR, shSeeThru);
  162.     ES.wFrame.AddHeader("TRACK INFORMATION", heTL);
  163.     ES.SetWrapMode(WrapAtEdges);
  164.  
  165.     ES.esFieldOptionsOn( efCursorToEnd + efClickExit + efClearFirstChar );
  166.  
  167.     lciteration = 1;
  168.     while ( TR_TrackArray[ lciteration ].title != NULL )
  169.       {
  170.         ES.AddSimpleStringField(
  171.           "", lciteration, 5,
  172.           'X', lciteration, 5, 32, 80, 0,
  173.           TR_TrackArray[ lciteration ].title );
  174.         //sprintf( lcNumber, "%d", lciteration );
  175.         //ES.AddTextField( lcNumber, lciteration, 2 );
  176.         sprintf( lcNumber, "%d", TR_TrackArray[ lciteration ].trackid );
  177.         ES.AddTextField( lcNumber, lciteration, 2 );
  178.         sprintf( lcNumber, "%d", TR_TrackArray[ lciteration ].min );
  179.         ES.AddTextField( lcNumber, lciteration, 39 );
  180.         sprintf( lcNumber, "%d", TR_TrackArray[ lciteration ].sec );
  181.         ES.AddTextField( lcNumber, lciteration, 42 );
  182.         lciteration++;
  183.       }
  184.  
  185.     return ES.RawError();
  186.   };
  187.  
  188.  
  189. //--------------------------------------------------------------------------
  190. word cd_dialog( char *lcStringIn )
  191.   {
  192.     DialogBox lcDialog;
  193.     boolean lcFinished;
  194.  
  195.     OPDialogInit();
  196.  
  197.     if ( !lcDialog.InitCustom(
  198.          25, 10, 55, 14,
  199.          EsColors,
  200.          DefWindowOptions | wBordered,
  201.          DefaultDialogColors
  202.        ) )
  203.       {
  204.         exit( 1 );
  205.       }
  206.  
  207.     lcDialog.wFrame.AddShadow( shBR, shOverWrite );
  208.     lcDialog.wFrame.AddHeader( "CDMUSIC", heTC );
  209.     lcDialog.AddCenteredTextField( lcStringIn, 2 );
  210.     lcDialog.AddPushButton( "O&k",    04, 06, 8, 0 , ccSelect, TRUE  );
  211.     lcDialog.AddPushButton( "Cancel", 04, 18, 8, 0,  ccQuit,   FALSE );
  212.     if ( lcDialog.RawError( ) != 0 )
  213.       {
  214.         exit( 1 );
  215.       }
  216.     lcFinished = FALSE;
  217.     do
  218.       {
  219.         lcDialog.Process();
  220.         switch( lcDialog.GetLastCommand( ) )
  221.           {
  222.             case ccSelect :
  223.             case ccQuit   :
  224.             case ccError  :
  225.               lcFinished = TRUE;
  226.           }
  227.       }
  228.     while ( !lcFinished );
  229.     lcDialog.Erase( );
  230.     lcDialog.Done( );
  231.  
  232.     return PXSUCCESS;
  233.   }