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 » Developing U++ » U++ Developers corner » Proposed change to U++ to allow owning children.
Re: Proposed change to U++ to allow owning children. [message #31593 is a reply to message #31592] Wed, 16 March 2011 18:10 Go to previous messageGo to previous message
Lance is currently offline  Lance
Messages: 533
Registered: March 2007
Contributor
AFAIK, that has already been taken care of by AddChild0 or something like that.

void  Ctrl::AddChild(Ctrl *q, Ctrl *p, int flag)
{
	GuiLock __;
	ASSERT(q);

	LLOG("Add " << UPP::Name(q) << " to: " << Name());
	if(p == q) return;
	bool updaterect = true;
	bool owned;
	switch(flag)
	{
		default: // note, all value of flag other than 0&1 in this branch
			owned=q->owned;
			break;
		case 0:
		case 1:
			q->owned=flag==1;
	}

	///if(dynamic_cast<q
	
	if(q->parent) {
		ASSERT(!q->inframe);


//************************
// following couple of lines takes care of the issues you raised.
//*************************
		if(q->parent == this) {
			RemoveChild0(q, true); // detach only
			updaterect = false;
		}
		else
			q->parent->RemoveChild(q, true); // detach only	}
	q->parent = this;
	if(p) {
		ASSERT(p->parent == this);
		q->prev = p;
		q->next = p->next;
		if(p == lastchild)
			lastchild = q;
		else
			p->next->prev = q;
		p->next = q;
	}
	else
		if(firstchild) {
			q->prev = NULL;
			q->next = firstchild;
			firstchild->prev = q;
			firstchild = q;
		}
		else {
			ASSERT(lastchild == NULL);
			firstchild = lastchild = q;
			q->prev = q->next = NULL;
		}
	q->CancelModeDeep();
	if(updaterect)
		q->UpdateRect();
	ChildAdded(q);
	q->ParentChange();
	if(updaterect && GetTopCtrl()->IsOpen())
		q->StateH(OPEN);
	if(dynamic_cast<DHCtrl *>(q))
		SyncDHCtrl();
}

[Updated on: Wed, 16 March 2011 18:11]

Report message to a moderator

 
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
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
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
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
Previous Topic: Get MAC addresses for windows and linux
Next Topic: Testing framework in U++.
Goto Forum:
  


Current Time: Fri Jun 07 22:27:18 CEST 2024

Total time taken to generate the page: 0.02552 seconds