Closed
Bug 115758
Opened 23 years ago
Closed 23 years ago
NS_THEME_SCROLLBAR* implementations (Mac)
Categories
(Core Graveyard :: Skinability, enhancement, P2)
Tracking
(Not tracked)
RESOLVED
FIXED
mozilla1.0
People
(Reporter: ian, Assigned: mikepinkerton)
References
Details
(Keywords: topembed+)
This covers the implementation of NS_THEME_SCROLLBAR,
NS_THEME_SCROLLBAR_BUTTON, NS_THEME_SCROLLBAR_TRACK,
NS_THEME_SCROLLBAR_TRACK_START, NS_THEME_SCROLLBAR_TRACK_END,
NS_THEME_SCROLLBAR_THUMB and NS_THEME_SCROLLBAR_GRIPPER for XUL scrollbars on Mac.
Reporter | ||
Comment 2•23 years ago
|
||
Now NS_THEME_SCROLLBAR_BUTTON_UP, NS_THEME_SCROLLBAR_BUTTON_DOWN,
NS_THEME_SCROLLBAR_BUTTON_LEFT, NS_THEME_SCROLLBAR_BUTTON_RIGHT,
NS_THEME_SCROLLBAR_TRACK_HORIZONTAL, NS_THEME_SCROLLBAR_TRACK_VERTICAL,
NS_THEME_SCROLLBAR_THUMB_HORIZONTAL, NS_THEME_SCROLLBAR_THUMB_VERTICAL,
NS_THEME_SCROLLBAR_GRIPPER_HORIZONTAL and NS_THEME_SCROLLBAR_GRIPPER_VERTICAL.
Assignee | ||
Comment 3•23 years ago
|
||
where did 099 go? was i asleep? was i dreaming? this is not my beautiful house.
this is not my beautiful wife.
Target Milestone: mozilla0.9.9 → mozilla1.0
Comment 4•23 years ago
|
||
nsbeta1+ because it is important for theme rendering and embedding
Keywords: nsbeta1+
Assignee | ||
Comment 5•23 years ago
|
||
the current plan is to abandon the NS_THEME* for scrollbars on mac. the
appearance manager APIs don't match with the way gecko wants to draw the pieces.
As a result we get poor updating, overzealous painting, jiggling, and overall ick.
in its place, i plan on creating a native scrollbar frame, created from an XBL
binding with a new xul tag (something like <nativescrollbar>). It should be
pretty easy to hack into CSSFrameConstructor the code to create our new frame
when it sees the |natvescrollbar| tag. Our new frame will manage communication
between gecko and the nsIWidget scrollbar that is under the hood. Think of it as
a new kind of anonymous content ;)
scrollbar {
-moz-binding:
url(chrome://global/content/bindings/myNativeScrollbar.xml#scrollbar);
}
<binding id="scrollbar">
<content>
<xul:nativescrollbar flex="1" inherits="curpos,maxpos,etc.etc."/>
</content>
</binding>
The regular scrolling mechanics (ruled by nsGFXScrollFrame) use nsIBox to handle
layout and sizing, so our frame will have to implement that. nsGFXSF gets the
position from the scrollbar's content node and manipulates it directly. It's a
document observer so it will be notified when those attributes change. All our
scrollframe has to do is to make sure to tweak those attributes.
For outliner, we have to use nsIScrollbarMediator to tell the outliner when and
how to scroll. Again, the outliner uses the content node's attributes to move
the scrollbar.
It'll be a lot of work, but in the end i think it will be worth it. We'll have
native scrollbars, which will also make os9's funky scrollwheel support happy.
Priority: -- → P2
Assignee | ||
Comment 6•23 years ago
|
||
fixed with native widgets in 121440
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Updated•16 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•