27 #ifndef _CEGUIGUIContext_h_
28 #define _CEGUIGUIContext_h_
30 #include "CEGUI/RenderingSurface.h"
31 #include "CEGUI/InjectedInputReceiver.h"
32 #include "CEGUI/MouseCursor.h"
33 #include "CEGUI/SystemKeys.h"
35 #if defined (_MSC_VER)
36 # pragma warning(push)
37 # pragma warning(disable : 4251)
42 struct MouseClickTracker;
72 static const float DefaultMouseButtonClickTimeout;
73 static const float DefaultMouseButtonMultiClickTimeout;
74 static const Sizef DefaultMouseButtonMultiClickTolerance;
113 Window* getRootWindow()
const;
114 void setRootWindow(
Window* new_root);
124 void setModalWindow(
Window* window);
127 Window* getModalWindow()
const;
129 Window* getWindowContainingMouse()
const;
131 const Sizef& getSurfaceSize()
const;
137 bool isDirty()
const;
153 void setMouseMoveScalingFactor(
float factor);
154 float getMouseMoveScalingFactor()
const;
156 void setMouseButtonClickTimeout(
float seconds);
157 float getMouseButtonClickTimeout()
const;
159 void setMouseButtonMultiClickTimeout(
float seconds);
160 float getMouseButtonMultiClickTimeout()
const;
162 void setMouseButtonMultiClickTolerance(
const Sizef& sz);
163 const Sizef& getMouseButtonMultiClickTolerance()
const;
178 void setMouseClickEventGenerationEnabled(
const bool enable);
193 bool isMouseClickEventGenerationEnabled()
const;
196 void updateWindowContainingMouse();
198 Window* getInputCaptureWindow()
const;
199 void setInputCaptureWindow(
Window* window);
215 void setDefaultTooltipObject(
Tooltip* tooltip);
229 void setDefaultTooltipType(
const String& tooltip_type);
232 Tooltip* getDefaultTooltipObject()
const;
244 void setDefaultFont(
const String& name);
253 void setDefaultFont(
Font* font);
262 Font* getDefaultFont()
const;
265 bool injectMouseMove(
float delta_x,
float delta_y);
266 bool injectMouseLeaves(
void);
269 bool injectKeyDown(Key::Scan scan_code);
270 bool injectKeyUp(Key::Scan scan_code);
272 bool injectMouseWheelChange(
float delta);
273 bool injectMousePosition(
float x_pos,
float y_pos);
274 bool injectTimePulse(
float timeElapsed);
275 bool injectMouseButtonClick(
const MouseButton button);
276 bool injectMouseButtonDoubleClick(
const MouseButton button);
277 bool injectMouseButtonTripleClick(
const MouseButton button);
278 bool injectCopyRequest();
279 bool injectCutRequest();
280 bool injectPasteRequest();
286 void updateRootWindowAreaRects()
const;
287 void drawWindowContentToTarget();
288 void renderWindowHierarchyToSurfaces();
290 void createDefaultTooltipWindowInstance()
const;
291 void destroyDefaultTooltipWindowInstance();
294 void notifyDefaultFontChanged(
Window* hierarchy_root)
const;
297 Window* getTargetWindow(
const Vector2f& pt,
const bool allow_disabled)
const;
298 Window* getKeyboardTargetWindow()
const;
305 bool areaChangedHandler(
const EventArgs& args);
306 bool windowDestroyedHandler(
const EventArgs& args);
309 bool updateWindowContainingMouse_impl()
const;
310 void resetWindowContainingMouse();
319 virtual void onDefaultFontChanged(
EventArgs& args);
338 mutable Tooltip* d_defaultTooltipObject;
339 mutable bool d_weCreatedTooltipObject;
340 String d_defaultTooltipType;
347 mutable Window* d_windowContainingMouse;
348 mutable bool d_windowContainingMouseIsUpToDate;
353 MouseClickTracker* d_mouseClickTrackers;
361 #if defined(_MSC_VER)
362 # pragma warning(pop)
Definition: GUIContext.h:68
Class that provides mouse cursor support.
Definition: MouseCursor.h:51
float d_mouseButtonClickTimeout
Timeout used to when detecting a single-click.
Definition: GUIContext.h:332
Sizef d_surfaceSize
a cache of the target surface size, allows returning by ref.
Definition: GUIContext.h:345
Main namespace for Crazy Eddie's GUI Library.
Definition: arch_overview.dox:1
Event::Connection wrapper that automatically disconnects the connection when the object is deleted (o...
Definition: Event.h:91
Base class used as the argument to all subscribers Event object.
Definition: EventArgs.h:49
MouseButton
Enumeration of mouse buttons.
Definition: InputEvent.h:209
Sizef d_mouseButtonMultiClickTolerance
Movement tolerance used when detecting multi-click events.
Definition: GUIContext.h:336
EventArgs class passed for GUIContext RenderTarget related events.
Definition: GUIContext.h:57
static const String EventMouseMoveScalingFactorChanged
Definition: GUIContext.h:86
EventArgs class passed to subscribers for (most) GUIContext events.
Definition: GUIContext.h:45
Class that encapsulates a typeface.
Definition: Font.h:58
static const String EventDefaultFontChanged
Definition: GUIContext.h:108
An abstract base class providing common functionality and specifying the required interface for deriv...
Definition: Window.h:149
Class that represents a surface that can have geometry based imagery drawn to it. ...
Definition: RenderingSurface.h:108
Defines interface to some surface that can be rendered to. Concrete instances of objects that impleme...
Definition: RenderTarget.h:57
float d_mouseButtonMultiClickTimeout
Timeout used when detecting multi-click events.
Definition: GUIContext.h:334
static const String EventMouseButtonMultiClickToleranceChanged
Definition: GUIContext.h:99
static const String EventRenderTargetChanged
Definition: GUIContext.h:104
utf32 value_type
Basic 'code point' type used for String (utf32)
Definition: String.h:69
float d_mouseMovementScalingFactor
Scaling factor applied to injected mouse move deltas.
Definition: GUIContext.h:328
EventArgs based class that is used for objects passed to handlers triggered for events concerning som...
Definition: InputEvent.h:251
Definition: SystemKeys.h:34
static const String EventMouseButtonClickTimeoutChanged
Definition: GUIContext.h:90
EventArgs based class that is used for objects passed to input event handlers concerning mouse input...
Definition: InputEvent.h:280
bool d_generateMouseClickEvents
should mouse click/multi-click events be automatically generated.
Definition: GUIContext.h:330
GUIContext * context
pointer to the GUIContext that triggered the event.
Definition: GUIContext.h:53
static const String EventRootWindowChanged
Definition: GUIContext.h:82
static const String EventMouseButtonMultiClickTimeoutChanged
Definition: GUIContext.h:94
String class used within the GUI system.
Definition: String.h:62