Jump to content

Code Snippet (max style folding panel)


photo

Recommended Posts

class WidgetFoldingPanel {
	WidgetGroupBox	panel;
	WidgetIcon		fold_icon;
	WidgetVBox		content;
	string 			id; // used for saving settings
                                           // use title if id is not supplied


	WidgetFoldingPanel(string title, WidgetVBox child, string id_="") {
		id=id_;
		if(id == "") id=title;
		content = child;
		panel = new WidgetGroupBox(engine.getGui(),title);
		panel.setWidth(283);
		panel.setSpace(2,2);
		fold_icon = new WidgetIcon(engine.getGui(),"ai3d/gui/fold.png");
		fold_icon.setToggleable(true);
		fold_icon.setWidth(250);
		fold_icon.setCallback(GUI_CLICKED,"Interface::WidgetFoldingPanel::fold_panel_",this);
		panel.addChild(fold_icon,GUI_ALIGN_OVERLAP|GUI_ALIGN_TOP|GUI_ALIGN_LEFT);
		fold_icon.setPosition(-3,-16);
		panel.addChild(content,GUI_ALIGN_EXPAND);
	}
	void save() {
		//Config::setBool(id + "_panel_hidden",fold_icon.isToggled());
	}
	void restore(){
		//fold_icon.setToggled(Config::getBool(id + "_panel_hidden",true));
	}
	void fold_panel() {
		content.setHidden(fold_icon.isToggled());
	}
	void fold_panel_(WidgetFoldingPanel p) {
		p.fold_panel();
	}
	void setHidden(int h) {
		panel.setHidden(h);
	}
	Widget getWidget() {
		return panel;
	} 
};

 

This creates a 3DStudio Max style folding GroupBox...

  • Like 1
Link to comment
×
×
  • Create New...