home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 10 / Fresh_Fish_10_2352.bin / new / dev / gui / guicreator / demos / videothek / videothek.c < prev    next >
C/C++ Source or Header  |  1995-07-04  |  36KB  |  786 lines

  1. /*************************************************************************/
  2. /*                                                                       */
  3. /*   Includes                                                            */
  4. /*                                                                       */
  5. /*************************************************************************/
  6.  
  7. #include "Videothek_Includes.h"
  8. #include "Videothek.h"
  9.  
  10. /*************************************************************************/
  11. /*                                                                       */
  12. /*   Variables and Structures                                            */
  13. /*                                                                       */
  14. /*************************************************************************/
  15.  
  16. extern struct IntuitionBase   *IntuitionBase;
  17. extern struct GfxBase         *GfxBase;
  18.  
  19. extern struct Library *GadToolsBase ;
  20. extern struct Library *AslBase      ;
  21. extern struct Library *DataTypesBase;
  22.  
  23. /*************************************************************************/
  24. /*                                                                       */
  25. /*   Defines                                                             */
  26. /*                                                                       */
  27. /*************************************************************************/
  28.  
  29. #define RASTERX (GfxBase->DefaultFont->tf_XSize)
  30. #define RASTERY (GfxBase->DefaultFont->tf_YSize/2+4)
  31.  
  32. #define XSIZE(x)  ((x)*RASTERX)
  33. #define YSIZE(x)  ((x)*RASTERY)
  34.  
  35. #define XPOS(x)   (XSIZE(x)+customscreen->WBorLeft)
  36. #define YPOS(x)   (YSIZE(x)+customscreen->BarHeight+1)
  37.  
  38. #define ERROR_NO_WINDOW_OPENED      1001L
  39. #define ERROR_NO_PUBSCREEN_LOCKED   1002L
  40. #define ERROR_NO_GADGETS_CREATED    1003L
  41. #define ERROR_NO_VISUALINFO         1004L
  42. #define ERROR_NO_PICTURE_LOADED     1005L
  43. #define ERROR_NO_GADGETLIST_CREATED 1006L
  44. #define ERROR_NO_WINDOW_MENU        1007L
  45.  
  46. /// struct HauptfensterData
  47. struct HauptfensterData
  48.     {
  49.     BOOL    gd_Disabled_Listview;
  50.     struct List *gd_Labels_Listview;
  51.     UWORD   gd_Selected_Listview;
  52.     UWORD   gd_Top_Listview;
  53.     BOOL    gd_Disabled_Neu;
  54.     BOOL    gd_Disabled_Aendern;
  55.     BOOL    gd_Disabled_Loeschen;
  56.     BOOL    gd_Disabled_ListeLoeschen;
  57.     BOOL    gd_Disabled_Drucken;
  58.     BOOL    gd_Disabled_Speichern;
  59.     };
  60.  
  61. ///
  62. /// struct EintragData
  63. struct EintragData
  64.     {
  65.     BOOL    gd_Disabled_Filmtitel;
  66.     char    gd_String_Filmtitel[40];
  67.     BOOL    gd_Disabled_Kassette;
  68.     ULONG   gd_Number_Kassette;
  69.     BOOL    gd_Disabled_Minuten;
  70.     ULONG   gd_Number_Minuten;
  71.     BOOL    gd_Disabled_Quelle;
  72.     UWORD   gd_Active_Quelle;
  73.     STRPTR *gd_Labels_Quelle;
  74.     BOOL    gd_Disabled_Art;
  75.     UWORD   gd_Active_Art;
  76.     STRPTR *gd_Labels_Art;
  77.     BOOL    gd_Disabled_Weiter;
  78.     };
  79.  
  80. ///
  81.  
  82. /*************************************************************************/
  83. /*                                                                       */
  84. /*   Routines to handle gadgets                                          */
  85. /*                                                                       */
  86. /*************************************************************************/
  87.  
  88. /// HandleGadgetsHauptfenster()
  89.  
  90. void HandleGadgetsHauptfenster(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,struct HauptfensterData *gadgetdata,APTR userdata)
  91. {
  92.     switch(gadgetid)
  93.         {
  94.         case LVID_Listview:
  95.             ListviewClicked(win,wingads,gadgetid,messagecode,userdata);
  96.             break;
  97.         case BTID_Neu:
  98.             NeuClicked(win,wingads,gadgetid,messagecode,userdata);
  99.             break;
  100.         case BTID_Aendern:
  101.             AendernClicked(win,wingads,gadgetid,messagecode,userdata);
  102.             break;
  103.         case BTID_Loeschen:
  104.             LoeschenClicked(win,wingads,gadgetid,messagecode,userdata);
  105.             break;
  106.         case BTID_ListeLoeschen:
  107.             ListeLoeschenClicked(win,wingads,gadgetid,messagecode,userdata);
  108.             break;
  109.         case BTID_Drucken:
  110.             DruckenClicked(win,wingads,gadgetid,messagecode,userdata);
  111.             break;
  112.         case BTID_Speichern:
  113.             SpeichernClicked(win,wingads,gadgetid,messagecode,userdata);
  114.             break;
  115.         };
  116. }
  117. ///
  118. /// HandleGadgetsEintrag()
  119.  
  120. void HandleGadgetsEintrag(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,struct EintragData *gadgetdata,APTR userdata)
  121. {
  122.     switch(gadgetid)
  123.         {
  124.         case STID_Filmtitel:
  125.             FilmtitelClicked(win,wingads,gadgetid,messagecode,userdata);
  126.             break;
  127.         case INID_Kassette:
  128.             KassetteClicked(win,wingads,gadgetid,messagecode,userdata);
  129.             break;
  130.         case INID_Minuten:
  131.             MinutenClicked(win,wingads,gadgetid,messagecode,userdata);
  132.             break;
  133.         case CYID_Quelle:
  134.             QuelleClicked(win,wingads,gadgetid,messagecode,userdata);
  135.             break;
  136.         case CYID_Art:
  137.             ArtClicked(win,wingads,gadgetid,messagecode,userdata);
  138.             break;
  139.         case BTID_Weiter:
  140.             WeiterClicked(win,wingads,gadgetid,messagecode,userdata);
  141.             break;
  142.         };
  143. }
  144. ///
  145.  
  146.  
  147. /*************************************************************************/
  148. /*                                                                       */
  149. /*   Routines to create gadgets                                          */
  150. /*                                                                       */
  151. /*************************************************************************/
  152.  
  153. /// CreateGadgetsHauptfenster()
  154. struct Gadget *CreateGadgetsHauptfenster(struct Gadget **gadgetlist,struct NewGadget newgad[],struct Gadget *wingads[],struct HauptfensterData *gadgetdata)
  155. {
  156.     struct Gadget *gadget=CreateContext(gadgetlist);
  157.     if (gadget)
  158.         {
  159.         wingads[LVID_Listview]=gadget=CreateGadget(LISTVIEW_KIND,gadget,&newgad[LVID_Listview],GA_Disabled,gadgetdata->gd_Disabled_Listview,GTLV_Labels,gadgetdata->gd_Labels_Listview,GTLV_ReadOnly,FALSE,GTLV_Selected,gadgetdata->gd_Selected_Listview,GTLV_ShowSelected,NULL,GTLV_Top,gadgetdata->gd_Top_Listview,LAYOUTA_Spacing,0,TAG_END);
  160.         wingads[LAID_Gadget2]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget2],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  161.         wingads[BTID_Neu]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Neu],GA_Disabled,gadgetdata->gd_Disabled_Neu,GT_Underscore,'_',TAG_END);
  162.         wingads[BTID_Aendern]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Aendern],GA_Disabled,gadgetdata->gd_Disabled_Aendern,GT_Underscore,'_',TAG_END);
  163.         wingads[BTID_Loeschen]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Loeschen],GA_Disabled,gadgetdata->gd_Disabled_Loeschen,GT_Underscore,'_',TAG_END);
  164.         wingads[BTID_ListeLoeschen]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_ListeLoeschen],GA_Disabled,gadgetdata->gd_Disabled_ListeLoeschen,GT_Underscore,'_',TAG_END);
  165.         wingads[BTID_Drucken]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Drucken],GA_Disabled,gadgetdata->gd_Disabled_Drucken,GT_Underscore,'_',TAG_END);
  166.         wingads[BTID_Speichern]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Speichern],GA_Disabled,gadgetdata->gd_Disabled_Speichern,GT_Underscore,'_',TAG_END);
  167.         return gadget;
  168.         }
  169.     else return NULL;
  170. }
  171. ///
  172. /// CreateGadgetsEintrag()
  173. struct Gadget *CreateGadgetsEintrag(struct Gadget **gadgetlist,struct NewGadget newgad[],struct Gadget *wingads[],struct EintragData *gadgetdata)
  174. {
  175.     struct Gadget *gadget=CreateContext(gadgetlist);
  176.     if (gadget)
  177.         {
  178.         wingads[LAID_Gadget9]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget9],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  179.         wingads[LAID_Gadget10]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget10],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  180.         wingads[LAID_Gadget11]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget11],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  181.         wingads[STID_Filmtitel]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[STID_Filmtitel],GA_Disabled,gadgetdata->gd_Disabled_Filmtitel,GA_TabCycle,TRUE,GTST_MaxChars,40,GTST_String,gadgetdata->gd_String_Filmtitel,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
  182.         wingads[INID_Kassette]=gadget=CreateGadget(INTEGER_KIND,gadget,&newgad[INID_Kassette],GA_Disabled,gadgetdata->gd_Disabled_Kassette,GA_TabCycle,TRUE,GTIN_MaxChars,4,GTIN_Number,gadgetdata->gd_Number_Kassette,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGCENTER,STRINGA_ReplaceMode,TRUE,TAG_END);
  183.         wingads[INID_Minut