home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Phoenix Heaven Sunny 2
/
APPARE2.BIN
/
oh_towns
/
art2
/
src.lzh
/
CREATE.C
< prev
next >
Wrap
C/C++ Source or Header
|
1995-06-19
|
3KB
|
119 lines
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winb.h>
#include <te.h>
#include <fntb.h>
#include <gui.h>
#include "art.h"
#include "imagewin.h"
#include "desktop.h"
#include "imgwin.h"
#include "guisub.h"
#include "alert.h"
int idCreateImageDlg = -1 ;
int idCreateImageOkDBtn = -1 ;
int idCreateImageCancelDBtn = -1 ;
int idCreateImageXSizeNBox = -1 ;
int idCreateImageYSizeNBox = -1 ;
int idCreateImageSetSizeDBtn[5] = -1 ;
int idCreateImagePixelTIcon[2] = -1 ;
static int create_exec;
static int nPixelType = 0;
/*--------------------------------------------------------*/
/* 部品からの呼び出し関数 */
/*--------------------------------------------------------*/
int dsk_fileDBTNcreate(int kobj)
// idCreateImageOkDBtn:MJ_DBUTTONL40の呼び出し関数
// idCreateImageCancelDBtn:MJ_DBUTTONL40の呼び出し関数
{
if (kobj == idCreateImageOkDBtn)
create_exec = 1;
else
create_exec = 0;
MMI_SetHaltFlag(TRUE);
return NOERR ;
}
int dsk_fileNUMBOXcreateFunc(kobj, messId, argc, pev, trigger)
// idCreateImageXSizeNBox:MJ_NUMBOXL40の呼び出し関数
// idCreateImageYSizeNBox:MJ_NUMBOXL40の呼び出し関数
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
return NOERR ;
}
int CreateImageSetSizeDBtnProc(int kobj)
// idCreateImageSetSizeDBtn[0..4]:MJ_DBUTTONL40の呼び出し関数
{
static POINT defsize[5] =
{{320,240},{512,480},{640,480},{1024,768},{1280,1024}};
int i;
for (i=0; i<INTNUM(idCreateImageSetSizeDBtn); i++)
if (idCreateImageSetSizeDBtn[i] == kobj)
goto FOUND;
return NOERR;
FOUND:
if (i < 5)
{
RM_setNumBoxValue(idCreateImageXSizeNBox, defsize[i].x, TRUE);
RM_setNumBoxValue(idCreateImageYSizeNBox, defsize[i].y, TRUE);
}
return NOERR ;
}
int CreateImagePixelTIconProc(int kobj)
// idCreateImagePixelTIcon[1]:MJ_TICONL40の呼び出し関数
// idCreateImagePixelTIcon[0]:MJ_TICONL40の呼び出し関数
{
RM_pushRadioButton(kobj, idCreateImageDlg, idCreateImagePixelTIcon,
INTNUM(idCreateImagePixelTIcon), &nPixelType);
return NOERR ;
}
/*--------------------------------------------------------*/
/* 画像の新規作成 */
/*--------------------------------------------------------*/
int desktop_createNewPicture(void)
{
if (scrPixelSize == 16)
nPixelType = 1;
else
nPixelType = 0;
RM_initRadioButton(idCreateImagePixelTIcon,INTNUM(idCreateImagePixelTIcon),
&nPixelType);
EXECDIALOG(idCreateImageDlg);
if (create_exec)
{
int wid,ht;
// 作成する画像のサイズを得る
wid = _max(1,RM_getNumBoxValue(idCreateImageXSizeNBox));
ht = _max(1,RM_getNumBoxValue(idCreateImageYSizeNBox));
// 画像ウィンドウを作成
IMWIN *win;
win = imagewin_new((nPixelType==0 ? 24:16), wid, ht);
if (win != NULL)
{
imagewin_link(win);
imagewin_show(win);
}
else
{
dispAlertMessage("新規画像作成",
"新しいウィンドウを生成するために必要なメモリが"
"不足しています。不要ウィンドウをクローズして"
"みてください");
}
}
return NOERR ;
}