From a6b54d999992d72b2d9ea33efec0b7d642ea9f2d Mon Sep 17 00:00:00 2001
From: LiFan <2308045698@qq.com>
Date: 星期四, 18 七月 2024 12:21:12 +0800
Subject: [PATCH] update

---
 jrj/xframe/wobject/xwin.hpp |   42 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 41 insertions(+), 1 deletions(-)

diff --git a/jrj/xframe/wobject/xwin.hpp b/jrj/xframe/wobject/xwin.hpp
index 83ebe7a..011b1d2 100644
--- a/jrj/xframe/wobject/xwin.hpp
+++ b/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);
 	}
@@ -120,6 +120,11 @@
 	xnode SetAgentNode(xnode node,xnode val)
 	{
 		return xnode(getKWin()->SetAgentNodeContent((knode*)node.getNativePointer(), (knode*)val.getNativePointer()));
+	}
+
+	Hxsoft::XFrame::IXPage* GetXPage()
+	{
+		return getKWin()->GetXPage();
 	}
 
 	LPARAM GetWinParam()
@@ -185,6 +190,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();

--
Gitblit v1.9.3