mozilla / chromeless

DEPRECATED - Build desktop applications with web technologies.
http://mozillalabs.com/chromeless
761 stars 117 forks source link

provide a way to specify application icon #40

Closed lloyd closed 3 years ago

lloyd commented 13 years ago

the developer should be able to include a png file, and specify that file as the application icon in appinfo.json. We should automatically embed this file in the application bundle, and perhaps into the exe.

taboca commented 13 years ago

Very interesting concept of a exe generation system that takes a Jetpack-based SDK-based app. Maybe that is a view to use indeed in the future of Chromeless. A wizard system that simply uses a "template" that mixes Jetpack SDK app with Runtime and produces output. Would be interesting to see XULRunner team view about this, and also Jetpack SDK folks view about this.

lloyd commented 13 years ago

oh, I'm not talking about bundling everything together into an .exe, just to the extent they recommend on the deploying xulrunner page.

This is the code where we follow their instructions and "generate" the application exe: https://github.com/mozilla/chromeless/blob/appify/impl/appifier/_win32.py#L43-45

I know there's a way to stamp in an icon and vendor/version number metadata, all I'm suggesting is that we do that after renaming xulrunner-stub.

make sense?

mikedeboer commented 13 years ago

Titanium 'borrowed' the Fluid.app API for this:

That API will be compatible across platforms, but mainly useful on OSX (with the Dock specific stuff)

mikedeboer commented 13 years ago

Please see my comment in this related issue: https://github.com/mozilla/chromeless/issues/#issue/39/comment/705482

fbreuer commented 13 years ago

I have been trying to set the window icon using ui.setIcon(), but I have no idea how this function is supposed to be used. (In fact, I am not sure that setting the application/window icon is its intended purpose.) If it is however:

  1. I would like to request more documentation of its use.
  2. I would like to report the following problem.

On my Windows 7 system, calling ui.setIcon results in the following exception being thrown (using the current head of the chromeless master branch):

info: Uncaught-Exception: 'Cc['@mozilla.org/desktop-environment;1'] is undefined' in file 'resource://2938706b-0838-4bcd-9575-13bc8a1159c0-internal/securable-module.js -> resource://2938706b-0838-4bcd-9575-13bc8a1159c0-lib/ui.js' at line 164, col 0 (222)

info: Uncaught-Exception: 'uncaught exception: TypeError: Cc['@mozilla.org/desktop-environment;1'] is undefined' in file '' at line 0, col 0 (147)
mxnemu commented 12 years ago

At the moment you can set the icon by placeing it at "chrome/icons/default/default.xpm" in your application folder. The Icon doesn't have to be an .xpm, you can use a .png, or .ico too, but it must be named "default.xpm" anyway. I just tested it on Linux atm, I'll will test it on Windows soon.

I still think that there should be a way to specify the file in appinfo.json

mxnemu commented 12 years ago

Setting the default.xpm didn't work for me on windows. I used 'resource hacker' as a workaround to set the icon on windows.

http://www.angusj.com/resourcehacker/