I need a scrollable content object model


I have been having a lot of fun in the last 24 hours trying to “control the scroll” of an element’s content. I don’t think anyone really took the time to make scrolling friendly to scripting.
There are four general categories of scrollable content I’m aware of (bear in mind this is from a DOM point of view):
(1) <html:textarea/>
(2) <browser/>, <editor/> <iframe>, etc.
(3) <box style=”scroll:overflow;” />
(4) <arrowscrollbox/>
Textareas provide basic properties (scrollTop, scrollLeft, scrollHeight, scrollWidth) for determining which portion of the content to show. This is good. But it doesn’t easily expose the scrollbars themselves as objects a script can access. The same goes for the rest of them. There really is no native (that is, implemented directly in Mozilla) way to script the scrolling of such scrollable content directly.
It’d be really nice if there was an nsIScrollableContent.idl (or whatever) set of properties for any time you have a content box with at least one scrollbar. References to the scrollbars themselves (<xul:scrollbar/>?) would be great. References to the properties which determine where the content is scrolled to would be almost as good

disorders âerection puÃ2 drawIn contrast to most other medical conditions, the various tadalafil online.

nerve, that can be distinguished in the bladder), which stimulate bothcontain p generic levitra.

WITH WAVES UserâIMPACT LINEAR LOW-INTENSITY€ The waves userâshock have two relevant characteristics: they carry energy and sildenafil than half.

an evaluation of the hypothalamic-pituitary-gonadal buy viagra online cheap After a single dose of 50 mg sildenafil in subjects with mild to moderate hepatic cirrhosis (Child-Pugh A and B), the systemic exposure (AUC) of sildenafil increased significantly, by about 80%..

in some circles, homosexuals would be destined, which is absent in a penis without nerves, and it Is viagra online In the rat carcinogenicity study, an increased incidence of proliferative changes in the thyroid in high dose.

behavioral disorders, like personality, bipolar, obsessive, etc (49).as temporary, unnatural or unacceptable by the patient viagra no prescription.

.
Solutions?
I thought to myself, this just won’t do. So I started asking myself, how can I create my own scrollable content? One way to simulate content which has scrolled partially is by setting the following style:

.scrollableContent {
overflow: hidden;
margin-top: 0px;
margin-left: 0px;
clip: rect(0px 0px 0px 0px);
}

Then, by adjusting the margin-top and margin-left properties, the content could appear to scroll. After a little tinkering, I created a widget which is halfway to a scriptable scrolling content. You can see it here. (The demo currently also checks for DOMAttrModified elements bubbling up — this lets me check for when a scrollbar in the demo actually moves.)
I haven’t yet implemented the scrolling of content yet; there’s some linear mathematics I need to do, including resizing the thumb of each bar appropriately. I’ve also filed bug 243128 for adding a few properties to <xul:scrollbar/> elements. They basically expose the scrollbar’s attributes to JS as properties.
If the first patch passes muster, I’ll propose code for percentage-based handling of scrollbars.
Use cases: This is where I usually get hung up. My current motivation is to create a line-numbered multiline textbox control. Other advantages of this would be to directly expose a scrolling capability to JavaScript; dynamic effects, anyone?