home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1999 February / VPR9902A.BIN / FFILLY / UG / help.tfy < prev    next >
Text File  |  1998-04-29  |  8KB  |  213 lines

  1.  
  2.     // GLOBAL VAL----------------------------------------------------------
  3.   int hFSize;
  4.   int AllKey;
  5.   int KeyX[], KeyY[];
  6.   int KeyW[];
  7.   int hVsVal;   // scroll val
  8.   int hVsMax;   // max scroll val (隠れ行数)
  9.  
  10.        // HELP ------------------------------------------------------------
  11.   int makeHelp( int winnum, int mwn, int basepic, int x, int y,
  12.                                                  str pageisc, str fname ) {
  13.     int helpwin, pic;
  14.     int w, h;
  15.     int n, i, k;
  16.     int AllHBut;
  17.     int TxtPic;    // FOR HELP TEXT
  18.     int ZuPic;     // 図解ピク
  19.     str picname;   // 図解ピクファイル名
  20.     str isc;
  21.     str previsc[];
  22.     int pisize;
  23.  
  24.     isc = "Config";
  25.     AllHBut = GetIniInt( isc, "AllHBut", 4, fname );
  26.     w = AllHBut * 80 + 20;
  27.     h = 435;
  28.     picname = GetIniStr( isc, "PicName", "", fname );
  29.     x = scrW/2 - w/2;
  30.     y = 0;
  31.     pisize = 0;
  32.  
  33.     GB_Cap[0]="";  // NON 3D
  34.     inputButArr( "", w-25,-1, 20,15, -2, 3,  1,2 ); // SCROLL BUT
  35.     GB_Cap[1] = "▲"; GB_Y[1] = 30;
  36.     GB_Cap[2] = "▼"; GB_Y[2] = h-20;
  37.     inputButArr( "", -1,5, 80,20, -2, 3,  3, AllHBut +2 );
  38.     for ( i = 0; i < AllHBut; i = i + 1 ) {
  39.       GB_Cap[i+3] = GetIniStr( isc, StrPrint( "ButCap-%ld", i ), "", fname );
  40.       GB_X[i+3] = 10 + i * 80;
  41.     }
  42.        // ウインドウ作成
  43.     pic = CreatePic( basepic, w, h );
  44.     TextColor( 0, 0, 0 ); BackMode(1);
  45.     makeWindow( winnum, pic, 0,0, w,h, AllHBut+2, 0, 0xc0c0c0 );
  46.  
  47.     TxtPic = CreatePic( pic, w-30, GetIniInt( isc, "TxtPic_H", 660, fname ) );
  48.     if( picname == ""){ ZuPic=pic; }
  49.     else{
  50.       picname = StrPrint( "%s%s", prgDir, picname );
  51.       if( IsExist( picname )==1){ ZuPic = LoadPic( picname ); }
  52.       else{                       ZuPic = pic; }
  53.     }
  54.      // HELP SCR
  55.     paintButton( pic, 5,30, w-30,h-35, -2, 0x808080, 0xffffff );
  56.      // SCROLL BASE
  57.     paintButton( pic, w-25,45, 20,h-65, -2, 0x808080, 0xffffff );
  58.      // MAKE TEXT
  59.     makeHelpText( TxtPic, ZuPic, 5,30, w-30, h-35, pageisc, fname );
  60.  
  61.     hVsVal=0;
  62.     paintHelp( pic, TxtPic, w-30, h-35 ); // SLIDER && TEXT
  63.  
  64.     CapTitle( " HELP" );
  65.     helpwin = OpenWin( pic, x,y, w,h, 0,0 );
  66.  
  67.     mes( USER ){
  68.       if( GetHiWord( MesP1 ) == winnum ){
  69.         n = GetLowWord( MesP1 );
  70.         if( n == 1 || n == 2){           // SCROLL
  71.           Scroll( pic, TxtPic, w-30, h-35, n-1 );
  72.         }
  73.         if( n >= 3 && n < AllHBut+2 ){   //  CONTENTS
  74.           i = n -3;
  75.           if( i == 1 ){ // PREIOUSE
  76.             if( pisize > 0 ){
  77.               pageisc = previsc[ pisize ]; pisize = pisize -1;
  78.             }
  79.           }
  80.           else{ //  CONTENTS
  81.             pisize = pisize +1; previsc[ pisize ] = pageisc;
  82.             pageisc
  83.                = GetIniStr( isc, StrPrint( "ButCap-%ld", i ), "", fname );
  84.           }
  85.           makeHelpText( TxtPic, ZuPic, 5,30, w-30, h-35, pageisc, fname );
  86.           hVsVal = 0;
  87.           paintHelp( pic, TxtPic, w-30, h-35 );
  88.         }
  89.         if( n == AllHBut +2 ){   //  EXIT
  90.           mes( TIME ){
  91.             step( 5 ){
  92.               del_us;
  93.               PostMes( USER, MakeLong( 1000, winnum ) );
  94.               ,
  95.               DelPic( pic ); DelPic( TxtPic );
  96.               if( picname != "" ){ DelPic( ZuPic ); }
  97.               CloseWin( helpwin );
  98.               WinFocus = mwn;
  99.               del_me;
  100.             }
  101.           } // mes end
  102.         }
  103.       } // if winnum end
  104.     } // mesUSER end
  105.  
  106.     mes( LBDOWN ){
  107.       k = hVsVal*( hFSize+5 );        // スクロール分
  108.       for( i=0; i <= AllKey; i=i+1 ){
  109.         if( MesP3 > 30 &&
  110.             KeyX[i]   <= MesP2 && MesP2 < KeyX[i]+KeyW[i] &&
  111.             KeyY[i]-k <= MesP3 && MesP3 < KeyY[i]-k+hFSize ){
  112.           pisize = pisize +1; previsc[ pisize ] = pageisc; // PREV
  113.           pageisc
  114.             = GetIniStr( pageisc, StrPrint( "KeyJump-%ld", i ), "", fname );
  115.           makeHelpText( TxtPic, ZuPic, 5,30, w-30, h-35, pageisc, fname );
  116.           hVsVal=0;
  117.           paintHelp( pic, TxtPic, w-30, h-35 );
  118.           break;
  119.         }
  120.       }
  121.     } // mes LB end
  122.   } // makeHelp end
  123.  
  124.  
  125.     // PAINT HELP ---------------------------------------------------------
  126.   int paintHelp( int pic, int TxtPic, int w, int h ){
  127.     int pos;
  128.     paintButton( pic, w+6,46, 18,h-32, 0x000000, -2, -2 ); // SCROLL BASE
  129.     if( hVsMax > 0 ){ pos = ( h-45 ) / hVsMax *hVsVal; }   // h-45=MOVABLE DIST
  130.     else{ pos = 0; }
  131.     paintButton( pic, w+6,46+pos, 18,14, 0xc0c0c0, 0xffffff, 0x808080 );
  132.     MovePic( TxtPic, 1,hVsVal*( hFSize+5 )+1, w-2,h-2,  pic, 6,31 );
  133.   } // paintHelp end
  134.  
  135.  
  136.     // SCROLL -------------------------------------------------------------
  137.   int Scroll( int pic, int TxtPic, int w, int h, int d ){
  138.     mes( TIME ){
  139.       step( 2 ){
  140.         if( d == 0 && hVsVal > 0 ){      hVsVal = hVsVal-1; }
  141.         if( d == 1 && hVsVal < hVsMax ){ hVsVal = hVsVal+1; }
  142.         paintHelp( pic, TxtPic, w, h );
  143.       }
  144.     }
  145.     mes( LBUP ){ del_us; del_me; }
  146.   } // Scroll end
  147.   
  148.   
  149.     // TEXT ---------------------------------------------------------------
  150.   int makeHelpText( int TxtPic, int ZuPic, int x, int y, int w, int h,
  151.                                                   str isc, str fname ){
  152.     int i;
  153.     int hgyo;
  154.     int panelh;
  155.     int headh;
  156.     int allpic;
  157.     int px, py, pw, ph, psx, psy;
  158.     str dat;
  159.  
  160.     hFSize = GetIniInt( isc, "FSize", 15, fname );
  161.     hgyo   = GetIniInt( isc, "HGyo", h/20, fname );
  162.     headh  = ( hFSize+5 )*3;
  163.     panelh = ( hFSize+5 )*hgyo+headh;
  164.     paintButton( TxtPic, 0,0, w, panelh, 0x808000, -2, -2 );
  165.  
  166.     TextColor( 255, 255, 255 ); BackMode(1);
  167.       // TYTLE
  168.     dat = GetIniStr( isc, "Tytle", "", fname );
  169.     SetFont( hFSize+5,"MS 明朝",128,0,0,0,600 ); 
  170.     TextWrite( dat, TxtPic, 15, hFSize );
  171.       // CONTENTS
  172.     SetFont( hFSize,"MS 明朝",128,0,0,0,400 ); 
  173.     for( i=0; i < hgyo; i=i+1 ){
  174.       dat = GetIniStr( isc, StrPrint("h%ld", i ), "", fname );
  175.       TextWrite( dat, TxtPic, 15, headh + i*( hFSize+5 ) );
  176.     }
  177.       // KEYWORD
  178.     AllKey = GetIniInt(isc, "AllKey", 0, fname );
  179.     if( AllKey > 0 ){
  180.       TextColor( 0, 255, 255 ); BackMode(0); BgColor( 0, 128, 128 );
  181.       for( i=0; i < AllKey; i=i+1 ){
  182.         dat = GetIniStr( isc, StrPrint("KeyWord-%ld", i ), "", fname );
  183.         KeyX[i] = 15
  184.            + GetIniInt( isc, StrPrint("KXn-%ld", i ), 0, fname ) *hFSize;
  185.         KeyY[i] = headh
  186.            + GetIniInt( isc, StrPrint("KYn-%ld", i ), 0, fname ) *( hFSize+5 );
  187.         KeyW[i] = GetIniInt( isc, StrPrint("KWn-%ld", i ), 0, fname )*hFSize;
  188.         TextWrite( dat, TxtPic, KeyX[i], KeyY[i] );
  189.       }
  190.       for( i=0; i < AllKey; i=i+1 ){  // 座標補正(TextWriteの関係上)
  191.         KeyX[i] = x+KeyX[i]; KeyY[i] = y+KeyY[i];
  192.       }
  193.     } // if end
  194.       // 図解ピクチャ
  195.     allpic = GetIniInt( isc, "AllPic", 0, fname );
  196.     if( allpic>0 ){
  197.       for( i=0; i < allpic; i=i+1 ){
  198.         px = 15
  199.           +GetIniInt( isc, StrPrint("PXn-%ld", i ), 0, fname ) *hFSize;
  200.         py = headh
  201.           +GetIniInt( isc, StrPrint("PYn-%ld", i ), 0, fname ) *( hFSize+5 );
  202.         pw = GetIniInt( isc, StrPrint("PW-%ld", i ), 10, fname );
  203.         ph = GetIniInt( isc, StrPrint("PH-%ld", i ), 10, fname );
  204.         psx= GetIniInt( isc, StrPrint("PSrcX-%ld", i ), 0, fname );
  205.         psy= GetIniInt( isc, StrPrint("PSrcY-%ld", i ), 0, fname );
  206.         MovePic( ZuPic, psx,psy, pw,ph, TxtPic, px,py );
  207.       }
  208.     } // if end
  209.  
  210.     hVsMax = hgyo+3 -h/( hFSize+5 );  // MAX SCROLL VAL (隠れ行数)
  211.   } // makeHelpText end
  212.  
  213.