Closed
Bug 188254
Opened 22 years ago
Closed 22 years ago
Land chimera's form controls on the trunk
Categories
(Core :: Layout: Form Controls, defect)
Tracking
()
VERIFIED
FIXED
People
(Reporter: bryner, Assigned: bryner)
References
Details
Attachments
(1 file, 2 obsolete files)
64.37 KB,
patch
|
bryner
:
review+
sfraser_bugs
:
superreview+
|
Details | Diff | Splinter Review |
We should land Chimera's form control implementation onto the trunk. It would
be nice to get the aqua form controls into our Carbon builds, but I think doing
it for Cocoa builds would be a good start. If we just worry about Ccooa, we
don't have to worry about coming up with a carbon equivalent of the native popup
menu that's used for selects.
Assignee | ||
Comment 1•22 years ago
|
||
This merges the chimera form controls (plus some improvements, such as using
the "small" sized controls) to the trunk for Cocoa builds. I went ahead and
added a cross-platform base class for nsNativeTheme to reduce code duplication
(I'll convert windows and gtk to use this base class later).
Assignee | ||
Updated•22 years ago
|
Attachment #112584 -
Flags: review?(pinkerton)
Assignee | ||
Updated•22 years ago
|
Attachment #112584 -
Flags: review?(pinkerton)
Assignee | ||
Comment 2•22 years ago
|
||
changes:
- cleaned up some unecessary stuff in nsNativeTheme.h/.cpp
- changed to private inheritence of nsNativeTheme since it's just an
implementation aid.
- added better comments in nsComboboxControlFrame about what's going on
- fixed licenses on new css files
- removed a css rule that tried to set the width of the inner button frame of
the combobox - it's unnecessary since the combobx frame hardcodes the button
frame width to the width of a scrollbar
Attachment #112584 -
Attachment is obsolete: true
Assignee | ||
Updated•22 years ago
|
Attachment #112651 -
Flags: review?(pinkerton)
Assignee | ||
Comment 3•22 years ago
|
||
Comment on attachment 112651 [details] [diff] [review]
revised patch
Don't review this yet. I need to clean it up a bit, and I'm going to go ahead
and use "small" controls for buttons and menulists as well.
Attachment #112651 -
Attachment is obsolete: true
Attachment #112651 -
Flags: review?(pinkerton)
Assignee | ||
Comment 4•22 years ago
|
||
This patch implements "small" versions of the controls for everything except
menulists (I couldn't get the popup menu to use the smaller font, so I decided
to leave it be. We may have to make this fully native). All of the fonts
should now match the HIG. Also, the CSS system fonts have been changed to
reflect reality on OS X.
Assignee | ||
Updated•22 years ago
|
Attachment #116484 -
Flags: review?(pinkerton)
Comment 5•22 years ago
|
||
case NS_THEME_TEXTFIELD:
{
- SInt32 shadow = 0, frameOutset = 0;
- ::GetThemeMetric(kThemeMetricEditTextWhitespace, &shadow);
- ::GetThemeMetric(kThemeMetricEditTextFrameOutset, &frameOutset);
- aResult->SizeTo(shadow + frameOutset, shadow + frameOutset, shadow +
frameOutset,
- shadow + frameOutset);
+ aResult->SizeTo(2, 2, 1, 1);
break;
}
why?
r=pink otherwise. can't wait for this to land!
Assignee | ||
Comment 6•22 years ago
|
||
Comment on attachment 116484 [details] [diff] [review]
updated patch
marking pink's r= on the patch.
Attachment #116484 -
Flags: review?(pinkerton) → review+
Comment 7•22 years ago
|
||
*** Bug 196462 has been marked as a duplicate of this bug. ***
Assignee | ||
Updated•22 years ago
|
Attachment #116484 -
Flags: superreview?(sfraser)
Comment 8•22 years ago
|
||
*** Bug 196551 has been marked as a duplicate of this bug. ***
Comment 9•22 years ago
|
||
*** Bug 196580 has been marked as a duplicate of this bug. ***
Comment 10•22 years ago
|
||
*** Bug 196723 has been marked as a duplicate of this bug. ***
Comment 11•22 years ago
|
||
Comment on attachment 116484 [details] [diff] [review]
updated patch
+#ifndef MOZ_WIDGET_COCOA
+ // Only support HTML widgets for Cocoa
Should this be a pref instead? Or an nsILookAndFeel thing?
CPPSRCS = \
nsRenderingContextImpl.cpp \
gfxImageFrame.cpp \
+ nsNativeTheme.cpp \
This might be shared code, but we really want the code to be in the gfx
component DLL, don't we? (this is bug 193435).
+PRInt32
+nsNativeTheme::GetContentState(nsIFrame* aFrame)
A comment to say what "content state" is would be nice.
nsNativeTheme contains a lot of layout/content-related code. It doesn't feel
right for this to be in gfx, and the added dependencies:
+ content \
+ layout \
+ necko \
+ dom \
+ locale \
reflect this. Is there a better home for nsNativeTheme? Or do we need to
refactor, so that the control drawing code goes into gfx (or widget?) but the
rest stays in layout/content.
Comment 12•22 years ago
|
||
Comment on attachment 116484 [details] [diff] [review]
updated patch
sorry
Attachment #116484 -
Flags: superreview?(sfraser) → superreview-
Assignee | ||
Comment 13•22 years ago
|
||
> (From update of attachment 116484 [details] [diff] [review])
> +#ifndef MOZ_WIDGET_COCOA
> + // Only support HTML widgets for Cocoa
>
> Should this be a pref instead? Or an nsILookAndFeel thing?
It wouldn't make sense to have it in nsILookAndFeel, because that's a
compiled-time value, and we know at present that we don't have a native popup
menu implementation Carbon so it's highly unlikely someone would want to use the
HTML form controls. It could be a pref in case an embedder wants to implement a
click listener to build a native popup menu, but if that were the case I think
we should just add the necessary code to gecko. I don't know of any Carbon
embedders who are clamoring for Aqua form controls.
> This might be shared code, but we really want the code to be in the gfx
> component DLL, don't we? (this is bug 193435).
gfx/src/shared _is_ in the component dll. Look at EXTRA_DSO_LDOPTS in
gfx/src/mac/Makefile.in.
> A comment to say what "content state" is would be nice.
"The state of the content"? It seems pretty self-explanatory.
> Is there a better home for nsNativeTheme? Or do we need to
> refactor, so that the control drawing code goes into gfx (or widget?) but the
> rest stays in layout/content.
These aren't new dependencies, except for 'dom'. They are all current
dependencies of mac gfx.
We coud refactor so that gfx is passed some struct containing the state instead
of the frame. But this would require ripping up the native theme code on 3
platforms, and I think the benefit from doing so is dubious. In any case, I'd
say that should be a separate bug.
Comment 14•22 years ago
|
||
Comment on attachment 116484 [details] [diff] [review]
updated patch
> "The state of the content"? It seems pretty self-explanatory.
What kind of state? There's no way I can tell from reading the code.
Fair enough on the other comments, but I would like to see the long-term
removal of gfx dependencies on higher-level libraries.
Attachment #116484 -
Flags: superreview- → superreview+
Comment 15•22 years ago
|
||
shouldn't this bug be referring to the 'camino' product, not 'browser'?
Assignee | ||
Comment 16•22 years ago
|
||
Landed. Any cocoa-based Gecko product should now pick up the Aqua form controls.
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
I hope you guys are aware of bug 126263... I'm not sure what impact that will
have here
Comment 18•22 years ago
|
||
Could a "margin: 2px;" be added for buttons? If you look at the 2 buttons on the
Google front page, they are right next to each other (and right beside the text
field). Without the margin they look all bunched up, but with a 2px margin they
look alot better, especially with these new small controls (which look great).
Or are the attributes like this not to be messed with for compatibility?
Comment 19•22 years ago
|
||
Yea... Verifing aqua form widgets are back in the 2003-03-12-08 Camino NB.
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•