Crazy Eddie's GUI System 0.8.7
Loading...
Searching...
No Matches
DragContainer.h
1/***********************************************************************
2 created: 14/2/2005
3 author: Paul D Turner
4*************************************************************************/
5/***************************************************************************
6 * Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining
9 * a copy of this software and associated documentation files (the
10 * "Software"), to deal in the Software without restriction, including
11 * without limitation the rights to use, copy, modify, merge, publish,
12 * distribute, sublicense, and/or sell copies of the Software, and to
13 * permit persons to whom the Software is furnished to do so, subject to
14 * the following conditions:
15 *
16 * The above copyright notice and this permission notice shall be
17 * included in all copies or substantial portions of the Software.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
23 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
24 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25 * OTHER DEALINGS IN THE SOFTWARE.
26 ***************************************************************************/
27#ifndef _CEGUIDragContainer_h_
28#define _CEGUIDragContainer_h_
29
30#include "../Window.h"
31#include "../WindowFactory.h"
32
33#if defined(_MSC_VER)
34# pragma warning(push)
35# pragma warning(disable : 4251)
36#endif
37
38// Start of CEGUI namespace section
39namespace CEGUI
40{
45 class CEGUIEXPORT DragContainer : public Window
46 {
47 public:
48 /*************************************************************************
49 Constants
50 *************************************************************************/
51 static const String WidgetTypeName;
52 static const String EventNamespace;
64 static const String EventDragEnded;
102
103 /*************************************************************************
104 Object Construction and Destruction
105 *************************************************************************/
110 DragContainer(const String& type, const String& name);
111
116 virtual ~DragContainer(void);
117
118 /*************************************************************************
119 Public Interface to DragContainer
120 *************************************************************************/
129 bool isDraggingEnabled(void) const;
130
142 void setDraggingEnabled(bool setting);
143
152 bool isBeingDragged(void) const;
153
165 float getPixelDragThreshold(void) const;
166
181 void setPixelDragThreshold(float pixels);
182
191 float getDragAlpha(void) const;
192
208 void setDragAlpha(float alpha);
209
218 const Image* getDragCursorImage(void) const;
219
234 void setDragCursorImage(const Image* image);
235
252 void setDragCursorImage(const String& name);
253
266
276
285 void setStickyModeEnabled(bool setting);
286
303 bool pickUp(const bool force_sticky = false);
304
318 void setFixedDragOffset(const UVector2& offset);
319
334
345 void setUsingFixedDragOffset(const bool enable);
346
358
359 // Window class overrides.
361
362 protected:
363 /*************************************************************************
364 Protected Implementation Methods
365 *************************************************************************/
378 bool isDraggingThresholdExceeded(const Vector2f& local_mouse);
379
388
399 void doDragging(const Vector2f& local_mouse);
400
405 void updateActiveMouseCursor(void) const;
406
407 /*************************************************************************
408 Overrides of methods in Window
409 *************************************************************************/
410
411 /*************************************************************************
412 Overrides for Event handler methods
413 *************************************************************************/
416 virtual void onMouseMove(MouseEventArgs& e);
419 virtual void onClippingChanged(WindowEventArgs& e);/*Window::drawSelf(z);*/
420 virtual void onMoved(ElementEventArgs& e);
421
422 /*************************************************************************
423 New Event handler methods
424 *************************************************************************/
436
447 virtual void onDragEnded(WindowEventArgs& e);
448
460
470
480
490
500
517
518 /*************************************************************************
519 Data
520 *************************************************************************/
541
542 private:
543 /*************************************************************************
544 Implementation methods
545 *************************************************************************/
553 void addDragContainerProperties(void);
554 };
555
556} // End of CEGUI namespace section
557
558
559#if defined(_MSC_VER)
560# pragma warning(pop)
561#endif
562
563#endif // end of guard _CEGUIDragContainer_h_
Generic drag & drop enabled window class.
Definition DragContainer.h:46
static const String EventDragMouseCursorChanged
Definition DragContainer.h:88
const Image * d_dragCursorImage
Image to use for mouse cursor when dragging.
Definition DragContainer.h:531
float getDragAlpha(void) const
Return the alpha value that will be set on the DragContainer while a drag operation is in progress.
static const String EventDragDropTargetChanged
Definition DragContainer.h:101
static const String EventDragStarted
Definition DragContainer.h:58
void doDragging(const Vector2f &local_mouse)
Update state for window dragging.
void setDragAlpha(float alpha)
Set the alpha value to be set on the DragContainer when a drag operation is in progress.
virtual void onDragPositionChanged(WindowEventArgs &e)
Method called when the dragged object position is changed.
bool d_storedClipState
Parent clip state to re-set.
Definition DragContainer.h:529
Window * d_dropTarget
Target window for possible drop operation.
Definition DragContainer.h:530
void getRenderingContext_impl(RenderingContext &ctx) const
implementation of the default getRenderingContext logic.
virtual void onCaptureLost(WindowEventArgs &e)
Handler called when this window loses capture of mouse inputs.
bool d_stickyMode
true when we're in 'sticky' mode.
Definition DragContainer.h:534
virtual void onMoved(ElementEventArgs &e)
Handler called when the window's position changes.
void setDraggingEnabled(bool setting)
Set whether dragging is currently enabled for this DragContainer.
void initialiseDragging(void)
Initialise the required states to put the window into dragging mode.
static const String EventDragEnabledChanged
Definition DragContainer.h:76
float getPixelDragThreshold(void) const
Return the current drag threshold in pixels.
virtual void onClippingChanged(WindowEventArgs &e)
Handler called when the window's setting for being clipped by it's parent is changed.
bool d_dropflag
Definition DragContainer.h:532
virtual void onDragAlphaChanged(WindowEventArgs &e)
Method called when the alpha value to use when dragging is changed.
UVector2 d_fixedDragOffset
current fixed mouse offset value.
Definition DragContainer.h:540
void updateActiveMouseCursor(void) const
Method to update mouse cursor image.
virtual void onAlphaChanged(WindowEventArgs &e)
Handler called when the window's alpha blend value is changed.
void setStickyModeEnabled(bool setting)
Enable or disable sticky mode.
bool isUsingFixedDragOffset() const
Return whether the fixed dragging offset - as set with the setFixedDragOffset function - will be used...
static const String EventNamespace
Namespace for global events.
Definition DragContainer.h:52
const UVector2 & getFixedDragOffset() const
Return the fixed mouse cursor dragging offset to be used for this DragContainer.
virtual void onDragEnabledChanged(WindowEventArgs &e)
Method called when the dragging state is enabled or disabled.
bool isDraggingThresholdExceeded(const Vector2f &local_mouse)
Return whether the required minimum movement threshold before initiating dragging has been exceeded.
virtual void onDragDropTargetChanged(DragDropEventArgs &e)
Method called when the current drop target of this DragContainer changes.
static const String EventDragPositionChanged
Definition DragContainer.h:70
static const String WidgetTypeName
Type name for DragContainer.
Definition DragContainer.h:51
virtual void onMouseMove(MouseEventArgs &e)
Handler called when the mouse cursor has been moved within this window's area.
bool d_usingFixedDragOffset
true if fixed mouse offset is used for dragging position.
Definition DragContainer.h:538
bool isStickyModeEnabled() const
Return whether sticky mode is enable or disabled.
UVector2 d_startPosition
position prior to dragging.
Definition DragContainer.h:525
static const String EventDragEnded
Definition DragContainer.h:64
void setUsingFixedDragOffset(const bool enable)
Set whether the fixed dragging offset - as set with the setFixedDragOffset - function will be used,...
virtual void onDragThresholdChanged(WindowEventArgs &e)
Method called when the movement threshold required to trigger dragging is changed.
virtual void onDragStarted(WindowEventArgs &e)
Method called when dragging commences.
virtual void onMouseButtonDown(MouseEventArgs &e)
Handler called when a mouse button has been depressed within this window's area.
void setPixelDragThreshold(float pixels)
Set the current drag threshold in pixels.
void setDragCursorImage(const Image *image)
Set the Image to be used for the mouse cursor when a drag operation is in progress.
bool isDraggingEnabled(void) const
Return whether dragging is currently enabled for this DragContainer.
bool d_leftMouseDown
True when left mouse button is down.
Definition DragContainer.h:522
virtual void onMouseButtonUp(MouseEventArgs &e)
Handler called when a mouse button has been released within this window's area.
bool pickUp(const bool force_sticky=false)
Immediately pick up the DragContainer and optionally set the sticky mode in order to allow this to ha...
bool d_draggingEnabled
True when dragging is enabled.
Definition DragContainer.h:521
Window * getCurrentDropTarget(void) const
Return the Window object that is the current drop target for the DragContainer.
const Image * getDragCursorImage(void) const
Return the Image currently set to be used for the mouse cursor when a drag operation is in progress.
static const String EventDragThresholdChanged
Definition DragContainer.h:94
bool d_dragging
true when being dragged.
Definition DragContainer.h:523
virtual void onDragMouseCursorChanged(WindowEventArgs &e)
Method called when the mouse cursor to use when dragging is changed.
float d_storedAlpha
Alpha value to re-set when dragging ends.
Definition DragContainer.h:528
float d_dragAlpha
Alpha value to set when dragging.
Definition DragContainer.h:527
virtual ~DragContainer(void)
Destructor for DragContainer objects.
bool d_pickedUp
true after been picked-up / dragged via sticky mode
Definition DragContainer.h:536
float d_dragThreshold
Pixels mouse must move before dragging commences.
Definition DragContainer.h:526
void setFixedDragOffset(const UVector2 &offset)
Set the fixed mouse cursor dragging offset to be used for this DragContainer.
DragContainer(const String &type, const String &name)
Constructor for DragContainer objects.
static const String EventDragAlphaChanged
Definition DragContainer.h:82
virtual void onDragEnded(WindowEventArgs &e)
Method called when dragging ends.
bool isBeingDragged(void) const
Return whether the DragContainer is currently being dragged.
UVector2 d_dragPoint
point we are being dragged at.
Definition DragContainer.h:524
EventArgs based class used for certain drag/drop notifications.
Definition InputEvent.h:342
EventArgs based class that is used for objects passed to handlers triggered for events concerning som...
Definition Element.h:211
Interface for Image.
Definition Image.h:161
EventArgs based class that is used for objects passed to input event handlers concerning mouse input.
Definition InputEvent.h:281
String class used within the GUI system.
Definition String.h:64
EventArgs based class that is used for objects passed to handlers triggered for events concerning som...
Definition InputEvent.h:252
An abstract base class providing common functionality and specifying the required interface for deriv...
Definition Window.h:151
Main namespace for Crazy Eddie's GUI Library.
Definition arch_overview.dox:1
struct that holds some context relating to a RenderingSurface object.
Definition RenderingContext.h:41