UFO: Alien Invasion
|
#include "ui_internal.h"
#include "ui_dragndrop.h"
#include "ui_input.h"
#include "ui_node.h"
#include "ui_sound.h"
#include "node/ui_node_abstractnode.h"
#include "node/ui_node_container.h"
#include "../input/cl_input.h"
Go to the source code of this file.
Functions | |
bool | UI_DNDIsDragging (void) |
Return true if we are dragging something. More... | |
bool | UI_DNDIsTargetNode (uiNode_t *node) |
Return true if the requested node is the current target of the DND. More... | |
bool | UI_DNDIsSourceNode (uiNode_t *node) |
Return true if the requested node is the source of the DND. More... | |
int | UI_DNDGetType (void) |
Return the current type of the dragging object, else DND_NOTHING. More... | |
uiNode_t * | UI_DNDGetTargetNode (void) |
Return target of the DND. More... | |
uiNode_t * | UI_DNDGetSourceNode (void) |
Return source of the DND. More... | |
static void | UI_DNDDrag (uiNode_t *node) |
Private function to initialize a the start of a DND. More... | |
void | UI_DNDDragItem (uiNode_t *node, const Item *item) |
Start to drag an item. More... | |
static void | UI_DNDCleanup (void) |
Cleanup data about DND. More... | |
void | UI_DNDAbort (void) |
Drop the object at the current position. More... | |
void | UI_DNDDrop (void) |
Drop the object at the current position. More... | |
Item * | UI_DNDGetItem (void) |
static void | UI_DNDMouseMove (int mousePosX, int mousePosY) |
Manage the DND when we move the mouse. More... | |
void | UI_DrawDragAndDrop (int mousePosX, int mousePosY) |
Draw to dragging object and catch mouse move event. More... | |
Variables | |
static int | oldMousePosX = -1 |
static int | oldMousePosY = -1 |
static bool | nodeAcceptDND = false |
static bool | positionAcceptDND = false |
static uiDNDType_t | objectType |
static Item | draggingItem |
static uiNode_t * | sourceNode |
static uiNode_t * | targetNode |
Drop the object at the current position.
Definition at line 147 of file ui_dragndrop.cpp.
References DND_NOTHING, nodeAcceptDND, objectType, UI_DNDCleanup(), UI_DNDIsDragging(), UI_InvalidateMouse(), UI_Node_DndFinished(), and UI_Node_DndLeave().
Referenced by uiBaseInventoryNode::onMouseDown(), uiContainerNode::onMouseDown(), UI_DNDDrop(), UI_KeyPressed(), and UI_ReleaseInput().
Cleanup data about DND.
Definition at line 135 of file ui_dragndrop.cpp.
References DND_NOTHING, and objectType.
Referenced by UI_DNDAbort(), and UI_DNDDrop().
Private function to initialize a the start of a DND.
Definition at line 109 of file ui_dragndrop.cpp.
References DND_SOMETHING, objectType, UI_DNDIsDragging(), and UI_PlaySound().
Referenced by UI_DNDDragItem().
Start to drag an item.
Definition at line 124 of file ui_dragndrop.cpp.
References DND_ITEM, objectType, UI_DNDDrag(), and UI_DNDIsDragging().
Referenced by uiBaseInventoryNode::onCapturedMouseMove(), and uiContainerNode::onCapturedMouseMove().
Drop the object at the current position.
Definition at line 167 of file ui_dragndrop.cpp.
References DND_NOTHING, mousePosX, mousePosY, objectType, positionAcceptDND, UI_DNDAbort(), UI_DNDCleanup(), UI_DNDIsDragging(), UI_InvalidateMouse(), UI_Node_DndDrop(), UI_Node_DndFinished(), and UI_PlaySound().
Referenced by uiBaseInventoryNode::onMouseUp(), and uiContainerNode::onMouseUp().
Definition at line 190 of file ui_dragndrop.cpp.
References DND_ITEM, draggingItem, and objectType.
Referenced by uiBaseInventoryNode::draw(), uiContainerNode::draw(), uiContainerNode::onDndFinished(), uiContainerNode::onDndMove(), UI_ContainerNodeDrawDropPreview(), and UI_ContainerNodeDrawFreeSpace().
Return source of the DND.
Definition at line 97 of file ui_dragndrop.cpp.
References sourceNode, and UI_DNDIsDragging().
Referenced by uiBaseInventoryNode::onDndEnter(), and uiContainerNode::onDndEnter().
Return target of the DND.
Definition at line 88 of file ui_dragndrop.cpp.
References targetNode, and UI_DNDIsDragging().
Referenced by uiContainerNode::onDndFinished().
Return the current type of the dragging object, else DND_NOTHING.
Definition at line 80 of file ui_dragndrop.cpp.
References objectType.
Referenced by uiBaseInventoryNode::draw(), uiContainerNode::draw(), uiBaseInventoryNode::onDndEnter(), and uiContainerNode::onDndEnter().
bool UI_DNDIsDragging | ( | void | ) |
Return true if we are dragging something.
Definition at line 52 of file ui_dragndrop.cpp.
References DND_NOTHING, and objectType.
Referenced by uiBaseInventoryNode::draw(), uiContainerNode::draw(), uiBaseInventoryNode::onMouseDown(), uiContainerNode::onMouseDown(), uiBaseInventoryNode::onMouseUp(), uiContainerNode::onMouseUp(), SCR_DrawCursor(), UI_ContainerNodeDrawFreeSpace(), UI_DNDAbort(), UI_DNDDrag(), UI_DNDDragItem(), UI_DNDDrop(), UI_DNDGetSourceNode(), UI_DNDGetTargetNode(), UI_DNDIsSourceNode(), UI_DNDIsTargetNode(), UI_Draw(), UI_KeyPressed(), UI_MouseMove(), and UI_ReleaseInput().
bool UI_DNDIsSourceNode | ( | uiNode_t * | node | ) |
Return true if the requested node is the source of the DND.
Definition at line 70 of file ui_dragndrop.cpp.
References UI_DNDIsDragging().
Referenced by UI_ContainerNodeDrawFreeSpace().
bool UI_DNDIsTargetNode | ( | uiNode_t * | node | ) |
Return true if the requested node is the current target of the DND.
Definition at line 60 of file ui_dragndrop.cpp.
References UI_DNDIsDragging().
Referenced by uiContainerNode::draw().
Manage the DND when we move the mouse.
Definition at line 199 of file ui_dragndrop.cpp.
References nodeAcceptDND, positionAcceptDND, UI_GetNodeAtPosition(), UI_Node_DndEnter(), UI_Node_DndLeave(), and UI_Node_DndMove().
Referenced by UI_DrawDragAndDrop().
Draw to dragging object and catch mouse move event.
Definition at line 230 of file ui_dragndrop.cpp.
References DND_ITEM, mousePosX, mousePosY, objectType, oldMousePosX, oldMousePosY, positionAcceptDND, scale, UI_DNDMouseMove(), UI_DrawItem(), and VectorSet.
Referenced by UI_DrawCursor().
|
static |
Save the dragging object
Definition at line 43 of file ui_dragndrop.cpp.
Referenced by UI_DNDGetItem().
|
static |
Save if the current target node can accept the DND object
Definition at line 39 of file ui_dragndrop.cpp.
Referenced by UI_DNDAbort(), and UI_DNDMouseMove().
|
static |
Save the type of the object we are dragging
Definition at line 42 of file ui_dragndrop.cpp.
Referenced by UI_DNDAbort(), UI_DNDCleanup(), UI_DNDDrag(), UI_DNDDragItem(), UI_DNDDrop(), UI_DNDGetItem(), UI_DNDGetType(), UI_DNDIsDragging(), and UI_DrawDragAndDrop().
|
static |
Save position X of the mouse to know when it move
Definition at line 36 of file ui_dragndrop.cpp.
Referenced by UI_DrawDragAndDrop().
|
static |
Save position Y of the mouse to know when it move
Definition at line 37 of file ui_dragndrop.cpp.
Referenced by UI_DrawDragAndDrop().
|
static |
Save if the current position accept the DND object
Definition at line 40 of file ui_dragndrop.cpp.
Referenced by UI_DNDDrop(), UI_DNDMouseMove(), and UI_DrawDragAndDrop().
|
static |
Node where come from the DND object
Definition at line 45 of file ui_dragndrop.cpp.
Referenced by UI_DNDGetSourceNode().
|
static |
Current node under the mouse
Definition at line 46 of file ui_dragndrop.cpp.
Referenced by UI_ContainerNodeAutoPlaceItem(), and UI_DNDGetTargetNode().