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 » U++ Widgets - General questions or Mixed problems » Howto create control-collection -control? [SOLVED -good example]
Re: Howto create control-collection -control? [message #1663 is a reply to message #1519] Sun, 12 March 2006 11:25 Go to previous messageGo to previous message
wilho is currently offline  wilho
Messages: 19
Registered: February 2006
Promising Member
OK, you convinced me.

class ExpressPane : public Ctrl {
	struct SlaveControl {
	    bool isInSplitter;
	    Ctrl* slave;
	};	
	Array<Button> closer;
	Array<SlaveControl> slaves;
	Splitter splitter;

	static const int BTN_SPACE = 22;
	typedef ExpressPane CLASSNAME;

	int btnIndx;	
	void Toggle(int);
public:
	void Add(const char *text, Ctrl& slave);
	ExpressPane();
};

ExpressPane::ExpressPane(){
	Ctrl::Add(splitter);
	splitter.Vert();
}
void ExpressPane::Toggle(int indx){
	slaves[indx].isInSplitter = slaves[indx].isInSplitter == true ? false:true; 

	for(int loopI=slaves.GetCount()-1; loopI>-1; loopI--){
		splitter.RemoveChild( slaves[loopI].slave );
		if (slaves[loopI].isInSplitter == true){
			splitter << *slaves[loopI].slave;
		}
	}
	splitter.RefreshLayout();
}
void ExpressPane::Add(const char *text, Ctrl& slave){

	Button* button = new Button;
	Callback argCB = callback1(this,Toggle, btnIndx++);
	*button <<= argCB;
	button->SetLabel(text);
	button->HSizePosZ(0, 0).BottomPosZ(BTN_SPACE * (btnIndx-1), BTN_SPACE -2);
	splitter.HSizePosZ(0, 0).VSizePosZ(0, BTN_SPACE * btnIndx);
	Ctrl::Add(*button);
	closer.Add(button);

	SlaveControl slvCtrl;
	slvCtrl.isInSplitter = false;
	slvCtrl.slave = &slave; 
	slaves.Add(slvCtrl);
}


Thank you, this has ben very...educational Smile

[Updated on: Sun, 12 March 2006 11:26]

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
Previous Topic: Help needed to deal with Display
Next Topic: Application crush
Goto Forum:
  


Current Time: Fri May 10 07:52:11 CEST 2024

Total time taken to generate the page: 0.02448 seconds