home *** CD-ROM | disk | FTP | other *** search
- #ifndef _MenuItemWindow_h_
- #define _MenuItemWindow_h_
-
- #include "Window.h"
-
- #define kMenuItemHeight 20
-
- #define kMaxMenuItems 30
- #define kMaxMenuItemName 32
-
- class MenuItemWindow : public Window
- {
- public:
- MenuItemWindow( void );
-
- void SetMaxItems( uchar num ); // user should set
- void AddItem( uchar num , char *name , Boolean active ); // user should set
- void RemoveItem( uchar num );
-
- void MenuItemRect( const rect *menuItem ); // use should NOT set
-
- void SetType( uchar t ); // user should NOT set
-
- void SetActive( Boolean a );
-
- uchar GetNumItems( void );
-
- // generic stuff
- virtual Boolean Init( void );
-
- virtual void HandleMouseClick( Boolean down , point where );
- virtual void HandleMouseMove( point where );
- virtual Boolean PointInWindow( point where );
-
- virtual Boolean Front( void );
- virtual void SetFront( Boolean f );
-
- virtual void DrawToScreen( rect *where , Boolean backGround = false );
-
- private:
-
- void CalcWindowSize( void );
- void FirstDraw( void );
- void WriteName( uchar which , Boolean highlighted );
- void SendSelectEvent( uchar num );
-
- void AddItemToUpdate( uchar which );
-
- uchar selectedItem;
-
- uchar type;
- uchar numItems;
- char items[ kMaxMenuItems ][ kMaxMenuItemName ];
- Boolean itemActive[ kMaxMenuItems ];
-
- };
-
- void InitMenuItemWindow( void );
-
- #endif