Hi Kora,

first: Install a "Appear" listener to the canvas. Because it only gets a 
context when it is appeared.

second: there is a weird bug with canvas. It seems as if it loses connection to 
the real canvas context, in this rendering context.
No matter what i created a workaround for your use case. Please try the 
following createCanvas method:



   /**
     * Creates and returns the image widget. Override this to adapt the widget 
code.
     *
     * @return {qx.ui.mobile.basic.Image} the image widget.
     */
    _createCanvas : function() {
      var canvas = new qx.ui.mobile.embed.Canvas();

      this.addListener("appear",function(){
        var canvas = document.getElementById(this.getId());
        var ctx=canvas.getContext("2d");
        ctx.fillStyle="#FF0000";
        ctx.fillRect(0,0,150,75);
        ctx.beginPath();
        ctx.arc(75,75,50,0,Math.PI*2,true); // Outer circle
        ctx.moveTo(110,75);
        ctx.arc(75,75,35,0,Math.PI,false);   // Mouth (clockwise)
        ctx.moveTo(65,65);
        ctx.arc(60,65,5,0,Math.PI*2,true);  // Left eye
        ctx.moveTo(95,65);
        ctx.arc(90,65,5,0,Math.PI*2,true);  // Right eye
        ctx.stroke();
      },canvas);

      canvas.setWidth(100);
      canvas.setHeight(100);

      return canvas;


    },


Am 07.12.2012 um 17:06 schrieb kora:

