Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ Library support » TreeCtrl » Editing TreeCtrl Node Value
Re: Editing TreeCtrl Node Value [message #34476 is a reply to message #34446] Fri, 25 November 2011 01:50 Go to previous messageGo to previous message
bushman is currently offline  bushman
Messages: 134
Registered: February 2009
Experienced Member
I improvised with the following code:

.h:
class App : public TopWindow {	
  public:
    typedef App CLASSNAME;
    App();

  private:
    struct TreeEdit : public EditString {
      Callback WhenLostFocus;
      TreeEdit() {}
      virtual void LostFocus() { WhenLostFocus(); }
    };
		
    bool                isedit;
    int                 nodeid;
    TreeCtrl::Node	editnode, node;
    TreeEdit		edit;
    TreeCtrl            tree;
		
    void EditBranch();
    void CloseEdit();
};


.cpp:
App::App() : isedit(false), nodeid(-1) {
   Add(tree.SizePos());
  /*
   ...
   Populate TreeCtrl here
   ...
  */
   tree.WhenLeftClick = THISBACK(EditBranch);
   editnode.SetCtrl(edit);
   edit.WhenEnter = THISBACK(CloseEdit);
   edit.WhenLostFocus = THISBACK(CloseEdit);
}

void App::EditBranch()
{
  if(isedit) {
    CloseEdit();
    return;
  }
  if(nodeid != tree.GetCursor()) {
    nodeid = tree.GetCursor();
    return;
  }
  isedit = true;
  node = tree.GetNode(nodeid);
  editnode.ctrl->SetData(node.value);
  editnode.image = node.image;
  groups.SetNode(nodeid, editnode);
  editnode.ctrl->Show();
}

void App::CloseEdit()
{
  node.value = editnode.ctrl->GetData();
  tree.SetNode(nodeid, node);
  tree.SelectOne(nodeid);
  editnode.ctrl->Hide();
  isedit = false;
}



It works in a way, but I guess there must be an easier way of acomplishing this.

thanks for any help.
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: PROPOSAL : allow inserting and retrieving of classes DERIVED from TreeCtrl::Node
Next Topic: PROPOSAL: seperate backend from frontend
Goto Forum:
  


Current Time: Fri Aug 22 15:51:33 CEST 2025

Total time taken to generate the page: 0.05547 seconds