home *** CD-ROM | disk | FTP | other *** search
/ Phoenix Heaven Sunny 2 / APPARE2.BIN / oh_towns / art2 / src.lzh / CREATE.C < prev    next >
C/C++ Source or Header  |  1995-06-19  |  3KB  |  119 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. #include "art.h"
  9. #include "imagewin.h"
  10. #include "desktop.h"
  11. #include "imgwin.h"
  12. #include "guisub.h"
  13. #include "alert.h"
  14.  
  15. int    idCreateImageDlg = -1 ;
  16. int    idCreateImageOkDBtn = -1 ;
  17. int    idCreateImageCancelDBtn = -1 ;
  18. int    idCreateImageXSizeNBox = -1 ;
  19. int    idCreateImageYSizeNBox = -1 ;
  20. int    idCreateImageSetSizeDBtn[5] = -1 ;
  21. int    idCreateImagePixelTIcon[2] = -1 ;
  22.  
  23. static int create_exec;
  24. static int nPixelType = 0;
  25.  
  26. /*--------------------------------------------------------*/
  27. /*                 部品からの呼び出し関数                 */
  28. /*--------------------------------------------------------*/
  29.  
  30. int    dsk_fileDBTNcreate(int kobj)
  31. // idCreateImageOkDBtn:MJ_DBUTTONL40の呼び出し関数
  32. // idCreateImageCancelDBtn:MJ_DBUTTONL40の呼び出し関数
  33. {
  34.     if (kobj == idCreateImageOkDBtn)
  35.         create_exec = 1;
  36.     else
  37.         create_exec = 0;
  38.     MMI_SetHaltFlag(TRUE);
  39.     return NOERR ;
  40. }
  41.  
  42. int    dsk_fileNUMBOXcreateFunc(kobj, messId, argc, pev, trigger)
  43. // idCreateImageXSizeNBox:MJ_NUMBOXL40の呼び出し関数
  44. // idCreateImageYSizeNBox:MJ_NUMBOXL40の呼び出し関数
  45. int        kobj ;
  46. int        messId ;
  47. int        argc ;
  48. EVENT    *pev ;
  49. int        trigger ;
  50. {
  51.     return NOERR ;
  52. }
  53.  
  54. int    CreateImageSetSizeDBtnProc(int kobj)
  55. // idCreateImageSetSizeDBtn[0..4]:MJ_DBUTTONL40の呼び出し関数
  56. {
  57.     static POINT defsize[5] =
  58.         {{320,240},{512,480},{640,480},{1024,768},{1280,1024}};
  59.     int i;
  60.     for (i=0; i<INTNUM(idCreateImageSetSizeDBtn); i++)
  61.         if (idCreateImageSetSizeDBtn[i] == kobj)
  62.             goto FOUND;
  63.     return NOERR;
  64. FOUND:
  65.     if (i < 5)
  66.     {
  67.         RM_setNumBoxValue(idCreateImageXSizeNBox, defsize[i].x, TRUE);
  68.         RM_setNumBoxValue(idCreateImageYSizeNBox, defsize[i].y, TRUE);
  69.     }
  70.     return NOERR ;
  71. }
  72.  
  73. int    CreateImagePixelTIconProc(int kobj)
  74. // idCreateImagePixelTIcon[1]:MJ_TICONL40の呼び出し関数
  75. // idCreateImagePixelTIcon[0]:MJ_TICONL40の呼び出し関数
  76. {
  77.     RM_pushRadioButton(kobj, idCreateImageDlg, idCreateImagePixelTIcon,
  78.                        INTNUM(idCreateImagePixelTIcon), &nPixelType);
  79.     return NOERR ;
  80. }
  81.  
  82. /*--------------------------------------------------------*/
  83. /*                     画像の新規作成                     */
  84. /*--------------------------------------------------------*/
  85.  
  86. int desktop_createNewPicture(void)
  87. {
  88.     if (scrPixelSize == 16)
  89.         nPixelType = 1;
  90.     else
  91.         nPixelType = 0;
  92.     RM_initRadioButton(idCreateImagePixelTIcon,INTNUM(idCreateImagePixelTIcon),
  93.                        &nPixelType);
  94.     EXECDIALOG(idCreateImageDlg);
  95.     if (create_exec)
  96.     {
  97.         int wid,ht;
  98.       // 作成する画像のサイズを得る
  99.         wid = _max(1,RM_getNumBoxValue(idCreateImageXSizeNBox));
  100.         ht = _max(1,RM_getNumBoxValue(idCreateImageYSizeNBox));
  101.       // 画像ウィンドウを作成
  102.         IMWIN *win;
  103.         win = imagewin_new((nPixelType==0 ? 24:16), wid, ht);
  104.         if (win != NULL)
  105.         {
  106.             imagewin_link(win);
  107.             imagewin_show(win);
  108.         }
  109.         else
  110.         {
  111.             dispAlertMessage("新規画像作成",
  112.                 "新しいウィンドウを生成するために必要なメモリが"
  113.                 "不足しています。不要ウィンドウをクローズして"
  114.                 "みてください");
  115.         }
  116.     }
  117.     return NOERR ;
  118. }
  119.