Discuss application theming and theme development.
I was playing around with this approach and have written a small theme based on it.
It's a very small file (just 128KB) and is not based on the Default Theme.. IT IS the default theme indeed. It just chnages the toolbar buttons.
I've tested on Windows. But I have no idea how it works on Mac and Linux. I would very appreciate if someone could test it for me...
Here we go:
I tested this out on Firefox 3.5.2 (Windows XP) and it installed properly. It did not change the icons in the toolbar for me though. It changed the icons in the 'Customize' window, but when I dragged something from there to the toolbar, it showed up as the default icon on the toolbar.
Hmmm... I remember we spoke about your helper?
I use the approach we talked about here, registering an empty (or even nonexistent) file for other themes except "Firebird", because I'm declaring a style overlay. When I declare a style overlay like I did:
is the same as I would insert on browser.xul another line like:
This means Firefox will always look at chrome://customskin/skin/browserOverlay.css!!!
For Firefox be able to find my file, I need to register a new package "customskin":
To understand how Firefox will find it, it's necessary to understand how this works:
"If more than one skin is registered for a package, the chrome registry will select the best-fit skin using the user's preferences."
This works in this way:
Let's suppose an user has installed 4 themes, theme 1 , theme 2, theme 3, theme 4.
All these themes will register, e.g., a skin provider for the browser package:
Now, Firefox has registered 5 skin providers for the browser package:
The first best-fit skin is defined on user preferences at general.skins.selectedSkin preference. With this, Firefox will switch to the skin provider with this value as internal name.
So, I've registered a skin provider for the customskin package, right? But the only theme that has registered a skin for this package is already firebird.
When the user changes the value from general.skins.selectedSkin, Firefox will look for the respective register and, of course, will not find it. But it has already a skin provider registered for this package (the firebird skin) and will take it for all other themes.
That's the reason I need to register a folder with empty files also for the default theme:
* Important - We need to register the skin for the default theme before we register our skin.
If it's not clear, please ask me, ok?
Last edited by ShareBird on September 9th, 2009, 3:27 pm, edited 1 time in total.
Hi Triton, I've figured out something important. We need to register the skin for the default theme before we register our skin... (I've edited my post)
Hmmm... Thanks, I guess I've figured out what was wrong. Could you please test it again? (Thank you very much )
http://www.tudobom.de/xpi/firebird_1.0. ... nk_r34.jar
I'm very glad it works! I've got feedback that is also working on Linux. I'm just waiting for some Mac users to know if it also works on Mac... I will later update the tutorial, so that people can use this theme as "basis" for similar themes.
Thank you very much for testing it!!
It works more or less.
The stop button is for example buggy. The copy, paste and cut buttons as well - they need something for the [disabled="true"] status.
The History and Bookmarks need something for [checked="true"]:active
I tried out Firebird, but I didn't see any changes except for the icons in the Customize window. I guess I may have some add-on conflicting with Firebird here.
I also did have something like this at one of mine profiles. It seems I have inconsistent results installing it. For me, disabling one extension (any one) restarting and enabling it again made it work.... Weird.
Who is online
Users browsing this forum: No registered users and 5 guests