home *** CD-ROM | disk | FTP | other *** search
/ Kyūkyoku!! X68000 Emulator / X68000Book.dat / mac / OLS / X68000 / Ko-Window / kow142s.lzh / corlib / MgInputSimpleOpen.c < prev    next >
C/C++ Source or Header  |  1994-09-07  |  1KB  |  63 lines

  1. /* Copyright 1994 Ogasawara Hiroyuki (COR.) */
  2.  
  3. #include    "corlib.h"
  4. #include    <HS_wlib.h>
  5.  
  6. #define        INPUTMAX    128
  7.  
  8. static int
  9. Exec( wp, info )
  10. WindowID    wp;
  11. EventInfo    *info;
  12. {
  13.     DrawBuf    dbuf[10];
  14.     MgInput    *mp= WindowGetClientPointer( wp );
  15.     switch( info->option ){
  16.     case EventOpen:
  17.         return    TRUE;
  18.     case EventKey:
  19.         MgInputKey( mp, info->KeyCode, info->ShiftStat );
  20.         return    TRUE;
  21.     case EventClose:
  22.         WindowClose( wp );
  23.         return    TRUE;
  24.     case EventRedraw:
  25.         DrawSetClear( dbuf, mp->input.attr & AttrReverse ?
  26.                         mp->input.attr & 3 : 0 );
  27.         WindowDraw( wp, dbuf, InputSetDraw( dbuf+1, &mp->input )+1 );
  28.         return    TRUE;
  29.     case EventMouseSwitch:
  30.         if( info->LeftON ){
  31.             UserSendOperation( mp->pwp,info, UserString, mp->buf );
  32.             return    TRUE;
  33.         }
  34.         break;
  35.     case EventMouseEnter:
  36.     case EventMouseOut:
  37.         MgInputSetCursorVisible( mp, info->option == EventMouseEnter );
  38.         return    TRUE;
  39.     }
  40.     return    FALSE;
  41. }
  42.  
  43. #define        SCROFFSETH    0
  44. #define        SCROFFSETV    0
  45.  
  46. WindowID
  47. MgInputSimpleOpen( mp, x, y, wp, len, attr, font )
  48. MgInput        *mp;
  49. WindowID    wp;
  50. {
  51.     mp->x= x;
  52.     mp->y= y;
  53.     mp->h= font*len/2+ SCROFFSETH;
  54.     mp->v= font+ SCROFFSETV;
  55.     mp->pwp= wp;
  56.     mp->wp= WindowOpen( x, y, mp->h, mp->v, wp, Exec );
  57.     InputSet( &mp->input, 0, 0, mp->buf, INPUTMAX, attr, font );
  58.     WindowSetClientData( mp->wp, 0, mp );
  59.     WindowRedraw( mp->wp );
  60.     return    mp->wp;
  61. }
  62.  
  63.