00001 00002 // Name: ax_menu_resource.h 00003 // Purpose: Resource/menu interaction classes 00004 // Author: Julian Smart 00005 // Modified by: 00006 // Created: 2009-03-20 00007 // RCS-ID: 00008 // Copyright: (c) Julian Smart 00009 // Licence: New BSD License 00011 00012 #ifndef _AX_MENU_RESOURCE_H_ 00013 #define _AX_MENU_RESOURCE_H_ 00014 00015 /* 00016 * Includes 00017 */ 00018 00019 #include "ax/ax_menu.h" 00020 00021 /* 00022 * Forward declarations 00023 */ 00024 00025 class AxResource; 00026 00033 class AxMenuItemResourceData: public AxMenuItemData 00034 { 00035 DECLARE_CLASS( AxMenuItemResourceData ) 00036 00037 public: 00038 // Constructors 00039 00040 AxMenuItemResourceData(const AxMenuItemResourceData& data) { Init(); Copy(data); } 00041 AxMenuItemResourceData(AxResource* resource = NULL) { Init(); m_resource = resource; } 00042 ~AxMenuItemResourceData() {} 00043 00044 // Operations 00045 00047 void Init() { m_resource = NULL; } 00048 00049 void Copy(const AxMenuItemResourceData& data) { m_resource = data.m_resource; } 00050 void operator=(const AxMenuItemResourceData& data) { Copy(data); } 00051 00052 virtual AxMenuItemData* Clone() const { return new AxMenuItemResourceData(*this); } 00053 00054 AxResource* GetResource() const { return m_resource; } 00055 void SetResource(AxResource* resource) { m_resource = resource; } 00056 00057 protected: 00058 AxResource* m_resource; 00059 }; 00060 00061 #endif 00062 // _AX_MENU_RESOURCE_H_