JSUI.h 921 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #pragma once
  2. #include <Duktape/duktape.h>
  3. #include <Atomic/Core/Object.h>
  4. namespace tb
  5. {
  6. class TBWidget;
  7. }
  8. namespace Atomic
  9. {
  10. class JSUI : public Object
  11. {
  12. OBJECT(JSUI)
  13. public:
  14. JSUI(Context* context);
  15. virtual ~JSUI();
  16. private:
  17. duk_context* ctx_;
  18. float updateTime_;
  19. void PushWidgetEventObject(VariantMap& eventData);
  20. void HandleObjectAdded(StringHash eventType, VariantMap& eventData);
  21. void HandleUpdate(StringHash eventType, VariantMap& eventData);
  22. void HandleWidgetEvent(StringHash eventType, VariantMap& eventData);
  23. void HandleWidgetDeleted(StringHash eventType, VariantMap& eventData);
  24. void HandleWidgetLoaded(StringHash eventType, VariantMap& eventData);
  25. void HandlePopupMenuSelect(StringHash eventType, VariantMap& eventData);
  26. void GatherWidgets(tb::TBWidget* widget, PODVector<tb::TBWidget*>& widgets);
  27. HashMap<StringHash, bool> uiTypes_;
  28. };
  29. }