Closed Bug 57576 Opened 24 years ago Closed 23 years ago

Apps in the suite should be able to use different/distinct icons

Categories

(SeaMonkey :: UI Design, defect, P2)

defect

Tracking

(Not tracked)

VERIFIED FIXED
mozilla0.9.2

People

(Reporter: bugzilla, Assigned: vishy)

References

()

Details

(Whiteboard: fix in hand, have r/sr/a.)

Attachments

(7 files)

Each main app in the suite needs to use a different icon. If I have 10 windows open, a various mixture of Composer, Navigator and MailNews windows, and all that's shown for each is "Bug 4..." and a lizard icon, it's basically impossible to tell whether I'm viewing a bug in navigator, looking at bugmail, or editing a Bugzilla bug site.
This applies not just to window icons for an application, but also to file icons in the installation (e.g. the `Mozilla Navigator, `Mozilla Messenger', `Mozilla Composer', etc icons in the Mac installation), and to icons for specific windows within a component (e.g. different icons for the Messenger three-pane window, for a message composition window, and for the Address Book window). There is a bug `Use a different icon for Mail', which should be dependent on this bug (but Bugzilla isn't letting me do searches now so I can't find it). The XPToolkit chicken is coming home to roost ...
OS: Windows 98 → All
Hardware: PC → All
Keywords: 4xp
this has been a big complaint of mine, adding myself to the CC. Seems like this is kind of an xptoolkit thing, but I have some ideas about how to make it happen
pav sez he has this working in gfx2, and kerz says he's working on it.
it frightens me that this is in gfx2, but maybe I don't know enough about gfx vs. widget :) I'll take this from don..
Assignee: don → alecf
Target Milestone: --- → mozilla1.0
Status: NEW → ASSIGNED
this is pretty easy.... i have the apis needed in gfx2 to do this... i brought this up a while ago, but people said don't worry about it... i can help if you need
*** Bug 63512 has been marked as a duplicate of this bug. ***
I agree with MPT that it would be desirable to have the ability to set a different icon for each type of window, rather than just one per 'app'. It would be good if the implementation supported this, as it is a more general solution.
nav triage team: Nice to have, but don't think we have time in beta1 timeframe. Nsbeta1-
nav triage team: Would be nice, but not a beta1 stopper, especially if we need gfx2, not that that's a bad thing, but don't think we can get it in for this release. Marking nsbeta1-
Keywords: nsbeta1-
*** Bug 47779 has been marked as a duplicate of this bug. ***
*** Bug 65292 has been marked as a duplicate of this bug. ***
Adding to tracking bug 29303.
Blocks: icons
Several people are working on making new icons (bug 43647, bug 27746). I take it that this bug is for the backend.
as per the Netscape PRD, this is a Netscape beta stopper. changing to nsbeta1. Alec - Bill Law had this feature so I am reassigning this bug to him. thanks, Vishy.
Assignee: alecf → law
Status: ASSIGNED → NEW
Priority: P3 → --
Target Milestone: mozilla1.0 → ---
this doesn't seem to be a netscape issue since they will create their own icons. Mozilla needs its own icons too. This should be done by mozillla1.0 at the absolute latest. Therefore i suggest to set a milestone for this bug.
Peter: the way you nominate a bug to be fixed by a target milestone is to add that milestone name to the Keywords field; a comment alone won't help anyone query such nominations and measure them against target milestone settings via bugzilla. I've set the keyword for you. /be
Keywords: mozilla1.0
I've attached a patch that changes nsIWidget to add a SetIcon method and to nsXULWindow that uses that method to set the icon from the icon= attribute on the XUL <window>. Also included is the change to implement this method in the Windows version of nsWindow.cpp. I would need help for the Mac and Linux equivalent. Note that I've provided an empty definition in nsBaseWidget. The other thing that's necessary, of course, is to come up with the additional icons and to change the various .xul files. The icons go in mozilla/xpfe/bootstrap in splash.rc (on Windows, at least).
+ docShellElement->GetAttribute(NS_ConvertASCIItoUCS2("icon"), windowIcon); please use the new string foo. NS_LITERAL_STRING("icon") i think. otherwise it looks good.
ooh ooh, I was looking at doing something similar to this on Mac. Please take a look at bug 66814 and bug 36305. I'll take a gander at your patch too. timeless: did you cc: me on this? coolness
Ok, I looked at how this is implemented, overall the backend changes look fine, but I have some comments: 1/ This has the side effect that any Widget can have an icon set. I think this is a good side effect, but worth mentioning 2/ I assume you'd write something like <window icon="navigator.ico"> which is principle is fine... but a couple of things * Its not skinnable. Perhaps this is good. Modern and Classic should probably keep the same icons in this instance, as these are a part of Moz's external representation in the rest of the operating system. (the application's icon and the splash screen aren't skinnable after all, so why would the window icon be...) * More seriously, I can't see how to take this design cross platform. I can see how using the splash.rc gives you a layer of indirection... but funamentally you can't change the value of icon= on a platform by platform basis (unless I'm missing something). If we do what to fix this then we want to say that the syntax is icon="chrome://something/whatever.gif". Correct me if I'm wrong but, each .xul file exists only once in CVS - so if the navigator components it contains <window icon="navigator.ico"> then there's no way for the Linux one to say <window icon="navigator.xpm" or the Mac one to say < window icon="navigator.rsrc"> Even if I wrote code to support loading and setting the window icon out of a Mac resource file, I couldn't specify the file to use. Am I right here or did I miss something? Otherwise I like the API and it'll certainly come in handy for one of those other bugs I mentioned.
>please use the new string foo. NS_LITERAL_STRING("icon") i think. otherwise it >looks good. Yes, thank you; I'll make that change. >1/ This has the side effect that any Widget can have an icon set. I think this is >a good side effect, but worth mentioning Acknowledged. There does not seem to be an interface (at the widget layer at least) for the widget corresponding to top-level windows. There are a number of methods in nsIWidget that only apply to that subset of widgets (e.g., SetTitle). >* Its not skinnable. Not as skinnable as we'd like, correct. It might be possible to switch to using ::LoadImage vs. ::LoadIcon, in which case somebody might be able to drop in a new set of .ico files. I don't know the story on this for Unix/Mac. But the plan is to enhance this at some point so that this <window> attribute can be specified via CSS. It is relatively straightforward to change the nsXULWindow code so that it gets the icon name from the style system. That might also enable some per-platform specification of the icon. >* More seriously, I can't see how to take this design cross platform. It is conceivably as "cross platform" as say, URIs. It lets you specify a unique string (the string isn't necessarily the name of a file) per window/icon. Each platform must then define some convention for how to map that string to the unique platform-specific icon image required for the platform. I've come up with a simplistic mapping for Windows. I eyeballed the gtk code and think it can be done there. Mac people tell me it can be done for the Mac. If by "chrome://something/whatever.gif" you really mean "whatever.gif" then the problem with that is that no single file works for all platforms (without considerable effort). But perhaps some chrome: url (and chrome registry) magic *could* map some *generic* "icon identifier" to some platform- and skin-specific file. But that still works if the nsIWidget method takes a string and we can embellish this further when we know more about how to specify these icons in a more platform- and skin-friendly manner. Thanks for the feedback. BTW, we don't actually have any icons, so let's not get ahead of ourselves :-).
I think this is a great first step, but I don't think we should check it in as is - or at least the XUL window side of things (we can probably check in the widget side of things today) I think the next step is to go towards CSS and at least allow you to say window[type=mail] { -moz-icon: @url(chrome://messenger/skin/ms-windows-icon-foo.ico) } as a next step. Hyatt is the best person to ask about how to do this. I think that gfx2 is going to be the last step we need to be able to use .gif files instead of native-format files.
cc'ing hyatt and hixie for their comments.
Changing keyword to "nsbeta1+." It was set to "nsbeta1-" accidentally.
Keywords: nsbeta1-nsbeta1+
I did an icon set which includes icons for Navigator, Mail & News and Composer. Here's the link: http://www.crosswinds.net/~ggc/
gcavallanti@gmx.it, they are really cool!!! You can make also a complete theme based on this design! I would use it by default...
Giovanni's icons are VERY good. They should appear in the NEXT nightlies!!! ;-)
Blocks: 43647
Take a look at this: nsCOMPtr<nsIScriptGlobalObject> global; 1838 mDocument->GetScriptGlobalObject(getter_AddRefs(global)); 1839 nsCOMPtr<nsIDOMViewCSS> viewCSS(do_QueryInterface(global)); 1840 if (viewCSS) { 1841 nsCOMPtr<nsIDOMCSSStyleDeclaration> cssDecl; 1842 nsAutoString empty; 1843 nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(NS_STATIC_CAST(nsIHTMLContent *, this))); 1844 viewCSS->GetComputedStyle(elt, empty, getter_AddRefs(cssDecl)); 1845 if (cssDecl) { 1846 nsAutoString behavior; behavior.Assign(NS_LITERAL_STRING("- moz-binding")); 1847 nsAutoString value; 1848 cssDecl->GetPropertyValue(behavior, value); 1849 if (!value.IsEmpty()) { 1850 // We have a binding that must be installed. From: http://lxr.mozilla.org/mozilla/source/layout/base/src/nsGenericElement.cpp#1844 Looks like it would be pretty easy to adapt this to read the "list-style-image" CSS style from a given window... assuming we can get an object which implements nsIDOMViewCSS on the window. That way each window can simply by styled list-style-image: url(chrome:/foo/bar/baz/icon.png) which is skinnable and inherantly "XP-isable". From there its a matter of using an ImageGroup/ImageObserver to load the nsIImage in the normal fashion. I just got through implementing a function to convert an nsIImage into a platform native icon on MacOS (bug 66814), but I'm on the road for a week so if someone feels able to sort out the CSS part I'll get to wiring the Mac specific part of the implementation when I get back. This is much closer to what Alec Flett was talking about, and has the advantage of being very flexible, if we can join up the last few dots...
ugh, the imagerequest,etc are all going away...
I'm a little reluctant to sign up to provide icon-twiddling code for each platform. A less risky strategy might be to use the list-image-style attribute for <window>s to specify a platform-independent psuedo-chrome URL of the form: resource:///chrome/icons/<package>/<window> E.g., resource:///chrome/icons/navigator/navigator resource:///chrome/icons/mail/compose Each platform would then embellish those URLs to come up with appropriate native resource identifiers. For instance, on Windows, we might simply add ".ico". Then we would use platform-specific APIs to deploy those icon resources (e.g., ::LoadImage on the .ico file for Windows). This wouldn't prevent deploying a more elaborare scheme on a given platform. Comments?
This still has a couple of problems: > resource:///chrome/icons/<package>/<window> Its not truly skinable - as its a "pseudo" chrome URL as you say... if each skin was to specify a different URL that'd mean some magic translation under /icons/ was needed and probably make it harder for 3rd parties to package themes, not to mention introducing yet another implicit convention for storing certain files. Also troublesome still is that only the Classic skin is neatly divided into Windows/Unix/Mac directories. Other skins only have a single layer of .css files, so I'm not sure its possible to include the embelishments you talk about, unless you're saying we should hardcode this into the C++ ... which could get really ugly by the time every platform is catered for. I think the real issue here is whether these sorts of icons should be skinnable or not. If they should be, then they should be in an XP format (PNG) and be accessed through a normal chrome URL. If they're meant to be the same in every skin, then perhaps having a special url scheme for icons and hardcoding the logic for things like adding .ico to the end of the name is acceptable. Who's call is this ultimately?
> if each skin was to specify a different URL that'd mean some magic translation > under /icons/ was needed No "magic," really. The Foobar skin's .css would specify resource:///chrome/icons/foobar/navigator (for the navigator window's icon). The only trick is getting the .ico files into chrome/icons/foobar when the skin is "installed." The "embellishment" would definitely be in the C++. It sort of has to be, because it is the same platform-specific C++ code that provides the implementation of the nsIWidget::SetIcon function. If some of those C++ implementation can, and want to, share implementation, then that's OK. I hear what you say about the limitations of the "skinnability" of the icons, but sometimes we have to make compromises. This scheme enables us to have separate icons for each window and for Mozilla distributions (such as Netscape's), and users, to replace those icons. Ultimately, the call is made by the implementor. If I can get the widget owner (and style, since it seems that code has to be tweaked also) to accept the implemenation I provide, then it's a done deal. We'd probably be real happy if somebody else provided a better implementation.
this seems like alot of work to make a non-skinnable solution.... if you're going to do this much work, we might as well do it the right way.
Huh? Everything I've done (or have talked about doing) has to be done regardless. The only issue is whether we do lots *more* work to suck .png's out of jar files (or whatever) and convert those to platform-specific icon resources.
as long as we use css to specify the url i think packages would naturally specify chrome://<packagename>/<something>/<imagename> personally, i'd prefer for <something> to be 'images' and that we create an images binding with the following attribute: searches chrome://package/skin/image/ for <imagename>, on failure, search chrome://package/content/image/ for <imagename>. i'm flexible about whether image/ is hard coded or specified in contents.rdf (probably better as specifyable). png's make sense however we should be able to use native icons if available perhaps image:chrome://navigator/images/browser!icon where image: tries to find the most suitable icon in browser/ (based on os preferences) <browser/icons.list> image/vnd.microsoft.windows.icon browser.ico image/vnd.apple.macos.icon browser.rscr image/xbm browser.xbm image/png browser.png EOF actually, putting all of the icons provided by a package into a single rdf file, might make sense navigator *appicon *{mimetypes} *{filepath} *history *{mimetypes} *{filepath} in this fassion, a css file would indicate the icon name which is a top level in my picture, and mozilla would select the appropriate icon/image file based on the available mimetypes and its preferences.
Somehow, this doesn't have target milestone 0.9 (well, 0.8.1, but I haven't done the mass move yet). Setting target milestone to mozilla0.9
Target Milestone: --- → mozilla0.9
Mass moving most of mozilla0.9 bugs to mozilla0.8.1
Target Milestone: mozilla0.9 → mozilla0.8.1
Some rough code I'm working on for icons in Mac menus, given an nsIDOMNode, which I know also implements nsIContent and nsIDOMElement, I find the value of list- style-image. nsCOMPtr<nsIContent> content (do_QueryInterface(mDOMNode)); nsCOMPtr<nsIDocument> document; content->GetDocument(getter_AddRefs(document)); nsCOMPtr<nsIScriptGlobalObject> global; document->GetScriptGlobalObject(getter_AddRefs(global)); nsCOMPtr<nsIDOMViewCSS> viewCSS (do_QueryInterface(global)); if (viewCSS) { nsCOMPtr<nsIDOMCSSStyleDeclaration> cssDecl; nsAutoString empty; nsCOMPtr<nsIDOMElement> domElement (do_QueryInterface(mDOMNode)); viewCSS->GetComputedStyle(domElement, empty, getter_AddRefs(cssDecl)); if (cssDecl) { nsAutoString behavior; behavior.Assign(NS_LITERAL_STRING("list-style- image")); nsAutoString value; cssDecl->GetPropertyValue(behavior, value); if (!value.IsEmpty()) { // element has an image } } } THIS IS COMPLETELY UNTESTED.... but its based on code that's in the tree. Search lxr for GetComputedStyle to see examples...
Thanks for the additional code. I've got this working up to the point where the GetPropertyValue call fails (doesn't work). It seems that we don't have full-enough DOM Level 2 support and only handle certain attributes. Some additional code needs to be written to actually get the list-style-image from the frame (or some such). You'll find out as soon as you go to test your code :-).
Bug for implementing GetComputedStyle is 42417. Not setting depends as we don't need a full fix to enable this.
hmm, well, it seems this might be as simple as adpating this the implementation of GetBackgroundImage and using it to implement GetListStyleImage in nsComputedDOMStyle.cpp Something like this, maybe: nsComputedDOMStyle::GetListStyleImage(nsIFrame *aFrame, nsIDOMCSSPrimitiveValue*& aValue) { nsresult result=NS_OK; if(aFrame) { const nsStyleList* list=nsnull; GetStyleData(eStyleStruct_List,(const nsStyleStruct*&)list,aFrame); if(list) { nsROCSSPrimitiveValue* val=GetROCSSPrimitiveValue(); if(val) { val->SetString(list->mListStyleImage); result=val->QueryInterface(NS_GET_IID(nsIDOMCSSPrimitiveValue),(void ** )&aValue); } else { result=NS_ERROR_OUT_OF_MEMORY; } } } return result; } Would also need to add some glue in the nsComputedDOMStyle::GetPropertyCSSValue method. Obv. I don't fully understand what's being done but looking at the GetBackgroundImage method and the way it seems to work I figure the above code would end up getting us an "instance" of the struct: struct StyleListImpl: public nsStyleList which is defined in content/base/src/ nsStyleContext.cpp and that ought to get the list-style-image URL If I get time I'll work on this, but if you have a partial implementation of something already and can get to this first, law?
Well, I hacked on nsComputedDOMStyle.cpp to have GetPropertyValue for list-style-image. Bad news: that don't work. It seems lots of xul content depends on inheriting that style attribute in such a manner that if you change it, that URL gets used to display random stuff all over the place (e.g., in separators on table column headers). So, Dave Hyatt volunteered to add a "-moz-window-icon" style attribute to a new XUL style struct he is working on for bug 70809. So we'll be going with that.
Adding link to bug 70809.
Depends on: 70809
No longer depends on: 70809
Depends on: 70809
No longer depends on: 70809
Depends on: 70904
Depends on: 70974
No longer depends on: 70904
nsComputedDOMStyle.cpp changes look good to me (well, it needs some cleaning up, and it doesn't work if there's no frame for the element, but those problems are from the code you copied so that's ok, I (or harishd) will do the cleaning up later). r/a=jst, please land these changes ASAP.
should we check in a cleaned up version of that patch anyway, just to be more CSS2 compliant?
The null check for the frame is unnecessary ( actually, I introduced this redundency ). I'll clean it up. The patch looks good to me. r=harishd
Fix the autostring that has the name "behavior". The variable name should be windowIcon or something.
Please don't use the icons at http://www.crosswinds.net/~ggc/ for the reasons I've described in bug 27254. I have some new ones attached to that bug and gcc said he would some new ones too.
[sorry. i wrote the wrong bug number in my previous comment. re-submitting] Please don't use the throbber based M icons at http://www.crosswinds.net/~ggc/ for the reasons I've described in bug 43647. I have some new ones attached to that bug and gcc said he would do some new ones too.
The icons at http://www.crosswinds.net/~ggc/ are the only usable thing I've got at this point. Somebody will have to come up with windows .ico files using the images posted in that other bug (32x32 and 16x16, 16K colors). I'm not sure about the color depth, though. I like his splash screen, too. That needs to be a windows .bmp (although I can use IE to convert just about anything to a .bmp). The code for bug 35866 has to be tuned for the splash screen.
I'm gonna go with a vote for the icons at http://www.crosswinds.net/~ggc/ . These seem to be the cleanest and most thought out designs I have seen yet, and are very recognizable. They respect the past while modernizing it, just like Mozilla itself. I also like the splash screens. Any other votes?
IMHO ggc's icons are the best we have at the moment. We should checkin the backend code and the icons that ggc has whipped up. Currently doing nothing and just arguing about anything and everything isnt that constructive in the end. It's not like it is hard to throw in a new set of icons down the track when there made. IMHO icons are a source of flair in an app and the current one (1) icon isnt serving its purpose at the moment.
I'm for http://www.crosswinds.net/~ggc/ and deeply believe it's time to implement them (as we have nothing else realy ready). BTW, isn't this vote thing SPAM galore? I'm glad asa is not in the CC: list ;-)
sr=hyatt
If you're going to use string class references in interfaces *don't* use the old class nsString, use nsAReadableString or nsAWritableString, in this case you should define the SetIcon() method like this: NS_IMETHOD SetIcon(const nsAReadableString& anIconSpec) = 0; Please don't check this in w/o fixing this. Also, iconSpec.AssignWithConversion( anIconSpec ); will loose information if anIconSpec contains non-ASCII characters, wether or not that's an issue I don't know.
This is a working patch for windows? Want help with Mac version?
re: Mac help I guess so, but the consensus here was that this didn't really apply to the Mac because it doesn't have per-window icons. Is that not the case?
Mac does not have per-window icons of this kind. It does have window icons in the titlebar, but they are indented to be proxies for an on-disk file that the window "owns".
Right... taking Navigator as an example, on Mac OS the icon in the titlebar should match whatever the icon in the URL bar is. Dragging it is just like dragging the icon in the titlebar. This behaviour - being able to drag this icon - would be non-standard on Windows, neverthless IE5 implements this on Windows and I have a bug on implementing it on Windows and MacOS; bug 36305. I had assumed, for this reason, that we'd probably put the icon for a shortcut on Navigator's window, but I guess most people were just planning to use the 16x16 icon for Mozilla (and/or each sub component). To do the drag thing properly, it should only be possible to drag when the address in the URL bar matches where the user is (the fact that this isn't currently true is a bug) The proxy icon in the URL bar is supposed to disappear when the user starts typing. The one in the title would need to be disabled (not draggable). MacIE5 also does something really nice - it shows the correct icon for everything loaded through a file:// URL. So if one is looking at an HTML page you're designing in BBEdit (a Mac text editor) the icon is the one of a BBEdit document. Beyond this - composer is document oriented - on MacOS this means it should allow its icon to be dragged when its document is saved, and disable it when it is not. News could make an icon representing the frontmost article's URL available (the fact there's no option to show the address bar in Mail and News is another bug). Mail compose windows are similarly documents. I don't know if we form URLs for messages in the user's inbox? On Windows, it might be nice to offer this functionality, but its non standard. In short, its complex. Perhaps we should consider using the icon being used in the URL bar in the window title on Windows? After all, the button in the taskbar shows the document's name, does it not? This is why I was making a fuss about thing being skinnable - if you mirror the proxy icon in the addressbar then it'll change with each skin. Assuming you decide to go with a lizard head or some other Moz component icon, we'll need a way to do proper document proxing on Mac OS.
sorry to jump in late, but isn't there a better way to resolve resource URLs than this? Maybe something like converting it to an nsIFile, and then retrieving the native path? This is more than just a cleanliness of code issue - we really need to minimize the number of file path parsers. We had lots of security problems in 4.x because one of the 97 file parsers in the codebase had some wierd loophole that someone could exploit.
Ignoring the Mac issues for the moment...I've taken jst's suggestions and attached an updated patch (with all files). I switched SetIcon to take an nsAReadableString& and have changed the Windows code to build the icon path name in unicode rather than ascii. Re: Mac icons I think I see what you're talking about. That seems like a different problem (at least in some respects) because the icon is for the document, not the window/app. So specifying the icon in the <window> may not make sense for Mac. That will have to be sorted out later.
Alec: Yes, we really wanted it to be easy to take a resource: url and get a file path. Unfortunately, I couldn't find any way to do it. The "resource:" protocol handler does it under the covers, but there didn't seem to be any way to re-use that logic. If somebody can figure out a better way, I'd be glad to do it differently.
Resetting milestone to get these non-critical bugs off the radar till later this week.
Target Milestone: mozilla0.8.1 → mozilla0.9
patch builds on linux ok (SetIcon stubbed out on linux), current behavior unchanged.
law, with r and sr we would consider this for 0.8.1 checkin. -asa (on behalf of drivers)
Whiteboard: with r= and sr= would consider for 0.8.1 checkin
Of course we don't actually have any icons, so getting the code checked in won't do anything. But it's ready to go.
I don't see the advantage of increasing the risk in 0.8.1, esp given that we don't have icons even designed.
OK, pulling off the 0.8.1 radar. Thanks.
Whiteboard: with r= and sr= would consider for 0.8.1 checkin
*** Bug 72650 has been marked as a duplicate of this bug. ***
Depends on: stopthewhining
Chris McAfee is working on the Linux implementation and I've had to explain some details that probably should be recorded for posterity... First, the code in the attached patch provides the basic window/widget code and a Win32 implementation only. After the patch is applied, nsXULWindows will attempt to get the -moz-window-icon style property for the window and pass that resource: url to nsIWidget::SetIcon. Currently, the style system doesn't support -moz-window-icon and the property value will also be null/empty. In order to actually test my Win32 nsWindow::SetIcon implementation, I've enhanced nsXULWindow::LoadIconFromXUL so that it, by default (if the style property is not defined), use the resource url "resource:///chrome/icons/default/<id>" (where <id> is the id= attribute on the <window>). If there is no id= attribute, then it pretends id="default"). Consequently, you can provide new icons (having applied this patch) by placing *.ico files in the directory $(MOZ_DIST)/bin/chrome/icons/default. This is kind of broken, because some window share the same id= attribute value but shouldn't have the same icon (e.g., Navigator and Composer). But it should let you play around with new icons (on Win32). Remaining tasks are: 1. Check this patch in. 2. Complete Linux implementation of nsWindow::SetIcon. 3. Get real icons in both Win32 .ico format (16x16 and 32x32) and whatever the Linux/GTK format is. 4. Tweak the build system to push the icon files to .../icons/default/ directory. 5. "Style" each window to specify the proper icon. This can be done by adding .css to set the -moz-window-icon property (requires #6, below), or, by setting the id= attribute on the window to match the icon file name. 6. Extend the "xul" style property struct so that it properly handles -moz-window-icon. This is bug 70974. We'll use this bug to track tasks 1 and 2. I've opened bug 73712 to track items 3, 4, and 5.
No longer depends on: stopthewhining
Depends on: stopthewhining
Attached patch Updated patch; same exact code (deleted) — Splinter Review
I created bug 76211 to address the problem of not having an implementation of SetIcon on Linux/GTK. The bulk of the work is done and the icons should work when the "depends on" bugs are fixed.
Depends on: 76211
Resetting target milestone to match blocking bugs.
Target Milestone: mozilla0.9 → mozilla0.9.1
nav triage team: Reassign to vishy to drive new icons, marking p2
Assignee: law → vishy
Priority: -- → P2
I hate to point this out at this late stage, but according to my documentation a) Windows 9x doesn't support LoadImageW b) Windows NT doesn't support LR_LOADFROMFILE c) Icons can't be loaded from skin jars I expect this will be fixed by a forthcoming gif to ico converter.
See also bug 29856, "*nix only : Window Class the same for all mozilla windows"
nav triage: moving to Future.
Target Milestone: mozilla0.9.1 → Future
I don't believe we can't do icons!
I don't either. Did law, mscott and others really do all this backend work so we could throw in the towel when it's time to choose the icons? But bug 73712 seems to be handling that now. I don't see any reason for this bug to remain open (but correct me if I'm wrong) -- task 1 seems to have been completed, and task 2 is now bug 76211 -- so marking fixed.
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Summary: Apps in the suite should use different/distinct icons → Apps in the suite should be able to use different/distinct icons
This code will now work with everything except Windows NT v3.x. I don't suspect that particular version is widely enough used to warrant finding a way to load the .ico files by some other means. I'm resetting the target milestone. Suggest this go in mozilla0.9.1. Need review.
Status: RESOLVED → REOPENED
Keywords: mozilla1.0patch, review
Resolution: FIXED → ---
Target Milestone: Future → ---
Have we got any suitable icons to use yet? There is no point putting this into 0.9.1 if there is no benefit to the user. Then again, any icons (no matter how ugly) would be better than the current situation.
The benefit for the user is to take the risk hit in the beta cycle instead of the rtm cycle. It's something we're gonna need, i vote to get this in.
Ian Thomas: you asked if we have some suitable icons to use. Hell yes! Look at the link provided on this bug: http://www.crosswinds.net/~ggc/ I love those icons!
I'd love it if we could use those icons, as you will see from my comments in bug 43647. However, that bug was closed because there was argument about whether those icons were suitable. I suppose you can never resolve things like that with an open source project, so we might as well check them in and let them be changed later.
*** Bug 84563 has been marked as a duplicate of this bug. ***
Target Milestone: --- → mozilla0.9.3
Resetting target milestone. This really, really should go in mozilla0.9.2. The fix is simple and has been reviewed (by Naoki, although it was in the bugscape counterpart to this bug). Need super-review and approvale from drivers.
Whiteboard: fix in hand
Target Milestone: mozilla0.9.3 → mozilla0.9.2
sr=alecf
Whiteboard: fix in hand → fix in hand, have r/sr, need a.
a= asa@mozilla.org for checkin to the trunk. (on behalf of drivers)
Blocks: 83989
Please don't use giovanni's newer icons - they are too detailed to be recongnizable. Use his previous set, which are a masterpiece in design. See them here: http://www.crosswinds.net/~ggc/oldstuff/index.html
I agree, the new icons (while being the second best I've seen) are not as good at the originals. The 32x32 version is alright, but the 16x16 version sucks. Besides, there is only one icon, we need a set for each sub-application. Removing needs a= from status whiteboard
Whiteboard: fix in hand, have r/sr, need a. → fix in hand, have r/sr/a.
Yes, the previous icons are better. Besides, I didn't see a mail icon in the new set.
Please take your icon advocacy to the n.p.m.ui newsgroup. Bugzilla is not the place to express your aesthetic sensibilities. With every "I like that icon more/less" comment you add to this bug you make it less likely to get fixed and verified in a reasonable timeframe. (did you know that QA has to read through a bug before it can be verified? take a moment and read through this bug. how long did that take? now do that for the other 6000 Fixed bugs that need verifying. see my point?). If you would like to respond to my comment please do so via email and stop polluting this bug. Thanks.
patch dated 05/25/01 checked in on behalf of law.
Status: REOPENED → RESOLVED
Closed: 24 years ago23 years ago
Resolution: --- → FIXED
QA Contact: sairuh → claudius
OK, I'm confused now. Is this patch the same as bug 47779 ? If so, then are there now bits of code doing exactly the same thing?
No longer blocks: 43647
No longer depends on: stopthewhining
I think bug 47779 is talking about getting an correctly packaging icons for each Mozilla component in the build (with reference to corresponding Netscape specific icons in the Netscape commercial build). This bug on the other hand is talking about adding the support so that Mozilla uses those icons correctly when it runs. The last patch in this bug was to make it work correctly on some Windows OS's esp. Win98.
sufferin' succotash! I just read this whole damn bug and there's nothing for me to do. (see Asa's 6-19 comments) Code-level fix, marking VERIFIED Fixed.
Status: RESOLVED → VERIFIED
OK, the *ability* is fixed. I created bug 87450 to actually get it implemented ;)
Blocks: 87450
No longer depends on: 70974
Product: Core → Mozilla Application Suite
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: