Question

I just started playing around with Mozilla Jetpack, and I love it so far. I wrote a little code that displays an icon in the statusbar that, when clicked, brings up a notification:

var myTitle = 'Hello World!';
var line1 = 'I am the very model of a modern Major-General,';
var line2 = 'I\'ve information vegetable, animal, and mineral,';
var line3 = 'I know the kings of England, and I quote the fights historical,';
var line4 = 'From Marathon to Waterloo, in order categorical.';
var myBody = line1 + ' ' + line2 + ' ' + line3 + ' ' + line4;
var myIcon = 'http://www.stackoverflow.com/favicon.ico';

jetpack.statusBar.append({
  html: '<img src="' + myIcon + '">',
  width: 16,
  onReady: function(doc) {
    $(doc).find("img").click(function() {
      jetpack.notifications.show({title: myTitle, body: myBody, icon: myIcon});
    });
  }
});

Because the text is very long in this example, the notification looks like this:

Jetpack Notification http://img33.imageshack.us/img33/7113/jetpack.png

I want to split the text of the notification onto four different lines when they are displayed so the notification box is taller and narrower. How do I go about doing this?

Edit 1 (Thanks to Rudd Zwolinski):

I tried, but this does not help:

var myBody = line1 + '\n' + line2 + '\n' + line3 + '\n' + line4;

Edit 2 (Thanks to Ólafur Waage):

This does not help either:

var myBody = line1 + '<br />' + line2 + '<br />' + line3 + '<br />' + line4;

Edit 3 (Thanks to Matt):

Even this does not help:

var myBody = line1 + "\n" + line2 + "\n" + line3 + "\n" + line4;
Was it helpful?

Solution

Unfortunately, the alert created doesn't allow new lines for the toast popup in Windows. According to the Jetpack API:

Eventually, this object will be the end-all be-all of easy communication with your users. Notification bars, transparent messages, Growls, doorknob messages, and so forth will all go through here. For now, it just has simple notifications.

As shown in the source code, the jetpack.notifications.show method makes a call to the Mozilla nsIAlertsService, which doesn't allow multiple lines for the Windows toast popups.

The upside is that the API indicates that you'll have much more control over alerts in the future, but for the pre-release version you'll have to keep your notification text down to a minimum.

OTHER TIPS

I can't test this because I'm on a mac and getting Growl notifications from jetpack.notifications.show, and Growl constrains the width, but try changing myBody to this:

var myBody = line1 + '\n' + line2 + '\n' + line3 + '\n' + line4;

The line breaks do show up for me, so this might be what you're looking for.

EDIT: This does not work for the Windows toast notifications, so it doesn't answer the question. However, it will show newlines in Growl notifications for Mac OS X, so I'm leaving this answer up.

IIRC correctly, jetpack uses JavaScript and HTML, so just try adding <br /> between the lines.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top