diff mde/gui/widget/ParentContent.d @ 172:0dd49f333189

Implemented "void setContent (IContent)".
author Diggory Hardy <diggory.hardy@gmail.com>
date Wed, 29 Jul 2009 20:28:22 +0200
parents e45226d3deae
children a1ba9157510e
line wrap: on
line diff
--- a/mde/gui/widget/ParentContent.d	Sun Jul 26 11:04:17 2009 +0200
+++ b/mde/gui/widget/ParentContent.d	Wed Jul 29 20:28:22 2009 +0200
@@ -163,6 +163,9 @@
     override IContent content () {
         return content_;
     }
+    override void setContent (IContent) {
+	logger.warn ("SwitchWidget: resetting content is not yet supported");
+    }
     
     override bool setup (uint n, uint flags) {
         bool r = super.setup (n, flags);
@@ -296,6 +299,15 @@
     override IContent content () {
         return content_;
     }
+    override void setContent (IContent c) {
+	auto cont = cast(IBoolContent) c;
+	if (!cont) {
+	    logger.warn ("CollapsibleWidget: invalid content set: {}; ignoring", c);
+	    return;
+	}
+	content_ = cont;
+	collapse (content_);
+    }
     
     override void minWChange (IChildWidget widget, wdim nmw) {
         debug assert (widget is subWidgets[0]);
@@ -344,6 +356,7 @@
 protected:
     // callback on content_
     void collapse (IContent) {
+	if (collapsed == content_()) return;
         collapsed = content_();
         if (collapsed) {
             mw = mh = 0;
@@ -391,6 +404,10 @@
         return true;
     }
     
+    override void setContent (IContent c) {
+	subWidgets[0].setContent = c;
+    }
+    
     override void setWidth (wdim nw, int) {
         debug assert (nw >= mw);
         w = nw;