From: Dan S. <dy...@fu...> - 2000-12-15 14:49:34
|
Just change the .createElement() call to DynLayer_createElement(dlyr). I changed the theme functions for Button, ScrollBar, PushPanel, and Scrollpane to default to the standard images. I should have put a (url) parameter in those functions. This can be changed quite easily: function MetalScrollPane(url) { if (!url) url = DynAPI.librarypath+'images/scrollpane/'; ... } I mentioned I didn't update List yet. It probably just has to be slightly modified in relation to the create and precreate events. Dan On Fri, Dec 15, 2000 at 08:20:48PM +1100, Peter Luxmore wrote: > Dan > > Just been testing what you have currently in CVS. I am using scrollpane and loadpanel and the code is below. > > 1. In NS4.7 if you resize the browser window with the mouse, (especially making it larger), results in the following error: > > JavaScript Error: > http://localhost/dynapi/src/lib/dynapi/api/dyndocument.js, > line 53: > > this.children[i].createElement is not a function. > > 2. MetalScrollPaneURL is not working in NS4.7 or IE5.1 and the default scrollbar images are displayed. > > 3. The list widget is broken. Produces the following error in IE5.1: > > Line: 33 > Char: 5 > Error: 'css' is not an object > Code: 0 > URL: http://localhost/CFCalc2/washerSelect.cfm > > ------------------------------------------------------------------------------------------------------- > <script language="JavaScript" src="../dynapi/src/dynapi.js"></script> > <script language="Javascript"> > DynAPI.setLibraryPath('../dynapi/src/lib/'); > DynAPI.include('dynapi.api.*'); > DynAPI.include('dynapi.util.thread.js'); > DynAPI.include('dynapi.util.pathanim.js'); > DynAPI.include('dynapi.gui.dynimage.js'); > DynAPI.include('dynapi.gui.button.js'); > DynAPI.include('dynapi.gui.scrollbar.js'); > DynAPI.include('dynapi.gui.viewport.js'); > DynAPI.include('dynapi.gui.scrollpane.js'); > DynAPI.include('dynapi.gui.label.js'); > DynAPI.include('dynapi.gui.list.js'); > DynAPI.include('dynapi.gui.loadpanel.js'); > > // this should be replaced with a default image location based on DynAPI.librarypath > MetalScrollPaneURL = DynAPI.librarypath+"dynapi/images/mypane/" > > </script> > <script language="Javascript"> > > DynAPI.onLoad = function() { > MetalScrollPaneURL = DynAPI.librarypath+"dynapi/images/mypane/" > > infoPanel = new LoadPanel() > infoPanel.setSize(220,233) > infoPanel.moveTo(478,197) > > scroller = new ScrollPane(infoPanel) > scroller.setSize(245,263) > scroller.moveTo(478,197) > > menulist = new List() > menulist.moveTo(5,230) > menulist.setWidth(160) > menulist.setBgColor('#000000') > menulist.boldOnSelect(true) > menulist.setSelectionMode(false) > > <cfoutput query="baseprofile"> > menulist.add("#Brand# #Model#") > </cfoutput> > > DynAPI.document.addChild(scroller) > > <cfoutput query="DataSheet"> > infoPanel.setURL('_inc.cfm?washerCode=#washerCode#') > </cfoutput> > > DynAPI.document.addChild(menulist) > } > //--> > </script> > > Regards > Peter Luxmore > > Dan Steinman wrote: > > > I've posted all my updates to CVS. I think touched every file. > > > > The significant changes were: > > > > - inline creation system for Netscape now worked directly into DynLayer > > - DynImage auto-resizing, this effected everything that was using DynImage > > - some changes to how the "precreate", "create", and "resize" events are handled > > > > The events took a while to work out. I didn't like how it was setup before because it wasn't quite right when dealing with the new create system. > > "precreate" should be used in widgets for doing most of the final layout for a widget as well as setting images for the layers. Most of that stuff used to be in the "create" event, but now with the inline creation it's more effecient to do it in "precreate" because when you set the size/location/images of the layers you won't be working with true DIV elements rather with just the JS objects. The goal is to do as little work with div's as possible before you create, so that by the time DynLayer creates the layers it already knows the size and content of them. > > > > You still need the "create" event to check for content size, and that sort of stuff. > > > > I had to remove all the checks for this.created from within the DynLayer and replace them with checks for this.css!=null. The "this.created" flag is now true once the layer/div element is created, and final position/size has been set, AND all it's children are created also. Peviously this.created was set to true before the children were created which conflicts with the way the inline creation system is supposed to work. I updated all the widgets to make sure everything was working ok with this change. > > > > I made a few DynLayer methods into simple functions, create() assignElement, flagChildren etc. These don't have to be methods because they are never used manually. > > > > Also you now have to include browser.js BEFORE dynlayer.js because in dynlayer I'm doing a check for Netscape/IE. I updated the dynapi include list for this, but if you have any pages that don't do include('dynapi.api.*') you will have to change the order yourself. > > > > DynImage.getImage() can be used before onLoad, the reason there was a problem in IE is you need a break point between the include()'s and the rest of the page. I updated all the examples so they look like this: > > > > <script src=dynapi.js> > > <script> > > DynAPI.setLibraryPath('../src/lib'); > > DynAPI.include('dynapi.api.*'); > > ... > > </script> > > <script> > > > > rest of code.... > > > > </script> > > > > Some other minor changes I can remember is the setSize/Width/Height, I made setSize call setWidth and setHeight, and in those I rearranged a few things. I removed all references to getComponent() cause it's not needed anymore. And DynImage.getImage won't return an Image object with .w and .h tacked on, it's unecessary - if you have any code that uses the .w and .h, just replace it with .width and .height. > > > > What is no longer working: > > - inline.js, I think something was wrong in IE > > - List - Scott A, sorry I didn't get around to fixing this one, I checked it out in IE before all my changes and worked fantastic, I'd like to get it working again. Probably just needs some precreate/create changes. I broke it, so I'll fix it unless you want to take a stab at it. > > > > Major bugs we should fix before a stable release: > > - Loadpanel isn't working in IE4. > > - Label/button setSelectable still isn't working, anyone know what changes are needed? > > - Inline creation system for IE - I could do this eventually but I want to work on some other things first so if anyone else wants to give it a shot you're welcome, it should be fairly easy now that the NS code has been finalized. > > > > Dan > > _______________________________________________ > > Dynapi-Dev mailing list > > Dyn...@li... > > http://lists.sourceforge.net/mailman/listinfo/dynapi-dev > > > _______________________________________________ > Dynapi-Dev mailing list > Dyn...@li... > http://lists.sourceforge.net/mailman/listinfo/dynapi-dev |