Closed Bug 254508 Opened 21 years ago Closed 21 years ago

CSS platform classes are not working

Categories

(SeaMonkey :: Help Viewer, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: u60234, Assigned: jwalden+fxhelp)

References

Details

(Keywords: fixed-aviary1.0)

Attachments

(2 files, 2 obsolete files)

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040805 Firefox 0.9.1+ The hiding of help content with "class="noWin"" and the like, is not working. Steps to reproduce: 1. Go to Help -> Contents -> Keyboard Shortcuts Actual result: The keyboard shortcut for Page Info is listed as "Ctrl+J I". Expected result: On Windows, the keyboard shortcut for Page Info should be listed as "Ctrl+J".
As far as I can tell without actually building (which I don't think I can do because of my hard drive partitions but will still try), this patch should hide and display correctly for the following classes: unix noUnix win noWin mac noMac ...by setting display:none; when the proper variable from XP_UNIX/XP_MACOSX/XP_WIN32 is defined or undefined (nothing is set when the preprocessed #ifdef or #ifndef isn't met).
Assignee: rlk → jwalden+fxhelp
Status: NEW → ASSIGNED
Does this not mean that the Help content will depend on the default skin? Should'nt this classes be defined in content instead?
(In reply to comment #2) > Does this not mean that the Help content will depend on the default skin? No. The altered file is the one we've always used to store stylistic information for Help documents, and I haven't noticed any breakage using other themes. Additionally, because of the way the file's stored it's accessible at chrome://help/skin/helpFileLayout.css, and skins can only place content within a semi-rigid hierarchy within chrome://browser/skin/ as far as I know. I'm sure someone else can explain it better than I can, but I'm sure Help won't depend on Winstripe. Also, I might as well add rlk to the CC list, because he's probably the best bet to test this.
XP_UNIX is true on Mac as well, see http://www.mozilla.org/build/mac.html at the bottom. You can use e.g. #ifdef XP_UNIX #ifdef XP_MACOSX (Mac-specific code) #else (Linux-specific code) #endif #endif
Comment on attachment 155337 [details] [diff] [review] Untested patch to add preprocessed CSS rules Jeff, this won't work with themes. Remember that preprocessing is done at compile-time, not run-time. If someone installs a new theme, it'd goof this up. What we need is a CSS file in the Content directory and import it to helpFileLayout.css. I thought I did this, but I guess not (it might've been on the MozDev tree but never checked in). This is what we should do: http://lxr.mozilla.org/mozilla/source/extensions/help/resources/content/platfor mClasses.css http://lxr.mozilla.org/mozilla/source/extensions/help/resources/locale/en-US/he lpFileLayout.css#36
Attachment #155337 - Flags: review-
(In reply to comment #5) > What we need is a CSS file in the Content directory and import it to > helpFileLayout.css. I thought I did this, but I guess not (it might've been on > the MozDev tree but never checked in). Aside from seeing a difference in method here, I'm not seeing how it makes any difference how it's done. That said, if the classes shouldn't be within the skinning area, why does @import-ing the platforms CSS from the Help layout CSS skin make any more sense? From what I understand you're expecting all theme authors to change their themes by adding a new line to their CSS files. Wouldn't simply adding in a new <link rel="stylesheet" type="text/css" href="chrome://help/content/platformClasses.css"/> in each of the files with platform-specific information be a better idea? Then theme authors wouldn't have to do anything. In any case I'm safe to upload a copy of platformClasses.css here for addition to the tree, probably at toolkit/components/help/content/platformClasses.css. Actually using the file can be another patch which would need to work either as initially described or as I just suggested, and I need to know which is more correct first.
(In reply to comment #4) > XP_UNIX is true on Mac as well, see http://www.mozilla.org/build/mac.html at > the bottom. I was assuming the "unix" class applied to all unix-ish platforms, hence the absence of any Mac OS X filtering. I'll add some to the file to be uploaded next.
OS: Windows XP → All
Hardware: PC → All
(In reply to comment #6) > Aside from seeing a difference in method here, I'm not seeing how it makes any > difference how it's done. That said, if the classes shouldn't be within the > skinning area, why does @import-ing the platforms CSS from the Help layout CSS > skin make any more sense? From what I understand you're expecting all theme > authors to change their themes by adding a new line to their CSS files. > Wouldn't simply adding in a new <link rel="stylesheet" type="text/css" > href="chrome://help/content/platformClasses.css"/> in each of the files with > platform-specific information be a better idea? Then theme authors wouldn't > have to do anything. yes, but it'd be more work. That little line doesn't mean much. The issue with having it under skins is you would have different skin files on Unix, Windows, and MacOS. Skinners would have to make 3 different themes, which is unreasonable. You could do more work to include this in all the help docs, but I'd just do it this way. Maybe a smarter idea might be to import helpFileLayout.css to platformClasses.css and then link to platformClasses. You never know when we might want to add another CSS file. > > In any case I'm safe to upload a copy of platformClasses.css here for addition > to the tree, probably at toolkit/components/help/content/platformClasses.css. That'd be fine.
Flags: blocking-aviary1.0PR?
Flags: blocking-aviary1.0?
I changed the conditionals to match those in the previously-mentioned platform CSS file. The ones in that file were substantially simpler (although I think less clear, because preprocessor instructions don't nest clearly). The only change is the addition of an extra #endif at the end of the file, because the original code was missing one. Note that the file will still need to be added to jar.mn as a preprocessed file before it will be built with Help. It also will still need hookup to the Help docs in one of the ways previously mentioned before it'll do anything.
Attachment #155337 - Attachment is obsolete: true
Comment on attachment 155368 [details] Updated toolkit/components/help/content/platformClasses.css The only part of this CSS I don't particularly like is the stuff apparently for OS2 (about which I know nothing). Aside from that, there shouldn't be any problems, particularly as the code is already tested elsewhere in the tree.
Attachment #155368 - Flags: review?(rlk)
(In reply to comment #8) > Maybe a smarter idea might be to import helpFileLayout.css to > platformClasses.css and then link to platformClasses. You > never know when we might want to add another CSS file. It's a good idea, but it'd require changes to every bit of Help documentation we have, and we're running out of time. I say push this idea to After Firefox 1.0 and simply add the @import line to helpFileLayout.css. So, for the record, what I think makes sense for after 1.0 is this: -every file links to chrome://help/content/helpFileLayout.css (or another suitable name - I think platformClasses.css is a little too specific and doesn't anticipate any future needs) -the file contains lines that can't be changed, e.g., platform classes -a file like chrome://help/skin/helpFileLayout.css is @import-ed for skinners The really important stuff that's build-specific or is required for some other reason is in content, but everything else is modifiable through the skinnable file. For now, tho, let's just add the @import to the top of the current file. Patch coming up ASAP to hook up the previously-uploaded platformClasses.css file...
This patch does an @import of platformClasses.css, which is attachment 155368 [details]. Reminder: *must* remember to post a message to Themes forum on Mozillazine and add a mention to the Theme Development article in the knowledge base so that themers know about this change (which unfortunately probably makes all their themes obsolete, even if it's in a nitpicky way that won't make a whole lot of difference visually).
Attachment #155648 - Flags: review?(rlk)
Attachment #155368 - Flags: review?(rlk) → review+
Attachment #155648 - Flags: review?(rlk) → review+
Comment on attachment 155648 [details] [diff] [review] @import the stylesheet referenced above r=rlk@trfenv.com for both patchs. Jeff, you forgot the jar.mn change but I'll add it in real quick.
Attachment #155648 - Flags: approval-aviary?
Attachment #155368 - Flags: approval-aviary?
Does not the Pinstripe and Gnomestripe version of helpFileLayout.css need to be updated also?
(In reply to comment #14) > Does not the Pinstripe and Gnomestripe version of helpFileLayout.css need to be > updated also? Yes, I made that change as well. Once we get aviary approval, I'll throw it in. Not sure if I should update the Qute version. I don't think it's used anymore.
Blocks: 253657
Blocks: 254982
Comment on attachment 155648 [details] [diff] [review] @import the stylesheet referenced above a=ben@mozilla.org
Attachment #155648 - Flags: approval-aviary? → approval-aviary+
Comment on attachment 155368 [details] Updated toolkit/components/help/content/platformClasses.css a=ben@mozilla.org
Attachment #155368 - Flags: approval-aviary? → approval-aviary+
Fix checked in.
Status: ASSIGNED → RESOLVED
Closed: 21 years ago
Flags: blocking-aviary1.0PR?
Flags: blocking-aviary1.0?
Resolution: --- → FIXED
Something is broken here. On Linux, I see " Exit Quit", and both Edit->Preferences and Tools->Options in the menu reference. "Exit" has .win, Options has .noUnix. They shouldn't be displayed because chrome://help/content/platformClasses.css says: .noUnix, .win, .mac { display: none; }
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
I'm not that stupid. Nope, not me. There's no way I could possibly mess up the syntax of the @import rule. Gimme a break! How stupid could one be to mess up a one-line fix? It's un-possible! Nope, it must've been a typo. If you call it fixing a typo, you probably don't need to get approval-aviary. If you *don't* call it fixing a typo and instead call it fixing stupidity, you *do* need to get approval-aviary. Hah! I've cornered you by threat of approval delay into being forced to believe I'm still infallible! Self-flagellation aside, the revised syntax is tested, verifiable by the CSS2 specs, and correct, and *this* patch will work.
Attachment #155648 - Attachment is obsolete: true
Checked in, blaming typo :)
Status: REOPENED → RESOLVED
Closed: 21 years ago21 years ago
Resolution: --- → FIXED
Comment on attachment 155881 [details] [diff] [review] Remove the blemishes of my idiocy No problem Jeff. Nobody really memorizes those import statements :) (at least I don't).
Attachment #155881 - Flags: review+
We mustn't forget to let themers know of the theme changes. I just made a post: http://forums.mozillazine.org/viewtopic.php?p=719287#719287
Target Milestone: --- → Firefox1.0beta
Keywords: fixed-aviary1.0
Flags: review-
Flags: review+
Flags: approval-aviary+
Product: Firefox → Toolkit
Target Milestone: Firefox1.0beta → ---
Version: 1.0 Branch → unspecified
Product: Toolkit → Seamonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: