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 >
Text File  |  1994-11-17  |  4KB  |  132 lines

  1. //******************************************************************************
  2. //*                                            *
  3. //*    Macintosh プログラム作成の勉強                    *
  4. //*    This Program is lesson for Macintohs.                    *
  5. //*                                            *
  6. //*    1994/ 9/23 By SAGAWA KAZUYOSHI                        *
  7. //*    1994/11/12 By SAGAWA KAZUYOSHI                        *
  8. //*                                            *
  9. //******************************************************************************
  10. /*
  11.  *    インクルード
  12.  */
  13. #include    "Constants.h"
  14. #include    "ListPrint.h"
  15.  
  16.  
  17. //#########################################################################
  18. //
  19. //    FUC    スクローリングリスト初期配置(配備・組立)
  20. //
  21. //    IN    無し
  22. //    OT    無し
  23. //    EX    スクローリングリスト情報構造体
  24. //
  25. //#########################################################################
  26. void    ScrollListSetUp(void)
  27. {
  28.     Rect    listRView;            /* リスト表示用Rectangle                */
  29.     Rect    listDataBounds;        /* リストの初期配列寸法                */
  30.     Point    cSize;
  31.  
  32.     SetRect(&listRView,     10, 50, 100, 226);
  33.     SetRect(&listDataBounds, 0, 0,  1, 0);
  34.  
  35.     SetPt(&cSize, 0, 0);
  36.  
  37.     listData.hList = LNew(    &listRView,        /* 表示用 Rectalgle            */
  38.                     &listDataBounds,    /* 初期配列寸法            */
  39.                      cSize,            /* 各cellの希望の奥行と幅        */
  40.                      0,            /* resourceID                */
  41.                      thePort,        /* */
  42.                      true,            /* */
  43.                      false,            /* hasGrow    (scrollBar幅)        */
  44.                      false,            /* scrollHoriz    (横scrollBar)        */
  45.                      true);            /* scrollVert    (縦scrollBar)        */
  46.  
  47.     listData.CellNum = -1;                /* セル数(0〜  -1:未データ)    */
  48.  
  49.     LDoDraw(true, listData.hList);
  50. }
  51.  
  52. /**************************************************************************
  53.  *
  54.  *    FUC    スクローリングリスト・セル設定
  55.  *
  56.  *    IN    項目番号 設定文字列 リストハンドル
  57.  *    OT    無し
  58.  *    EX    無し
  59.  *
  60.  *************************************************************************/
  61. void    ScrollListSetCell(short item, Str255 theString, ListHandle theListHandle)
  62. {
  63.     short    theLength;
  64.     Cell    theCell;
  65.  
  66.     SetPt(&theCell, 0, item);
  67.     theLength = theString[0];
  68.     LSetCell(&theString[1], theLength, theCell, theListHandle);
  69. }
  70.  
  71. /**************************************************************************
  72.  *
  73.  *    FUC    スクローリングリスト・選択セル削除
  74.  *
  75.  *    IN    スクローリングリスト情報のポインタ
  76.  *    OT    true:削除実行   false:削除未実行
  77.  *    EX    無し
  78.  *
  79.  *************************************************************************/
  80. int    ScrollListDelCell(ListInfoData *lP)
  81. {
  82.     int    r = false;
  83.     Cell    theCell;
  84.  
  85.     theCell = LLastClick(lP->hList);
  86.     if ( (theCell.v >= 0) && (theCell.v <= lP->CellNum) ) {
  87.         LDelRow(1, theCell.v, lP->hList);
  88.         lP->DelCell = theCell;                /* 削除セル        */
  89.         if (lP->CellNum >= 0) lP->CellNum--;
  90.  
  91.         (*lP->hList)->lastClick.v = -1;
  92.         (*lP->hList)->lastClick.h = -1;
  93.         r = true;                        /* 削除処理を実行した    */
  94.     }
  95.     else {
  96.         lP->DelCell.v = -1;
  97.         lP->DelCell.h = -1;
  98.         SysBeep(0);
  99.     }
  100.     return( r );
  101. }
  102.  
  103. /**************************************************************************
  104.  *
  105.  *    FUC    スクローリングリスト・セル追加
  106.  *
  107.  *    IN    文字列 スクローリングリスト情報のポインタ
  108.  *    OT    無し
  109.  *    EX    無し
  110.  *
  111.  *************************************************************************/
  112. void    ScrollListAddCell(Str255 theString, ListInfoData *lP)
  113. {
  114.     int    row, item;
  115.  
  116.     item = (*lP->hList)->maxIndex / 2;
  117.     row  = LAddRow(1, item, lP->hList);
  118.     ScrollListSetCell(row, theString, lP->hList);
  119.  
  120.     lP->CellNum = item;                        /* セル数    */
  121. }
  122.  
  123. //    i = LAddRow(1, 0, listData.hList);        /*** DummyDataSet ***/
  124. //    ScrollListSetCell(i, "¥pABCDEFG", listData.hList);
  125. //    for (j=1; j<=9; j++) {
  126. //        i = LAddRow(1, j, listData.hList);
  127. //        ScrollListSetCell(i, "¥pabcdefghijklmn", listData.hList);
  128. //    }
  129. //    i = LAddRow(1, j, listData.hList);
  130. //    ScrollListSetCell(i, "¥p1234567890", listData.hList);
  131.  
  132. //C++    lnew(&ItemRect, &DataBounds, &cSize, 0, thePort, true, false, false, true);