minibrowser.h 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. #ifndef __MINIBROWSER_H
  2. #define __MINIBROWSER_H
  3. #include <bfc/dispatch.h>
  4. #include <bfc/common.h>
  5. class ifc_window;
  6. class MiniBrowserCallback : public Dispatchable {
  7. public:
  8. int minibrowsercb_onBeforeNavigate(const wchar_t *url, int flags, const wchar_t *frame);
  9. void minibrowsercb_onDocumentComplete(const wchar_t *url);
  10. void minibrowsercb_onDocumentReady(const wchar_t *url);
  11. void minibrowsercb_onMediaLink(const wchar_t *url);
  12. void minibrowsercb_onNavigateError(const wchar_t *url, int status);
  13. const wchar_t* minibrowsercb_messageToMaki(wchar_t* str1, wchar_t* str2, int i1, int i2, int i3);
  14. enum {
  15. MINIBROWSER_ONBEFORENAVIGATE = 10,
  16. MINIBROWSER_ONDOCUMENTCOMPLETE = 20,
  17. MINIBROWSER_ONMEDIALINK = 30,
  18. MINIBROWSER_ONNAVIGATEERROR = 40,
  19. MINIBROWSER_ONDOCUMENTREADY = 50,
  20. MINIBROWSER_MESSAGETOMAKI = 60,
  21. };
  22. };
  23. inline int MiniBrowserCallback ::minibrowsercb_onBeforeNavigate(const wchar_t *url, int flags, const wchar_t *frame) {
  24. return _call(MINIBROWSER_ONBEFORENAVIGATE, 0, url, flags, frame);
  25. }
  26. inline void MiniBrowserCallback ::minibrowsercb_onDocumentComplete(const wchar_t *url) {
  27. _voidcall(MINIBROWSER_ONDOCUMENTCOMPLETE, url);
  28. }
  29. inline void MiniBrowserCallback ::minibrowsercb_onDocumentReady(const wchar_t *url) {
  30. _voidcall(MINIBROWSER_ONDOCUMENTREADY, url);
  31. }
  32. inline void MiniBrowserCallback ::minibrowsercb_onNavigateError(const wchar_t *url, int status) {
  33. _voidcall(MINIBROWSER_ONNAVIGATEERROR, url, status);
  34. }
  35. inline void MiniBrowserCallback ::minibrowsercb_onMediaLink(const wchar_t *url) {
  36. _voidcall(MINIBROWSER_ONMEDIALINK, url);
  37. }
  38. inline const wchar_t* MiniBrowserCallback ::minibrowsercb_messageToMaki(wchar_t* str1, wchar_t* str2, int i1, int i2, int i3) {
  39. return _call(MINIBROWSER_MESSAGETOMAKI, (const wchar_t*)0, str1, str2, i1, i2, i3);
  40. }
  41. class MiniBrowserCallbackI : public MiniBrowserCallback {
  42. public:
  43. virtual int minibrowsercb_onBeforeNavigate(const wchar_t *url, int flags, const wchar_t *frame)=0;
  44. virtual void minibrowsercb_onDocumentComplete(const wchar_t *url)=0;
  45. virtual void minibrowsercb_onDocumentReady(const wchar_t *url)=0;
  46. virtual void minibrowsercb_onMediaLink(const wchar_t *url)=0;
  47. virtual void minibrowsercb_onNavigateError(const wchar_t *url, int status)=0;
  48. virtual const wchar_t* minibrowsercb_messageToMaki(wchar_t* str1, wchar_t* str2, int i1, int i2, int i3)=0;
  49. protected:
  50. RECVS_DISPATCH;
  51. };
  52. class MiniBrowser : public Dispatchable {
  53. public:
  54. ifc_window *minibrowser_getRootWnd();
  55. int minibrowser_navigateUrl(const wchar_t *url);
  56. int minibrowser_back();
  57. int minibrowser_forward();
  58. int minibrowser_home();
  59. int minibrowser_refresh();
  60. int minibrowser_stop();
  61. void minibrowser_setTargetName(const wchar_t *name);
  62. const wchar_t *minibrowser_getTargetName();
  63. const wchar_t *minibrowser_getCurrentUrl();
  64. void minibrowser_getDocumentTitle(wchar_t *str, size_t len);
  65. void minibrowser_addCB(MiniBrowserCallback *cb);
  66. void minibrowser_setHome(const wchar_t *url);
  67. void minibrowser_setScrollbarsFlag(int a); // BROWSER_SCROLLBARS_ALWAYS, BROWSER_SCROLLBARS_AUTO, BROWSER_SCROLLBARS_NEVER
  68. void minibrowser_scrape();
  69. virtual void minibrowser_setCancelIEErrorPage(bool cancel);
  70. virtual const wchar_t* minibrowser_messageToJS(const wchar_t* str1, const wchar_t* str2, int i1, int i2, int i3);
  71. enum {
  72. MINIBROWSER_GETROOTWND = 100,
  73. MINIBROWSER_NAVIGATEURL = 200,
  74. MINIBROWSER_BACK = 300,
  75. MINIBROWSER_FORWARD = 400,
  76. MINIBROWSER_HOME = 500,
  77. MINIBROWSER_REFRESH = 600,
  78. MINIBROWSER_STOP = 700,
  79. MINIBROWSER_SETTARGETNAME = 800,
  80. MINIBROWSER_GETTARGETNAME = 900,
  81. MINIBROWSER_GETCURRENTURL = 1000,
  82. MINIBROWSER_ADDCB = 1100,
  83. MINIBROWSER_SETHOME = 1200,
  84. MINIBROWSER_SETSCROLLFLAG = 1300,
  85. MINIBROWSER_SCRAPE = 2000,
  86. MINIBROWSER_GETDOCUMENTTITLE = 2100,
  87. MINIBROWSER_SETCANCELIEERRORPAGE = 2200,
  88. MINIBROWSER_MESSAGETOJS = 2300,
  89. };
  90. enum {
  91. BROWSER_SCROLLBARS_DEFAULT = -1,
  92. BROWSER_SCROLLBARS_ALWAYS = 0,
  93. BROWSER_SCROLLBARS_AUTO = 1,
  94. BROWSER_SCROLLBARS_NEVER = 2,
  95. };
  96. };
  97. inline ifc_window *MiniBrowser::minibrowser_getRootWnd() {
  98. return _call(MINIBROWSER_GETROOTWND, (ifc_window *)NULL);
  99. }
  100. inline int MiniBrowser::minibrowser_navigateUrl(const wchar_t *url) {
  101. return _call(MINIBROWSER_NAVIGATEURL, 0, url);
  102. }
  103. inline int MiniBrowser::minibrowser_back() {
  104. return _call(MINIBROWSER_BACK, 0);
  105. }
  106. inline int MiniBrowser::minibrowser_forward() {
  107. return _call(MINIBROWSER_FORWARD, 0);
  108. }
  109. inline int MiniBrowser::minibrowser_home() {
  110. return _call(MINIBROWSER_HOME, 0);
  111. }
  112. inline int MiniBrowser::minibrowser_refresh() {
  113. return _call(MINIBROWSER_REFRESH, 0);
  114. }
  115. inline int MiniBrowser::minibrowser_stop() {
  116. return _call(MINIBROWSER_STOP, 0);
  117. }
  118. inline void MiniBrowser::minibrowser_setHome(const wchar_t *url) {
  119. _voidcall(MINIBROWSER_SETHOME, url);
  120. }
  121. inline void MiniBrowser::minibrowser_setTargetName(const wchar_t *name) {
  122. _voidcall(MINIBROWSER_SETTARGETNAME, name);
  123. }
  124. inline const wchar_t *MiniBrowser::minibrowser_getTargetName() {
  125. return _call(MINIBROWSER_GETTARGETNAME, (const wchar_t *)NULL);
  126. }
  127. inline void MiniBrowser::minibrowser_getDocumentTitle(wchar_t *str, size_t len) {
  128. _voidcall(MINIBROWSER_GETDOCUMENTTITLE, str, len);
  129. }
  130. inline const wchar_t *MiniBrowser::minibrowser_getCurrentUrl() {
  131. return _call(MINIBROWSER_GETCURRENTURL, (const wchar_t *)NULL);
  132. }
  133. inline void MiniBrowser::minibrowser_addCB(MiniBrowserCallback *cb) {
  134. _voidcall(MINIBROWSER_ADDCB, cb);
  135. }
  136. inline void MiniBrowser::minibrowser_setScrollbarsFlag(int a) {
  137. _voidcall(MINIBROWSER_SETSCROLLFLAG, a);
  138. }
  139. inline void MiniBrowser::minibrowser_scrape()
  140. {
  141. _voidcall(MINIBROWSER_SCRAPE);
  142. }
  143. inline void MiniBrowser::minibrowser_setCancelIEErrorPage(bool cancel)
  144. {
  145. _voidcall(MINIBROWSER_SETCANCELIEERRORPAGE, cancel);
  146. }
  147. inline const wchar_t* MiniBrowser::minibrowser_messageToJS(const wchar_t* str1, const wchar_t* str2, int i1, int i2, int i3)
  148. {
  149. return _call(MINIBROWSER_MESSAGETOJS, (const wchar_t *)NULL, str1, str2, i1, i2, i3);
  150. }
  151. class MiniBrowserI : public MiniBrowser {
  152. public:
  153. virtual ifc_window *minibrowser_getRootWnd()=0;
  154. virtual int minibrowser_navigateUrl(const wchar_t *url)=0;
  155. virtual int minibrowser_back()=0;
  156. virtual int minibrowser_forward()=0;
  157. virtual int minibrowser_home()=0;
  158. virtual int minibrowser_refresh()=0;
  159. virtual int minibrowser_stop()=0;
  160. virtual void minibrowser_setTargetName(const wchar_t *name)=0;
  161. virtual const wchar_t *minibrowser_getTargetName()=0;
  162. virtual const wchar_t *minibrowser_getCurrentUrl()=0;
  163. virtual void minibrowser_getDocumentTitle(wchar_t *str, size_t len)=0;
  164. virtual void minibrowser_addCB(MiniBrowserCallback *cb)=0;
  165. virtual void minibrowser_setHome(const wchar_t *url)=0;
  166. virtual void minibrowser_setScrollbarsFlag(int a)=0;
  167. virtual void minibrowser_scrape()=0;
  168. virtual void minibrowser_setCancelIEErrorPage(bool cancel)=0;
  169. virtual const wchar_t* minibrowser_messageToJS(const wchar_t* str1, const wchar_t* str2, int i1, int i2, int i3)=0;
  170. protected:
  171. RECVS_DISPATCH;
  172. };
  173. #endif