xj qian
2024-07-17 0b8444d0eef50d1ee4e0d0b51e174fa5b447d802
jrj/xframe/wobject/xwin.hpp
@@ -67,7 +67,7 @@
      return getKWin()->AttachEvent((LPTSTR)msg,*(Hxsoft::XFrame::FEvent*)&fnEvt,this);
   }
   
   kcontrol* xcontrol(const wchar_t* ctrlname)
   kcontrol* GetControl(const wchar_t* ctrlname)
   {
      return getKWin()->GetControl(ctrlname);
   }
@@ -185,6 +185,41 @@
      return -1;
   }
   int openUrl(xstring aurl, LPARAM para)
   {
      KXMLDOMDocument x;
      xurl::get(GetServerUrl(), aurl, L"", x);
      KXMLDOMNode n = x.selectSingleNode(L"//resource/@src");
      if (n)
      {
         string xq = n.text();
         OpenWindow(xq, (LPARAM)para);
         return 1;
      }
      else
      {
         n = x.selectSingleNode(L"//resource[@vface!='' and @view!='']");
         if (n)
         {
            xstring vface = n.selectSingleNode(L"@vface").text();
            xstring view = n.selectSingleNode(L"@view").text();
            xstring config = n.selectSingleNode(L"@config").text();
            if (vface == L"." || vface == L"")
            {
               string v = n.selectSingleNode(L"@url").text();
               xstring burl = xstring(aurl).mid(0, xstring(aurl).find(v, 0));
               return openUrl(burl + view, para);
            }
            else
               return openUrl(vface + L"/" + view, para);
         }
      }
      return -1;
   }
   int CloseWindow()
   {
      return getKWin()->CloseWindow();