home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR19 / OBJ20D.ZIP / MENUITEM.PRG < prev    next >
Text File  |  1993-05-15  |  2KB  |  62 lines

  1. // Clase base para Menu Items
  2. // (C) Antonio Linares, 1993
  3.  
  4. #include "Objects.ch"
  5.  
  6. static nMsgLine
  7.  
  8. //----------------------------------------------------------------------------//
  9.  
  10. CLASS TMenuItem
  11.  
  12.    DATA  nRow, nCol
  13.    DATA  cPrompt, cMsg, cColor
  14.    DATA  bAction
  15.  
  16.    METHOD New( nRow, nCol, cPrompt, cMsg, bAction ) CONSTRUCTOR
  17.    METHOD Display( cClrNormal, cClrHot )
  18.    METHOD SetFocus( lOnOff )
  19.  
  20. ENDCLASS
  21.  
  22. //----------------------------------------------------------------------------//
  23.  
  24. METHOD New( nRow, nCol, cPrompt, cMsg, bAction ) CLASS TMenuItem
  25.  
  26.    DEFAULT bAction := { || nil }, nMsgLine := MaxRow()
  27.  
  28.    ::nRow    = nRow
  29.    ::nCol    = nCol
  30.    ::cPrompt = cPrompt
  31.    ::cMsg    = cMsg
  32.    ::cColor  = "W+/B, R+/B"
  33.    ::bAction = bAction
  34.  
  35. return
  36.  
  37. //----------------------------------------------------------------------------//
  38.  
  39. METHOD Display( cClrNormal, cClrHot ) CLASS TMenuItem
  40.  
  41.    DEFAULT cClrNormal := ::cColor,;
  42.            cClrHot := SubStr( ::cColor, At( ",", ::cColor ) + 1 )
  43.  
  44.    ScrSayHot( ::nRow, ::nCol, ::cPrompt, cClrNormal, cClrHot )
  45.  
  46.    if ! Empty( ::cMsg )
  47.       @ nMsgLine, 0 SAY PadC( ::cMsg, MaxCol() + 1 ) COLOR ::cColor
  48.    endif
  49.  
  50. return
  51.  
  52. //----------------------------------------------------------------------------//
  53.  
  54. METHOD SetFocus( lOnOff ) CLASS TMenuItem
  55.  
  56.    ::Display( If( lOnOff, "N/BG",  "W+/B" ),;
  57.               If( lOnOff, "R+/BG", "R+/B" ) )
  58.  
  59. return
  60.  
  61. //----------------------------------------------------------------------------//
  62.