U++ framework
Do not panic. Ask here before giving up.

Home » U++ Library support » TreeCtrl » SetFocus with EditString as Node
Re: SetFocus with EditString as Node [message #40918 is a reply to message #40901] Mon, 07 October 2013 20:20 Go to previous messageGo to previous message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
iST1 wrote on Sat, 05 October 2013 09:35

This is simple edit node example (based on <a href=" http://www.ultimatepp.org/forum/index.php?t=msg&th=6380& amp; amp;start=0&" target="_blank"></a>) with SetFocus problem when first "Add" button click:
class EditableTree : public TreeCtrl {
public:
	EditableTree() : selId_(-1) {
		editNode.SetCtrl(edit);
		OpenDeep(0, true);
	}
	
	void AddNode() {
		CloseEdit();
		
		int selId_ = Add(0);

   		edit.SetData("Node" + AsString(selId_));
   		edit.Show();
    	        edit.AutoSize();
		edit.SetFocus();//at first not select because IsOpen is false => why?

		SetNode(selId_, editNode);
	}
	
	void CloseEdit() {
		if (selId_ > 0) {
			SetNode(selId_, Node(~edit));
			edit.Hide();
		}
	}
	
private:
	int selId_;
    EditString edit;
   	TreeCtrl::Node editNode;
};

GUI_APP_MAIN
{	
	TopWindow wnd;
	Button btn;
	wnd.Add(btn.SetLabel("Add").LeftPos(10).TopPos(10));
	
	EditableTree tree;
	wnd.Add(tree.VSizePos(40).HSizePos());

	btn <<= callback(&tree, &EditableTree::AddNode);
        wnd.Run();
}



Should be fixed, however you have to use SetFocus AFTER SetNode,
because only widget that is descendant of open window can have focus and until SetNode, edit is not assigned to any window. However, TreeCtrl still needed fixing to make it work...
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message icon14.gif
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Hide expand/collapse ico
Next Topic: Node id calculation after removal ?
Goto Forum:
  


Current Time: Wed Sep 16 00:23:39 GMT+2 2026

Total time taken to generate the page: 0.01396 seconds