| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | 
							- #ifndef _APPCMDS_H
 
- #define _APPCMDS_H
 
- #include <bfc/dispatch.h>
 
- #include <bfc/depend.h>
 
- #include <bfc/common.h>
 
- #include <bfc/string/StringW.h>
 
- #include <bfc/ptrlist.h>
 
- class DragItem;
 
- // this will be fully dispatched later on
 
- class AppCmds : public Dispatchable
 
- {
 
- public:
 
- 	int appcmds_getNumCmds();
 
- 	const wchar_t *appcmds_enumCmd(int n, int *side, int *id);
 
- 	enum {
 
- 	    SIDE_LEFT = 0, SIDE_RIGHT = 1
 
- 	};
 
- 	enum {
 
- 	    LEFT_CLICK = 0,
 
- 	    RIGHT_CLICK = 1,
 
- 	};
 
- 	void appcmds_onCommand(int id, const RECT *buttonRect, int which_button); //onscreen coords
 
- 	enum {
 
- 	    APPCMDS_GETNUMCMDS = 100,
 
- 	    APPCMDS_ENUMCMD = 200,
 
- 	    APPCMDS_ONCOMMAND = 300,
 
- 	};
 
- };
 
- inline int AppCmds::appcmds_getNumCmds()
 
- {
 
- 	return _call(APPCMDS_GETNUMCMDS, 0);
 
- }
 
- inline const wchar_t *AppCmds::appcmds_enumCmd(int n, int *side, int *id)
 
- {
 
- 	return _call(APPCMDS_ENUMCMD, (const wchar_t *)NULL, n, side, id);
 
- }
 
- inline void AppCmds::appcmds_onCommand(int id, const RECT *buttonRect, int which_button)
 
- {
 
- 	_voidcall(APPCMDS_ONCOMMAND, id, buttonRect, which_button);
 
- }
 
- class CmdRec
 
- {
 
- public:
 
- 	CmdRec(const wchar_t *name, int _id, int _side, int _autodelete = 0) : cmdname(name), id(_id), side(_side), autodelete(_autodelete) {}
 
- 	virtual ~CmdRec() {}
 
- 	StringW cmdname;
 
- 	int id, side;
 
- 	int autodelete;
 
- 	virtual void onCommand(const RECT *buttonRect, int which_button) {}}
 
- ;
 
- class AppCmdsI : public AppCmds
 
- {
 
- public:
 
- 	AppCmdsI() { }
 
- 	virtual ~AppCmdsI();
 
- protected:
 
- 	void appcmds_addCmd(CmdRec *cmdrec);
 
- 	void appcmds_addCmd(const wchar_t *name, int id, int side = SIDE_LEFT);
 
- 	void appcmds_deleteAll(); //calls delete on each one
 
- public:
 
- 	virtual int appcmds_getNumCmds();
 
- 	virtual const wchar_t *appcmds_enumCmd(int n, int *side, int *id);
 
- 	// override this and catch your commands, otherwise it'll call the CmdRec
 
- 	virtual void appcmds_onCommand(int id, const RECT *buttonRect, int which_button);
 
- protected:
 
- 	RECVS_DISPATCH;
 
- 	PtrList<CmdRec> cmds;
 
- };
 
- #endif
 
 
  |