> Hi,
>
> I wrote a modificated qx.ui.mobile.list.List that contains a
> qx.ui.mobile.embed.Canvas widget.
> Done by creation and registration of a CanvasListDelegator /
> CanvasListRenderer.
>
> My problem is, the "canvas drawing" don't appear.
> Has anybody got a solution / an idea ?
>
> Cheers
>
> Kora
>
>
>
> Her you have the Playground example code to reproduce the behaviour:
>
>
>
> http://demo.qooxdoo.org/devel/playground/#%7B%22code%22%3A%22qx.Class.define%28%2522mobileclient.ui.mobile.list.renderer.CanvasListRenderer%2522%252C%250A%257B%250A%2520%2520extend%2520%253A%2520qx.ui.mobile.list.renderer.Abstract%252C%250A%250A%250A%2520%252F*%250A%2520%2520*****************************************************************************%250A%2520%2520%2520%2520%2520CONSTRUCTOR%250A%2520%2520*****************************************************************************%250A%2520%2520*%252F%250A%250A%2520%2520construct%2520%253A%2520function%28layout%29%250A%2520%2520%257B%250A%2520%2520%2520%2520this.base%28arguments%252C%2520layout%2520%257C%257C%2520new%2520qx.ui.mobile.layout.HBox%28%29.set%28%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520alignY%2520%253A%2520%2522middle%2522%250A%2520%2520%2520%2520%2520%2520%257D%29%29%253B%250A%2520%2520%2520%2520this._init%28%29%253B%250A%2520%2520%257D%252C%250A%250A%250A%250A%250A%2520%252F*%250A%2520%2520*****************************************************************************%250A%2520%2520%2520%2520%2520MEMBERS%250A%2520%2520*****************************************************************************%250A%2520%2520*%252F%250A%250A%2520%2520members%2520%253A%250A%2520%2520%257B%250A%2520%2520%2520%2520__image%2520%253A%2520null%252C%250A%2520%2520%2520%2520__title%2520%253A%2520null%252C%250A%2520%2520%2520%2520__subtitle%2520%253A%2520null%252C%250A%2520%2520%2520%2520__rightContainer%2520%253A%2520null%252C%250A%250A%250A%2520%2520%2520%2520%252F**%250A%2520%2520%2520%2520%2520*%2520Returns%2520the%2520image%2520widget%2520which%2520is%2520used%2520for%2520this%2520renderer.%250A%2520%2520%2520%2520%2520*%250A%2520%2520%2520%2520%2520*%2520%2540return%2520%257Bqx.ui.mobile.basic.Image%257D%2520The%2520image%2520widget%250A%2520%2520%2520%2520%2520*%252F%250A%2520%2520%2520%2520getImageWidget%2520%253A%2520function%28%29%2520%257B%250A%2520%2520%2520%2520%2520%2520return%2520this.__image%253B%250A%2520%2520%2520%2520%257D%252C%250A%250A%250A%2520%2520%2520%2520%252F**%250A%2520%2520%2520%2520%2520*%2520Returns%2520the%2520title%2520widget%2520which%2520is%2520used%2520for%2520this%2520renderer.%250A%2520%2520%2520%2520%2520*%250A%2520%2520%2520%2520%2520*%2520%2540return%2520%257Bqx.ui.mobile.basic.Label%257D%2520The%2520title%2520widget%250A%2520%2520%2520%2520%2520*%252F%250A%2520%2520%2520%2520getTitleWidget%2520%253A%2520function%28%29%2520%257B%250A%2520%2520%2520%2520%2520%2520return%2520this.__title%253B%250A%2520%2520%2520%2520%257D%252C%250A%250A%250A%2520%2520%2520%2520%252F**%250A%2520%2520%2520%2520%2520*%2520Returns%2520the%2520subtitle%2520widget%2520which%2520is%2520used%2520for%2520this%2520renderer.%250A%2520%2520%2520%2520%2520*%250A%2520%2520%2520%2520%2520*%2520%2540return%2520%257Bqx.ui.mobile.basic.Label%257D%2520The%2520subtitle%2520widget%250A%2520%2520%2520%2520%2520*%252F%250A%2520%2520%2520%2520getSubtitleWidget%2520%253A%2520function%28%29%250A%2520%2520%2520%2520%257B%250A%2520%2520%2520%2520%2520%2520return%2520this.__subtitle%253B%250A%2520%2520%2520%2520%257D%252C%250A%250A%250A%2520%2520%2520%2520%252F**%250A%2520%2520%2520%2520%2520*%2520Sets%2520the%2520source%2520of%2520the%2520image%2520widget.%250A%2520%2520%2520%2520%2520*%250A%2520%2520%2520%2520%2520*%2520%2540param%2520source%2520%257BString%257D%2520The%2520source%2520to%2520set%250A%2520%2520%2520%2520%2520*%252F%250A%2520%2520%2520%2520setImage%2520%253A%2520function%28source%29%250A%2520%2520%2520%2520%257B%250A%2520%2520%2520%2520%2520%2520this.__image.setSource%28source%29%250A%2520%2520%2520%2520%257D%252C%250A%250A%250A%2520%2520%2520%2520%252F**%250A%2520%2520%2520%2520%2520*%2520Sets%2520the%2520value%2520of%2520the%2520title%2520widget.%250A%2520%2520%2520%2520%2520*%250A%2520%2520%2520%2520%2520*%2520%2540param%2520title%2520%257BString%257D%2520The%2520value%2520to%2520set%250A%2520%2520%2520%2520%2520*%252F%250A%2520%2520%2520%2520setTitle%2520%253A%2520function%28title%29%250A%2520%2520%2520%2520%257B%250A%2520%2520%2520%2520%2520%2520this.__title.setValue%28title%29%253B%250A%2520%2520%2520%2520%257D%252C%250A%250A%250A%2520%2520%2520%2520%252F**%250A%2520%2520%2520%2520%2520*%2520Sets%2520the%2520value%2520of%2520the%2520subtitle%2520widget.%250A%2520%2520%2520%2520%2520*%250A%2520%2520%2520%2520%2520*%2520%2540param%2520subtitle%2520%257BString%257D%2520The%2520value%2520to%2520set%250A%2520%2520%2520%2520%2520*%252F%250A%2520%2520%2520%2520setSubtitle%2520%253A%2520function%28subtitle%29%250A%2520%2520%2520%2520%257B%250A%2520%2520%2520%2520%2520%2520this.__subtitle.setValue%28subtitle%29%253B%250A%2520%2520%2520%2520%257D%252C%250A%250A%250A%2520%2520%2520%2520%252F**%250A%2520%2520%2520%2520%2520*%2520Inits%2520the%2520widgets%2520for%2520the%2520renderer.%250A%2520%2520%2520%2520%2520*%250A%2520%2520%2520%2520%2520*%252F%250A%2520%2520%2520%2520_init%2520%253A%2520function%28%29%250A%2520%2520%2520%2520%257B%250A%2520%2520%2520%2520%2520%2520canvas%2520%253D%2520this._createCanvas%28%29%253B%250A%2520%2520%2520%2520%2520%2520canvasContainer%2520%253D%2520this._createCanvasContainer%28%29%253B%250A%2520%2520%2520%2520%2520%2520canvasContainer.add%28canvas%29%253B%250A%2520%2520%2520%2520%2520%2520this.add%28canvasContainer%29%253B%250A%250A%2520%2520%2520%2520%2520%2520this.__rightContainer%2520%253D%2520this._createRightContainer%28%29%253B%250A%2520%2520%2520%2520%2520%2520this.add%28this.__rightContainer%252C%2520%257Bflex%253A1%257D%29%253B%250A%250A%2520%2520%2520%2520%2520%2520this.__image%2520%253D%2520this._createImage%28%29%253B%250A%2520%2520%2520%2520%2520%2520this.add%28this.__image%29%253B%250A%250A%2520%2520%2520%2520%2520%2520this.__rightContainer%2520%253D%2520this._createRightContainer%28%29%253B%250A%2520%2520%2520%2520%2520%2520this.add%28this.__rightContainer%252C%2520%257Bflex%253A1%257D%29%253B%250A%250A%2520%2520%2520%2520%2520%2520this.__title%2520%253D%2520this._createTitle%28%29%253B%250A%2520%2520%2520%2520%2520%2520this.__rightContainer.add%28this.__title%29%253B%250A%250A%2520%2520%2520%2520%2520%2520this.__subtitle%2520%253D%2520this._createSubtitle%28%29%253B%250A%2520%2520%2520%2520%2520%2520this.__rightContainer.add%28this.__subtitle%29%253B%250A%2520%2520%2520%2520%257D%252C%250A%250A%250A%2520%2520%2520%2520%252F**%250A%2520%2520%2520%2520%2520*%2520Creates%2520and%2520returns%2520the%2520right%2520container%2520composite.%2520Override%2520this%2520to%2520adapt%2520the%2520widget%2520code.%250A%2520%2520%2520%2520%2520*%250A%2520%2520%2520%2520%2520*%2520%2540return%2520%257Bqx.ui.mobile.container.Composite%257D%2520the%2520right%2520container.%250A%2520%2520%2520%2520%2520*%252F%250A%2520%2520%2520%2520_createRightContainer%2520%253A%2520function%28%29%2520%257B%250A%2520%2520%2520%2520%2520%2520return%2520new%2520qx.ui.mobile.container.Composite%28new%2520qx.ui.mobile.layout.VBox%28%29%29%253B%250A%2520%2520%2520%2520%257D%252C%250A%250A%250A%2520%2520%2520%2520%252F**%250A%2520%2520%2520%2520%2520*%2520Creates%2520and%2520returns%2520the%2520right%2520container%2520composite.%2520Override%2520this%2520to%2520adapt%2520the%2520widget%2520code.%250A%2520%2520%2520%2520%2520*%250A%2520%2520%2520%2520%2520*%2520%2540return%2520%257Bqx.ui.mobile.container.Composite%257D%2520the%2520right%2520container.%250A%2520%2520%2520%2520%2520*%252F%250A%2520%2520%2520%2520_createCanvasContainer%2520%253A%2520function%28%29%2520%257B%250A%2520%2520%2520%2520%2520%2520return%2520new%2520qx.ui.mobile.container.Composite%28new%2520qx.ui.mobile.layout.VBox%28%29%29%253B%250A%2520%2520%2520%2520%257D%252C%250A%250A%250A%2520%2520%2520%2520%252F**%250A%2520%2520%2520%2520%2520*%2520Creates%2520and%2520returns%2520the%2520image%2520widget.%2520Override%2520this%2520to%2520adapt%2520the%2520widget%2520code.%250A%2520%2520%2520%2520%2520*%250A%2520%2520%2520%2520%2520*%2520%2540return%2520%257Bqx.ui.mobile.basic.Image%257D%2520the%2520image%2520widget.%250A%2520%2520%2520%2520%2520*%252F%250A%2520%2520%2520%2520_createCanvas%2520%253A%2520function%28%29%2520%257B%250A%2520%2520%2520%2520%2520%2520var%2520canvas%2520%253D%2520new%2520qx.ui.mobile.embed.Canvas%28%29%253B%250A%250A%2520%2520%2520%2520%2520%2520canvas.setWidth%28100%29%253B%250A%2520%2520%2520%2520%2520%2520canvas.setHeight%28100%29%253B%250A%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520var%2520ctx%253D%2520canvas.getContext2d%28%29%253B%250A%2520%2520%2520%2520%2520%2520ctx.fillStyle%253D%2522%2523FF0000%2522%253B%250A%2520%2520%2520%2520%2520%2520ctx.fillRect%280%252C0%252C150%252C75%29%253B%250A%2520%2520%2520%2520%2520%2520ctx.beginPath%28%29%253B%250A%2520%2520%2520%2520%2520%2520ctx.arc%2875%252C75%252C50%252C0%252CMath.PI*2%252Ctrue%29%253B%2520%252F%252F%2520Outer%2520circle%250A%2520%2520%2520%2520%2520%2520ctx.moveTo%28110%252C75%29%253B%250A%2520%2520%2520%2520%2520%2520ctx.arc%2875%252C75%252C35%252C0%252CMath.PI%252Cfalse%29%253B%2520%2520%2520%252F%252F%2520Mouth%2520%28clockwise%29%250A%2520%2520%2520%2520%2520%2520ctx.moveTo%2865%252C65%29%253B%250A%2520%2520%2520%2520%2520%2520ctx.arc%2860%252C65%252C5%252C0%252CMath.PI*2%252Ctrue%29%253B%2520%2520%252F%252F%2520Left%2520eye%250A%2520%2520%2520%2520%2520%2520ctx.moveTo%2895%252C65%29%253B%250A%2520%2520%2520%2520%2520%2520ctx.arc%2890%252C65%252C5%252C0%252CMath.PI*2%252Ctrue%29%253B%2520%2520%252F%252F%2520Right%2520eye%250A%2520%2520%2520%2520%2520%2520ctx.stroke%28%29%253B%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520return%2520canvas%253B%2520%250A%2520%2520%2520%2520%257D%252C%250A%250A%250A%2520%2520%2520%2520%252F**%250A%2520%2520%2520%2520%2520*%2520Creates%2520and%2520returns%2520the%2520image%2520widget.%2520Override%2520this%2520to%2520adapt%2520the%2520widget%2520code.%250A%2520%2520%2520%2520%2520*%250A%2520%2520%2520%2520%2520*%2520%2540return%2520%257Bqx.ui.mobile.basic.Image%257D%2520the%2520image%2520widget.%250A%2520%2520%2520%2520%2520*%252F%250A%2520%2520%2520%2520_createImage%2520%253A%2520function%28%29%2520%257B%250A%2520%2520%2520%2520%2520%2520var%2520image%2520%253D%2520new%2520qx.ui.mobile.basic.Image%28%29%253B%250A%2520%2520%2520%2520%2520%2520image.setAnonymous%28true%29%253B%250A%2520%2520%2520%2520%2520%2520image.addCssClass%28%2522list-itemimage%2522%29%253B%250A%2520%2520%2520%2520%2520%2520return%2520image%253B%250A%2520%2520%2520%2520%257D%252C%250A%250A%250A%2520%2520%2520%2520%252F**%250A%2520%2520%2520%2520%2520*%2520Creates%2520and%2520returns%2520the%2520title%2520widget.%2520Override%2520this%2520to%2520adapt%2520the%2520widget%2520code.%250A%2520%2520%2520%2520%2520*%250A%2520%2520%2520%2520%2520*%2520%2540return%2520%257Bqx.ui.mobile.basic.Label%257D%2520the%2520title%2520widget.%250A%2520%2520%2520%2520%2520*%252F%250A%2520%2520%2520%2520_createTitle%2520%253A%2520function%28%29%2520%257B%250A%2520%2520%2520%2520%2520%2520var%2520title%2520%253D%2520new%2520qx.ui.mobile.basic.Label%28%29%253B%250A%2520%2520%2520%2520%2520%2520title.setWrap%28false%29%253B%250A%2520%2520%2520%2520%2520%2520title.addCssClass%28%2522list-itemlabel%2522%29%253B%250A%2520%2520%2520%2520%2520%2520return%2520title%253B%250A%2520%2520%2520%2520%257D%252C%250A%250A%250A%2520%2520%2520%2520%252F**%250A%2520%2520%2520%2520%2520*%2520Creates%2520and%2520returns%2520the%2520subtitle%2520widget.%2520Override%2520this%2520to%2520adapt%2520the%2520widget%2520code.%250A%2520%2520%2520%2520%2520*%250A%2520%2520%2520%2520%2520*%2520%2540return%2520%257Bqx.ui.mobile.basic.Label%257D%2520the%2520subtitle%2520widget.%250A%2520%2520%2520%2520%2520*%252F%250A%2520%2520%2520%2520_createSubtitle%2520%253A%2520function%28%29%2520%257B%250A%2520%2520%2520%2520%2520%2520var%2520subtitle%2520%253D%2520new%2520qx.ui.mobile.basic.Label%28%29%253B%250A%2520%2520%2520%2520%2520%2520subtitle.setWrap%28false%29%253B%250A%2520%2520%2520%2520%2520%2520subtitle.addCssClass%28%2522subtitle%2522%29%253B%250A%2520%2520%2520%2520%2520%2520return%2520subtitle%253B%250A%2520%2520%2520%2520%257D%252C%250A%250A%250A%2520%2520%2520%2520%252F%252F%2520overridden%250A%2520%2520%2520%2520reset%2520%253A%2520function%28%29%250A%2520%2520%2520%2520%257B%250A%2520%2520%2520%2520%2520%2520this.__image.setSource%28null%29%253B%250A%2520%2520%2520%2520%2520%2520this.__title.setValue%28%2522%2522%29%253B%250A%2520%2520%2520%2520%2520%2520this.__subtitle.setValue%28%2522%2522%29%253B%250A%2520%2520%2520%2520%257D%250A%2520%2520%257D%252C%250A%250A%2520%252F*%250A%2520%2520*****************************************************************************%250A%2520%2520%2520%2520%2520DESTRUCTOR%250A%2520%2520*****************************************************************************%250A%2520%2520*%252F%250A%250A%2520%2520destruct%2520%253A%2520function%28%29%250A%2520%2520%257B%250A%2520%2520%2520%2520this._disposeObjects%28%2522__image%2522%252C%2520%2522__title%2522%252C%2520%2522__subtitle%2522%252C%2520%2522__rightContainer%2522%29%253B%250A%2520%2520%257D%250A%257D%29%253B%250A%250A%250A%250Aqx.Class.define%28%2522mobileclient.ui.mobile.list.CanvasListDelegator%2522%252C%250A%257B%250A%2520%2520implement%2520%253A%2520qx.ui.mobile.list.IListDelegate%252C%250A%2520%2520extend%2520%253A%2520qx.core.Object%252C%250A%250A%2520%2520construct%2520%253A%2520function%28%29%2520%257B%250A%2520%2520%2520%2520this.base%28arguments%29%253B%250A%2520%2520%257D%252C%250A%250A%250A%2520%2520events%2520%253A%2520%257B%250A%2520%2520%257D%252C%250A%250A%2520%2520members%2520%253A%2520%257B%250A%2520%2520%2520%2520%250A%2520%2520%2520%2520%252F%252F%2520overridden%250A%2520%2520%2520%2520_initialize%2520%253A%2520function%28%29%250A%2520%2520%2520%2520%257B%250A%2520%2520%2520%2520%2520%2520this.base%28arguments%29%253B%250A%2520%2520%2520%2520%257D%252C%250A%250A%2520%2520%2520%2520%252F**%250A%2520%2520%2520%2520%2520*%2520Configure%2520the%2520list%2520item%2520renderer%2520with%2520the%2520given%2520data.%2520Mandatory%2520method.%250A%2520%2520%2520%2520%2520*%252F%250A%2520%2520%2520%2520%2520configureItem%2520%253A%2520function%28item%252C%2520data%252C%2520row%29%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520item.setImage%28null%29%253B%250A%2520%2520%2520%2520%2520%2520%2520item.setTitle%28row%253C4%2520%253F%2520%28%2522Selectable%2520%2522%2520%252B%2520data.title%29%2520%253A%2520data.title%29%253B%250A%2520%2520%2520%2520%2520%2520%2520item.setSubtitle%28data.subTitle%29%253B%250A%2520%2520%2520%2520%2520%2520%2520item.setSelectable%28row%253C4%29%253B%250A%2520%2520%2520%2520%2520%2520%2520item.setShowArrow%28row%253C4%29%253B%250A%2520%2520%2520%2520%2520%257D%252C%250A%250A%2520%2520%2520%2520%252F**%250A%2520%2520%2520%2520%2520*%2520Creates%2520an%2520instance%2520of%2520the%2520item%2520renderer%2520to%2520use.%250A%2520%2520%2520%2520%2520*%252F%250A%2520%2520%2520%2520createItemRenderer%2520%253A%2520function%28%29%2520%257B%250A%2520%2520%2520%2520%2520%2520var%2520itemRenderer%2520%253D%2520new%2520mobileclient.ui.mobile.list.renderer.CanvasListRenderer%28%29%253B%250A%2520%2520%2520%2520%2520%2520return%2520itemRenderer%253B%250A%2520%2520%2520%2520%257D%250A%2520%2520%257D%250A%257D%29%253B%250A%250A%250Avar%2520page%2520%253D%2520new%2520qx.ui.mobile.page.NavigationPage%28%29%253B%250Apage.setTitle%28%2522List%2522%29%253B%250Apage.addListener%28%2522initialize%2522%252C%2520function%28%29%2520%257B%250A%2520%2520%252F%252F%2520List%2520creation%250A%2520%2520var%2520listDelegator%2520%253D%2520new%2520mobileclient.ui.mobile.list.CanvasListDelegator%28%29%253B%2520%2520%250A%2520%2520var%2520list%2520%253D%2520new%2520qx.ui.mobile.list.List%28listDelegator%29%253B%250A%250A%250A%2520%2520%252F%252F%2520Create%2520the%2520data%250A%2520%2520var%2520data%2520%253D%2520%255B%255D%253B%250A%2520%2520for%2520%28var%2520i%253D0%253B%2520i%2520%253C%252050%253B%2520i%252B%252B%29%2520%257B%250A%2520%2520%2520%2520data.push%28%257Btitle%253A%2522Item%2522%2520%252B%2520i%252C%2520subTitle%253A%2522Subtitle%2520for%2520Item%2520%2523%2522%2520%252B%2520i%257D%29%253B%250A%2520%2520%257D%250A%250A%2520%2520list.setModel%28new%2520qx.data.Array%28data%29%29%253B%250A%2520%2520list.addListener%28%2522changeSelection%2522%252C%2520function%28evt%29%2520%257B%250A%2520%2520%2520%2520alert%28%2522Item%2520Selected%2520%2523%2522%2520%252B%2520evt.getData%28%29%29%253B%250A%2520%2520%257D%252C%2520this%29%253B%250A%250A%2520%2520page.getContent%28%29.add%28list%29%253B%250A%257D%252Cthis%29%253B%250A%250Athis.getManager%28%29.addDetail%28page%29%253B%250A%250Apage.show%28%29%253B%22%2C%20%22mode%22%3A%22mobile%22%7D
>
>
>
> --
> View this message in context: 
> http://qooxdoo.678.n2.nabble.com/Problem-with-modificated-qx-ui-mobile-list-List-containing-a-Canvas-tp7582231.html
> Sent from the qooxdoo mailing list archive at Nabble.com.
>
> ------------------------------------------------------------------------------
> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> Remotely access PCs and mobile devices and provide instant support
> Improve your efficiency, and focus on delivering more value-add services
> Discover what IT Professionals Know. Rescue delivers
> http://p.sf.net/sfu/logmein_12329d2d
> _______________________________________________
> qooxdoo-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel


------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to