123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- #include <precomp.h>
- #include <api/skin/widgets/mb/minibrowserwnd.h>
- #include <api/skin/widgets/mb/minibrowser.h>
- #include <api/service/svcs/svc_minibrowser.h>
- #include <api/service/svc_enum.h>
- MiniBrowserWnd::MiniBrowserWnd(GUID mb_provider) {
- mb = NULL;
- mbsvc = MiniBrowserSvcEnum(mb_provider).getFirst();
- }
- MiniBrowserWnd::~MiniBrowserWnd() {
- if (mbsvc) {
- if (mb) mbsvc->destroyMiniBrowser(mb);
- WASABI_API_SVC->service_release(mbsvc);
- }
- }
- int MiniBrowserWnd::onInit() {
- int r = MBWND_PARENT::onInit();
- if (mb) {
- mb->minibrowser_getRootWnd()->setStartHidden(1);
- mb->minibrowser_getRootWnd()->setParent(this);
- r &= mb->minibrowser_getRootWnd()->init(this);
- }
- onSetVisible(1);
- return r;
- }
- void MiniBrowserWnd::onSetVisible(int i) {
- MBWND_PARENT::onSetVisible(i);
- if (i) {
- if (!mb && mbsvc) {
- mb = mbsvc->createMiniBrowser();
- if (mb) {
- mb->minibrowser_addCB(this);
- mb->minibrowser_getRootWnd()->setStartHidden(1);
- mb->minibrowser_getRootWnd()->setParent(this);
- mb->minibrowser_getRootWnd()->init(this);
- if (isPostOnInit())
- onResize();
- }
- }
- } else {
- if (mb) {
- mbsvc->destroyMiniBrowser(mb);
- mb = NULL;
- }
- }
- if (mb && mb->minibrowser_getRootWnd()) {
- mb->minibrowser_getRootWnd()->setVisible(i);
- }
- }
- int MiniBrowserWnd::onResize() {
- int r = MBWND_PARENT::onResize();
- if (mb && mb->minibrowser_getRootWnd()) {
- RECT r;
- getClientRect(&r);
- mb->minibrowser_getRootWnd()->resize(r.left, r.top, r.right-r.left, r.bottom-r.top);
- }
- return r;
- }
- int MiniBrowserWnd::handleDesktopAlpha() {
- if (mb && mb->minibrowser_getRootWnd()) return mb->minibrowser_getRootWnd()->handleDesktopAlpha();
- return 0;
- }
- int MiniBrowserWnd::handleRatio() {
- if (mb && mb->minibrowser_getRootWnd()) return mb->minibrowser_getRootWnd()->handleRatio();
- return 0;
- }
- int MiniBrowserWnd::navigateUrl(const wchar_t *url) {
- if (mb) return mb->minibrowser_navigateUrl(url);
- return 0;
- }
- int MiniBrowserWnd::back() {
- if (mb) return mb->minibrowser_back();
- return 0;
- }
- int MiniBrowserWnd::forward() {
- if (mb) return mb->minibrowser_forward();
- return 0;
- }
- int MiniBrowserWnd::home() {
- if (mb) return mb->minibrowser_home();
- return 0;
- }
- int MiniBrowserWnd::refresh() {
- if (mb) return mb->minibrowser_refresh();
- return 0;
- }
- int MiniBrowserWnd::stop() {
- if (mb) return mb->minibrowser_stop();
- return 0;
- }
- void MiniBrowserWnd::setTargetName(const wchar_t *name) {
- if (mb) mb->minibrowser_setTargetName(name);
- }
- const wchar_t *MiniBrowserWnd::getTargetName() {
- if (mb) return mb->minibrowser_getTargetName();
- return NULL;
- }
- const wchar_t *MiniBrowserWnd::getCurrentUrl() {
- if (mb) return mb->minibrowser_getCurrentUrl();
- return NULL;
- }
- int MiniBrowserWnd::onBeforeNavigate(const wchar_t *url, int flags, const wchar_t *frame) {
- return 0; // return 1 to cancel navigation
- }
- void MiniBrowserWnd::onDocumentComplete(const wchar_t *url) {
- }
- void MiniBrowserWnd::onDocumentReady(const wchar_t *url) {
- }
- void MiniBrowserWnd::onNavigateError(const wchar_t *url, int status) {
- }
- void MiniBrowserWnd::onMediaLink(const wchar_t *url) {
- }
- const wchar_t* MiniBrowserWnd::messageToMaki(wchar_t* str1, wchar_t* str2, int i1, int i2, int i3)
- {
- return 0;
- }
- int MiniBrowserWnd::minibrowsercb_onBeforeNavigate(const wchar_t *url, int flags, const wchar_t *frame) {
- return onBeforeNavigate(url, flags, frame);
- }
- void MiniBrowserWnd::minibrowsercb_onDocumentComplete(const wchar_t *url) {
- onDocumentComplete(url);
- }
- void MiniBrowserWnd::minibrowsercb_onDocumentReady(const wchar_t *url) {
- onDocumentReady(url);
- }
- void MiniBrowserWnd::minibrowsercb_onMediaLink(const wchar_t *url) {
- onMediaLink(url);
- }
- void MiniBrowserWnd::minibrowsercb_onNavigateError(const wchar_t *url, int status) {
- onNavigateError(url, status);
- }
- const wchar_t* MiniBrowserWnd::minibrowsercb_messageToMaki(wchar_t* str1, wchar_t* str2, int i1, int i2, int i3)
- {
- return messageToMaki(str1, str2, i1, i2, i3);
- }
- void MiniBrowserWnd::setScrollbarsFlag(int a) {
- if (mb) mb->minibrowser_setScrollbarsFlag(a);
- }
- MiniBrowser *MiniBrowserWnd::getBrowser() {
- return mb;
- }
|