home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 269.lha / MelaniePaint_v.60 / sources / planes.c < prev    next >
C/C++ Source or Header  |  1989-07-16  |  2KB  |  119 lines

  1. /*============================================================================*/
  2. /*  Planes.c: By Kevin T. Seghetti                          */
  3. /*  Change depth of screen                              */
  4. /*============================================================================*/
  5.  
  6. #include "equates.h"
  7. #include <functions.h>
  8. #include <exec/types.h>
  9. #include <intuition/intuition.h>
  10.  
  11. #include <graphics/gfx.h>
  12. #include "iff/jiff.h"
  13.  
  14. /*----------------------------------------------------------------------------*/
  15.  
  16. extern USHORT areaPattern[];
  17. extern FLAG UndoBuffer,PatternOn;
  18. extern struct Screen *MPaintScreen;
  19. extern struct NewScreen NewMPaintScreen;
  20. extern struct Window *MPaintWindow,*ToolWindow,*PaletteWindow,*HistWindow,*CoordWindow;
  21. extern struct RastPort UndoRastPort;
  22. extern int MaxColor;
  23. extern UWORD colortable[];
  24. extern struct Window *InitWindow();
  25. extern struct TmpRas myTmpRas;
  26. extern struct RastPort *VRastPort;
  27. extern SHORT PaintWidth;
  28. extern UBYTE *TempPlane;
  29.  
  30. FLAG Tool,Palette,Coord;
  31.  
  32. /*============================================================================*/
  33.  
  34. ShutDownOldScreen()
  35. {
  36.     if(MPaintWindow)
  37.      {
  38.     ClearMenuStrip(MPaintWindow);
  39.     CloseWindow(MPaintWindow);
  40.      }
  41.     DeleteAllPages();
  42.  
  43.     Tool = (!ToolWindow);
  44.     Palette = (!PaletteWindow);
  45.     Coord = (!CoordWindow);
  46.  
  47.     if(HistWindow)
  48.     CloseHistWindow();
  49.  
  50.     if(CoordWindow)
  51.     CloseCoordWindow();
  52.  
  53.     if(ToolWindow)
  54.     CloseToolWindow();
  55.  
  56.     if(PaletteWindow)
  57.     ClosePaletteWindow();
  58.  
  59.     if(UndoBuffer)
  60.     myfree_planes( UndoRastPort.BitMap );
  61.  
  62.     if(MPaintScreen)
  63.     CloseScreen(MPaintScreen);
  64. }
  65.  
  66. /*============================================================================*/
  67.  
  68. SetUpNewScreen()
  69. {
  70.     MPaintScreen = OpenScreen(&NewMPaintScreen);
  71.     if(!MPaintScreen)
  72.     cleanup("Cannot open custom screen",5);
  73.  
  74.     InitWindow();
  75.  
  76.     VRastPort = MPaintWindow->RPort;
  77.     VRastPort->TmpRas = &myTmpRas;
  78.  
  79.     if(PatternOn)
  80.     SetAfPt(VRastPort,&areaPattern[0],1L);
  81.  
  82.     if(!TempPlane)
  83.     InitTempPlane();
  84.  
  85.     InitDefaults();
  86.  
  87.     LoadRGB4(&MPaintScreen->ViewPort,colortable,(long)MaxColor);
  88.  
  89.     if(!Coord)
  90.     OpenCoordWindow();
  91.  
  92.     if(!Tool)
  93.     OpenToolWindow();
  94.  
  95.     if(!Palette)
  96.     OpenPaletteWindow();
  97.  
  98. /*    InitUndoBuffer(); */
  99.     UndoBuffer = FALSE;
  100. }
  101.  
  102. /*============================================================================*/
  103.  
  104. ChangeDepth(Depth)
  105. int Depth;
  106. {
  107.     if(PaintWidth > 320 && Depth == 5)
  108.     return();
  109.  
  110.     ShutDownOldScreen();
  111.  
  112.     NewMPaintScreen.Depth = Depth;
  113.  
  114.     MaxColor = 1 << Depth;
  115.  
  116.     SetUpNewScreen();
  117. }
  118.  
  119.