home *** CD-ROM | disk | FTP | other *** search
/ Phoenix Heaven Sunny 2 / APPARE2.BIN / oh_towns / art2 / src.lzh / ALLSCR.C < prev    next >
C/C++ Source or Header  |  1995-06-19  |  2KB  |  71 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <winb.h>
  5. #include <te.h>
  6. #include <fntb.h>
  7. #include <gui.h>
  8.  
  9. #include "art.h"
  10. #include "screen.h"
  11. #include "pic.h"
  12. #include "imagewin.h"
  13. #include "guisub.h"
  14. #include "alert.h"
  15. #include "desktop.h"
  16.  
  17. int    idAllScrWin = -1 ;
  18.  
  19. static SCRBITMAP bmDisp = NULL;
  20. static IMWIN* win = NULL;
  21.  
  22. /*    initDataZALLSCR:idAllScrWin:MJ_WINDOWL40の呼び出し関数    */
  23. int    AllScrWinProc(kobj, messId, argc, pev, trigger)
  24. int        kobj ;
  25. int        messId ;
  26. int        argc ;
  27. EVENT    *pev ;
  28. int        trigger ;
  29. {
  30.     if (messId == MM_SHOW)
  31.     {
  32.         FRAME fr;  RM_getWinUserFrame(kobj, &fr);
  33.         BEGINPAINT(kobj)
  34.         scrbitmap_draw(bmDisp,fr.X,fr.Y);
  35.         ENDPAINT
  36.     }
  37.     else if (messId == MM_MOUSEON)
  38.     {
  39.         MMI_SetHaltFlag(TRUE);
  40.     }
  41.     return NOERR ;
  42. }
  43.  
  44. int cmd_viewAllScr(void)
  45. {
  46.     win = imagewin_getCurrentWin();
  47.     if (win == NULL)
  48.         return NOERR;
  49.     int scrwid,scrht;
  50.     RM_getScreenSize(&scrwid,&scrht);
  51.     if ((bmDisp = scrbitmap_new(scrwid,scrht)) == NULL)
  52.     {
  53.         dispAlertMessage("全体表示","画像を全画面に表示するのに必要な"
  54.             "メモリが不足しています。不要ウィンドウをクローズしてみて"
  55.             "ください");
  56.         return NOERR;
  57.     }
  58.     FRAME frDisp = {0,0,win->pic->wid,win->pic->ht};
  59.     int dx = _max(0,(scrwid - win->pic->wid) / 2);
  60.     int dy = _max(0,(scrht - win->pic->ht) / 2);
  61.     pic_getScrBitMap(win->pic, bmDisp, dx,dy, &frDisp, 1);
  62.     FRAME fr = {0,0,scrwid-1,scrht-1};
  63.     RM_setFrame(idAllScrWin, &fr);
  64.     FRAME frAdj = {0,0,-1,-1};
  65.     RM_adjustWinUser(idAllScrWin, &frAdj);
  66.     EXECDIALOG(idAllScrWin);
  67.     scrbitmap_delete(bmDisp);
  68.     return NOERR;
  69. }
  70.  
  71.