PolycodeWebdView.h 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. #include <Polycode.h>
  2. #include <Awesomium/WebCore.h>
  3. using namespace Polycode;
  4. class PolycodeWebViewEvent : public Event {
  5. public:
  6. PolycodeWebViewEvent() : Event() {}
  7. static const int CALLBACK_EVENT = 0;
  8. String objectName;
  9. String callbackName;
  10. std::vector <String> args;
  11. };
  12. class PolycodeWebView : public Awesomium::WebViewListener, public EventDispatcher {
  13. public:
  14. PolycodeWebView(unsigned int width, unsigned int height, String url);
  15. ~PolycodeWebView();
  16. void Update();
  17. void loadURL(String url);
  18. void Resize(unsigned int width, unsigned int height);
  19. Texture *getRenderTexture();
  20. void mouseMove(Number x, Number y);
  21. void mouseDown(Number x, Number y);
  22. void mouseUp(Number x, Number y);
  23. void keyDown(PolyKEY key);
  24. void injectKey(int keyCode);
  25. // ** The following methods are inherited from WebViewListener:
  26. virtual void onBeginNavigation(Awesomium::WebView* caller,
  27. const std::string& url,
  28. const std::wstring& frameName) {}
  29. virtual void onBeginLoading(Awesomium::WebView* caller,
  30. const std::string& url,
  31. const std::wstring& frameName,
  32. int statusCode, const std::wstring& mimeType) {}
  33. virtual void onFinishLoading(Awesomium::WebView* caller) {}
  34. virtual void onCallback(Awesomium::WebView* caller,
  35. const std::wstring& objectName,
  36. const std::wstring& callbackName,
  37. const Awesomium::JSArguments& args);
  38. virtual void onReceiveTitle(Awesomium::WebView* caller,
  39. const std::wstring& title,
  40. const std::wstring& frameName) {}
  41. virtual void onChangeTooltip(Awesomium::WebView* caller,
  42. const std::wstring& tooltip) {}
  43. virtual void onChangeCursor(Awesomium::WebView* caller,
  44. Awesomium::CursorType cursor) {}
  45. virtual void onChangeKeyboardFocus(Awesomium::WebView* caller,
  46. bool isFocused) {}
  47. virtual void onChangeTargetURL(Awesomium::WebView* caller,
  48. const std::string& url) {}
  49. virtual void onOpenExternalLink(Awesomium::WebView* caller,
  50. const std::string& url,
  51. const std::wstring& source) {}
  52. virtual void onRequestDownload(Awesomium::WebView* caller,
  53. const std::string& url) {}
  54. virtual void onWebViewCrashed(Awesomium::WebView* caller) {}
  55. virtual void onPluginCrashed(Awesomium::WebView* caller,
  56. const std::wstring& pluginName) {}
  57. virtual void onRequestMove(Awesomium::WebView* caller, int x, int y) {}
  58. virtual void onGetPageContents(Awesomium::WebView* caller,
  59. const std::string& url,
  60. const std::wstring& contents) {}
  61. virtual void onDOMReady(Awesomium::WebView* caller) {}
  62. virtual void onRequestFileChooser(Awesomium::WebView* caller,
  63. bool selectMultipleFiles,
  64. const std::wstring& title,
  65. const std::wstring& defaultPath) {}
  66. virtual void onGetScrollData(Awesomium::WebView* caller,
  67. int contentWidth,
  68. int contentHeight,
  69. int preferredWidth,
  70. int scrollX,
  71. int scrollY) {}
  72. virtual void onJavascriptConsoleMessage(Awesomium::WebView* caller,
  73. const std::wstring& message,
  74. int lineNumber,
  75. const std::wstring& source) {}
  76. virtual void onGetFindResults(Awesomium::WebView* caller,
  77. int requestID,
  78. int numMatches,
  79. const Awesomium::Rect& selection,
  80. int curMatch,
  81. bool finalUpdate) {}
  82. virtual void onUpdateIME(Awesomium::WebView* caller,
  83. Awesomium::IMEState imeState,
  84. const Awesomium::Rect& caretRect) {}
  85. virtual void onShowContextMenu(Awesomium::WebView* caller,
  86. int mouseX,
  87. int mouseY,
  88. Awesomium::MediaType type,
  89. int mediaState,
  90. const std::string& linkURL,
  91. const std::string& srcURL,
  92. const std::string& pageURL,
  93. const std::string& frameURL,
  94. const std::wstring& selectionText,
  95. bool isEditable,
  96. int editFlags) {}
  97. virtual void onRequestLogin(Awesomium::WebView* caller,
  98. int requestID,
  99. const std::string& requestURL,
  100. bool isProxy,
  101. const std::wstring& hostAndPort,
  102. const std::wstring& scheme,
  103. const std::wstring& realm) {}
  104. virtual void onChangeHistory(Awesomium::WebView* caller,
  105. int backCount,
  106. int forwardCount) {}
  107. virtual void onFinishResize(Awesomium::WebView* caller,
  108. int width,
  109. int height) {}
  110. virtual void onShowJavascriptDialog(Awesomium::WebView* caller,
  111. int requestID,
  112. int dialogFlags,
  113. const std::wstring& message,
  114. const std::wstring& defaultPrompt,
  115. const std::string& frameURL) {}
  116. protected:
  117. int width, height;
  118. Texture *renderTexture;
  119. Awesomium::WebView* webView;
  120. Awesomium::WebCore* webCore;
  121. };