12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #ifndef __AUTOPOPUP_H
- #define __AUTOPOPUP_H
- #include <bfc/ptrlist.h>
- #include <bfc/string/StringW.h>
- class AutoPopupEntry;
- class AutoPopupEntrySort;
- #define SKINPARTID_NONE -1
- class AutoPopup {
- public:
- static int registerGuid(int skinpartid/*SKINPARTID_NONE*/, GUID g, const wchar_t *desc, const wchar_t *prefered_container=NULL, int required=FALSE);
- static int registerGroupId(int skinpartid/*SKINPARTID_NONE*/, const wchar_t *groupid, const wchar_t *desc, const wchar_t *prefered_container=NULL, int required=FALSE);
- static void unregister(int id);
- static int getNumItems();
- static AutoPopupEntry *enumItem(int n);
- static AutoPopupEntry *getByDesc(const wchar_t *desc);
- static void reset();
- static void removeSkinPart(int id);
- static int allocNid();
- static void removeAllAddons();
- static int getNumGuids();
- static GUID enumGuid(int n);
- static int getNumGroups();
- static const wchar_t *enumGroup(int n);
- static const wchar_t *enumGuidDescription(int n);
- static const wchar_t *enumGroupDescription(int n);
- static const wchar_t *getDefaultContainerParams(const wchar_t *groupid, GUID g, int *flag);
- };
- class AutoPopupEntry {
- public:
- AutoPopupEntry(int skinpartid, GUID g, const wchar_t *grpid, const wchar_t *description, const wchar_t *prefered_container=NULL, int required=TRUE) : guid(g), groupid(grpid), desc(description), container(prefered_container), container_how(required), skinpart(skinpartid) { nid = AutoPopup::allocNid(); }
- virtual ~AutoPopupEntry() { }
- GUID getGuid() { return guid; }
- const wchar_t *getGroupId() { return groupid; }
- const wchar_t *getDescription() { return desc; }
- int getNid() { return nid; }
- const wchar_t *getPreferedContainer() { return container; }
- int getContainerHow() { return container_how; }
- int getSkinpart() { return skinpart; }
- private:
- GUID guid;
- StringW groupid;
- StringW desc;
- int nid;
- StringW container;
- int container_how;
- int skinpart;
- };
- class AutoPopupEntrySort {
- public:
- static int compareItem(AutoPopupEntry *p1, AutoPopupEntry *p2) {
- return WCSICMP(p1->getDescription(), p2->getDescription());
- }
- static int compareAttrib(const wchar_t *attrib, AutoPopupEntry *item) {
- return WCSICMP(attrib, item->getDescription());
- }
- };
- #endif
|