home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Phoenix Heaven Sunny 2
/
APPARE2.BIN
/
oh_towns
/
art2
/
src.lzh
/
ALLSCR.C
< prev
next >
Wrap
C/C++ Source or Header
|
1995-06-19
|
2KB
|
71 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 "screen.h"
#include "pic.h"
#include "imagewin.h"
#include "guisub.h"
#include "alert.h"
#include "desktop.h"
int idAllScrWin = -1 ;
static SCRBITMAP bmDisp = NULL;
static IMWIN* win = NULL;
/* initDataZALLSCR:idAllScrWin:MJ_WINDOWL40の呼び出し関数 */
int AllScrWinProc(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
if (messId == MM_SHOW)
{
FRAME fr; RM_getWinUserFrame(kobj, &fr);
BEGINPAINT(kobj)
scrbitmap_draw(bmDisp,fr.X,fr.Y);
ENDPAINT
}
else if (messId == MM_MOUSEON)
{
MMI_SetHaltFlag(TRUE);
}
return NOERR ;
}
int cmd_viewAllScr(void)
{
win = imagewin_getCurrentWin();
if (win == NULL)
return NOERR;
int scrwid,scrht;
RM_getScreenSize(&scrwid,&scrht);
if ((bmDisp = scrbitmap_new(scrwid,scrht)) == NULL)
{
dispAlertMessage("全体表示","画像を全画面に表示するのに必要な"
"メモリが不足しています。不要ウィンドウをクローズしてみて"
"ください");
return NOERR;
}
FRAME frDisp = {0,0,win->pic->wid,win->pic->ht};
int dx = _max(0,(scrwid - win->pic->wid) / 2);
int dy = _max(0,(scrht - win->pic->ht) / 2);
pic_getScrBitMap(win->pic, bmDisp, dx,dy, &frDisp, 1);
FRAME fr = {0,0,scrwid-1,scrht-1};
RM_setFrame(idAllScrWin, &fr);
FRAME frAdj = {0,0,-1,-1};
RM_adjustWinUser(idAllScrWin, &frAdj);
EXECDIALOG(idAllScrWin);
scrbitmap_delete(bmDisp);
return NOERR;
}