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]/

Reply via email to