danni.coy Posted November 25, 2010 Posted November 25, 2010 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... 1
danni.coy Posted November 25, 2010 Author Posted November 25, 2010 this is what the results look like
ivan.cuevas Posted November 25, 2010 Posted November 25, 2010 Very nice piece of code, thanks for share it :)
Recommended Posts