xj qian
2024-12-11 d912c0e116080cf2583fc276fde2c530b9f8f956
jrj/xframe/devloper/XDevEditXApp.cpp
@@ -74,6 +74,8 @@
         xstring p = L"<box name='image_view' width='22'><xtoolbutton caption='' image='" + xstring(j) + L"'/></box>";
         SetAgentNode(anode,p);
      }
      return 1;
   }
   int onClare()
@@ -125,13 +127,15 @@
      SendMessage(xc.GetHWND(), 0x014E, 0, 0);
      OnCombSelChanged();
      return 1;
   }
   xstring getTVData(HTREEITEM hitem)
   {
      xstring result = L"";
      HTREEITEM citem = tv_folder.GetChildItem(hitem);
      while (citem > 0)
      while (citem)
      {
         xstring str = (wchar_t*)tv_folder.GetItemData(citem);
         xstring name = str.mid(1,str.find(L" ",0));
@@ -170,7 +174,7 @@
      {
         int index = s.toInt();
         HTREEITEM h = tv_folder.GetChildItem(hitem);
         while (h > 0)
         while (h)
         {
            xstring p = (wchar_t*)tv_folder.GetItemData(h);
            xml x ;
@@ -205,6 +209,7 @@
         copyNode(citem,h);
         citem = tv_folder.GetNextItem(citem);
      }
      return 1;
   }
   //命令发布函数
@@ -420,44 +425,46 @@
         }
      }
      xc = GetControl(L"image");
      xstring str = e.getAttribute(L"image");
      str = e.getAttribute(L"image");
      //xc.SetText(L""+str);
      SendMessage(xc.GetHWND(), 0x014E, str.toInt(), 0);
      xc = GetControl(L"index");
      xstring str = e.getAttribute(L"index");
      str = e.getAttribute(L"index");
      xc.SetText(L"" + str);
      xc = GetControl(L"code");
      xstring str = e.getAttribute(L"code");
      str = e.getAttribute(L"code");
      xc.SetText(L"" + str);
      xc = GetControl(L"name");
      xstring str = e.getAttribute(L"name");
      str = e.getAttribute(L"name");
      xc.SetText(L"" + str);
      xc = GetControl(L"status");
      xstring str = e.getAttribute(L"status");
      str = e.getAttribute(L"status");
      xc.SetText(L"" + str);
      OnCombSelChanged();
      return 1;
   }
   int OnTreeSelChanged(ref TNotifyEvent evt,int param)
   int OnTreeSelChanged(TEvent* evt,LPARAM param)
   {
      ref NMTREEVIEW nmtv = evt.pnmh;
      int hitem = nmtv.itemNew.hItem;
      NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
      HTREEITEM hitem = nmtv.itemNew.hItem;
      onClare();
      m_mode = L"new";
      if (hitem == tv_folder.GetRootItem()) return 0;
      //IXMLDOMElement e = tv_folder.GetItemData(hitem);
      //trace(e.xml);
      param p = tv_folder.GetItemData(hitem);
      xstring p = (wchar_t*)tv_folder.GetItemData(hitem);
      xml x ;
      x.loadXML(L"" + xstring(p));
      IXMLDOMElement e = x.documentElement;
      m_type = e.tagName;
      x.loadXML(p);
      KXMLDOMElement e = x.documentElement();
      m_type = e.tagName();
      if (m_type == L"file")
         OnCmdDispatch(L"NewFile");
      else
@@ -469,12 +476,14 @@
   int OnAttachEvent()
   {
      //绑定工具条点击事件
      AttachEvent(L"WM_XCOMMAND",OnXCommand);
      AttachEvent(L"WM_XCOMMAND", (FEvent)&XDevEditXApp::OnXCommand);
      //获取焦点事件,用于重置工具条
      AttachEvent(L"WM_SETFOCUS",OnSetFocus);
      AttachEvent(L"image", L"CBN_SELCHANGE",OnCombSelChanged);
      AttachEvent(L"tv_folder", L"TVN_ENDDRAG",OnTreeDrag);
      AttachEvent(L"tv_folder", L"TVN_SELCHANGED",OnTreeSelChanged);
      AttachEvent(L"WM_SETFOCUS", (FEvent)&XDevEditXApp::OnSetFocus);
      AttachEvent(L"image", L"CBN_SELCHANGE", (FEvent)&XDevEditXApp::OnCombSelChanged);
      AttachEvent(L"tv_folder", L"TVN_ENDDRAG", (FEvent)&XDevEditXApp::OnTreeDrag);
      AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&XDevEditXApp::OnTreeSelChanged);
      return 1;
   }
   int OnInitial()
@@ -487,7 +496,7 @@
      int i;
      for (i = 0; i < 35; i++)
      {
         SendMessage(xc.GetHWND(), 0x0143, 0, i.toString());
         SendMessage(xc.GetHWND(), 0x0143, 0, (LPARAM)xstring(i).c_str());
         //param p=i.toString();
         //SendMessage(xc.GetHWND(), 0x0151, i, p);
      }
@@ -496,21 +505,19 @@
      return 1;
   }
   int OnTreeAdd(int hitem, IXMLDOMElement e)
   int OnTreeAdd(HTREEITEM hitem, KXMLDOMElement e)
   {
      auto list = e.selectNodes(L"*");
      int i;
      int s = list.length;
      int s = list.length();
      for (i = 0; i < s; i++)
      {
         IXMLDOMElement ele = list.item(i);
         KXMLDOMElement ele = list.item(i);
         xstring name = ele.getAttribute(L"caption");
         xstring image = ele.getAttribute(L"image");
         image = L"" + image;
         xstring data = ele.xml;
         xstring data = ele.xml();
         data = data.mid(0,data.find(L">",1)) + L"/>";
         param p = data;
         int j = tv_folder.InsertChildItem(hitem,name,p,image.toInt());
         HTREEITEM j = tv_folder.InsertChildItem(hitem,name.c_str(), (LPARAM)data.c_str(true), image.toInt());
         OnTreeAdd(j,ele);
      }
      return 1;
@@ -529,13 +536,13 @@
      OnCmdDispatch(L"NewFolder");
      m_mode = L"new";
      if (!GetParam()) return 1;
      if (!GetWinParam()) return 1;
      xwin w = GetFrameWindow();
      xtree tv = w.GetControl(L"DevExplorer");
      int hItem = GetParam();
      IXMLDOMElement e = tv.GetItemData(hItem);
      xtreeview tv = w.GetControl(L"DevExplorer");
      HTREEITEM hItem = (HTREEITEM)GetWinParam();
      KXMLDOMElement e = tv.GetItemData(hItem);
      xstring name = e.getAttribute(L"caption");
      int root = tv_folder.InsertItem(L"" + name,e,17);
      HTREEITEM root = tv_folder.InsertItem(name.c_str(), e, 17);
      xstring content = GetData();
      if (content != L"")
      {
@@ -543,7 +550,7 @@
         xml x ;
         if (x.loadXML(content))
         {
            OnTreeAdd(root,x.documentElement);
            OnTreeAdd(root,x.documentElement());
            tv_folder.ExpandItemEx(root);
         }
      }