1 #ifndef _MENU_SERVICE_PROVIDER_
2 #define _MENU_SERVICE_PROVIDER_
3 
4 class screen_generator; // forward reference
5 
6 class menu_service_provider : public pixelmap_prompt_service_provider
7 {
8 public:
9     menu_service_provider();
10 
GetType()11     virtual int GetType() { return GX_TYPE_MENU; }
GetTypeName(widget_info *)12     virtual CString GetTypeName(widget_info *) { return CString("GX_TYPE_MENU"); }
GetShortName()13     virtual CString GetShortName() { return CString("menu"); }
14     virtual CString GetVarDeclaration();
GetControlBlockName()15     virtual CString GetControlBlockName() { return CString("GX_MENU"); }
16 
17     virtual CString DeclarePropertiesStruct();
18     virtual CString WriteExtendedProperties(screen_generator *gen, CString &scope, widget_info *info);
19     virtual CString GetCreateFromDefFunctionName();
20     virtual CString GetCreateFromDefFunction(int version);
21 
22     virtual widget_info *CreateNewInstance(GX_WIDGET *parent);
23     virtual GX_WIDGET *GenerateFromInfo(GX_WIDGET *parent, widget_info *info);
24 
25     virtual void SaveToProject(xml_writer &, studiox_project *project, int display, widget_info *);
26     virtual void ReadFromProject(xml_reader &, studiox_project *project, int display, widget_info *info, ULONG valid_styles);
27 
28     virtual void AssignTextOffset(widget_info *info, int text_x_offset, int text_y_offset);
29     virtual void AssignStyle(widget_info *info, int style);
30 
31     static GX_WIDGET *TopLevelMenuContainerFind(GX_WIDGET *start);
32     void Autosize(widget_info *info);
33 };
34 
35 #endif
36