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 #1654 is a reply to message #1519] Sat, 11 March 2006 18:09 Go to previous messageGo to previous message
wilho is currently offline  wilho
Messages: 19
Registered: February 2006
Promising Member
Ahh, sweet weekend - time for hobby-coding. I had to play with MFC a bit during a week and I must say it's pleasure get back with upp again Smile

This is how I solved the thing above:
class dummy{};
class SButton : public Button{
	typedef SButton CLASSNAME;
	Splitter* container;
	Ctrl* slaveCtrl;
	bool visible;
	
	public:
		void Toggle(){
			if (visible){
				container->RemoveChild(slaveCtrl);
				container->RefreshLayout();
			}
			else{			
				*container << *slaveCtrl;
				container->RefreshLayout();
			}
			visible = visible == true ? false:true;
		}
		SButton(Splitter* splitter, Ctrl* slave ){
			container = splitter;
			slaveCtrl = slave;
			visible = false;
			*this <<= THISBACK(Toggle);
		}
};

#define LAYOUTFILE <localizer/empty.lay>
#include <CtrlCore/lay.h>
class SButtons : public WithEmptyLayout<ParentCtrl>, public dummy{

	static const int BTN_SPACE = 25; 
	Vector<SButton*> buttons;
	int btnIndx;
	Splitter vert;
	ParentCtrl container;
public:
	SButtons();
	~SButtons();
	void Vert(Ctrl&);
};
SButtons::SButtons(){
	CtrlLayout(*this);
	Add(container);
	vert.Vert();
	Add(vert);
}
SButtons::~SButtons(){
	Vector<SButton*>::Iterator bpi = buttons.Begin();
	for (;bpi < buttons.End();bpi++ ){
		delete *bpi;
	}
}
void SButtons::Vert(Ctrl& ctrl){
	SButton* button = new SButton(&vert, &ctrl);
	Add(*button);

	button->HSizePosZ(0, 0).BottomPosZ(BTN_SPACE * btnIndx++, BTN_SPACE -2);
	vert.HSizePosZ(0, 0).VSizePosZ(0, BTN_SPACE * btnIndx);
	buttons.Add(button);
}


Couple of questions though:
1) How in the hell my buttons won't get visible with that derived dummy class? Doesn't make sense to me...
2) Is there a way to derive a class from layout without defining empty layout as above?
 
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 Jun 06 23:24:51 CEST 2025

Total time taken to generate the page: 0.04514 seconds