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
/
ScrollList.c
< prev
next >
Wrap
Text File
|
1994-11-17
|
4KB
|
132 lines
//******************************************************************************
//* *
//* Macintosh プログラム作成の勉強 *
//* This Program is lesson for Macintohs. *
//* *
//* 1994/ 9/23 By SAGAWA KAZUYOSHI *
//* 1994/11/12 By SAGAWA KAZUYOSHI *
//* *
//******************************************************************************
/*
* インクルード
*/
#include "Constants.h"
#include "ListPrint.h"
//#########################################################################
//
// FUC スクローリングリスト初期配置(配備・組立)
//
// IN 無し
// OT 無し
// EX スクローリングリスト情報構造体
//
//#########################################################################
void ScrollListSetUp(void)
{
Rect listRView; /* リスト表示用Rectangle */
Rect listDataBounds; /* リストの初期配列寸法 */
Point cSize;
SetRect(&listRView, 10, 50, 100, 226);
SetRect(&listDataBounds, 0, 0, 1, 0);
SetPt(&cSize, 0, 0);
listData.hList = LNew( &listRView, /* 表示用 Rectalgle */
&listDataBounds, /* 初期配列寸法 */
cSize, /* 各cellの希望の奥行と幅 */
0, /* resourceID */
thePort, /* */
true, /* */
false, /* hasGrow (scrollBar幅) */
false, /* scrollHoriz (横scrollBar) */
true); /* scrollVert (縦scrollBar) */
listData.CellNum = -1; /* セル数(0〜 -1:未データ) */
LDoDraw(true, listData.hList);
}
/**************************************************************************
*
* FUC スクローリングリスト・セル設定
*
* IN 項目番号 設定文字列 リストハンドル
* OT 無し
* EX 無し
*
*************************************************************************/
void ScrollListSetCell(short item, Str255 theString, ListHandle theListHandle)
{
short theLength;
Cell theCell;
SetPt(&theCell, 0, item);
theLength = theString[0];
LSetCell(&theString[1], theLength, theCell, theListHandle);
}
/**************************************************************************
*
* FUC スクローリングリスト・選択セル削除
*
* IN スクローリングリスト情報のポインタ
* OT true:削除実行 false:削除未実行
* EX 無し
*
*************************************************************************/
int ScrollListDelCell(ListInfoData *lP)
{
int r = false;
Cell theCell;
theCell = LLastClick(lP->hList);
if ( (theCell.v >= 0) && (theCell.v <= lP->CellNum) ) {
LDelRow(1, theCell.v, lP->hList);
lP->DelCell = theCell; /* 削除セル */
if (lP->CellNum >= 0) lP->CellNum--;
(*lP->hList)->lastClick.v = -1;
(*lP->hList)->lastClick.h = -1;
r = true; /* 削除処理を実行した */
}
else {
lP->DelCell.v = -1;
lP->DelCell.h = -1;
SysBeep(0);
}
return( r );
}
/**************************************************************************
*
* FUC スクローリングリスト・セル追加
*
* IN 文字列 スクローリングリスト情報のポインタ
* OT 無し
* EX 無し
*
*************************************************************************/
void ScrollListAddCell(Str255 theString, ListInfoData *lP)
{
int row, item;
item = (*lP->hList)->maxIndex / 2;
row = LAddRow(1, item, lP->hList);
ScrollListSetCell(row, theString, lP->hList);
lP->CellNum = item; /* セル数 */
}
// i = LAddRow(1, 0, listData.hList); /*** DummyDataSet ***/
// ScrollListSetCell(i, "¥pABCDEFG", listData.hList);
// for (j=1; j<=9; j++) {
// i = LAddRow(1, j, listData.hList);
// ScrollListSetCell(i, "¥pabcdefghijklmn", listData.hList);
// }
// i = LAddRow(1, j, listData.hList);
// ScrollListSetCell(i, "¥p1234567890", listData.hList);
//C++ lnew(&ItemRect, &DataBounds, &cSize, 0, thePort, true, false, false, true);