Please see below:
--- Benoit Marchant <[EMAIL PROTECTED]> wrote:
> Just tested it. Very nice !
> 2 missing things I believe. First, when you keep
> mouse down on the
> scrollers buttons, you would expect the scroller to
> keep scrolling
> until you release the mouse button or the scroller
> is at his maximum.
> And the same is true if you click in the scroller
> outside of the knob.
> The scroller should scroll until it reach your mouse
> down/reach an end.
>
> I looked at the code, and there's a few things that
> should to be
> defined on their own. I guess the buttons width will
> always be equal to
> the scroller width, but the buttons aren't always
> square, and the
> height might be different. Even more complicated is
> the emulation of
> the aqua scrollers. The buttons have to contains the
> rounded edges, so
> they aren't squares. But their size for the
> calculations is different,
> it goes from the external side to the tangent of the
> rounded part. And
> the knob will go overlapping the button layers. So
> in order to
> implement that, I would need the scroller to be able
> to deal with these
> differences.
> To make things a little more interesting, the
> scroller buttons can be
> on the same side :-) and in that configuration, the
> 2 buttons don't
> have the same height !!
>
> So I think a good and simple way to implement this
> is to define the
> scrolling course on the button as a sub rectangle.
> Then you get to tell
> it's y/height for vertical and it's x/width for
> horizontal. And by
> doing that, it removes the relation between the
> actual size/location of
> the buttons, and the scrolling logic.
> Still, by default that rectangle should be
> calculated the way your
> example is if that's the most usefull configuration
> for most people,
> and then you can override that ractangle if
> necessary, but it should be
> used internally for the calculations.
>
> For skinning the knob button, I'll need to be able
> to use 3 images: the
> rounded edges and a repeating background.
> The skinning, on top of the images/size of the
> buttons should also
> contains their location.
> As you can see, in the case where the buttons are
> together, there's
> still an image on the top ....
>
> I previously used skins as dictionary, defining a
> bunch of defined
> properties.
First off the Aqua Skins look cool! Some time ago I
had started a library that allowed me to change the
look, feel and behaviour of an object. It uses a
setStyle(name,clear) function (based on a StyleManager
class). This StyleManager would allow me to set
properties and functions as follows:
var style={
backcolor : 'yellow',
preRender : function(o,style){
// some precreate code here
},
render : function(o,style,guiType){
if(guiType=='base') {
o.setBgColor(style.backcolor);
}
}
}
StyleManager.addStyle('buttoncolor');
lyr.setStyle('buttoncolor');
// I can also add multiple style object
lyr.setStyle('togglebutton');
--
Raymond Irving
>
>
>
> ATTACHMENT part 2 application/pdf
x-mac-hide-extension=yes; x-mac-creator=3F3F3F3F;
x-unix-mode=0644; x-mac-type=50444620; name=Picture
2.pdf
> ATTACHMENT part 3 application/pdf
x-mac-hide-extension=yes; x-mac-creator=3F3F3F3F;
x-unix-mode=0644; x-mac-type=50444620; name=Picture
3.pdf
>
> I agree it's a very good idea to have a light
> version and a skinnable
> one.
>
> Benoit
>
> On Sunday, March 23, 2003, at 01:28 AM, Doug Melvin
> wrote:
>
> > introducing scrollbar_light
> > by light i mean no images.
> > I do intend to now produce one with images for
> skinablity.
> > �
> > the arguments for the scrollabr light are
> explained int he source of
> > the HTML example file (attached)
> > �
> > The attached HTML file goes in the /examples/
> directory.
> > The attached JS file goes into the src/gui/
> directory
> > �
> > I hope rar format is okay for everyone.. if not
> let me know and I'll
> > start using zip
> > �
> > Goddamn but this is very frusterating..
> > It has been a very long time since I have done any
> serious JS coding.
> > Not to mention that the new DynAPI is VERY
> different.
> > Here is some stuff that should be added to the
> docs.
> > Make any corrections nessesary.
> > �
> > -----------------start here---------------------
> > Dragevents:
> > To test if a layer (myLayer) is being dragged:
> > Each layer no longer has it's own 'dragging'
> property.
> > To test is a layer is being dragged you check the
> isDragging property
> > of the
> > Dragevent engine (Dragevent.isDragging).
> > To test if a specific layer is being dragged you
> check if the layer
> > being dragged (DragEvent.dragevent.src)
> > is the layer in question
> > �
> > 2.x code:
> > if(myLayer.dragging){ your code here}
> > �
> > 3x code:
> >
>
if(DragEvent.dragevent.isDragging&&DragEvent.dragevent.src===myLayer){
>
> > your code here}
> > �
> > --------------------
> >
> > Responde to precreate/create event where the
> layer's variable name is
> > myLayer:
> > You no longer assign an event listener for these
> two events.
> > Instead you pass a function to be execute at the
> precreate or create
> > event.
> > The passed function is executed as if it where a
> method of the layer
> > in question.
> > So, instead of getting the source of the event you
> simple use 'this'
> > to refer to the layer
> > upon which the function is being executed
> > �
> >
> > (onCreate/onPrecreate)
> > 2.x code:
> > var el = new EventListener(myLayer);
> > el.onprecreate=function(e){
> > �e.getSource().doSomething();
> > }
> > el.oncreate=function(e){
> > �e.getSource().doSomething();
> > }
> > myLayer.addEventListener(el);
> > �
> > 3x code:
> > var createCode = function(){
> > �this.doSomething(); // note the use of 'this' to
> indicate the source
> > of the create event
> > }
> > this.onCreate(createCode);
> > �
> > var preCreateCode = function(){
> > �this.doSomething(); // note the use of 'this' to
> indicate the source
> > of the precreate event
> > }
> > this.onPrecreate(preCreateCode);
> > --------------end here---------------
> > �
> > <scrollbar_light.rar>
__________________________________________________
Do you Yahoo!?
Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop!
http://platinum.yahoo.com
-------------------------------------------------------
This SF.net email is sponsored by:
The Definitive IT and Networking Event. Be There!
NetWorld+Interop Las Vegas 2003 -- Register today!
http://ads.sourceforge.net/cgi-bin/redirect.pl?keyn0001en
_______________________________________________
Dynapi-Dev mailing list
[EMAIL PROTECTED]
http://www.mail-archive.com/[EMAIL PROTECTED]/