>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Расширение под Lightning http://forum.mozilla-russia.org/viewtopic.php?id=31100 |
newon > 12-02-2009 01:28:11 |
Здравствуйте, уважаемые девелоперы! Намедни, не найдя ни одного нормального расширения для синхронизации Lightning'а с GTD-сервисами, решил написать таковое самостоятельно. 1) Как добавить, например, нужную мне кнопочку на панель Lightning'а? Мой .xul нужно overlay'ить с .xul'ом тандербёрда, или самого лайтнинга? И какой путь писать? 2) область видимости JS-функций Lightning'а - могу ли я запускать их из своего плагина? И есть ли какой-нибудь туториал по компонентам и функциям лайтнинга, или же придется лезть в его внутренности и там копошиться? 3) каким образом, по мнению уважаемых гуру, лучше общаться с сервером? (общение с сервером происходит обычными HTTP-запросами - http://www.toodledo.com/info/api_doc.php?del=12213123) Буду очень благодарен за подсказки, ибо не совсем понимаю за что вначале браться. |
Anton > 12-02-2009 14:34:01 |
Как обычно для Thunderbird надо оверлеить overlay chrome://messenger/content/messenger.xul#MailToolbarPalette, но у кнопки должен быть атрибут mode со значением 'calendar'.
Запускаться будут. |
newon > 12-02-2009 22:40:58 |
Anton, большое спасибо! update: Какая тут может быть загвоздка? Премного благодарен! |
Anton > 13-02-2009 15:20:07 |
observer и event handler - немного разные вещи. Выделить код Код:var win = window; var observer = { win: null, QueryInterface: function (aIID) { if (!aIID.equals(Components.interfaces.nsISupports) && !aIID.equals(Components.interfaces.calICompositeObserver)) { throw Components.results.NS_ERROR_NO_INTERFACE; } return this; }, onCalendarAdded: function (aCalendar) { this. win. alert ("added !"); }, onCalendarRemoved: function (aCalendar) { this. win. alert ("removed !"); }, onDefaultCalendarChanged: function (aNewDefaultCalendar) { }, init: function (win) { this. win = win; } }; observer. init (window); var cicc = getCompositeCalendar(); cicc. addObserver (observer); |