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 / Dialog.c < prev    next >
Text File  |  1994-11-25  |  4KB  |  149 lines

  1. //******************************************************************************
  2. //*                                            *
  3. //*    Macintosh プログラム作成の勉強                    *
  4. //*    This Program is lesson for Macintohs.                    *
  5. //*                                            *
  6. //*    1994/ 5/11 By SAGAWA KAZUYOSHI                        *
  7. //*                                            *
  8. //******************************************************************************
  9. #include    "Constants.h"
  10. #include    "ListPrint.h"
  11.  
  12. void    DrawDefault(DialogPtr, short);
  13.  
  14. /**************************************************************************
  15.  *
  16.  *    FUC    タブサイズ・文字サイズ・文字種の設定
  17.  *
  18.  *    IN    無し
  19.  *    OT    無し
  20.  *    EX    無し
  21.  *
  22.  *************************************************************************/
  23. void    SetTabsFontDialog(void)
  24. {
  25.     DialogPtr    atDialog;
  26.     short        itemNo, itemType, i;
  27.     long        Number;
  28.     Str255        pText, ThisProgram;
  29.     char        tabValue[4];
  30.     Handle        okHndl, fontHndl, sizeHndl, tabsHndl, stTxtHndl;
  31.     Rect        box, stTxtbox;
  32.     GrafPtr        savePort;
  33.     TextStyle    setStyle;
  34.  
  35.     atDialog = GetNewDialog(tabsFontDailogID, 0, (WindowPtr)-1L);
  36.     GetPort(&savePort);
  37.     SetPort(atDialog);
  38.  
  39.     Number = (long)tabsItemNow;
  40.     NumToString(Number, pText);
  41.     GetDItem(atDialog, dLogTabsEdit, &itemType, (Handle*)&tabsHndl, &box);        /* 初期設定    */
  42.     SetIText(tabsHndl, pText);
  43.  
  44.     GetDItem(atDialog, dLogFontType, &itemType, (Handle*)&fontHndl, &box);        /* 初期設定    */
  45.     SetCtlValue((ControlHandle)fontHndl, fontItemNow);
  46.     GetDItem(atDialog, dLogFontSize, &itemType, (Handle*)&sizeHndl, &box);
  47.     SetCtlValue((ControlHandle)sizeHndl, sizeItemNow);
  48.  
  49.     GetDItem(atDialog, dLogStText, &itemType, (Handle*)&stTxtHndl, &stTxtbox);
  50.     GetIText(stTxtHndl, ThisProgram);
  51.  
  52.     GetDItem(atDialog, ok, &itemType, (Handle*)&okHndl, &box);
  53.     DrawDefault(atDialog, ok);
  54.  
  55.     do {
  56.         ModalDialog(0, &itemNo);
  57.  
  58.         switch (itemNo) {
  59.             case ok:
  60.                 fontItemNow = GetCtlValue((ControlHandle)fontHndl);
  61.                 sizeItemNow = GetCtlValue((ControlHandle)sizeHndl);
  62.                 tabsItemNow = (int)Number;
  63.  
  64.                 if (Number < 10) {
  65.                     i = 1;
  66.                     tabValue[0] = tabsItemNow + '0';
  67.                 }
  68.                 else {
  69.                     i = 2;
  70.                     tabValue[0] = (tabsItemNow % 100) / 10 + '0';
  71.                     tabValue[1] = (tabsItemNow %  10)      + '0';
  72.                 }
  73.                 TESetText(tabValue, i, TEHtab);
  74.                 CheckFontMenu(fontItemNow);
  75.                 CheckSizeMenu(sizeItemNow);
  76.  
  77.             case cancel:
  78.                 break;
  79.             case dLogTabsEdit:        /* Tabs        */
  80.                 GetIText(tabsHndl, pText);
  81.                 StringToNum(pText, &Number);
  82.  
  83.                 if (Number <= 0 || Number > 32) {
  84.                     HiliteControl((ControlHandle)okHndl, 255);
  85.                 }
  86.                 else {
  87.                     HiliteControl((ControlHandle)okHndl, 0);
  88.                 }
  89.                 break;
  90.  
  91. // @@@文字種・文字サイズを変更した状態を表示したい@@@
  92. // @@@TESetStyleを実行させると落ちる@@@
  93. // TextFont() TextSize() 表示がすこしおかしい
  94.             case dLogFontType:        /* 文字種選択        */
  95.             case dLogFontSize:        /* 文字サイズ選択    */
  96.                 Number = GetCtlValue((ControlHandle)fontHndl);
  97.                 GetItem(GetMHandle(fontMenuID), Number, pText);
  98.                 GetFNum(pText, (short*)&Number);
  99.                 TextFont(Number);
  100.  
  101.                 Number = GetCtlValue((ControlHandle)sizeHndl);
  102.                 GetItem(GetMHandle(sizeMenuID), Number, pText);
  103.                 StringToNum(pText, &Number);
  104.                 TextSize(Number);
  105.  
  106. //                TextBox(&ThisProgram[1], ThisProgram[0], &stTxtbox, 0);
  107.  
  108. //                TESetStyle(doFont, &setStyle, true, stTxtHndl);
  109. //                TESetSelect(1, 36, stTxtHndl);
  110. //                TESetStyle(doSize, &setStyle, false, stTxtHndl);
  111.                 break;
  112.             default:
  113.                 break;
  114.         }
  115.     } while (itemNo > cancel);
  116.  
  117.     DisposeDialog(atDialog);
  118.     SetPort(savePort);
  119.  
  120. //case 6:        /* Font        */
  121. //case 7:        /* Size        */
  122. //                Value = GetCtlValue((ControlHandle)tabsHndl);
  123. //                GetCTitle((ControlHandle)tabsHndl, pText);
  124. //Bomb                Htext = TEGetText((ControlHandle)tabsHndl);
  125. //                StringToNum(**Htext, &atNum);
  126. }
  127.  
  128. /**************************************************************************
  129.  *
  130.  *    FUC    ボタンの縁取りを行う
  131.  *
  132.  *    IN    ダイアログポインタ アイテム番号
  133.  *    OT    無し
  134.  *
  135.  *************************************************************************/
  136. void    DrawDefault(DialogPtr atDialog, short itemNo)
  137. {
  138.     short        itemType;
  139.     Rect        rim;
  140.     ControlHandle    cntlHndl;
  141.  
  142.     GetDItem(atDialog, itemNo, &itemType, (Handle*)&cntlHndl, &rim);
  143.     InsetRect(&rim, -4, -4);
  144.     PenSize(3, 3);
  145.     PenMode(patCopy);
  146.     FrameRoundRect(&rim, 16, 16);        /* 縁取り描画    */
  147.     PenSize(1, 1);
  148. }
  149.