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 >
Text File  |  1995-02-24  |  4KB  |  163 lines

  1. //******************************************************************************
  2. //*                                            *
  3. //*    Macintosh プログラム作成の勉強                    *
  4. //*    This Program is lesson for Macintohs.                    *
  5. //*                                            *
  6. //*    1994/ 4/26 By SAGAWA KAZUYOSHI                        *
  7. //*    1994/ 9/20 By SAGAWA KAZUYOSHI                        *
  8. //*    1994/11/12 By SAGAWA KAZUYOSHI                        *
  9. //*    1995/02/24 カーソル形状設定                            *
  10. //*                                            *
  11. //******************************************************************************
  12. #include    "Constants.h"
  13. #include    "ListPrint.h"
  14.  
  15. //**************************************************************************
  16. //*
  17. //*    本モジュールの中だけで使用されている関数プロトタイプ宣言
  18. //*
  19. //**************************************************************************
  20. void    DoPrintManege        (void);
  21. void    CheckPrintHandle    (void);
  22. void    DisposePrintHandle    (void);
  23.  
  24.  
  25. /**************************************************************************
  26.  *
  27.  *    FUC    コマンド実行の関数群
  28.  *
  29.  *    IN    無し
  30.  *    OT    無し
  31.  *    EX    無し
  32.  *
  33.  *************************************************************************/
  34. void    DoOpenCommand(void)
  35. {
  36.     StandardFileReply    rep;
  37.     SFTypeList        flType;
  38.     int            flTyepNum = 1;
  39.  
  40.     flType[0] = 'TEXT';        // flType[1] = 'PICT', flType[2] = 'txDC';
  41.  
  42.     StandardGetFile(0, flTyepNum, flType, &rep);    /* FileOpenDailog Display        */
  43.     if ( rep.sfGood ) {
  44.         ScrollListAddCell(rep.sfFile.name, &listData);
  45.  
  46.         SelectFileSetUp(rep.sfFile, &listData);
  47.  
  48.         DoButtonHilite();
  49.     }
  50. }
  51.  
  52. void    DoPageSetupCommand(void)
  53. {
  54.     PrOpen();                        /* プリンタドライバオープン        */
  55.     CheckPrintHandle();
  56.  
  57.     if ( PrStlDialog(hPrint) ) ;
  58.     PrClose();                        /* プリンタドライバのリソース解放    */
  59. }
  60.  
  61. void    DoPrintCommand(void)
  62. {
  63.     PrOpen();                        /* プリンタドライバオープン        */
  64.     CheckPrintHandle();
  65.  
  66.     if ( PrJobDialog( hPrint ) ) {            /* PrintDailog Display        */
  67.  
  68.         ListPrint_SetSystemCursor(watchCursor);        /* 時計カーソル        */
  69.  
  70.         DoPrintManege();
  71.  
  72. //        ListPrint_SetSystemCursor((int)&arrow);        /* 矢印カーソル        */
  73.     }
  74.     PrClose();                        /* プリンタドライバのリソース解放    */
  75. }
  76.  
  77. void    DoQuitCommand(void)
  78. {
  79.     DisposePrintHandle();
  80.  
  81.     TrashWindow(CurrentWindow);
  82. }
  83.  
  84. /**************************************************************************
  85.  *
  86.  *    FUC    印刷実行のマネージャー
  87.  *
  88.  *    IN    無し
  89.  *    OT    無し
  90.  *    EX    listData
  91.  *
  92.  *************************************************************************/
  93. void    DoPrintManege(void)
  94. {
  95.     int    i, canFlag;
  96.     FSSpec    fileSpec;
  97.     SelectFileInfoHandle    nextInfoHandle;        /* 選択ファイル情報リスト        */
  98.     Handle    hReadData;                    /* データ読み込み用ハンドル        */
  99.  
  100.     nextInfoHandle = listData.hStFl;            /* 選択ファイル情報リストの親    */
  101.  
  102.     for (i = 0; i <= listData.CellNum; i++) {        /* 選択ファイル情報リストの子サーチ    */
  103.         if (i == 0) {
  104.             fileSpec = (*listData.hStFl)->flSpec;                /* 親    */
  105.         }
  106.         else {                                        /* 子    */
  107.             if ( (*nextInfoHandle)->nextFile == 0) {
  108.                 break;
  109.             }
  110.             else {
  111.                 fileSpec       = (*(*nextInfoHandle)->nextFile)->flSpec;
  112.                 nextInfoHandle =   (*nextInfoHandle)->nextFile;
  113.             }
  114.         }
  115.  
  116.         hReadData = ReadFileData(fileSpec);            /* データ読み込み        */
  117.  
  118.         HLock   (hReadData);
  119.         canFlag = PrintDoc(hReadData, fileSpec.name);    /* 印刷                */
  120.         HUnlock (hReadData);
  121.  
  122.         DisposeHandle(hReadData);
  123.  
  124.         if ( canFlag ) break;                    /* 印刷はキャンセルされた    */
  125.     }
  126. }
  127.  
  128. /**************************************************************************
  129.  *
  130.  *    FUC    印刷ハンドル確認
  131.  *
  132.  *    IN    無し
  133.  *    OT    無し
  134.  *    EX    hPrint
  135.  *
  136.  *************************************************************************/
  137. void    CheckPrintHandle(void)
  138. {
  139.     if (hPrint == NULL) {
  140.         hPrint = (TPrint **) NewHandle(sizeof(TPrint));
  141.         PrintDefault( hPrint );            /* 現在のドライバの既定値に設定    */
  142. //        PrintValidate( hPrint );
  143.     }
  144. }
  145.  
  146. /**************************************************************************
  147.  *
  148.  *    FUC    印刷ハンドル削除
  149.  *
  150.  *    IN    無し
  151.  *    OT    無し
  152.  *    EX    hPrint
  153.  *
  154.  *************************************************************************/
  155. void    DisposePrintHandle(void)
  156. {
  157.     if (hPrint != NULL) {
  158.         DisposeHandle( (Handle)hPrint );
  159.         hPrint = NULL;
  160.     }
  161. }
  162.  
  163.