home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / sybase / starbuck / hpp.z / WPOPMENU.HPP < prev    next >
C/C++ Source or Header  |  1996-10-18  |  4KB  |  152 lines

  1. /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2.    %     Copyright (C) 1994, by WATCOM International Inc.  All rights    %
  3.    %     reserved.  No part of this software may be reproduced or        %
  4.    %     used in any form or by any means - graphic, electronic or       %
  5.    %     mechanical, including photocopying, recording, taping or        %
  6.    %     information storage and retrieval systems - except with the     %
  7.    %     written permission of WATCOM International Inc.                 %
  8.    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  9. */
  10.  
  11. /*************************************************************************
  12.  *
  13.  * WPopupMenu -- Wrapper for the Windows 95 Popup menu control.
  14.  *
  15.  *
  16.  *   Events:
  17.  *
  18.  *      Close --
  19.  *
  20.  *      Select --
  21.  *
  22.  *      InitPopupMenu --
  23.  *
  24.  *************************************************************************/
  25.  
  26. #ifndef _WPOPMENU_HPP_INCLUDED
  27. #define _WPOPMENU_HPP_INCLUDED
  28.  
  29. #ifndef _WNO_PRAGMA_PUSH
  30. #pragma pack(push,8);
  31. #pragma enum int;
  32. #endif
  33.  
  34. #ifndef _WMENU_HPP_INCLUDED
  35. #  include "wmenu.hpp"
  36. #endif
  37. #ifndef _WSTRING_HPP_INCLUDED
  38. #  include "wstring.hpp"
  39. #endif
  40. #ifndef _WVECTOR_HPP_INCLUDED
  41. #  include "wvector.hpp"
  42. #endif
  43.  
  44. extern template WVector<WMenu>;
  45.  
  46. class WWindow;
  47. class WPopupMenu;
  48.  
  49. class WCMCLASS WPopupMenu : public WMenu {
  50.     WDeclareSubclass( WPopupMenu, WMenu );
  51.  
  52.     public:
  53.  
  54.         /**********************************************************
  55.          * Constructors and Destructors
  56.          *********************************************************/
  57.  
  58.         WPopupMenu( const WResourceID & id,
  59.                     WModuleHandle module=_ApplicationModule,
  60.                     WBool loadAccelerators=TRUE,
  61.                     WBool appendAcceleratorName=TRUE );
  62.  
  63.         WPopupMenu( const WChar * text, WBool create=TRUE,
  64.                     WMenuHandle handle=NULLHMNU );
  65.     
  66.         ~WPopupMenu();
  67.     
  68.         /**********************************************************
  69.          * Properties
  70.          *********************************************************/
  71.  
  72.         /**********************************************************
  73.          * Methods
  74.          *********************************************************/
  75.  
  76.         // OnSelected
  77.  
  78.         virtual WBool OnSelected( WBool selected=TRUE );
  79.  
  80.  
  81.         // Track
  82.  
  83.         virtual WBool Track( WWindow *owner,
  84.                              WPoint *initialPosition = NULL,
  85.                              WShort *selectedID=NULL,
  86.                              WBool process=TRUE );
  87.  
  88.         /**********************************************************
  89.          * Others
  90.          *********************************************************/
  91.  
  92.         // OnRemovedFromParent
  93.  
  94.         WBool OnRemovedFromParent( WMenu * parent );
  95.  
  96.         /**********************************************************
  97.          * Overrides
  98.          *********************************************************/
  99.  
  100.         virtual WBool SetText( const WString & text );
  101.     
  102.         virtual WBool Destroy();
  103.  
  104.         virtual WBool SetParent( WObject * parent );
  105.  
  106.         /**********************************************************
  107.          * Data Members
  108.          *********************************************************/
  109.     
  110.     private:
  111.  
  112.         WMenuHandle             _loadedMenu; // menu handle of loaded menu
  113.         WVector< WMenu > *      _parents;
  114. };
  115.  
  116. class WCMCLASS WSystemMenu : public WPopupMenu {
  117.     WDeclareSubclass( WSystemMenu, WPopupMenu );
  118.  
  119.     public:
  120.  
  121.         /**********************************************************
  122.          * Constructors and Destructors
  123.          *********************************************************/
  124.  
  125.         WSystemMenu( WWindow *window, WMenuHandle handle );
  126.  
  127.         ~WSystemMenu();
  128.     
  129.         /**********************************************************
  130.          * Methods
  131.          *********************************************************/
  132.  
  133.         // Track
  134.  
  135.         virtual WBool Track( WWindow *temporaryOwner,
  136.                              WPoint *initialPosition = NULL,
  137.                              WShort *selectedID=NULL,
  138.                              WBool process=TRUE );
  139.  
  140.     private:
  141.  
  142.         WWindow *_realOwner;
  143. };
  144.  
  145. #ifndef _WNO_PRAGMA_PUSH
  146. #pragma enum pop;
  147. #pragma pack(pop);
  148. #endif
  149.  
  150. #endif // _WPOPMENU_HPP_INCLUDED
  151.  
  152.