home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_progs / libs / plotlib.lha / Plot_1.lzh / Demo / OpenClose.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-02-18  |  11.2 KB  |  317 lines

  1. /****************************************************************
  2.  *                                                                                                                            *
  3.  * Filename : OpenClose.c                                                                                *
  4.  *                                                                                                                            *
  5.  ****************************************************************
  6.  *                                                                                                                            *
  7.  *    Comment : Diese Datei beinhaltet alle Routinen für                    *
  8.  *                        starten und beendigen dieses Programmes.                    *
  9.  *                        Es werden hier folgende globalen Definitionen            *
  10.  *                        gemacht:                                                                                    *
  11.  *                                                                                                                            *
  12.  *    IntuitionBase    -> Basis von Intuitionlibrary                                    *
  13.  *    ArpBase                -> Basis von Arplibrary                                                *
  14.  *    GfxBase                -> Basis von Graphicslibrary                                    *
  15.  *    Sc                        -> Screenpointer                                                            *
  16.  *    Mw                        -> Mainwindowpointer                                                    *
  17.  *    Vp                        -> Viewportpointer                                                        *
  18.  *    Rp                        -> Rastportpointer Screen                                            *
  19.  *    WRp                        -> Rastportpointer Mainwindow                                    *
  20.  *                                                                                                                            *
  21.  *    newscreen            -> NewScreenstruktur                                                    *
  22.  *    mainwindow        -> NewWindowstruktur                                                    *
  23.  *    Menu1                    -> Menustruktur                                                                *
  24.  *                                                                                                                            *
  25.  *            Rev : V1.0                                                                                            *
  26.  *                                                                                                                            *
  27.  *    History : V1.0 erstellen dieses Files                            01.09.89    *
  28.  *                        V1.1 Erweiterung auf NTSC Auflösung            01.09.89    *
  29.  *                                                                                                                            *
  30.  *            Doc :                                                                                                        *
  31.  *                                                                                                                            *
  32.  *         Bugs : keine bekannten                                                                        *
  33.  *                                                                                                                            *
  34.  *        Autor : Oesch Silvano                                                                            *
  35.  *                                                                                                                            *
  36.  *        Datum : 01.09.89                                                                                    *
  37.  *                                                                                                                            *
  38.  ****************************************************************/
  39.  
  40. /****************************************************************
  41.  *                                                                                                                            *
  42.  * allgemeine Includedateien                                                                        *
  43.  *                                                                                                                            *
  44.  ****************************************************************/
  45.  
  46. #include <ctype.h>
  47. #include <exec/types.h>
  48. #include <intuition/intuition.h>
  49. #include <intuition/intuitionbase.h>
  50. #include <stdlib.h>
  51. #include <stdio.h>
  52. #include <libraries/dosextens.h>
  53. #include <libraries/reqbase.h>
  54. #include <graphics/gfxbase.h>
  55.  
  56. /****************************************************************
  57.  *                                                                                                                            *
  58.  * programmspezifische Includedateien                                                        *
  59.  *                                                                                                                            *
  60.  ****************************************************************/
  61.  
  62. #include "Definitions.h"                        /* allgemeine Definitionen    */
  63. #include "Screen.h"                                    /* init. NewScreenstruktur    */
  64. #include "window.h"                                    /* init. NewWindowstruktur    */
  65. #include "Farben.h"                                    /* def. FarbenFilestruktur    */
  66. #include "Function.h"
  67.  
  68. /****************************************************************
  69.  *                                                                                                                            *
  70.  * globale Definitionen                                                                                    *
  71.  *                                                                                                                            *
  72.  ****************************************************************/
  73.  
  74. struct ReqLib *ReqBase;
  75. extern struct GfxBase *GfxBase;
  76. extern struct IntuitionBase *IntuitionBase;
  77. struct Screen *Sc=NULL;                            /* Screenpointer                        */
  78. struct Window *Mw=NULL;                            /* Mainwindowpointer                */
  79. struct ViewPort *Vp;                                /* Viewportpointer                    */
  80. struct RastPort *Rp;                                /* Rastportpointer Screen        */
  81. struct RastPort *WRp;                                /* Rastportpointer Window        */
  82.  
  83. int SCREENHOEHE;                                        /* Auflösung                                */
  84.  
  85.  
  86. /****************************************************************
  87.  *                                                                                                                            *
  88.  * externe Definitionen                                                                                    *
  89.  *                                                                                                                            *
  90.  ****************************************************************/
  91.  
  92. extern struct FarbenFile deffarben;
  93. extern int sctitel;                                    /* Titeldarstellung                    */
  94. extern char ScreenNamen[];
  95. extern char SystemNamen[];
  96.  
  97. /****************************************************************
  98.  *                                                                                                                            *
  99.  *    Funktion : Oeffne_Screen()                                                                    *
  100.  *                                                                                                                            *
  101.  ****************************************************************
  102.  *                                                                                                                            *
  103.  *        Input : Aufloesung                                                                                *
  104.  *                        Auflösung == HIRESSCREEN -> 640*200/256                        *
  105.  *                        Auflösung == LACE                -> 640*400/512                        *
  106.  *                                                                                                                            *
  107.  *     Output : BOOLEAN                                                                                        *
  108.  *                        TRUE    -> alles geöffnet                                                        *
  109.  *                        FALSE -> Fehler beim öffnen                                                *
  110.  *                                                                                                                            *
  111.  ****************************************************************
  112.  *                                                                                                                            *
  113.  *    Comment : Oeffnet einen Screen mit der spez. Auflösung.            *
  114.  *                        Falls ein Window und ein Screen bereits                        *
  115.  *                        geöffnet ist, werden diese geschlossen und mit        *
  116.  *                        der neuen Auflösung geöffnet.                                            *
  117.  *                                                                                                                            *
  118.  *            Rev : V1.0                                                                                            *
  119.  *                                                                                                                            *
  120.  *    History : V1.0 erstellen dieses Files                            01.09.89    *
  121.  *                                                                                                                            *
  122.  *            Doc :                                                                                                        *
  123.  *                                                                                                                            *
  124.  *         Bugs : keine bekannten                                                                        *
  125.  *                                                                                                                            *
  126.  *        Autor : Oesch Silvano                                                                            *
  127.  *                                                                                                                            *
  128.  *        Datum : 01.09.89                                                                                    *
  129.  *                                                                                                                            *
  130.  ****************************************************************/
  131.  
  132. int Oeffne_Screen(aufloesung)
  133. int aufloesung;
  134. {
  135.     int erfolg;
  136.     char *startname;                                    /* Environment Farbenname        */
  137.  
  138.     if (Mw) CloseWindow(Mw);                    /* Mainwindow                                */
  139.     if (Sc) CloseScreen(Sc);                    /* Screen                                        */
  140.  
  141.     if (GfxBase->DisplayFlags & PAL)    /* Welche Auflösung ?                */
  142.         if (aufloesung == HIRESSCREEN)
  143.             SCREENHOEHE = 256;                        /* PAL !                                        */
  144.         else
  145.             SCREENHOEHE = 512;
  146.     else
  147.         if (aufloesung == HIRESSCREEN)
  148.             SCREENHOEHE = 200;                        /* NTSC !                                        */
  149.         else
  150.             SCREENHOEHE = 400;
  151.  
  152.     if (aufloesung == HIRESSCREEN)
  153.         newscreen.ViewModes = HIRES;
  154.     else
  155.         newscreen.ViewModes = HIRES+LACE;
  156.  
  157.     newscreen.Height = SCREENHOEHE;
  158.                                                                         /* NewScreen init.                    */
  159.  
  160.     Sc = (struct Screen *)OpenScreen(&newscreen);
  161.                                                                         /* Öffnen des Screens                */
  162.     if (Sc == NULL)                                        /* Fehler ?                                    */
  163.     {                                                                    /* Sc = NULL                                */
  164.         printf ("Screen kann nicht geöffnet werden\n");
  165.         return (FALSE);                                    /* Return mit Fehler                */
  166.     }
  167.  
  168.     Vp = &Sc->ViewPort;                                /* Viewport initialisieren    */
  169.     Rp = &Sc->RastPort;                                /* Rastport initialisieren    */
  170.  
  171.     startname = getenv("Fplot.Col");
  172.     if (startname)
  173.         erfolg = LadeFarben(startname);
  174.     if ((erfolg!=NULL)||(startname==NULL))
  175.         SetzeFarben(&deffarben);
  176.  
  177.     mainwindow.Screen = Sc;                        /* Init. MainWindowstruktur    */
  178.     mainwindow.Height = SCREENHOEHE;
  179.                                                                         /* Höhe von Screen                    */
  180.  
  181.     Mw = (struct Window *)OpenWindow(&mainwindow);
  182.                                                                         /* Öffne Mainwindow                    */
  183.     if (Mw == NULL)                                        /* Fehler ?                                    */
  184.     {                                                                    /* Mw = NULL                                */
  185.         printf ("Window kann nicht geöffnet werden\n");
  186.         return ( FALSE );                                /* Return mit Fehler                */
  187.     }
  188.  
  189.     SetWindowTitles(Mw,SystemNamen,ScreenNamen);
  190.  
  191.     ShowTitle(Sc,sctitel);                        /* Titelleiste                            */
  192.  
  193.     WRp = Mw->RPort;                                    /* Rastport initialisieren    */
  194.  
  195. }
  196.  
  197.  
  198. /****************************************************************
  199.  *                                                                                                                            *
  200.  * Funktion : Open_all()                                                                                *
  201.  *                                                                                                                            *
  202.  ****************************************************************
  203.  *                                                                                                                            *
  204.  *     Input : None                                                                                                *
  205.  *                                                                                                                            *
  206.  *                                                                                                                            *
  207.  *    Output : Boolean                                                                                        *
  208.  *                     FALSE -> etwas lebenswichtiges konnte nicht                *
  209.  *                                        geöffnet werden                                                        *
  210.  *                     TRUE    -> alles in Ordnung                                                        *
  211.  *                                                                                                                            *
  212.  ****************************************************************
  213.  *                                                                                                                            *
  214.  * Comment : Öffnet alles nötige für das Programm                                *
  215.  *                                                                                                                            *
  216.  *                                                                                                                            *
  217.  *                     1.intuition.library                                                                *
  218.  *                     2.arp.library                                                                            *
  219.  *                     3.graphics.library                                                                    *
  220.  *                     4.screen                                                                                        *
  221.  *                     5.Farben ( Environment Variable Fplotcolor )                *
  222.  *                     6.MainWindow                                                                                *
  223.  *                                                                                                                            *
  224.  *                                                                                                                            *
  225.  *         Rev : V1.1                                                                                                *
  226.  *                                                                                                                            *
  227.  * History : V1.0 erstellen dieses Files                            01.09.89    *
  228.  *                     V1.1 Erweiterung auf NTSC Auflösung            01.09.89    *
  229.  *                                                                                                                            *
  230.  *         Doc :                                                                                                        *
  231.  *                                                                                                                            *
  232.  *        Bugs : keine bekannten                                                                        *
  233.  *                                                                                                                            *
  234.  *     Autor : Oesch Silvano                                                                            *
  235.  *                                                                                                                            *
  236.  *     Datum : 01.09.89                                                                                        *
  237.  *                                                                                                                            *
  238.  ****************************************************************/
  239.  
  240. int openall()
  241. {
  242.     IntuitionBase = (struct IntuitionBasse *)
  243.         OpenLibrary("intuition.library",NULL);
  244.     if (IntuitionBase == NULL)
  245.     {
  246.         printf ("Intuition.library kann nicht geöffnet werden!\n");
  247.         return(FALSE);
  248.     }
  249.  
  250.     GfxBase = (struct GfxBase *)OpenLibrary("graphics.library",NULL);
  251.     if (GfxBase == NULL)
  252.     {
  253.         printf ("Graphics.library kann nicht geöffnet werden\n");
  254.         return(FALSE);
  255.     }
  256.  
  257.     ReqBase = (struct ReqLib *)OpenLibrary("req.library", NULL);
  258.     if (ReqBase == NULL)
  259.     {
  260.         printf ("Req..library kann nicht geöffnet werden\n");
  261.         return(FALSE);
  262.     }
  263.  
  264.     if (Oeffne_Screen(HIRESSCREEN)==FALSE)
  265.         return(FALSE);
  266.     else
  267.         return(TRUE);                                        /* Return mit OK                        */
  268. }
  269.  
  270.  
  271. /****************************************************************
  272.  *                                                                                                                            *
  273.  * Funktion : Close_all()                                                                                *
  274.  *                                                                                                                            *
  275.  ****************************************************************
  276.  *                                                                                                                            *
  277.  *     Input : None                                                                                                *
  278.  *                                                                                                                            *
  279.  *                                                                                                                            *
  280.  *    Output : None                                                                                                *
  281.  *                                                                                                                            *
  282.  *                                                                                                                            *
  283.  ****************************************************************
  284.  *                                                                                                                            *
  285.  * Comment : Schliesst alles mögliche                                                        *
  286.  *                                                                                                                            *
  287.  *                        1.MainWindow                                                                            *
  288.  *                        2.Screen                                                                                    *
  289.  *                        3.GfxBase                                                                                    *
  290.  *                        4.ArpBase                                                                                    *
  291.  *                        5.IntuitionBase                                                                        *
  292.  *                                                                                                                            *
  293.  *         Rev : V1.0                                                                                                *
  294.  *                                                                                                                            *
  295.  * History : V1.0 erstellen dieses Files                            01.09.89    *
  296.  *                                                                                                                            *
  297.  *         Doc :                                                                                                        *
  298.  *                                                                                                                            *
  299.  *        Bugs : keine bekannten                                                                        *
  300.  *                                                                                                                            *
  301.  *     Autor : Oesch Silvano                                                                            *
  302.  *                                                                                                                            *
  303.  *     Datum : 20.06.89                                                                                        *
  304.  *                                                                                                                            *
  305.  ****************************************************************/
  306.  
  307. void closeall()
  308. {
  309.     if (Mw) CloseWindow (Mw);                    /* Mainwindow                                */
  310.     if (Sc)    CloseScreen (Sc);                    /* Screen                                        */
  311.     if (ReqBase)CloseLibrary((struct Library *)ReqBase);
  312.     if (GfxBase)CloseLibrary((struct Library *)GfxBase);
  313.     if (IntuitionBase)CloseLibrary((struct Library *)IntuitionBase);
  314.  
  315. }
  316.  
  317.