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 >
Wrap
Text File
|
1994-11-25
|
4KB
|
149 lines
//******************************************************************************
//* *
//* Macintosh プログラム作成の勉強 *
//* This Program is lesson for Macintohs. *
//* *
//* 1994/ 5/11 By SAGAWA KAZUYOSHI *
//* *
//******************************************************************************
#include "Constants.h"
#include "ListPrint.h"
void DrawDefault(DialogPtr, short);
/**************************************************************************
*
* FUC タブサイズ・文字サイズ・文字種の設定
*
* IN 無し
* OT 無し
* EX 無し
*
*************************************************************************/
void SetTabsFontDialog(void)
{
DialogPtr atDialog;
short itemNo, itemType, i;
long Number;
Str255 pText, ThisProgram;
char tabValue[4];
Handle okHndl, fontHndl, sizeHndl, tabsHndl, stTxtHndl;
Rect box, stTxtbox;
GrafPtr savePort;
TextStyle setStyle;
atDialog = GetNewDialog(tabsFontDailogID, 0, (WindowPtr)-1L);
GetPort(&savePort);
SetPort(atDialog);
Number = (long)tabsItemNow;
NumToString(Number, pText);
GetDItem(atDialog, dLogTabsEdit, &itemType, (Handle*)&tabsHndl, &box); /* 初期設定 */
SetIText(tabsHndl, pText);
GetDItem(atDialog, dLogFontType, &itemType, (Handle*)&fontHndl, &box); /* 初期設定 */
SetCtlValue((ControlHandle)fontHndl, fontItemNow);
GetDItem(atDialog, dLogFontSize, &itemType, (Handle*)&sizeHndl, &box);
SetCtlValue((ControlHandle)sizeHndl, sizeItemNow);
GetDItem(atDialog, dLogStText, &itemType, (Handle*)&stTxtHndl, &stTxtbox);
GetIText(stTxtHndl, ThisProgram);
GetDItem(atDialog, ok, &itemType, (Handle*)&okHndl, &box);
DrawDefault(atDialog, ok);
do {
ModalDialog(0, &itemNo);
switch (itemNo) {
case ok:
fontItemNow = GetCtlValue((ControlHandle)fontHndl);
sizeItemNow = GetCtlValue((ControlHandle)sizeHndl);
tabsItemNow = (int)Number;
if (Number < 10) {
i = 1;
tabValue[0] = tabsItemNow + '0';
}
else {
i = 2;
tabValue[0] = (tabsItemNow % 100) / 10 + '0';
tabValue[1] = (tabsItemNow % 10) + '0';
}
TESetText(tabValue, i, TEHtab);
CheckFontMenu(fontItemNow);
CheckSizeMenu(sizeItemNow);
case cancel:
break;
case dLogTabsEdit: /* Tabs */
GetIText(tabsHndl, pText);
StringToNum(pText, &Number);
if (Number <= 0 || Number > 32) {
HiliteControl((ControlHandle)okHndl, 255);
}
else {
HiliteControl((ControlHandle)okHndl, 0);
}
break;
// @@@文字種・文字サイズを変更した状態を表示したい@@@
// @@@TESetStyleを実行させると落ちる@@@
// TextFont() TextSize() 表示がすこしおかしい
case dLogFontType: /* 文字種選択 */
case dLogFontSize: /* 文字サイズ選択 */
Number = GetCtlValue((ControlHandle)fontHndl);
GetItem(GetMHandle(fontMenuID), Number, pText);
GetFNum(pText, (short*)&Number);
TextFont(Number);
Number = GetCtlValue((ControlHandle)sizeHndl);
GetItem(GetMHandle(sizeMenuID), Number, pText);
StringToNum(pText, &Number);
TextSize(Number);
// TextBox(&ThisProgram[1], ThisProgram[0], &stTxtbox, 0);
// TESetStyle(doFont, &setStyle, true, stTxtHndl);
// TESetSelect(1, 36, stTxtHndl);
// TESetStyle(doSize, &setStyle, false, stTxtHndl);
break;
default:
break;
}
} while (itemNo > cancel);
DisposeDialog(atDialog);
SetPort(savePort);
//case 6: /* Font */
//case 7: /* Size */
// Value = GetCtlValue((ControlHandle)tabsHndl);
// GetCTitle((ControlHandle)tabsHndl, pText);
//Bomb Htext = TEGetText((ControlHandle)tabsHndl);
// StringToNum(**Htext, &atNum);
}
/**************************************************************************
*
* FUC ボタンの縁取りを行う
*
* IN ダイアログポインタ アイテム番号
* OT 無し
*
*************************************************************************/
void DrawDefault(DialogPtr atDialog, short itemNo)
{
short itemType;
Rect rim;
ControlHandle cntlHndl;
GetDItem(atDialog, itemNo, &itemType, (Handle*)&cntlHndl, &rim);
InsetRect(&rim, -4, -4);
PenSize(3, 3);
PenMode(patCopy);
FrameRoundRect(&rim, 16, 16); /* 縁取り描画 */
PenSize(1, 1);
}