>From my basic understanding of widgets created in
DynAPI 2.5x I've concluded that the structure used
seems quite ok for normal widgets:

function widgetname(agruments){
        this.DynLayer = DynLayer;
        this.DynLayer(agruments);
        //
}
var p = dynapi.setPrototype('widgetname','DynLayer');


But now that we want to be able to support themes &
skins I would like to suggest that the structure be
upgraded to allow us to add/modify special features
without creating a completely new object:


function widgetname(agruments){
        this.DynLayer = DynLayer;
        this.DynLayer(agruments);
        
        this.construct(); // create widget components
}
var p = dynapi.setPrototype('widgetname','DynLayer');
p.construct = function(){
        // setup addtional object here
};
p.render = function(evnt){
        // render or draw the ui here
};


We could also create a base object call "Widget" for
use when creating widgets

function Widget(html,x,y,w,h,color){
        this.DynLayer = DynLayer;
        this.DynLayer(agruments);

        // construct widget components
        this.construct();

        // render the ui before it's created
        this.OnPreCreate(this.render);
        // or we could hook the the render() function 
        // into DynLayer to avoid OnPreCreate overhead?
};
var p = dynapi.setPrototype('Widget','DynLayer');
// Design Properties
p.backColor = 'silver';
// Methods
p.construct = function(){
        // setup addtional object here
};
p.render = function(evnt){
        // render or draw the ui here
};
p.WidgetSetSize = DynLayer.prototype.setSize;
p.setSize = function(x,y){
        this.WidgetSetSize(x,y);
        this.render('resize');
}


To simply create a Button widget we could then do the
following:


function Button(caption,x,y,w,h){
        this.Widget = Widget;
        this.Widget(null,x,y,w,h);
        
        this.caption = caption||'';
}
var p = dynapi.setPrototype('Button','Widget');
p.construct = function(){
        this.setTextSelectable(false);
        this.enableBlackboard();
        
        this.addchild(new DynLayer(),'lyrCover');

this.lyrCover.setAnchor({left:0,top:0,stretchH:'*',stretchV:'*'});
};
p.render = function(evnt){
        if(evnt && !this._created) return null;
        if(!evnt||evnt=='caption')
this.setHTML(this.caption);
        if(!evnt||evnt=='resize'){
                // do something here
        }
        if(!evnt) {
                this.setBgColor(this.backColor);
        }
};
p.setCaption = function(t){
        this.caption = c||'';
        this.render('caption');
};

What do you think about this model?


--
Raymond Irving

--- Raymond Irving <[EMAIL PROTECTED]> wrote:
> 
> See docs/docs/quickref.stylemanager.html
> 
> We could also look into stylemanager's approach as a
> standard or come up with another.
> 
> --
> Raymond Irving
> 
> --- Daniel Tiru <[EMAIL PROTECTED]> wrote:
> > Hi Raymond!
> > 
> > I think this looks good, but i still dont
> understand
> > how the
> > stylemanager works really... It might help me
> > understand the
> > themes/styles a bit better, and the posibility to
> > have a oppinion :)
> > 
> > Is there some documentation how it works, i havent
> > found any but maybee
> > i havent been looking that hard? Or maybee some
> step
> > by step example?
> > 
> > Regards
> > Daniel
> > 
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] On
> > Behalf Of Raymond
> > Irving
> > Sent: den 22 september 2003 01:56
> > To: [EMAIL PROTECTED]
> > Subject: Re: [Dynapi-Dev] Widget Howto
> > 
> > 
> > 
> > You're correct Daniel.
> > 
> > I've converted the "how to create a widget" from
> the
> > dynapi set
> http://dynapi.sourceforge.net/doccenter/
> > to
> > DynAPI 3.0 format. See the Tips & Tricks section.
> > 
> > I think we need a Standard Widget Model that
> > supports
> > the following:
> > 
> > 1) Inheritance
> > 2) Themes/Skins
> > 
> > Is it possible for all the developers to come
> > together
> > and let's come up with a design model that can
> > support
> > the above features and others if needed?
> > 
> > What ideas do you have in mind?
> > 
> > --
> > Raymond Irving
> > 
> > 
> > --- Daniel Tiru <[EMAIL PROTECTED]> wrote:
> > > Hi!
> > > 
> > > If someone that have good insight into the
> widget
> > > creation and how they
> > > should be build please write a documentation or
> a
> > > step by step
> > > instruction on how we should continue to build
> the
> > > widgets?
> > > 
> > > I think this is quite important as I think most
> of
> > > us are atleast
> > > thinking on making a own widget to deliver to
> the
> > > DYNapi project. So its
> > > best for us all if the widget are build in some
> > > specialway we all
> > > follows.
> > > 
> > > Best Regards
> > > Daniel
> > > 
> > > 
> > > 
> > > 
> > >
> >
>
-------------------------------------------------------
> > > This sf.net email is sponsored by:ThinkGeek
> > > Welcome to geek heaven.
> > > http://thinkgeek.com/sf 
> > > _______________________________________________
> > > Dynapi-Dev mailing list
> > > [EMAIL PROTECTED]
> > >
> >
>
http://www.mail-archive.com/[EMAIL PROTECTED]/
> > 
> > 
> > __________________________________
> > Do you Yahoo!?
> > Yahoo! SiteBuilder - Free, easy-to-use web site
> > design software
> > http://sitebuilder.yahoo.com
> > 
> > 
> >
>
-------------------------------------------------------
> > This sf.net email is sponsored by:ThinkGeek
> > Welcome to geek heaven.
> > http://thinkgeek.com/sf
> > _______________________________________________
> > Dynapi-Dev mailing list
> > [EMAIL PROTECTED]
> >
>
http://www.mail-archive.com/[EMAIL PROTECTED]/
> > 
> > 
> > 
> > 
> >
>
-------------------------------------------------------
> > This sf.net email is sponsored by:ThinkGeek
> > Welcome to geek heaven.
> > http://thinkgeek.com/sf
> > _______________________________________________
> > Dynapi-Dev mailing list
> > [EMAIL PROTECTED]
> >
>
http://www.mail-archive.com/[EMAIL PROTECTED]/
> 
> 
> __________________________________
> Do you Yahoo!?
> Yahoo! SiteBuilder - Free, easy-to-use web site
> design software
> http://sitebuilder.yahoo.com
> 
> 
>
-------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> Dynapi-Dev mailing list
> [EMAIL PROTECTED]
>
http://www.mail-archive.com/[EMAIL PROTECTED]/


__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Dynapi-Dev mailing list
[EMAIL PROTECTED]
http://www.mail-archive.com/[EMAIL PROTECTED]/

Reply via email to