home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HyperLib 1997 Winter - Disc 1
/
HYPERLIB-1997-Winter-CD1.ISO.7z
/
HYPERLIB-1997-Winter-CD1.ISO
/
オンラインウェア
/
PRG
/
ListPrint.sit
/
ListPrint
/
DoCommand.c
< prev
next >
Wrap
Text File
|
1995-02-24
|
4KB
|
163 lines
//******************************************************************************
//* *
//* Macintosh プログラム作成の勉強 *
//* This Program is lesson for Macintohs. *
//* *
//* 1994/ 4/26 By SAGAWA KAZUYOSHI *
//* 1994/ 9/20 By SAGAWA KAZUYOSHI *
//* 1994/11/12 By SAGAWA KAZUYOSHI *
//* 1995/02/24 カーソル形状設定 *
//* *
//******************************************************************************
#include "Constants.h"
#include "ListPrint.h"
//**************************************************************************
//*
//* 本モジュールの中だけで使用されている関数プロトタイプ宣言
//*
//**************************************************************************
void DoPrintManege (void);
void CheckPrintHandle (void);
void DisposePrintHandle (void);
/**************************************************************************
*
* FUC コマンド実行の関数群
*
* IN 無し
* OT 無し
* EX 無し
*
*************************************************************************/
void DoOpenCommand(void)
{
StandardFileReply rep;
SFTypeList flType;
int flTyepNum = 1;
flType[0] = 'TEXT'; // flType[1] = 'PICT', flType[2] = 'txDC';
StandardGetFile(0, flTyepNum, flType, &rep); /* FileOpenDailog Display */
if ( rep.sfGood ) {
ScrollListAddCell(rep.sfFile.name, &listData);
SelectFileSetUp(rep.sfFile, &listData);
DoButtonHilite();
}
}
void DoPageSetupCommand(void)
{
PrOpen(); /* プリンタドライバオープン */
CheckPrintHandle();
if ( PrStlDialog(hPrint) ) ;
PrClose(); /* プリンタドライバのリソース解放 */
}
void DoPrintCommand(void)
{
PrOpen(); /* プリンタドライバオープン */
CheckPrintHandle();
if ( PrJobDialog( hPrint ) ) { /* PrintDailog Display */
ListPrint_SetSystemCursor(watchCursor); /* 時計カーソル */
DoPrintManege();
// ListPrint_SetSystemCursor((int)&arrow); /* 矢印カーソル */
}
PrClose(); /* プリンタドライバのリソース解放 */
}
void DoQuitCommand(void)
{
DisposePrintHandle();
TrashWindow(CurrentWindow);
}
/**************************************************************************
*
* FUC 印刷実行のマネージャー
*
* IN 無し
* OT 無し
* EX listData
*
*************************************************************************/
void DoPrintManege(void)
{
int i, canFlag;
FSSpec fileSpec;
SelectFileInfoHandle nextInfoHandle; /* 選択ファイル情報リスト */
Handle hReadData; /* データ読み込み用ハンドル */
nextInfoHandle = listData.hStFl; /* 選択ファイル情報リストの親 */
for (i = 0; i <= listData.CellNum; i++) { /* 選択ファイル情報リストの子サーチ */
if (i == 0) {
fileSpec = (*listData.hStFl)->flSpec; /* 親 */
}
else { /* 子 */
if ( (*nextInfoHandle)->nextFile == 0) {
break;
}
else {
fileSpec = (*(*nextInfoHandle)->nextFile)->flSpec;
nextInfoHandle = (*nextInfoHandle)->nextFile;
}
}
hReadData = ReadFileData(fileSpec); /* データ読み込み */
HLock (hReadData);
canFlag = PrintDoc(hReadData, fileSpec.name); /* 印刷 */
HUnlock (hReadData);
DisposeHandle(hReadData);
if ( canFlag ) break; /* 印刷はキャンセルされた */
}
}
/**************************************************************************
*
* FUC 印刷ハンドル確認
*
* IN 無し
* OT 無し
* EX hPrint
*
*************************************************************************/
void CheckPrintHandle(void)
{
if (hPrint == NULL) {
hPrint = (TPrint **) NewHandle(sizeof(TPrint));
PrintDefault( hPrint ); /* 現在のドライバの既定値に設定 */
// PrintValidate( hPrint );
}
}
/**************************************************************************
*
* FUC 印刷ハンドル削除
*
* IN 無し
* OT 無し
* EX hPrint
*
*************************************************************************/
void DisposePrintHandle(void)
{
if (hPrint != NULL) {
DisposeHandle( (Handle)hPrint );
hPrint = NULL;
}
}