1.14.0.5
Hummingbird
A modern user interface library for games
View.h
1 /*
2 This file is part of Hummingbird, a modern user interface library.
3 
4 Copyright (c) 2012-2017 Coherent Labs AD and/or its licensors. All
5 rights reserved in all media.
6 
7 The coded instructions, statements, computer programs, and/or related
8 material (collectively the "Data") in these files contain confidential
9 and unpublished information proprietary Coherent Labs and/or its
10 licensors, which is protected by United States of America federal
11 copyright law and by international treaties.
12 
13 This software or source code is supplied under the terms of a license
14 agreement and nondisclosure agreement with Coherent Labs AD and may
15 not be copied, disclosed, or exploited except in accordance with the
16 terms of that agreement. The Data may not be disclosed or distributed to
17 third parties, in whole or in part, without the prior written consent of
18 Coherent Labs AD.
19 
20 COHERENT LABS MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS
21 SOURCE CODE FOR ANY PURPOSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
22 HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
23 INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
24 MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE
25 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER, ITS AFFILIATES,
26 PARENT COMPANIES, LICENSORS, SUPPLIERS, OR CONTRIBUTORS BE LIABLE FOR
27 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
31 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32 ANY WAY OUT OF THE USE OR PERFORMANCE OF THIS SOFTWARE OR SOURCE CODE,
33 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 */
35 #pragma once
36 
37 #include <cohtml/Declarations.h>
38 #include <cohtml/ResourceHandler.h>
39 #include <cohtml/Binding/Binder.h>
40 
41 #if !defined(COHTML_TRIGGER_EVENT_SCOPE)
42 #define COHTML_TRIGGER_EVENT_SCOPE(CompileTimeArgsCount, RuntimeEventName)
43 #endif
44 
45 namespace cohtml
46 {
47 class Binder;
48 class IViewListener;
49 struct TouchEventData;
50 struct MouseEventData;
51 struct KeyEventData;
52 struct GestureEventData;
53 class IEventHandler;
54 class INodeProxy;
55 typedef void* BoundEventHandle;
56 
57 template <typename T>
58 void CoherentCreateModelBindPointer(Binder* binder, T* model)
59 {
60  binder->BeginType();
61  CoherentBind(binder, model);
62  binder->EndType(model);
63 }
64 
65 #if defined(IW_SDK)
66 template <typename T>
67 void CoherentGenericBind(Binder* b, const void* arg)
68 {
69  CoherentBindInternal(b, *(const T*)arg);
70 }
71 typedef void(*CoherentGenericBindFuncPtr)(Binder*, const void*);
72 #endif
73 }
74 
75 #if defined(IW_SDK)
76 extern "C"
77 {
78 void HummingbirdTriggerEventOnOSThread(void* binder, const char* name, int numArgs,
79  void* functions, const void** args);
80 }
81 #endif
82 
83 namespace cohtml
84 {
85 
86 enum RenderingTasksAvailableType
87 {
88  RTA_ViewReadyForRendering,
89  RTA_RenderingSubSystemTask
90 };
91 
92 typedef void (*OnRenderingTasksAvailableFunc)(void* userData, unsigned viewId, unsigned frameId, RenderingTasksAvailableType type);
93 typedef double (*OnMonotonicallyIncreasingTimeRequestFunc)(void* userdata, unsigned viewId);
94 
97 {
100 
102  unsigned Width;
103 
105  unsigned Height;
106 
109  OnRenderingTasksAvailableFunc OnRenderingTasksAvailable;
110 
113  OnMonotonicallyIncreasingTimeRequestFunc OnMonotonicallyIncreasingTimeRequest;
114 
116  void* UserData;
117 
126 
127  ViewSettings()
128  : Listener(nullptr)
129  , Width(1280u)
130  , Height(720u)
131  , OnRenderingTasksAvailable(nullptr)
132  , OnMonotonicallyIncreasingTimeRequest(nullptr)
133  , UserData(nullptr)
134  , EnableComplexCSSSelectorsStyling(false)
135  {}
136 };
137 
139 namespace InputEventPhase
140 {
142  {
144  NONE = 0,
145 
148 
151 
154  };
155 }
156 
158 namespace EventAction
159 {
161  enum Actions
162  {
165 
169  };
170 };
171 
173 namespace TextInputControlType
174 {
176  {
179 
182  };
183 };
184 
187 {
189  unsigned Width;
190 
192  unsigned Height;
193 
195  unsigned AvailableWidth;
196 
198  unsigned AvailableHeight;
199 
201  unsigned ColorDepth;
202 
204  unsigned PixelDepth;
205 
206  ScreenInfo()
207  : Width(0)
208  , Height(0)
209  , AvailableWidth(0)
210  , AvailableHeight(0)
211  , ColorDepth(0)
212  , PixelDepth(0)
213  {}
214 };
215 
217 class COHTML_API IViewListener
218 {
219 public:
220  virtual ~IViewListener();
221 
222 
227  virtual bool OnNavigateTo(const char* url) = 0;
228 
232  virtual void OnScriptContextCreated() = 0;
233 
236  virtual void OnDOMBuilt() = 0;
237 
241  virtual void OnLoadFailed(const char* url, const char* error) = 0;
242 
246  virtual void OnFinishLoad(const char* url) = 0;
247 
249  virtual void OnReadyForBindings() = 0;
250 
254  virtual void OnBindingsReleased() = 0;
255 
258  virtual ScreenInfo OnScreenInfoRequested() = 0;
259 
263  virtual EventAction::Actions OnNodeTouched(const INodeProxy* node,
264  const TouchEventData* event,
265  void* userData,
266  const InputEventPhase::PhaseType phase) = 0;
267 
271  virtual EventAction::Actions OnNodeMouseEvent(const INodeProxy* node,
272  const MouseEventData* event,
273  void* userData,
274  const InputEventPhase::PhaseType phase) = 0;
275 
279  virtual EventAction::Actions OnNodeKeyEvent(const INodeProxy* node,
280  const KeyEventData* event,
281  void* userData,
282  const InputEventPhase::PhaseType phase) = 0;
283 
289  virtual void OnAudioStreamCreated(int id, int bitDepth, int channels,
290  float samplingRate)
291  {
292  UNUSED_PARAM(id);
293  UNUSED_PARAM(bitDepth);
294  UNUSED_PARAM(channels);
295  UNUSED_PARAM(samplingRate);
296  }
297 
300  virtual void OnAudioStreamClosed(int id)
301  {
302  UNUSED_PARAM(id);
303  }
304 
307  virtual void OnAudioStreamPlay(int id)
308  {
309  UNUSED_PARAM(id);
310  }
311 
314  virtual void OnAudioStreamPause(int id)
315  {
316  UNUSED_PARAM(id);
317  }
318 
325  virtual void OnAudioDataReceived(int id, int samples, float** pcm,
326  int channels)
327  {
328  UNUSED_PARAM(id);
329  UNUSED_PARAM(samples);
330  UNUSED_PARAM(pcm);
331  UNUSED_PARAM(channels);
332  }
333 
336  virtual void OnAudioStreamEnded(int id)
337  {
338  UNUSED_PARAM(id);
339  }
340 
344  virtual void OnAudioStreamVolumeChanged(int id, float volume)
345  {
346  UNUSED_PARAM(id);
347  UNUSED_PARAM(volume);
348  }
349 
353  virtual void OnTextInputTypeChanged(TextInputControlType::ControlType type) = 0;
354 
362  virtual void OnCaretRectChanged(int x,
363  int y,
364  unsigned width,
365  unsigned height) = 0;
366 
371  virtual void OnIMEShouldCancelComposition() = 0;
372 };
373 
375 struct DebugDump
376 {
377  enum DumpFlags
378  {
379  DF_None = 0,
380  DF_IncludeStyles = 1 << 1,
381  DF_IncludeLayout = 1 << 2,
382  };
383 
384  const char* Dump;
385  virtual void Release() = 0;
386 };
387 
392 {
394  const char* Data;
395 
397  unsigned long long Size;
398 
400  virtual void Release() = 0;
401 };
402 
406 typedef void(*FrameCaptureCallback)(void* userData, FrameCapture* capture);
407 
411 class View
412 {
413 public:
414  virtual ~View();
415 
417  virtual void Destroy() = 0;
418 
421  virtual void LoadURL(const char* url) = 0;
422 
424  virtual void Reload() = 0;
425 
429  virtual void UnloadDocument() = 0;
430 
435  virtual unsigned Advance(TimePoint timeMilliseconds) = 0;
436 
438  virtual unsigned GetId() const = 0;
439 
441  virtual TaskFamilyId GetTaskFamilyId() const = 0;
442 
448  virtual void Resize(unsigned width, unsigned height) = 0;
449 
451  virtual unsigned GetWidth() const = 0;
452 
454  virtual unsigned GetHeight() const = 0;
455 
459  virtual void ContinuousRepaint(bool enable) = 0;
460 
463  virtual void ShowPaintRectangles(bool show) = 0;
464 
467  virtual void ShowElementAABBs(bool show) = 0;
468 
470  virtual DebugDump* DebugDumpDOMTree(unsigned flags) = 0;
471 
477  virtual void TouchEvent(const cohtml::TouchEventData* events, unsigned count, bool* handled, void* userData) = 0;
478 
483  virtual void GestureEvent(const cohtml::GestureEventData& event, bool* handled, void* userData) = 0;
484 
489  virtual void MouseEvent(const cohtml::MouseEventData& event, bool* handled, void* userData) = 0;
490 
495  virtual void KeyEvent(const cohtml::KeyEventData& event, bool* handled, void* userData) = 0;
496 
503  virtual bool IMESetComposition(const char* composition,
504  unsigned targetStart,
505  unsigned targetEnd) = 0;
506 
511  virtual bool IMEConfirmComposition(const char* composition) = 0;
512 
516  virtual bool IMECancelComposition() = 0;
517 
520  virtual void SetUserAgent(const char* userAgent) = 0;
521 
530  virtual void BeginCaptureDebugFrame(void* userData, FrameCaptureCallback callback) = 0;
531 
533  virtual void EndCaptureDebugFrame() = 0;
534 
544  virtual void CaptureSingleDebugFrame(void* userData, FrameCaptureCallback callback) = 0;
545 
551  virtual BoundEventHandle RegisterForEvent(const char* name,
552  IEventHandler* handler) = 0;
553 
558  virtual void UnregisterFromEvent(BoundEventHandle handle) = 0;
559 
565  virtual BoundEventHandle BindCall(const char* name, IEventHandler* handler)
566  = 0;
567 
572  virtual void UnbindCall(BoundEventHandle handle) = 0;
573 
578  virtual void UnbindObject(const void* object) = 0;
579 
583  template <typename T>
584  void ExposeAsGlobal(const char* name, T* object)
585  {
586  Binder* binder = GetBinder();
587  binder->BeginExposeObject();
588  CoherentBindInternal(binder, object);
589  binder->SetAsGlobal(name, object);
590  }
591 
594  virtual void DestroyExposedObject(void* object) = 0;
595 
599  virtual bool IsReadyForBindings() const = 0;
600 
605  virtual void ExecuteScript(const char* script) = 0;
606 
612  virtual void AddInitialScript(const char* script) = 0;
613 
615  virtual void ResetInitialScripts() = 0;
616 
617  virtual Binder* GetBinder() = 0;
618 
622 
623  typedef void(*CoherentInternalBindGenericFunc)(cohtml::Binder*, void*);
624 
628  template <typename T>
629  void CreateModel(const char* name, T* model)
630  {
631  typedef void(*CoherentInternalBindFunc)(cohtml::Binder*, T*);
632  CoherentInternalBindFunc bindFuncPtr = &CoherentCreateModelBindPointer<T>;
633  CoherentInternalBindGenericFunc bindGenericPtr = reinterpret_cast<CoherentInternalBindGenericFunc>(bindFuncPtr);
634  RegisterModel(name, model, bindGenericPtr);
635  }
636 
640  virtual void UpdateWholeModel(void* model) = 0;
641 
644  virtual void SynchronizeModels() = 0;
645 
651  virtual void RegisterModel(const char* name, void* model, CoherentInternalBindGenericFunc func) = 0;
652 
655  virtual void UnregisterModel(void* model) = 0;
656 
658 
659 
663 
664 #if !defined(IW_SDK)
665  virtual void TriggerEvent(const char* name) = 0;
668 
671  template <typename T1>
672  void TriggerEvent(const char* name, const T1& argument1)
673  {
674  COHTML_TRIGGER_EVENT_SCOPE(TriggerEvent_1_Param, name);
675  Binder* binder = GetBinder();
676 
677  if (binder)
678  {
679  binder->BeginEvent(name, 1);
680 
681  CoherentBindInternal(binder, argument1);
682 
683  binder->EndEvent();
684  }
685  }
686 
689  template <typename T1, typename T2>
690  void TriggerEvent(const char* name,
691  const T1& argument1,
692  const T2& argument2)
693  {
694  COHTML_TRIGGER_EVENT_SCOPE(TriggerEvent_2_Param, name);
695  Binder* binder = GetBinder();
696 
697  if (binder)
698  {
699 
700  binder->BeginEvent(name, 2);
701 
702  CoherentBindInternal(binder, argument1);
703  CoherentBindInternal(binder, argument2);
704 
705  binder->EndEvent();
706  }
707  }
708 
711  template <typename T1, typename T2, typename T3>
712  void TriggerEvent(const char* name,
713  const T1& argument1,
714  const T2& argument2,
715  const T3& argument3)
716  {
717  COHTML_TRIGGER_EVENT_SCOPE(TriggerEvent_3_Param, name);
718  Binder* binder = GetBinder();
719 
720  if (binder)
721  {
722  binder->BeginEvent(name, 3);
723 
724  CoherentBindInternal(binder, argument1);
725  CoherentBindInternal(binder, argument2);
726  CoherentBindInternal(binder, argument3);
727 
728  binder->EndEvent();
729  }
730  }
731 
734  template <typename T1, typename T2, typename T3, typename T4>
735  void TriggerEvent(const char* name,
736  const T1& argument1,
737  const T2& argument2,
738  const T3& argument3,
739  const T4& argument4)
740  {
741  COHTML_TRIGGER_EVENT_SCOPE(TriggerEvent_4_Param, name);
742  Binder* binder = GetBinder();
743 
744  if (binder)
745  {
746  binder->BeginEvent(name, 4);
747 
748  CoherentBindInternal(binder, argument1);
749  CoherentBindInternal(binder, argument2);
750  CoherentBindInternal(binder, argument3);
751  CoherentBindInternal(binder, argument4);
752 
753  binder->EndEvent();
754  }
755  }
756 
759  template <typename T1, typename T2, typename T3, typename T4, typename T5>
760  void TriggerEvent(const char* name,
761  const T1& argument1,
762  const T2& argument2,
763  const T3& argument3,
764  const T4& argument4,
765  const T5& argument5)
766  {
767  COHTML_TRIGGER_EVENT_SCOPE(TriggerEvent_5_Param, name);
768  Binder* binder = GetBinder();
769 
770  if (binder)
771  {
772  binder->BeginEvent(name, 5);
773 
774  CoherentBindInternal(binder, argument1);
775  CoherentBindInternal(binder, argument2);
776  CoherentBindInternal(binder, argument3);
777  CoherentBindInternal(binder, argument4);
778  CoherentBindInternal(binder, argument5);
779 
780  binder->EndEvent();
781  }
782  }
784 
785 #else
786  inline void TriggerEventOnOSThread(const char* name)
789  {
790  COHTML_TRIGGER_EVENT_SCOPE(TriggerEvent_0_Param, name);
791  Binder* binder = GetBinder();
792 
793  if (binder)
794  {
795  HummingbirdTriggerEventOnOSThread(binder, name, 0, NULL, NULL);
796  }
797  }
798 
801  template <typename T1>
802  void TriggerEvent(const char* name, const T1& argument1)
803  {
804  COHTML_TRIGGER_EVENT_SCOPE(TriggerEvent_1_Param, name);
805  Binder* binder = GetBinder();
806 
807  if (binder)
808  {
809  CoherentGenericBindFuncPtr functions[] = {
810  &CoherentGenericBind<T1>
811  };
812  const void* args[] = {
813  &argument1
814  };
815  HummingbirdTriggerEventOnOSThread(binder, name, 1, functions, args);
816  }
817  }
818 
821  template <typename T1, typename T2>
822  void TriggerEvent(const char* name,
823  const T1& argument1,
824  const T2& argument2)
825  {
826  COHTML_TRIGGER_EVENT_SCOPE(TriggerEvent_2_Param, name);
827  Binder* binder = GetBinder();
828 
829  if (binder)
830  {
831  CoherentGenericBindFuncPtr functions[] = {
832  &CoherentGenericBind<T1>,
833  &CoherentGenericBind<T2>
834  };
835  const void* args[] = {
836  &argument1,
837  &argument2
838  };
839  HummingbirdTriggerEventOnOSThread(binder, name, 2, functions, args);
840  }
841  }
842 
845  template <typename T1, typename T2, typename T3>
846  void TriggerEvent(const char* name,
847  const T1& argument1,
848  const T2& argument2,
849  const T3& argument3)
850  {
851  COHTML_TRIGGER_EVENT_SCOPE(TriggerEvent_3_Param, name);
852  Binder* binder = GetBinder();
853 
854  if (binder)
855  {
856  CoherentGenericBindFuncPtr functions[] = {
857  &CoherentGenericBind<T1>,
858  &CoherentGenericBind<T2>,
859  &CoherentGenericBind<T3>,
860  };
861  const void* args[] = {
862  &argument1,
863  &argument2,
864  &argument3
865  };
866  HummingbirdTriggerEventOnOSThread(binder, name, 3, functions, args);
867  }
868  }
869 
872  template <typename T1, typename T2, typename T3, typename T4>
873  void TriggerEvent(const char* name,
874  const T1& argument1,
875  const T2& argument2,
876  const T3& argument3,
877  const T4& argument4)
878  {
879  COHTML_TRIGGER_EVENT_SCOPE(TriggerEvent_4_Param, name);
880  Binder* binder = GetBinder();
881 
882  if (binder)
883  {
884  CoherentGenericBindFuncPtr functions[] = {
885  &CoherentGenericBind<T1>,
886  &CoherentGenericBind<T2>,
887  &CoherentGenericBind<T3>,
888  &CoherentGenericBind<T4>
889  };
890  const void* args[] = {
891  &argument1,
892  &argument2,
893  &argument3,
894  &argument4
895  };
896  HummingbirdTriggerEventOnOSThread(binder, name, 4, functions, args);
897  }
898  }
899 
902  template <typename T1, typename T2, typename T3, typename T4, typename T5>
903  void TriggerEventOnUIThread(const char* name,
904  const T1& argument1,
905  const T2& argument2,
906  const T3& argument3,
907  const T4& argument4,
908  const T5& argument5)
909  {
910  COHTML_TRIGGER_EVENT_SCOPE(TriggerEvent_5_Param, name);
911  Binder* binder = GetBinder();
912 
913  if (binder)
914  {
915  CoherentGenericBindFuncPtr functions[] = {
916  &CoherentGenericBind<T1>,
917  &CoherentGenericBind<T2>,
918  &CoherentGenericBind<T3>,
919  &CoherentGenericBind<T4>,
920  &CoherentGenericBind<T5>,
921  };
922  const void* args[] = {
923  &argument1,
924  &argument2,
925  &argument3,
926  &argument4,
927  &argument5
928  };
929  HummingbirdTriggerEventOnOSThread(binder, name, 5, functions, args);
930  }
931  }
933 #endif
934 };
935 
936 }
No event is being processed at this time.
Definition: View.h:144
The event is being propagated through the target&#39;s ancestor objects.
Definition: View.h:147
Debugging class holding debug frame captured data and size. Passed to FrameCaptureCallback on View::B...
Definition: View.h:391
void TriggerEvent(const char *name, const T1 &argument1, const T2 &argument2)
Triggers a UI event.
Definition: View.h:690
void TriggerEvent(const char *name, const T1 &argument1)
Triggers a UI event.
Definition: View.h:672
OnMonotonicallyIncreasingTimeRequestFunc OnMonotonicallyIncreasingTimeRequest
Called during the advance of the views when accurate current time is needed The client should return ...
Definition: View.h:113
unsigned AvailableHeight
Height of the user&#39;s screen, in pixels, minus interface features like the Windows Taskbar...
Definition: View.h:198
All handling will be interrupted along with event bubbling. Eventual event listeners on the Node will...
Definition: View.h:168
The input type for text.
Definition: View.h:178
unsigned long long Size
Size in bytes of the data pointed by Data.
Definition: View.h:397
unsigned AvailableWidth
Width of the user&#39;s screen, in pixels, minus interface features like the Windows Taskbar.
Definition: View.h:195
Contains almost all Coherent namespaces, classes and functions.
Definition: DataStorage.h:38
Debugging class used for dumping the whole structure of the page DOM.
Definition: View.h:375
void(* FrameCaptureCallback)(void *userData, FrameCapture *capture)
Function signature of callback used in View::BeginCaptureDebugFrame and View::CaptureSingleDebugFrame...
Definition: View.h:406
void TriggerEvent(const char *name, const T1 &argument1, const T2 &argument2, const T3 &argument3, const T4 &argument4, const T5 &argument5)
Triggers a UI event.
Definition: View.h:760
A touch event.
Definition: InputEvents.h:63
ControlType
Definition: View.h:175
virtual void OnAudioStreamVolumeChanged(int id, float volume)
Called when an audio stream volume has changed.
Definition: View.h:344
Other non-input types.
Definition: View.h:181
The View will continue with the normal handling of the event.
Definition: View.h:164
OnRenderingTasksAvailableFunc OnRenderingTasksAvailable
Called when the View is completely advanced and laid-out.
Definition: View.h:109
void ExposeAsGlobal(const char *name, T *object)
Expose object as global variable.
Definition: View.h:584
virtual void OnAudioStreamEnded(int id)
Called when an audio stream ends and will no longer receive data.
Definition: View.h:336
void * UserData
Passed to the OnRenderingTasksAvailable and OnMonotonicallyIncreasingTimeRequest callbacks.
Definition: View.h:116
virtual void OnAudioStreamClosed(int id)
Called when an audio stream is destroyed.
Definition: View.h:300
virtual void OnAudioStreamPause(int id)
Called by the UI when a playing media element pauses.
Definition: View.h:314
IViewListener * Listener
The ViewListener is notified of events happening in the View.
Definition: View.h:99
A keyboard event.
Definition: InputEvents.h:159
virtual void OnAudioStreamCreated(int id, int bitDepth, int channels, float samplingRate)
Called by the UI when a media element initializes an audio stream.
Definition: View.h:289
unsigned Width
The Width of the View.
Definition: View.h:102
The View represents a UI page with its DOM, styles and JavaScript context. Think of the View as a who...
Definition: View.h:411
void TriggerEvent(const char *name, const T1 &argument1, const T2 &argument2, const T3 &argument3)
Triggers a UI event.
Definition: View.h:712
A gesture event.
Definition: InputEvents.h:209
unsigned Width
Full width in pixels.
Definition: View.h:189
Provides binding between C++ and the UI.
Definition: Binder.h:138
virtual void OnAudioStreamPlay(int id)
Called by the UI when a media element starts playing an audio stream.
Definition: View.h:307
The event is propagating back up through the target&#39;s ancestors in reverse order. ...
Definition: View.h:153
virtual void OnAudioDataReceived(int id, int samples, float **pcm, int channels)
Called by the UI when there is decoded PCM data available for playing.
Definition: View.h:325
const char * Data
Pointer to the binary capture data.
Definition: View.h:394
void CreateModel(const char *name, T *model)
Creates a model for binding.
Definition: View.h:629
void TriggerEvent(const char *name, const T1 &argument1, const T2 &argument2, const T3 &argument3, const T4 &argument4)
Triggers a UI event.
Definition: View.h:735
Represents a DOM element in the View - i.e. a DIV, the BODY etc.
Definition: NodeProxy.h:43
Interface that allows to listen for various events in the View.
Definition: View.h:217
The event has arrived at the event&#39;s target, event&#39;s node is the one that is being hit by the input...
Definition: View.h:150
bool EnableComplexCSSSelectorsStyling
Tells if to enable complex CSS selectors when doing style matching. By complex in this context we mea...
Definition: View.h:125
Holds the information about current screen.
Definition: View.h:186
Actions
Possible actions when deciding on input handling.
Definition: View.h:161
unsigned Height
Full height in pixels.
Definition: View.h:192
unsigned Height
The Height of the View.
Definition: View.h:105
PhaseType
Definition: View.h:141
unsigned PixelDepth
Pixel depth in bits.
Definition: View.h:204
Settings used when initializing a View.
Definition: View.h:96
unsigned ColorDepth
Color depth in bits.
Definition: View.h:201