Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
75
Src/Wasabi/api/wnd/drag.h
Normal file
75
Src/Wasabi/api/wnd/drag.h
Normal file
|
@ -0,0 +1,75 @@
|
|||
#ifndef __WASABI_DRAG_H
|
||||
#define __WASABI_DRAG_H
|
||||
|
||||
class ifc_window;
|
||||
|
||||
#include <bfc/wasabi_std.h>
|
||||
|
||||
class NOVTABLE DragInterface
|
||||
{
|
||||
public:
|
||||
// (called on dest) when dragged item enters the winder
|
||||
virtual int dragEnter(ifc_window *sourceWnd) = 0;
|
||||
// (called on dest) during the winder
|
||||
virtual int dragOver(int x, int y, ifc_window *sourceWnd) = 0;
|
||||
// (called on src)
|
||||
virtual int dragSetSticky(ifc_window *wnd, int left, int right, int up, int down) = 0;
|
||||
// (called on dest) when dragged item leaves the winder
|
||||
virtual int dragLeave(ifc_window *sourceWnd) = 0;
|
||||
// (called on dest) here is where we actually drop it
|
||||
virtual int dragDrop(ifc_window *sourceWnd, int x, int y) = 0;
|
||||
|
||||
// must be called from within dragDrop(); (receiver)
|
||||
virtual const wchar_t *dragGetSuggestedDropTitle(void) = 0;
|
||||
// must be called from within your dragEnter, Over, Leave, or Drop
|
||||
// return the slot # if you support this form of the data, -1 otherwise
|
||||
// nitems can be NULL if you're just checking validity
|
||||
virtual int dragCheckData(const wchar_t *type, int *nitems = NULL) = 0;
|
||||
// fetches a specific pointer that was stored
|
||||
virtual void *dragGetData(int slot, int itemnum) = 0;
|
||||
virtual int dragCheckOption(int option) = 0;
|
||||
};
|
||||
|
||||
class DragInterfaceI : public DragInterface
|
||||
{
|
||||
public:
|
||||
// (called on dest) when dragged item enters the winder
|
||||
virtual int dragEnter(ifc_window *sourceWnd) { return 0; }
|
||||
// (called on dest) during the winder
|
||||
virtual int dragOver(int x, int y, ifc_window *sourceWnd) { return 0; }
|
||||
// (called on src)
|
||||
virtual int dragSetSticky(ifc_window *wnd, int left, int right, int up, int down) { return 0; }
|
||||
// (called on dest) when dragged item leaves the winder
|
||||
virtual int dragLeave(ifc_window *sourceWnd) { return 0; }
|
||||
// (called on dest) here is where we actually drop it
|
||||
virtual int dragDrop(ifc_window *sourceWnd, int x, int y) { return 0; }
|
||||
|
||||
// must be called from within dragDrop(); (receiver)
|
||||
virtual const wchar_t *dragGetSuggestedDropTitle(void) { return NULL; }
|
||||
// must be called from within your dragEnter, Over, Leave, or Drop
|
||||
// return the slot # if you support this form of the data, -1 otherwise
|
||||
// nitems can be NULL if you're just checking validity
|
||||
virtual int dragCheckData(const wchar_t *type, int *nitems = NULL) { return 0; }
|
||||
// fetches a specific pointer that was stored
|
||||
virtual void *dragGetData(int slot, int itemnum) { return 0; }
|
||||
virtual int dragCheckOption(int option) { return 0; }
|
||||
};
|
||||
|
||||
class DI
|
||||
{
|
||||
public:
|
||||
DI(ifc_window *rw);
|
||||
int dragEnter(ifc_window *sourceWnd);
|
||||
int dragOver(int x, int y, ifc_window *sourceWnd);
|
||||
int dragSetSticky(ifc_window *wnd, int left, int right, int up, int down);
|
||||
int dragLeave(ifc_window *sourceWnd);
|
||||
int dragDrop(ifc_window *sourceWnd, int x, int y);
|
||||
const wchar_t *dragGetSuggestedDropTitle(void);
|
||||
int dragCheckData(const wchar_t *type, int *nitems = NULL);
|
||||
void *dragGetData(int slot, int itemnum);
|
||||
int dragCheckOption(int option);
|
||||
private:
|
||||
DragInterface *di;
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue