Go to the
documentation of this file.
00001 #ifndef __GENERIC_MENU_H__
00002 #define __GENERIC_MENU_H__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00047 #include <kaydaradef.h>
00048 #ifndef FBSDK_DLL
00049
00050 #define FBSDK_DLL K_DLLEXPORT
00051 #endif
00052
00053 #include <fbsdk/fbcomponent.h>
00054 #include <fbcontrols/fbcontrols.h>
00055
00056 K_FORWARD( IKtObject );
00057
00058
00059 #ifdef FBSDKUseNamespace
00060 namespace FBSDKNamespace {
00061 #endif
00062
00063 __FB_FORWARD( FBGenericMenuItem );
00064 __FB_FORWARD( FBGenericMenu );
00065 __FB_FORWARD( FBMenuManager );
00066 FB_DEFINE_COMPONENT( FBSDK_DLL, GenericMenuItem );
00067 FB_DEFINE_COMPONENT( FBSDK_DLL, GenericMenu );
00068 FB_DEFINE_COMPONENT( FBSDK_DLL, MenuManager );
00069
00080 class FBSDK_DLL FBGenericMenuItem : public FBComponent {
00081 __FBClassDeclare( FBGenericMenuItem, FBComponent );
00082 public:
00083 FBGenericMenuItem(HIObject pObject);
00084
00085 FBPropertyString Caption;
00086 FBPropertyInt Id;
00087 FBPropertyBool Enable;
00088 FBPropertyGenericMenu Menu;
00089 };
00090
00126 class FBSDK_DLL FBGenericMenu : public FBComponent {
00127 __FBClassDeclare( FBGenericMenu, FBComponent );
00128 public:
00131 FBGenericMenu(HIObject pObject=NULL);
00132
00135 virtual void FBDelete() override;
00136
00141 FBGenericMenuItem* GetFirstItem();
00142
00147 FBGenericMenuItem* GetLastItem();
00148
00153 FBGenericMenuItem* GetNextItem(FBGenericMenuItem* pItem);
00154
00159 FBGenericMenuItem* GetPrevItem(FBGenericMenuItem* pItem);
00160
00165 FBGenericMenuItem* GetItem( int pItemId );
00166
00173 FBGenericMenuItem* InsertFirst(const char* pItemName, int pItemId, FBGenericMenu* pMenu = NULL);
00174
00181 FBGenericMenuItem* InsertLast(const char* pItemName, int pItemId, FBGenericMenu* pMenu = NULL);
00182
00190 FBGenericMenuItem* InsertAfter(FBGenericMenuItem* pBeforeItem, const char* pItemName, int pItemId, FBGenericMenu* pMenu = NULL);
00191
00199 FBGenericMenuItem* InsertBefore(FBGenericMenuItem* pAfterItem, const char* pItemName, int pItemId, FBGenericMenu* pMenu = NULL);
00200
00204 void DeleteItem(FBGenericMenuItem* pToDelete);
00205
00213 FBGenericMenuItem* Execute(int pX, int pY, bool pRightAlign = true);
00214
00215
00216 FBPropertyEvent OnMenuActivate;
00217 private:
00218 friend class FBMenuManager;
00219 friend class DataFBMenuManager;
00220 friend class DataFBGenericMenu;
00221 };
00222
00248 class FBSDK_DLL FBMenuManager : public FBComponent {
00249 __FBClassDeclare( FBMenuManager, FBComponent );
00250 public:
00254 FBMenuManager();
00255
00262 FBGenericMenu* GetMenu(const char* pPath);
00263
00269 FBGenericMenuItem* InsertFirst(const char* pMenuPath, const char* pMenuName);
00270
00276 FBGenericMenuItem* InsertLast(const char* pMenuPath, const char* pMenuName);
00277
00283 FBGenericMenuItem* InsertBefore(const char* pMenuPath, const char* pAfterMenuName, const char* pMenuName);
00284
00290 FBGenericMenuItem* InsertAfter(const char* pMenuPath, const char* pBeforeMenuName, const char* pMenuName);
00291
00298 void SetItemEnable(const char* pMenuPath, int pItemId, bool pEnable );
00299
00306 bool IsItemEnable(const char* pMenuPath, int pItemId);
00307 private:
00308 FBGenericMenuItem* GetMenuItem(const char* pMenuPath, const char* pMenuName, int pId );
00309 };
00310
00311
00312
00313 #ifdef FBSDKUseNamespace
00314 }
00315 #endif
00316
00317 #endif