Полезная информация

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

№117607-09-2009 19:33:23

Jarichek
Member I
 
Группа: Members
Откуда: Минск
Зарегистрирован: 09-04-2009
Сообщений: 306
UA: Firefox 3.5

Re: Custom Buttons

Anton
хочу еще 2 вопроса выяснить:
1) В тем кнопках, которые ты мне написал, где появляется окно при клике, как этому окну можно присвоить свои высоту и ширину?
2) Как можно проверить текст в переменной, является ли он ссылкой (например, есть ли у него в начале "www.", "ftp://", "http://")?

Отсутствует

 

№117708-09-2009 14:25:19

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

Jarichek
1.

Выделить код

Код:

<dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
                id="dlg02"
                title="Custom Buttons"
                onload="windowController.init()"
                width="640" height="480"
                ondialogaccept="return windowController.accept();">

2.

Выделить код

Код:

if (переменная. indexOf ("www.") == 0)
{
    ...
}

p.s. Исправил - забыл закрывающую скобку в if ...

Отредактировано Anton (08-09-2009 14:26:07)


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№117809-09-2009 19:41:33

Jarichek
Member I
 
Группа: Members
Откуда: Минск
Зарегистрирован: 09-04-2009
Сообщений: 306
UA: Firefox 3.5

Re: Custom Buttons

Спасибо вам, друзья, за помощь и терпение :) Вроде бы желания уже иссякли

Отсутствует

 

№117911-09-2009 06:34:02

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 672
UA: Foxware 0.0

Re: Custom Buttons

Капец полный.Сегодня обновил все расширения и у меня полностью слетели все кнопки.Методом тыка выяснил,что причиной стало расширение Adblock Plus.Каким макаром оно повлияло непонятно,но факт что конопки просто исчезли,как будто их и не было.Помогло только отключение Adblock Plus.

Отсутствует

 

№118011-09-2009 08:11:54

Jarichek
Member I
 
Группа: Members
Откуда: Минск
Зарегистрирован: 09-04-2009
Сообщений: 306
UA: Firefox 3.5

Re: Custom Buttons

vv07
а если обновиться до версии 0.0.4.4? На АмО есть, во всех версия пока что :) Вроде там исправлялась ошибка работы с Adblock Plus -ом.

Отсутствует

 

№118111-09-2009 18:59:41

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

vv07
Доступна новая версия, 0.0.4.4, она не конфликтует с ABP 1.1.1
Её можно установить отсюда: http://custombuttons.mozdev.org/installation.html


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№118211-09-2009 19:26:15

Sergeys
Administrator
 
Группа: Administrators
Откуда: Moscow, Russia
Зарегистрирован: 23-01-2005
Сообщений: 14008
UA: Namoroka 3.6
Веб-сайт

Re: Custom Buttons


Через сомнения приходим к истине. Цицерон

Отсутствует

 

№118312-09-2009 11:08:13

Jarichek
Member I
 
Группа: Members
Откуда: Минск
Зарегистрирован: 09-04-2009
Сообщений: 306
UA: Firefox 3.5

Re: Custom Buttons

FFUser665 пишет

кнопка запуска внешнего приложения срабатывает только один раз

Ну если только для запуска блокнота и без параметров то вроде так:

Выделить код

Код:

var path='C:\\windows\\notepad.exe';

var file = Components.classes['@mozilla.org/file/local;1']
    .createInstance(Components.interfaces.nsILocalFile);
var process = Components.classes['@mozilla.org/process/util;1']
    .getService(Components.interfaces.nsIProcess);
 file.initWithPath(path); 
 file.launch();
FFUser665 пишет

потому что охота потом соорудить следующее:

Нечто похожее на твои требования уже в этой теме делалось, правда здесь только запуск приложений, для выполнения других действий придется корректировать, вот попробуй посмотреть эту кнопку:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0D%0A%20%20%3Cname%3EFavorite%20Applications%3C/name%3E%0D%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAEG0lEQVR4AQEQBO/7Af///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAADNmjT/////AP7+/gD+/v4AOWzSCwAAAPj////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AzJkz///////////////////////Cjyn/AAAAEQAAAAL///8A////AP///wD///8A////AP///wD///8AAcyZM/8zZswAAACaAAAAAAAAAAAAAAAAAAAAZgC+iyUA/f39AP39/QD+/v4A/v7+AP39/QBQg+kLAAAA+P////4E////AAD4kgAA/f0A9fYCAMTVKQD1DjIA/P/nAA87uQAhFAsAJiYXAAAAAAAAAAAAr3wWAAAAAB8AAADhAAAA9gT+/v4AAPT0APPp6QCitxQAIl1DAAkFAwAKAwAANw8AANrd7AC1kFEACPrTAPz8/AAGBgYAs4Aa1urq6gABAQELBP7+/gAA9fUA49fXABE6mQAaFwMA+foAAPn7AADL6gAADxsUAA9AmAA8MBcAAAAAAADngQDq+PgAroeNAAAAAB8E/v7+AP3x8QDn3t4ADScFABYAAAACBgAA8QYAAN/5AAD89gAA/QPxAAAAsQAAAAAA+d/fAN/n5wDq+A8AAADsCgL9/f0A6ODgABUWGAAA9vcAFgAAABEAAAAHAAAACAcAAPn8AAAS/NcAAPj4AAD4+AD39/cA387OAH+j7D4AAAD5Av7+/gDi4uIAIjBLABf/8gDp7/UA8QAAAPkAAAADAQAA4szdAA334AAA7+0AAPT0AODg4AAEBgYAAAAA+QAAAOgE/Pz8AAICAgAMLVMANvDWANnaygDpBDQA9fv7AALy6AAZ8OYA9t7NAAD49gAAHSEA3d3dANvl/AAAAAD9AAAA+AT7+/sAISEhAAD8/AAA68oAJwz1ACcA2AAACAAAAA0AAO4QEAC7vzcACM+3ACf+3QD69/cAeqL2PgAAAPkAAAD+BAUFBQDY2NgA1tZFAP39/QD+/v4A/f39AP39/QD9/f0A/v7+APsIMADICVQABNK7ADgsKgAAAMz5AAAA6AAAAPgERHfdCwAAAB8AAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADGAAAAxgCggI3MCPXUAAAAzP0AAAD4/////gEAAAACAAAACAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAYAAAA/QAAAOH////2Af///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAgAAAAgAAAAAAAAA+P////59OFeo8fymrgAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0D%0A%20%20%3Cmode%3E0%3C/mode%3E%0D%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20login%20%3D%20%22Administrator%22%3B%20%20%20%20%20%20%20%20%20%20//%20Here%20put%20your%20login%20name%21%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20So%20you%20can%20use%20%22Show%20Desktop%22%20command%21%0A%0A/*%0AIf%20you%20deleted%20%22Show%20Desktop%22%20from%20your%20Quick%20Launch%20toolbar%2C%20just%20enter%20this%20URI%0Ain%20your%20Firefox%20and%20save%20the%20file%20as%20%22Show%20Desktop.scf%22.%20Then%20you%20can%20put%20it%20in%20you%20Quick%20Launch%21%21%0AShowDesktop%3D%22data%3Aapplication/x-unknown-content-type%3Bbase64%2CW1NoZWxsXQ0KQ29tbWFuZD0yDQpJY29uRmlsZT1leHBsb3Jlci5leGUsMw0KW1Rhc2tiYXJdDQpDb21tYW5kPVRvZ2dsZURlc2t0b3ANCg%3D%3D%22%3B%0A*/%0A%0Avar%20apps%20%3D%20new%20Array%3B%0ADefault%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACkElEQVR4XqXNa2jVZQAG8N//nJ3jmbs4l6XZhSGI0sWhQ9CCpKhcWljOYCLZDZEgsA+RFEQWCcEsF8vsy9yHLiKCGxgsVnZZzLm2BV2kYdgWJ7cyN6Zn7nLO8bwh9KmBX/rB8/F5niiE4H/r2qX+xLPaTu4TPt1mvG2LyfYnjaAYcdcQXS1PxBzOZnh4L0bI/M7oKL+ccD6W1Vt7VB1yKMwauPpcvd6m6+7BcWQxByVkphjKcbbd4cfa7MDUf0dilzM2Dg0gzfRl6e//sG84q7Ww0ExZDVVLyOdsbqn1IlKIAEDfHiH0C6FTSO/ViuW4teEFa3/rrSyEv4WZHuHI1lRI7vwod8u2lqeQQASxzBky3chy8002vVHnelw8OPXJK5svNEcqSMb5NXOnxTXriiZnHCqrb0nfsKV5OxKxfNLuzi9cchGlole3+ybT6UC5P28zXkEBw6xeNGDZYJ/b77s/mn/XqoX5bHYDSiMkv3zG5XvvVqQYU5iLxYhjEEmG0rxz7vn+gQdfW1UqGX1+sp++gY4YcoWk/EiCn0bJ1mAMP+MvXKL7K3q+lW7a/97TUTT8VmpJifLVa2QrylfGEKbH7Ow56nTXcQ2nWl2BoTGGKrGCsYvzfLbmyHlMd9RWN5bk4yZGZ4TxTCoCJFCO4o5dTi99VHnPuy4cG1u3oG7FDxpT+5294wk3zg0SybiRqci5HLraRYAIRYg3r7c15NUeiuq/O7Xs8YbUvMpocnkVySpGUYoJ/NguMXAmbTYJzMeiBRvffq7ykaYPyjYc6PX+YPDmSHCwO/g6hKjuwwKqzSZCEZIoRmXZA417vHwsxHd8PD1n7esNsYeapotW7n4JSyPXFiGOJEr/DVxBwOQ/YMb/YyJTjUkAAAAASUVORK5CYII%3D%27%3B%0AGchrome%3D%27data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABwAAAA5AAAARgAAAEEAAAA4AAAAJAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQAAAU8dLhSTS2YrwmGEU9U8hoPMCXCHwAg/SqMCEBNtAAAALQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGRUeD3dShTXYerNF/3nFov844ff/E9///xLY//8Vz/X/G6jG8RBIVqoAAABAAAAABQAAAAAAAAAAAAAAChsoEndjpzvzY6sr/3q7nf835f//Etz//xDZ//8P1vz/EdL3/yDJ7f8jwOP/D2d7wwECAjUAAAAAAAAAAAcNBD5enDjpUq4e/0CPFf91n5z/ZeP5/zbm//8h3f//Edn//w/X/f8U0PX/H8Hl/yC94f8NUWGhAAAADQAAAAY5WSWYYLYw/0CiHv9LskP/V6BZ/3iUkf973O7/XfD//zjl//8O2f//Ddf9/xLP9P8iweT/HKbF8wMSFTwOFAooZJxD11CuLf9MsEX/Vr1t/23Tm/+Zyqn/fYGB/4ajr/+Qzdv/bOv//xLb//8O1fr/Fsjt/yK94f8LS1l5KDYeTWyxTO5Lrz7/Vrxq/2jOmP+m2bz/ZHpc/01JMP9aQCD/TD8y/3iQmv9e5fz/Ctf+/xLQ9f8hxOn/GXOIoSk7IFNntVL0ULdX/13GiP+S4L7/epN2/2VWJP/Hghv/340n/7l7Iv9TRzT/ZbLI/yTi//8J1f3/H9H2/x17kak1Qi86d8Bv6la+bv9q0KH/ot69/2JuTf+8fiz/759M//K6g//yo1L/mXs+/1ubp/887///I9Tt/0Covf8fc4mRHyocC3u6fMpiyYn/c9Sq/6Tfwf9wcWH/wYg4//WtYv/2yJH/96te/7KNTP9ff5P/Voel/0NQkf9KWbL/Hl9xUwAAAABTelpzgd6q/5Hfu/+ZwKn/hYS//3RjY//Hk1//0o9Z/7J5Of+WhI3/UE/U/w8I3f8JA+7/P2Dz3RQnJhEAAAAAFyEaDKTiw8244sL/jY+5/zQy9/9kZdT/a2me/2dilf9naK//YmPt/xEQ8/8AAOr/EhL0/ytPj1IAAAAAAAAAAAAAAAA5SUMqpcip2nJ0sP8WFeb/AwPh/yor5f81NuX/ISHk/wAA2f8AANb/CAje/w0Nj3kAAAAAAAAAAAAAAAAAAAAAAAAAAB8kHRZAQ4OKXFzf7iUlzP8TE8v/EhLK/xoay/8tLc/+NTXD0h8fe1YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADY2cD98fOOadnbc03d33Nh/f+TAa2u9bx4eNBcAAAAAAAAAAAAAAAAAAAAA+A8AAOAHAADAAwAAgAEAAIAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAEAAMADAADgBwAA+A8AAA%3D%3D%27%3B%0AIExplorer%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjA4ZXKc4QAAAgtJREFUOE+NU99LU2EYnvSHdNP0uHUcw7n8RTmNgYKgWESXQexGNAoSIsoiutDhUDbndEmLWo1ayEydgV1FXWi1HINipC1rP9x2cptnJoo8nu+Dc9xxg3XggcP3ve/zvu/zPl8FAMX/fuaVGA0+keMUN9rYCppHCMphZCmI4eWoEHYUS85o8VLJ5FJE15s1dAR2ce62j0KML0kgJplCMRAYV3eg9Weh8nLQvN6C3p2QSIoICtu0hLNo9P2C8r4fpyyfwbiiqHr0B6wriQb3pqwTaYSxLynanuFjHo0zETBd/dC0XsaZi9dRfXMB1Y4YTk/EUf8sW0xQmEwImAeLULb3SvMSAv1wAKw9AZ3zL4Woh0zE1g95sN40Kh8LLdvXwdgiUFkjUFt/g7XGoR3fRMNUBoYnXDHB2SUe7CsOldNRqAe/loWsA5N/A3VzPFSuBJTjGzhpegpd97WykHzQPL+DWu82agSVVfYoGHMY6ksPZcYhOjR5ePQFD3DH//1ohCuC4uzkGq2mf56D1plCjTCvZjRONyBuweDj0Rvah/UbL99C52waLbde0mqUxCGsypmBfkIwztQWml/k0P3uHwZCexhaTtJkEic6UmGc4SQCkaT27ns02dZh9CTRM5fB1dmf9F/UpdD+ih73D9TfeysxXnCsSlWOC1nq3VAfnLcFoBv6BJJc7mUevz8EdJ2boXU7oPQAAAAASUVORK5CYII%3D%27%3B%0AShowDesk%3D%27data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAioFc/4lLHf9dPCL/Sj8u/zZMRv86Ukv/O1RN/0VhWf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALZbEv+tSQT/p0wR/8F4MP/BeDD/wXgw/8F4MP9FOCj/OUc+/ztTTf8+Vk//RmNb/1p+dP8AAAAAAAAAAAAAAAC2WxL/tlsS/7/WzP++8vv/t/D7/7fw+/+37vv/wXgw/8F4MP/BeDD/wXgw/1M3H/8+Qjf/TGpi/wAAAAAAAAAAtlsS/8fQvf/F8/z/xfP8/8x6O//Mejv/zHo7/7fu+/+37vv/t+77//DOpv+1UAH/tVAB/ztUTf8AAAAAAAAAANiBJ//L0bz/yvX7/8r1+//3ozD//+PH///lzP/Mejv/zHo7/8x6O//Q9vz/8M6m/8xnAf87VE3/AAAAAAAAAADYgSf/z9K9/9D2/P/Q9vz/96Mw///lzP//5cz//+XM///lzP/Mejv/0Pb8/9D2/P/MZwH/PldQ/wAAAAAAAAAA2IEn/9Tt7P/U9vz/1Pb8//ejMP//8+f/AQ4U/wEOFP/Zhzf/2Yc3/9mHN//U9vz/zGcB/zZMRv8AAAAAAAAAANiBJ//c+P3/3Pj9/9z4/f/3ozD///Pn///y5f9hhJL//+TJ//XDkP/Zhzf/2Yc3/8xnAf8pOTX/Ql1V/2eShv/YgSf/4fn9/+H5/f/h+f3/96Mw///8+f//8uX///Pn/9mHN///5Mn//+XM//zRpv/Zhzf/ETG5/y9CPf9UeG7/2IEn/+Xi0P/o+v7/6Pr+//ejMP////////r1///y5f//7dz/2Yc3/9mHN///5cz/H1zV/y6G8v8RMbn/bJiL/9iBJ//YgSf/7Pv+/+z7/v/3ozD/+7JB//uyQf//+vX///Ll/8x6O//s+/7/2Yc3/9mHN/8eJJb/AAAAAAAAAADYgSf//+26/9iBJ//0/P7/9Pz+//T8/v/w2L//+7JB//uyQf/Mejv/9Pz+//T8/v/Zhzf/O1RN/wAAAAAAAAAA2IEn/++mRv/vpkb/2IEn//DOpv/w2L///P7///z+///8/v///P7///z+///vpkb/2Yc3/ztUTf8AAAAAAAAAAAAAAACOn4b/oLac/6ilhf/vpkb/76ZG/++mRv/vpkb/8tKf//LRo//vpkb//L12/9mHN/9Sc2n/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO+mRv/vpkb/76ZG/++mRv/vpkb/AAAAAAAAAAAAAAAA//9zQQD/c0EAB3NBAANzQQADc0EAA3NBAANzQQADc0EAAHNBAABzQQAAc0EAA3NBAANzQQADc0GAA3NB/wdzQQ%3D%3D%27%3B%0AComputers%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjA4ZXKc4QAAAZRJREFUOE+NUz1Lw1AUtT/Hn9BVcDDgYDe7iTiFTsFJXCRjcAod5FmhkA6FdCikW7oE4lCIg5AMhdehwxscInTI4HC898XU2tqPwOF93XPeffee1AAcbfueX7K1w08den1Vry05LFBBdFJodBO43RTBMIbox3CHCcRE6vHk1EbzzCJKyVuSecFE5ynQweJVISyAhA7iL8BfAK7CHgG6TWQFnBkgPkpSQODRozXvGxfO7gzEpMBdVgYLurGCM4fev77xdwhQBuFYwnwHLAq2p79gsvlGuE+2C3Ad/H6CRkQ3TX4ITCLw2qD9ZlvuFnDbJDDIYYyhhSrw2hgdIGB3Yy1QHwB1IjDMqNBtNVvl+7e2seqt1ZM4HlLRohx+n2rSimGcBxvkDR9UAs5jgmAk4dGtPOfWrRvoXyNVm5xusSig5oqEUmqdpzOwH8osVt37x4najWRlJud5DjmTiCPOIkTj0j1QgOyslIKcKqSZJF+k8Hoh1cHTQnsz4CysWwF/ENPPlOhRdFhAHF5EFqnatT6uvp/n35Q1zXl/mKThAAAAAElFTkSuQmCC%27%3B%0AWExplorer%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAEG0lEQVR4AQEQBO/7Af///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAADNmjT/////AP7+/gD+/v4AOWzSCwAAAPj////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AzJkz///////////////////////Cjyn/AAAAEQAAAAL///8A////AP///wD///8A////AP///wD///8AAcyZM/8zZswAAACaAAAAAAAAAAAAAAAAAAAAZgC+iyUA/f39AP39/QD+/v4A/v7+AP39/QBQg+kLAAAA+P////4E////AAD4kgAA/f0A9fYCAMTVKQD1DjIA/P/nAA87uQAhFAsAJiYXAAAAAAAAAAAAr3wWAAAAAB8AAADhAAAA9gT+/v4AAPT0APPp6QCitxQAIl1DAAkFAwAKAwAANw8AANrd7AC1kFEACPrTAPz8/AAGBgYAs4Aa1urq6gABAQELBP7+/gAA9fUA49fXABE6mQAaFwMA+foAAPn7AADL6gAADxsUAA9AmAA8MBcAAAAAAADngQDq+PgAroeNAAAAAB8E/v7+AP3x8QDn3t4ADScFABYAAAACBgAA8QYAAN/5AAD89gAA/QPxAAAAsQAAAAAA+d/fAN/n5wDq+A8AAADsCgL9/f0A6ODgABUWGAAA9vcAFgAAABEAAAAHAAAACAcAAPn8AAAS/NcAAPj4AAD4+AD39/cA387OAH+j7D4AAAD5Av7+/gDi4uIAIjBLABf/8gDp7/UA8QAAAPkAAAADAQAA4szdAA334AAA7+0AAPT0AODg4AAEBgYAAAAA+QAAAOgE/Pz8AAICAgAMLVMANvDWANnaygDpBDQA9fv7AALy6AAZ8OYA9t7NAAD49gAAHSEA3d3dANvl/AAAAAD9AAAA+AT7+/sAISEhAAD8/AAA68oAJwz1ACcA2AAACAAAAA0AAO4QEAC7vzcACM+3ACf+3QD69/cAeqL2PgAAAPkAAAD+BAUFBQDY2NgA1tZFAP39/QD+/v4A/f39AP39/QD9/f0A/v7+APsIMADICVQABNK7ADgsKgAAAMz5AAAA6AAAAPgERHfdCwAAAB8AAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADGAAAAxgCggI3MCPXUAAAAzP0AAAD4/////gEAAAACAAAACAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAYAAAA/QAAAOH////2Af///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAgAAAAgAAAAAAAAA+P////59OFeo8fymrgAAAABJRU5ErkJggg%3D%3D%27%3B%0ACtrlPanel%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAAIuuYjyvIgAAACBjSFJNAACHGwAAi/8AAP/YAAB91AAAgSAAAOmkAAAz8AAAJVC/P0EaAAAEG0lEQVR42mJkTDzG8P/ffwYpEU6Gzz/+8H//9Y+dh4s1+cOn3+zMbMwWf/8wWAAVMOi/nLtX8uet4L+MrAz/GBgYmIHY/ft3BoAAYgHSOYyMjCIfv/2x+Pnnv8WfH/+YPnz4zMsAVMbC+p9BQYCV4dNfNoYvf9j4vn37wvCXkZ3hF9BADyFhBtVv3xgAAoiF4e/fif+//Wb6+ukvAzvrPwYtUVYGSyM+Bl15HgYTLSkGRUkOhty5txkOXP//F+TSv/9+MrCxsjBICggw/H73jgEggFgYvn37HGXEx+9lJMpgqCrEoCTJw8DBycoAAh++vGP4y8TO8O8/IwMj0FaGf38Y2ISUGZgktBlYGR4x/P//nwEggFj+//jBkO2py2BlIAnW9Auo7uMvBoYfP38zvD2aycBr1MPAxsLO8PsvM8PPb58ZhByDGb4x8TAwPL0HNJiJASCAmFhYWRkevvoG1vz9NwPDN5Dm/wwMX57sZPjLrcnAwCfLwMXJzPDr19//X8XNGX5JWzP8/flVjOnLq5lC7G+XAwQQCwsLE8PHL7/BBvwG2v7zL9AVQAO+3V/E8E86juEvkP3/90+GbyzCzJ90wsRUuDhmGqgKO6v/4ufl/HiCASCAWJgYGRlefQBay/Cf4fsfRoZfjEDNTw4x/P5wiYHVyInh/hsGhhc//jEEhwU4OFmo3/vOxMN98Yo8w+p/ir8EX0uvBggAQQC+/wQBAAAA8fkCAPf25ADuzJEABC2AAPnkrgD/FUcA6ujpAMTU2gBKOz4ADgkHBcfU4wXNzbvV8efcyCAD8ZMlFRvSAgBBAL7/BAYFAwDz9vgA+AcnAP8IHAD0vkgAAAUPAPkplQCyqrAAEQDYAKTmJQDhz8HdGv3XbBUE9L8QAQT5BgIBAAP+/QACiAUc8n/+Mvz8DYw6pVyGf68OAWML6CUuBQYG23yGHwxfGMwefmK4/fj2dQbu5zsYhIFpjJmNAehZcLgBBBALIxMTw2dgIH79AQo8YGjrLWb4/fEWw+8/DAyaAowMh9/zMnAy/2L4w8TP+uLjK4a33xkZ+Pn/M8gKAh3K+I8BIIBY/gDN+gNMYT+AGn4AI+M3IzfDT35DsOninAwM8m9+Mxy5+Yrhz5+/zIzAhPPr1x+Gly+/MHz78p/h5x8hBoAAYvnz9x/DT6BrmNiAOoCGfAUmiRcf/jLcuPmU4eS5+wy3rt1g+Pfuyk8VtkefeNk+gxMPCAC9z/CekZkBIIBY/v/5wvL8LQfDtGW3GO49eMXwCpjCvjy7+Ov/99cf2P5/mKvO/eseA/v7E0wsbPc5OHmByfcfAzIACCAW9t9v3t6/+vzP0wub//D+f3pGkPnZaQHmP2t4eTjvMTKzfmZj4wAmbXagRiag7f+BNIp+BoAAAwDAMqTgcw5bNAAAAABJRU5ErkJggg%3D%3D%27%3B%0AMSNotepad%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjA4ZXKc4QAAAoJJREFUOE+lk/tL01EUwO0fy1ely6IUMoi0AoM0Sy1TMDMitZyvfLDNdM5HPle6RNt0mlvz0ebmYzoVN5vO4cQ5yxQFAz/NbxTo9Kcu3Hu4h3s/fM6BcwYI+q91CBBXdGDtjaG88LUQywoK/9yLJEKseaulRnzX/5Sg41tIiKsWaauX0mdxolUr6Btz0NpWh9Ls4ZNugHbbDpklMvKkTQEQAVD4YQmN+yeGzX00qzvUu9aodKwhc25TurhLtnWbuNb10wF5ygUqnD4UTg8Sxwa5Nhc5026eTnpIG18lYWSdBO3B6QCF2krutI838z7ypzdJNS+RZHJz3/idWyNeLvd7iFEfkKYwnFxCl95Mnm2FdPMGj81bxA25uKZfJla3wZXPm4R0exC93yGtdysAIvRAPWSm1rlEvP4H8UM+ogZcRPS5idKsc6HHQ7BymUj5Kum6A15KWo5YCIAeg5ku7xTXtV5itD7CuhcIVzm41LlChNLO2Xoboko7qV1bpFQNHLEQAB/9JUzsWUkaXOVih4tz7dOENU8gejeLqMFGsMyCqGCSpFoHyU32QIBKb8G6byR/fJmLTQ5C60Y5LzchqrYQKflKcNEXIrMNJBaP8ah1jVdVzf/KEAxUOgsLv6ZodM5xtWGe0LIBQkq0RBSPEF48TIjYRLTYRkqd3W+wyL2c0qOADp2ZyT0jet8Md1Quf8OMxCqnSO63kzVuJ2d2huhMKS8KyykqrQ5sYrfBb8AExt1hVOtzlLkHkXtHaVxxIJuZJ7trnhsJz0+fhXqNlc5lO3LTN3I7p3hQMcjNrBZuP6wkOb2EfLH0xM/CJB8eGc+kJGbIeJJTISge1zxpCv/mfgPvVs+ANDa5fgAAAABJRU5ErkJggg%3D%3D%27%3B%0ANotepadPP%3D%27data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAAAAAAAAAAAAEAAAAAAAD//P8A//zwAP/3/wD/9/AA8P//APD98ADw9/8A8PTwAPD34ADw5+AA7///AO/08ADg8P8A4PDwAO//7wDv8O8A4PTvAO/o/wDg5/AA7+3vAO/n4ADg6O8A4OjgAODi4ADg3+AA4NzfAODY0ADf7+8A3+DgANDg7wDP+P8AwPD/ANDg0ADf3+AA393fAN/Y0ADQ2tAA0NDfANDU0ADQ0M8A0M/QAN/HwADP3N8Az9DfAM/Q0ADP1M8AwNDPAM/M0ADAyNAAz87PAM/HzwDPxcAAwM/PAMDEwADAx78A0LfQAM+3wADAv8AAsMjQAL/HwACwyMAAoMDAAJ/A4ACQx98Av8C/ALDAsACfr8AAn6DAAI+YwAC/v78Av7e/ALC4sACwt78AsLCwAL+orwC/r6AAv6egAK+/vwCvv7AAr7ewAK+vrwCvr6AAoKigAKCkoACgn7AAn6i/AJCosACfop8AkKCfAJ+foACPh68An5yfAJCYkACQl5AAj5CQAICQnwCPj48AgIeAAH/P3wBf3/AAT8jgAEDI3wB/sN8Af7/AAG+3wABgt8AAYKiwAH+QkABfoK8AT6+/AECgvwBAkK8AQICgAECAnwAw2OAAMNDvADDI7wAg0O8AIMjvACDH4AAvwNAAEMDgAC+43wAvl68AcGiPAHB4cABwd3AAb2xvAEBPXwAAAAAAf5CfAH+PkABwgJAAf4SPAHCAgABfmL8AUIe/AE+HvwA/zPAAP8fwADDP/wAwwvAAP8jvAC/A8AAwvPAAL77wAC+18AAguPAAH6//ABCH0AAfiM8AEIfPAA+A0AAgh78AH4i/AB+PsAAQgL8Af2/wAG93wABgWN8AYF/AAHB/gABveIAAYHeAAEB4vwBAf7AAQHigAEBwrwBfeJ8AUE+/AE9PrwBfUI8AT1+PABB/0AAQf88AD3/QAA9/zwA/YJAAP2CPADBojwA/X48AL1yPAC9YgAAvV4AAIF+PACBcgAAQfL8AEHiwABB3sAAPfL8AD3ewAABwsAB/fX8AcHh/AHB1cABgcH8Ab29wAG9qbwBgaG8AYGdvAGBiYABQZ3AAX2dvAF9gYABAYH8AUFhgAF9bXwBAT1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AYGF/f35hW0H+/v7+/v7+/lAHAAcTIjVQW2BhfX1+XP5TABMMAwgOBQAHAQADBS3+UwAWBwoACRkVAAAAAwBP/lsHJCAZgEIYBwQTAwcAYP5TAAsFAitobB0DEAsHB13+WwcxLyYzanJ7EQULBDEx/lcAMS8tGj14dW8wKhBd/v5TADUhNSYlPnpzcE0bXf7+WwtSNSY0ODdmd3lrKkj+/lcHJiImJCYzOmlldXES/v5bByIXFxABAgYfYnNkZ/7+WwdFRk8uNSlKWVZuY208/lwXRzlFTkFLTAMoQj8eXzJdFhcUIyRBNVEm/v7+VEN8UyYmMzE1QVhX/v7+/v5EWgD///8AAf//AAH//wAB//8AAf//AAH//wAB//8AA///AAP//wAD//8AA///AAP//wAB//8AAP//ADj//wB8//8%3D%27%3B%0ATimenDate%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjA4ZXKc4QAAAqBJREFUOE+Fk2tIk1EAho9F2J8uFF0gol92g6j+WEFGTGrQBYYynGnrYllOwbIx2aJWUEiJoZiFIYSaoJFdSEFrXcwaUZFz4Vrq5mWX+lz25UQpop62SaOLowPn1+F5znvOeU8cIGKN7FcbIosJc3cK24cvQozPF9/erxDXM5PjokxYMNk8+HI9xe5cmkbrqQtcJK9DwdKGvUw55UNdawkhE1xMWNW2nKLegzR+rqM52MQxu5mVjcXEnStHnJrNsfKrEcmkgk1VPlbfSCacwuRI4aSzkNwOWHCtH1EqEEbB4kOpmEymf+OLomHmmxzMuHCGNXcWktSyhM2tXpbU/0CUeBFnQ4Kjgpm7M2ILpu9rR+R3Ma9Ex5zLK5hWqSIsFqfVCIMg/vAsFqnzSU9PR9hbS/l7Omr34yrdDucToWg9WWdXhWIrEAcsTM3IIyF7G2tTDBOCkeeVcD0NKhSgX8ZY8Q6C5XuQm0oYtbfyfegt2Zf2InYdQSgbiVdUosi6wDplDoWFhQh32x1s927x7FEb7a5hbN4RXIExPIHPBIY/IffZOFF1l+kba5inqGdD+iMSd5xDo9FM3MHN1qdYB0Z5EoLtLi+DVguyvZ2gz4Xs6kAe6KTmtoct+5+TpH3A2q1G1Gp1BI48Y1jQ0j3O6/4A3X2DSD1vkD3d+Ls7kboe43c85M07H2k5FSiVSnQ6XRSOCpq7RpAkiaDdyteAB39/D/6BHiRHC0FZYrCvl/x8I2azOdrAP5p494Ubr8/HR3sbX9/eJzj8gUG3E1mWsTo/UXC8InLjv2L/Xv1IE8PHkIYCkRRhyO+XsFieUVZ2hbTduWRmZk4KR6scFjidbqqrGygoMJKaqonsqNfrY4L/fCatVotKpcJgMPwX+v0IPwEurq5/p1hhrwAAAABJRU5ErkJggg%3D%3D%27%3B%0AAddRemove%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjA4ZXKc4QAAAs9JREFUOE+Vk91L02EUx+2q/yII6iJIxRoRRlHdiRBGF0KglFIkpRWKdKEpJlqEkQRR1txsbqY1dM40Naf5sqm/+ba20sxyc75szqHzNTf36fdb2Bh104EvPJznnA/PeXn2COZJov7DZEcP7IkIlwBPhTUemfxUmYPUDoNOVPsomKygrR9g8quHYBCMRiMGgwHRonYVJQGMY+M8GQrwsG8Hee8Wyg4fqhYP6oZ5uno9uN3g9QZJTk4mMTExEiCRJMj73nFyCt9ReE9PWVk7iso+6moERs0TbK24cTkdZGbeiEiWckNP+fLZxo/ZJUyjMywvuHC5PNhnXUw45miyzlPYaueWbpq0q7f/Deju/BAq47YJigQ/d3q3udYZIKlhk5TnNp41O3hrmKe8vIX8fPnfJTyo6+d+ywy53ZDaCte6RDUHKK224HYusuGDqUkYFpvbLPrz8hr/QEIlZNZYOP/Gh8YCLwY2UHVPUakR8LqWpECWl8EiQJMeXqlAoQiQnl4UgoQAjTod+q8b1FvWWddexv80np6qGnzr4PeLEavwzeBD+LhDpQL0Iqi0pIPs7Ozf85QAbrcX/bdV3k2nMKg5xnu1kaER+D4FP2xOKlRtmIUlBLFHg8I2avUQ8fHxYYDD6cFgX+X63AUO6/Yh1/ZjHoBBUWOmOeobTDinV1hb38K3toVa00VsbGwYYHcsMDC7wtmeOPYqo8iRK+hoAWUVtOlgtD3ApljKrl25kodMJgsDRkasfFpc5qB2P/vrDpFe8ZJqcWJKJbzVQoe4wdJGStbTYyUu7kS4B69f12C1fcG3A599DuyrP5F/9FJQYuRN7ab4B2BiAjyeoJhs49Spc8TExISnIDWyuLgYVbWGu3kFpKSkcvrMWY7KjpOQcImMjPvk5Dzm4sWbHDlykujo6Mg92P1ZaWlpJCUlhZ4madcvnXNzc8nKyorwS/e/AIz06Svr2XfUAAAAAElFTkSuQmCC%27%3B%0ACmdPrompt%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjA4ZXKc4QAAAQ1JREFUOE9j/P//PwNFAGQAJZiB17Xrv17m9v+G2bv/G2TtwonN8vf+N83b+9+8YN9/6+wN/yU8W4H2Al0vXHbzv3jPh//iXW9xYrHOt/+jN//677/29//4zT/+T+tb/N8yZuH/4uLi/wwupQv+G0YV/DeOLcOLLePL/lsAMYh2jMv5rxXQAjHAwSsOFIokYxHNQIgBtp7xYM0eHh4gP4EBiI1sKMSzqJYIa0ANsHKNBkvCNMIMgokhyyEbgtUAXF5BNhSmBm4AzAv4XIDNFRgG4AsD5DDC6QJSYwLuAkfvRJKjEGSZqGYQJBqN/ev/K5iG/le2iCIaq1hE/Je3K4EYAIpiEINcTFFOBFkOAK4+5J3cVDxkAAAAAElFTkSuQmCC%27%3B%0AOnScrKeyb%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjA4ZXKc4QAAAJVJREFUOE9j/P//PwNFAGQAJRismSHz/H9SMLKFDAxtb/6Tg0tLS4HmgLwPNCD62H+SsELPhf8YBvz9+/f/zDNf///79w+FBlkDEgfJb7gPsQirAaS4AqcLGs78///r19//6DTIBTBx2rkAZDLIZpA/Qf4FARANshnkAmQvUj8MQCaSiuHRCEoMIA45GJyQKMkHg8MAACArvHlXxbSqAAAAAElFTkSuQmCC%27%3B%0AWinTskMngr%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjA4ZXKc4QAAAJ5JREFUOE+VU9EOgCAIxPXQY7/sp/lnxpFMTEpkYzST4+AwEVFir+yUc5YYMb6LvG5ILqUsvbK1Qr0YDqKGu58AYNDacSP+xwGqzMX40+IaAImabCN/xwCGqgaMogwEAHLOHmKwkvI1g0MWQQ+jEcO1Uv5K58k6sNhZIl02F8Dr3as+DVIZyBY2rT0w+1YMg/0BmuSTGV76HHcHiWSxG7luAcTplZKTAAAAAElFTkSuQmCC%27%3B%0ASystProps%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjA4ZXKc4QAAAiRJREFUOE99kj9o21AQxl82jx67Crpo9FZDlxoyWNDBKhki8BCMBmMyBOGhuF2MmyFoKsKD0VRQh4A8GORNWQLyUFAGgzy4KEOGN3Tw0MGFDl/vnSu5TkgFH/p397vv7t0RAPHc9en7B/4pf2kckizeidSuHh3EK8BjjdYDKPnSgzv34axMGDcaxGWE2mRD4fscTo7mGQ40ixBeJwinKYIvSQmo0rPo5wQyS0gJSBYUfJMiWuasWG753b3bwFtk5CBDZexDXNUghgJG12NICXCXW7IMhOQw/g1E5MJ/70J9d6YS+gw7wGWFXJDsBqy2tetF2VeBo3swxP9BOu3AW20wWAPWZ7I9ocCPLjkQEBekJwCy6izBCQwiwGAFdO6A+jDjASrrnNytQLctGE1j78BfkNVxCKdPU1d3krUAzNu/gH4Kcd6BONOh2QZqzR4ax+b+ODxqozEHA9yXNRoaWKp/NTBxEkO8jVBpuqjbDvQTD2brH4CagzYFy7nOMJpTS/2ErYr2AOI4hHgVQGsFqJ8GXL0cYjnIb3R0MwlvnKF3nqBDUpWqb0K8IIDeitFo07fXFnrd3uEx5g8bJLc58rXkpRoNI3IQ8yIZZ8kukWBF5WIby2Pc/txCSUpJoIw30b2KCJBSNbdMLCo/AeT3OeSDhLpHc7XCIbUSw58k3OvjxAOAenEuHEoIEHyNubp6Lio/l1yuckFTEBWsjkctyf8qFzl/ABIpmnDaTkSAAAAAAElFTkSuQmCC%27%3B%0ACalculator%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjA4ZXKc4QAAAmhJREFUOE91k99PklEYx18vyrXVRbeuu278T7zK1kWtrVbO8qLwoiybM12aLEdz5mqaqUPE3JJUwAQhfwBq4i/wxwSFyECSgZZaJpaSnw5stlq+Z3v3PO+z8/2e7/d5zkkDpIM15VvjaPoRaXPrpxTf/SXF99OkldiGdOp0hnT8xDHpZEa65O1blK5kZab9ASUJkl/PgF8ECO7Bkoifkvk+hEX0/4De2S1GgjDqjye3pTCpww+SDvM8YYEaEYgyTZCrj0Ncrlwmu2SJ86WLnFHGOVsaoK3XdziBxe4nHIFO1zbZynUu1MGl55DXDPltUNAu4otNjIMppf8rsNp9+IXErsk4ReooNTZQdSd4oA1RrvmAShej0fadoemonIIFZgS5/SM0277yrCtEi2019e9cFfXpeUbcXszjXw4nMA94GJ8XzVoAs3uTFmsAy1wCozNAo2OHmO4aa9qiVE22iY4peCtUNOu9uNZBWTuKeU5Y6dhg9mYm1sIs3CkHMlOwjkF/ABRl/SgeTmAUii4qXmL0QJ3pPZpZmPJtyxMYHQlMwoLOEUHnDKOzbxHahYaeEAZnnPo3EQYnYvIEBtse3eIUtcGPTTTvVoUFVesala1Bbj8ao6h2ieGZz/IEr6y7WEUP8pVDXC8epm8Zcu5o6F2E9qFltLYYAxNr8gRa0w76GehwRDG6olRrvQgHKJvm0JhWKW+O4HDJjDF5lZv031IWnrZ5UA9CRYOHnHt91BgS3K1eILfMi2NyRV6BWty8fvGSCp+4KajyU9W5R16JhRvFr/8BHTrGZPFcbj0Fqnco7utlAX+Dk/lvcXcJCTRwbTMAAAAASUVORK5CYII%3D%27%3B%0ANetConnect%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjA4ZXKc4QAAAtxJREFUOE91k2tI01EYh8/SDxVaGpQVVAYV+CEQchRppandEMEP2WXa1Uq7MUShIk2taGWIdr86M0vn0ka1NishHTMj3RKMxtBIa00zoxxUhPH0/09mSnXghXP58Zzf+573KADhG87v3+j80Sxs/QOi5cNYERroFCF+iSL450SxKyJYMSwcOZEBclS6zZR0H+D2p7NoezTkOpJJagxj2vVjBBZ+5NKLz5JsSDsyvIsiZyl77Mu46Mqh/ruZewO1FHcdZb11PlPLNYh8N4qCZHKrn/wF8QLCayLY/HwBxzu2UtpzhcuufCo+NrHB+ppJ2gYUp7MRBQL/LBUWi2UURKj0bgJOGVj+aDZbJMheezTqtvVkt38gygT+F1skiwKRI1DsCyJibfZoQNgJB2MO2gmtnEnE/eksNc9iibmZ+QaYd+0ra27ZyHxgQK2rZsq+MOYlZYxyIeYcsiEy7IzJfcC48ykElYUwvlTJjOI+7tp60bX2Y+gc5NZLD1ctXagOXUKr1Q67EMo8CbCuHrGrFZHpkHLdjygULC5OJ++2g6qWT5idA7R+AWsf1L37xdHz+j+AvLpeRLwekWRCqBoQ22sQBwQxmiwvoOSRi6o2D/cdHkpM7ym4001S6n70+iGIkAHTUk0oosoRcdWIVbWMSw/GLzkFZcoNih52U946QL6uE31LH82ub+zIPDJcB+8zypAZqfWExOqYvOIyczdmERB1gwmRpShVRoqMbvL1XewuuInWbONZzyB36p4POfB1lQxZuLWM8J3NxO18TKJUk8gtTSiTDShX7iE2fjXR0dFoNBqqrG+50uDGZJLSHtmWMkQWhK/aRnjcJhbFJJKwNo1N6dlUGF/wtL0fa6eHe85BTta0k5CQ8Hdv+4B11lfUtn3B+AZ0dg+VNimk/3DG2EHeGZ3XUVpa2v8BZZZezjV6SD98wWvdF/KtarXa63RUDf7102SxL+9/nct7vwFQw5ZrKBhJFQAAAABJRU5ErkJggg%3D%3D%27%3B%0APowOptions%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjA4ZXKc4QAAAetJREFUOE+lk99rklEYx9e/0VU3QfdB/0JMyEaoF17JZNlg8cqsi8naClSaiBk2jOY71BbOC3/UunBBGkHEgkZu5KiGroiRWxJa6rrp03sOOHS+FNGBL5zDc57PeZ7vwzkGDP3XEoBexdQIR3X0Tu9ZN7m2W+Pzq2eUc3HUxA6j9qtaTv9D3fMAoLWdo7G/xutHyyRv3OH+1GPsdh+BQEAXIgFLiTjpdEaW3infhY9uWr6TPDkxROSUmUvjQSZdk/qARTVK6FYQj8cjAV+rT+GTn4b/NPkzx4nZgsQSL5jzRw/V54HT6SQyP4/b7ZaA2n6dTusbb9deknnwnMzDLyjKLAaDgYmJywMQ2YKAdFWv12m3D3izWSGd3SSb29U8mNLkIJFIkUplJURRFNlSn4kCsre3R6fTplR6Ty5XIhwWKrCxUWVrq0E+v8PY2Aw226g+oNlsaoFflMtVVlbe4fUWKRYrVCo/WV//QaHQYnX1Ow7H9UGAKEl4cWjYXFxzP43PG+d2KEkoVCKqftBUZXo6Kdvua6HrrghYrVZMJjMXRi7KsbqUa8zMbsv9orqkVRDDYrHoA3rHpC5EZNJy2MTw8Ljc37vp4pzxCmaz+e8AARPJQmKUC76zWEbOYzSa9D3408fRi+l68C+Q35MrucWVT9wHAAAAAElFTkSuQmCC%27%3B%0AMSPaint%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjA4ZXKc4QAAAZZJREFUOE+NkjFowkAUhnVzdMxYoYubdhM6uTWbgQ7tJodDkQwiTuIimUJwEHEKHYRkKMShoFtcCnYoOGY8x4zt1m5/711MjEZbDw6O4973vvfe5QHkaG21G/xcfclzecTz8nDJIgBt3qjCuysi6JTAWkxcRffpbZh+5j55sNAZ7EoR9m11D/jIwerVkiACsJZzADnI0O9N0NYtqPfd6FEKQMHWLABr2OcBk7kPzQwSwKfLEgMC+FM7U96BAQEexxxqx5NZ/FFhX0JTkeV5D/uS5ADSTXLcANpgA2MsNIW+NyrDWoUIXQuo5CSAdjomY1A3F5HmDtCdcYS6hvBaAHoWqE9nAcbrGvWXMpRmAYEbTYB6QiMmCDX4X4D97oDNGPiyhoVQ91ZrcFPF91ycXR/d4R8GpEYW6lQTHS9hLUCBCISuINxupMHx58r+th3AGRbRf27L7KRPEzrOnpmCNHA30sB4UqQBBiXZPAq+CEAQ6oFm1iOA0D9Ve1xKpgRpsTRAvfDfuPx9VPup7CdLiMmx8jn1+N0vr+ulS/dQUwwAAAAASUVORK5CYII%3D%27%3B%0AOpera%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAQVSURBVHjaYv7//z9DvprmEyYGBgaGKxuuywAAAAD//2K8HZ2k9+Pe/UuMK/ks/tvyCTAAAAAA//8AIgDd/wP///8AYvID/0Ll66SRYWXuAf///wDvJ2T/4/sJ6R768RcAAAD//wBEALv/AdVESwAVVVLI+eXmxu64u3IEEiww/8KPt6Xa4NRxTzYl6gNr2gCABmZQLwDm/wgZ3uVoBAkBF7H/lbz/RywnAOvm8AEAAAD//wCEAHv/Af///wDcWmJ6Ejk1hfHw9QDy09MAH0E8APv4+QDsuLsBAgAAAAAK9gWFzZvAAOjm9AEFOUABrqK8pQHE1wAE9AXfAgAAAAD5wuAAD93qABtMRAUF4v4ADeoIMPvA4wD+2POzAP///wAAAAAPXRAppuIza/nwOXP/tyRU4wUBAj0AAAACAAgB9/4B1ERLAAH+/gAPPTuNCSYlV/308+XwwcRn99vd0C7KwgAE/u/yABlfWv8FCwkA3bO5ABIhHRsTNjXP8AgJeQAAAIgCBAsRff/d5ACzebQA483TJbeTpaTw1d8ACQwQhwAAAAACBP0GXQDk7wACEgOhEzg/3E2mnF3PvcwA/+DtAAAAAAAE+9bmCvzh9QD9JBbiBBwdAOGjvwAH8gMA+8TZAAAAAAACAgALuQH4BQDx5ehPEfUGABlDNAYfBQ4AAAAKAAAAAAAB1BBNABsNEP/7DQkA3vH06REOFxcV+/EA+u7zpxftqloAAAAAAgcBAzu3JVTi8Dpz/+IyavlbDyioAAAAEf///wAs0DtMU1EAgOH/cO5tby+3LbWlQQbBGAUtgaAJupjgK9Goi5OLi4OjI4sxOhji6KATu0YT44iNMcHF+IxGLUIEfPCw1EJtbx/AueceBxz+9Rt+YYyhcOochBq3v+9GYnjouuW6UtoWwrIxGEwQoLcUQaOpq2/e3moWZm6KaISBqTzCGMP0odF9yZOj76Mxx5MJj1I9xsvbE9CaUS6h8aUX2X/+NAdGcgQbW2zW67W1p88PDhVezVsAdmf3vbZi1TOWz9zSD768W14YvHphuJSfrEVTCXoPH0lOTTz5qMp+78DeHtqUSri79twFzlgA6sP3QdXVRGZSFBfKtPdlH2gRqXUcO0trsUzz299qR7rzUfHX6ljOjqPXKgTF1REAC0AoZ1kv+VmzoghrJerd8U63K0vQ2MDzdiBdB39lM5OYmSX4/JvQaIRx5gDaACJ41whjKC0ZSe6m/dPilek7j8d1ftZ1FjdijWfz41k7erk/lUVv2YShgzTuGLA9sVd6HI/sTF9K5x4eTfWcEBGJjkq0EBgBMgyxGopQG15Ufk7eX/968bX6UysElW1ACAEQ/58UEE9ZTjpjuwlArKlWbT1orRvwAQ1UAd8Yw78BAM0usKyCrCPaAAAAAElFTkSuQmCC%27%3B%0A%0Avar%20directoryService%20%3D%20Components.classes%5B%27@mozilla.org/file/directory_service%3B1%27%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIProperties%29%3B%0Avar%20profileFolder%20%3D%20directoryService.get%28%27ProfD%27%2C%20Components.interfaces.nsIFile%29%3B%0Avar%20profilePath%20%3D%20profileFolder.QueryInterface%28Components.interfaces.nsILocalFile%29.path%3B%0A%20%20%20%20profilePath%20%3D%20profilePath.replace%28/%5C%5C/g%2C%27/%27%29%3B%0A%20%20%20%20CurrentPage%20%3D%20getBrowser%20%28%29.%20contentDocument.%20location.%20href%3B%0A%0A//%20------%20Menu%20Items%20------%0Aapps.push%28%5B%27Run%20in%20IE%27%2C%20%20%20IExplorer%2C%20%27C%3A/Program%20Files/Internet%20Explorer/IEXPLORE.EXE%27%2C%20CurrentPage%5D%29%3B%0Aapps.push%28%5B%27Run%20in%20Google%20Chrome%27%2C%20%20%20%20%20%20%20%20Gchrome%2C%20%20%27C%3A/Documents%20and%20Settings/Admin/Local%20Settings/Application%20Data/Google/Chrome/Application/chrome.exe%27%2C%20CurrentPage%5D%29%3B%0Aapps.push%28%5B%27Run%20in%20Opera%27%2C%20Opera%2C%20%27d%3A/Programs/Opera9/OperaAC.exe%27%2C%20CurrentPage%5D%29%3B%0Aapps.push%28%27separator%27%29%3B%0A%0Aapps.push%28%5B%27Show%20Desktop%27%2C%20%20%20%20%20%20%20%20ShowDesk%2C%20%20%27C%3A/Documents%20and%20Settings/%27+login+%27/Application%20Data/Microsoft/Internet%20Explorer/Quick%20Launch/Show%20Desktop.scf%27%5D%29%3B%0Aapps.push%28%5B%27Open%20My%20Computer%27%2C%20%20%20%20Computers%2C%20%27C%3A/WINDOWS/explorer.exe%27%2C%20%27%3A%3A%7B20D04FE0-3AEA-1069-A2D8-08002B30309D%7D%27%5D%29%3B%0Aapps.push%28%5B%27Open%20Drive%20C%3A%27%2C%20%20%20%20%20%20%20WExplorer%2C%20%27C%3A/WINDOWS/explorer.exe%27%2C%20%27C%3A/%27%5D%29%3B%0Aapps.push%28%5B%27Open%20Drive%20D%3A%27%2C%20%20%20%20%20%20%20WExplorer%2C%20%27C%3A/WINDOWS/explorer.exe%27%2C%20%27D%3A/%27%5D%29%3B%0Aapps.push%28%5B%27Open%20Profile%20Folder%27%2C%20WExplorer%2C%20%27C%3A/WINDOWS/explorer.exe%27%2C%20profilePath%5D%29%3B%0Aapps.push%28%27separator%27%29%3B%0A%0Aapps.push%28%5B%27Notepad%27%2C%20%20%20%20%20%20%20%20%20%20%20%20%20MSNotepad%2C%20%27C%3A/WINDOWS/notepad.exe%27%5D%29%3B%0Aapps.push%28%5B%27Notepad++%27%2C%20%20%20%20%20%20%20%20%20%20%20%20%20NotepadPP%2C%20%27F%3A/Run/Textutils/notepad++/notepad++.exe%27%5D%29%3B%0Aapps.push%28%27separator%27%29%3B%0A%0Aapps.push%28%5B%27Control%20Panel%27%2C%20%20%20%20%20%20%20CtrlPanel%2C%20%27C%3A/WINDOWS/system32/control.exe%27%5D%29%3B%0Aapps.push%28%5B%27Add/Remove%20Programs%27%2C%20AddRemove%2C%20%27C%3A/WINDOWS/system32/control.exe%27%2C%20%27C%3A/WINDOWS/system32/Appwiz.cpl%27%5D%29%3B%0Aapps.push%28%27separator%27%29%3B%0A%0Aapps.push%28%5B%27On-Screen%20Keyboard%27%2C%20%20OnScrKeyb%2C%20%27C%3A/WINDOWS/system32/osk.exe%27%5D%29%3B%0Aapps.push%28%5B%27Task%20Manager%27%2C%20%20%20%20%20%20%20%20WinTskMngr%2C%27C%3A/WINDOWS/system32/taskmgr.exe%27%5D%29%3B%0Aapps.push%28%5B%27Calculator%27%2C%20%20%20%20%20%20%20%20%20%20Calculator%2C%27C%3A/WINDOWS/system32/calc.exe%27%5D%29%3B%0Aapps.push%28%5B%27Paint%27%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20MSPaint%2C%20%20%20%27C%3A/WINDOWS/system32/mspaint.exe%27%5D%29%0Aapps.push%28%5B%27Command%20Prompt%27%2C%20%20%20%20%20%20CmdPrompt%2C%20%27C%3A/WINDOWS/system32/cmd.exe%27%5D%29%3B%0A//%20------------------------%0A%0A%0Avar%20nMItem%20%3D%20function%28label%2Cimg%2Cpath%2Cargs%2Cobj%29%20%7B%0A%20%20var%20m%20%3D%20document.createElement%28%27menuitem%27%29%3B%0A%20%20m.setAttribute%28%27path%27%2Cpath%29%3B%0A%20%20m.setAttribute%28%27label%27%2Clabel%29%3B%0A%20%20m.f%20%3D%20obj.startProcess.bind%28obj%29%3B%0A%20%20m.setAttribute%28%27oncommand%27%2C%27event.stopPropagation%28%29%3Bthis.f%28%22%27+path+%27%22%2C%22%27+args+%27%22%2Cthis%29%27%29%3B%0A%20%20m.setAttribute%28%27class%27%2C%27menuitem-iconic%27%29%3B%0A%20%20if%20%28%21img%29%20img%20%3D%20Default%3B%0A%20%20m.setAttribute%28%27image%27%2Cimg%29%3B%0A%20%20m.tooltipText%20%3D%20label%3B%0A%20%20return%20m%3B%0A%7D%0A%0Athis.startProcess%20%3D%20function%28path%2Cargs%2Cmi%29%20%7B%0A%20%20this.currentCommand%3Dmi%3B%0A%20%20this.image%3Dmi.getAttribute%28%22image%22%29%3B%0A%20%20var%20file%20%3D%20Components.classes%5B%27@mozilla.org/file/local%3B1%27%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsILocalFile%29%3B%0A%20%20var%20process%20%3D%20Components.classes%5B%27@mozilla.org/process/util%3B1%27%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsIProcess%29%3B%0A%20%20file.initWithPath%28path.replace%28/%5C//g%2C%27%5C%5C%5C%5C%27%29%29%3B%0A%20%20args%20%3D%20args.replace%28/%5C//g%2C%27%5C%5C%27%29%3B%0A%20%20if%20%28args%3D%3D%27%27%29%20%7B%20file.launch%28%29%3B%20return%3B%20%7D%20%0A%20%20process.init%28file%29%3B%0A%20%20process.run%28false%2C%5Bargs%5D%2C1%29%3B%20%0A%7D%0A%0Avar%20mP%20%3D%20document.createElement%28%27menupopup%27%29%3B%0Afor%20%28var%20i%3D0%3B%20i%3Capps.length%3B%20i++%29%20%7B%0A%20%20if%20%28apps%5Bi%5D%20%3D%3D%20%27separator%27%29%20%7B%0A%20%20%20%20mP.appendChild%28document.createElement%28%27menuseparator%27%29%29%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20if%20%28%21apps%5Bi%5D%20%5B3%5D%29%20apps%5Bi%5D%20%5B3%5D%3D%27%27%3B%0A%20%20%20%20mP.appendChild%28nMItem%28apps%5Bi%5D%20%5B0%5D%2C%20apps%5Bi%5D%20%5B1%5D%2C%20apps%5Bi%5D%20%5B2%5D%2C%20apps%5Bi%5D%20%5B3%5D%2C%20this%29%29%3B%0A%20%20%7D%0A%7D%0A%0Athis.appendChild%28mP%29%3B%0Athis.type%20%3D%20%22menu-button%22%3B%0A//this.orient%20%3D%20%22horizontal%22%3B%0Athis.image%3DmP.firstChild.getAttribute%20%28%22image%22%29%3B%0Athis.currentCommand%3DmP.firstChild%3B%0A%0AmP.%20firstChild.%20setAttribute%20%28%22oncommand%22%2C%20%27event.stopPropagation%28%29%3Bthis.f%28this.getAttribute%28%22path%22%29%2CgetBrowser%28%29.contentDocument.location.href%2Cthis%29%3B%27%29%3B%0AmP.%20firstChild.%20nextSibling.%20setAttribute%20%28%22oncommand%22%2C%20%27event.stopPropagation%28%29%3Bthis.f%28this.getAttribute%28%22path%22%29%2CgetBrowser%28%29.contentDocument.location.href%2Cthis%29%3B%27%29%3B%5D%5D%3E%3C/initcode%3E%0D%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0Athis.currentCommand.doCommand%28%29%0A%0A%5D%5D%3E%3C/code%3E%0D%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0D%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0D%0A%20%20%3Cattributes/%3E%0D%0A%3C/custombutton%3E

Отредактировано Jarichek (12-09-2009 11:28:46)

Отсутствует

 

№118412-09-2009 22:00:20

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

FFUser665

FFUser665 пишет

кнопка запуска внешнего приложения срабатывает только один раз

Это случается потому, что nsIProcess вызывается как сервис:

Выделить код

Код:

var process = Components.classes['@mozilla.org/process/util;1']
    .getService(Components.interfaces.nsIProcess);

раньше это работало, теперь надо создавать его как экземпляр (getService -> createInstance):

Выделить код

Код:

var process = Components.classes['@mozilla.org/process/util;1']
    .createInstance(Components.interfaces.nsIProcess);

Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№118513-09-2009 23:22:32

Jarichek
Member I
 
Группа: Members
Откуда: Минск
Зарегистрирован: 09-04-2009
Сообщений: 306
UA: Firefox 3.5

Re: Custom Buttons

Возникла одна трудность, которую никак не получается решить. Имеется кнопка по открытию дополнений в боковой панели:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0D%0A%20%20%3Cname%3E%u0414%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u044F%3C/name%3E%0D%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%5D%5D%3E%3C/image%3E%0D%0A%20%20%3Cmode%3E0%3C/mode%3E%0D%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.url2xul%3D%20%27chrome%3A//mozapps/content/extensions/extensions.xul%27%3B%0Athis.onClick%3D%20function%28e%29%0A%7B%0A%09switch%20%28e.button%29%0A%09%7B%0A%09%09case%200%3A%20%0A%09%09%09openWebPanel%28this.tooltipText%2C%20this.url2xul%29%3B%20%0A%09%09%09break%3B%0A%09%09case%201%3A%20%0A%09%09%7B%0A%09%09%09var%20t%3D%20gBrowser.mTabs%3B%0A%09%09%09var%20current%3D%20content.document.location.href%3B%0A%09%09%09var%20i%3D%20t.length%3B%0A%09%09%09if%20%28current%3D%3Dthis.url2xul%29%20gBrowser.removeCurrentTab%28%29%3B%20%0A%09%09%09else%20while%20%28true%29%0A%09%09%09%7B%0A%09%09%09%09if%20%28--i%3C0%29%20%0A%09%09%09%09%7B%0A%09%09%09%09%09if%20%28current%3D%3D%27about%3Ablank%27%29%20//%20replace%20blank%20tab%0A%09%09%09%09%09%09loadURI%28this.url2xul%29%3B%0A%09%09%09%09%09else%20//%20add%20new%20tab%20%0A%09%09%09%09%09%09gBrowser.selectedTab%3D%20gBrowser.addTab%28this.url2xul%29%3B%20%0A%09%09%09%09%09break%3B%0A%09%09%09%09%7D%3B%0A%09%09%09%09if%20%28t%5Bi%5D.linkedBrowser.currentURI.spec%3D%3Dthis.url2xul%29%20//%20popup%20loaded%0A%09%09%09%09%7B%0A%09%09%09%09%09gBrowser.selectedTab%3D%20gBrowser.tabContainer.childNodes%5Bi%5D%3B%20%0A%09%09%09%09%09break%3B%0A%09%09%09%09%7D%3B%0A%09%09%09%7D%3B%0A%09%09%7D%3B%20break%3B%0A%09%7D%3B%0A%7D%3B%0Athis.setAttribute%28%27onclick%27%2C%27this.onClick%28event%29%3B%27%29%3B%0A%0A%0A%0A%0Aconst%20Cb%20%3D%20custombuttons%3B%0Aconst%20EXTENSION%20%3D%20Ci.nsIUpdateItem.TYPE_EXTENSION%3B%0A%0Afunction%20prop%28%20aElement%2C%20aString%20%29%20%7B%0A%20%20var%20emRDF%20%3D%20%22http%3A//www.mozilla.org/2004/em-rdf%23%22%3B%0A%20%20var%20arc%20%3D%20RDFService.GetResource%28emRDF+%20aString%29%3B%0A%20%20var%20target%20%3D%20extensionDS.GetTarget%28aElement%2C%20arc%2C%20true%29%3B%0A%20%20if%28target%20instanceof%20Ci.nsIRDFLiteral%29%20return%20target.Value%3B%0A%20%20if%28target%20instanceof%20Ci.nsIRDFInt%29%20return%20target.Value%3B%0A%20%20return%20null%3B%0A%7D%0A%0A%0Avar%20cloneCBcontext%20%3D%20%7B%0A%20%20cloneItems%3A%20function%28aNode%2C%20aID%2C%20aSeparate%29%20%7B%0A%20%20%20%20var%20menupopup%20%3D%20document.getElementById%28aID%29.cloneNode%28true%29%3B%0A%20%20%20%20var%20menuitems%20%3D%20menupopup.childNodes.length%3B%0A%20%20%20%20for%28var%20i%20%3D%200%3B%20i%20%3C%20menuitems%3B%20i++%29%0A%20%20%20%20%20%20aNode.appendChild%28menupopup.firstChild%29%3B%0A%20%20%20%20if%28aSeparate%29%0A%20%20%20%20%20%20aNode.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%0A%20%20%7D%2C%0A%20%20makeMenu%3A%20function%28aNode%29%20%7B%0A%20%20%20%20var%20m%20%3D%20aNode.appendChild%28document.createElement%28%22menu%22%29%29%3B%0A%20%20%20%20m.setAttribute%28%22label%22%2C%20%22Custom%20Button%22%29%3B%0A%20%20%20%20m.setAttribute%28%22oncommand%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%20%20%20%20var%20mp%20%3D%20m.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%20%20%20%20cloneCBcontext.cloneItems%28mp%2C%20%22custombuttons-contextpopup%22%29%3B%0A%20%20%20%20aNode.insertBefore%28document.createElement%28%22menuseparator%22%29%2C%20m%29%3B%0A%20%20%7D%0A%7D%0A%0A%0A%0A%0Aconst%20popupID%20%3D%20%22cbContext-extensionsButton%22%3B%0A%0Avar%20test%20%3D%20document.getElementById%28popupID%29%3B%0Aif%28test%29%20test.parentNode.removeChild%28test%29%3B%0A%0Avar%20main%20%3D%20document.getElementById%28%22mainPopupSet%22%29%3B%0Avar%20cPopup%20%3D%20main.appendChild%28document.createElement%28%22popup%22%29%29%3B%0AcPopup.id%20%3D%20popupID%3B%0AcPopup.setAttribute%28%22oncommand%22%2C%0A%20%20%22event.stopPropagation%28%29%3B%20document.popupNode.openPrefs%28event%29%3B%22%29%0A%0A%0A%0Avar%20RDFService%20%20%3D%20Cc%5B%22@mozilla.org/rdf/rdf-service%3B1%22%5D.getService%28Ci.nsIRDFService%29%3B%0Avar%20Container%20%20%20%3D%20Cc%5B%22@mozilla.org/rdf/container%3B1%22%5D.getService%28Ci.nsIRDFContainer%29%3B%0Avar%20extensionDS%20%3D%20Cc%5B%22@mozilla.org/extensions/manager%3B1%22%5D.getService%28Ci.nsIExtensionManager%29.datasource%3B%0A%0Avar%20root%3B%0Atry%20%7B%0A%20%20root%20%3D%20RDFService.GetResource%28%22urn%3Amozilla%3Aitem%3Aroot%22%29%3B%0A%7D%20catch%28err%29%20%7B%0A%20%20root%20%3D%20RDFService.GetResource%28%22urn%3Amozilla%3Aextension%3Aroot%22%29%3B%0A%7D%0A%0AContainer.Init%28extensionDS%2Croot%29%3B%0A%0Avar%20elements%20%3D%20Container.GetElements%28%29%3B%0Avar%20extensionArray%20%3D%20%5B%5D%3B%0Avar%20i%20%3D%20-1%3B%0Awhile%28elements.hasMoreElements%28%29%29%20%7B%0A%20%20i++%3B%0A%20%20var%20element%3Delements.getNext%28%29%3B%0A%20%20element.QueryInterface%28Components.interfaces.nsIRDFResource%29%3B%0A%20%20var%20prop_OptionsURL%20%3D%20prop%28element%2C%20%22optionsURL%22%29%3B%0A%20%20if%28prop%28element%2C%20%22type%22%29%20%3D%3D%20EXTENSION%20%26%26%20%20prop_OptionsURL%29%20%7B%0A%20%20%20%20var%20prop_name%20%3D%20prop%28element%2C%20%22name%22%29%3B%0A%20%20%20%20extensionArray%5Bi%5D%20%3D%20%5B%5D%3B%0A%20%20%20%20extensionArray%5Bi%5D%20%5B0%5D%20%3D%20prop_name.charAt%280%29.toUpperCase%28%29%20+%20prop_name.substr%281%29%3B%0A%20%20%20%20extensionArray%5Bi%5D%20%5B1%5D%20%3D%20prop_OptionsURL%3B%0A%20%20%20%20extensionArray%5Bi%5D%20%5B2%5D%20%3D%20prop%28element%2C%20%22userDisabled%22%29%3B%0A%20%20%20%20extensionArray%5Bi%5D%20%5B3%5D%20%3D%20prop%28element%2C%20%22version%22%29%3B%0A%20%20%20%20extensionArray%5Bi%5D%20%5B4%5D%20%3D%20prop%28element%2C%20%22iconURL%22%29%3B%0A%20%20%20%20if%28%21extensionArray%5Bi%5D%20%5B4%5D%29%0A%20%20%20%20%20%20extensionArray%5Bi%5D%20%5B4%5D%20%3D%20%22chrome%3A//mozapps/skin/xpinstall/xpinstallItemGeneric.png%22%3B%0A%20%20%7D%0A%7D%0A%0AextensionArray.sort%28%29%3B%0A%0Avar%20features%20%3D%20%22chrome%2C%20dialog%20%3D%200%2C%20resizable%2C%20titlebar%2C%20toolbar%2C%20centerscreen%22%3B%0A%0Avar%20extCommand%20%3D%20%22window.openDialog%28%27ZZZ%27%2C%20%27%27%2C%20%27%22%20+%20features%20+%20%22%27%29%3B%22%3B%0A%0Afor%28var%20i%20%3D%200%3B%20i%20%3C%20extensionArray.length%3B%20i++%29%20%7B%0A%20%20var%20extArray%20%3D%20extensionArray%5Bi%5D%3B%0A%20%20try%20%7B%0A%20%20%20%20var%20mItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20mItem.setAttribute%28%22label%22%2C%20extArray%5B0%5D%20+%20%22%20%22%20+%20extArray%5B3%5D%29%3B%0A%20%20%20%20if%28extArray%5B4%5D%29%20%7B%0A%20%20%20%20%20%20mItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%20bookmark-item%22%29%3B%0A%20%20%20%20%20%20mItem.setAttribute%28%22image%22%2C%20extArray%5B4%5D%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%28extArray%5B1%5D%29%0A%20%20%20%20%20%20mItem.setAttribute%28%22oncommand%22%2C%20extCommand.replace%28%22ZZZ%22%2C%20extArray%5B1%5D%29%29%3B%0A%20%20%20%20if%28extArray%5B2%5D%29%20mItem.setAttribute%28%22disabled%22%2C%20true%29%3B%0A%20%20%20%20cPopup.appendChild%28mItem%29%3B%0A%20%20%7D%20catch%28e%29%20%7B%0A%20%20%7D%0A%7D%0A%0AcloneCBcontext.makeMenu%28cPopup%29%3B%0Athis.setAttribute%28%22context%22%2C%20popupID%29%3B%0A%0Aif%28typeof%20Local_Install%20%21%3D%20%22object%22%29%20return%3B%0A%0Avar%20test%20%3D%20document.getElementById%28%22cbContext-extensions%22%29%3B%0Aif%28test%29%20test.parentNode.removeChild%28test%29%3B%0A%0Avar%20cbPopup%20%3D%20document.getElementById%28%22custombuttons-contextpopup-subCall%22%29.cloneNode%28true%29%3B%20//%20Cb%20context%0A%0A//%20var%20subPopup%20%3D%20document.createElement%28%22menupopup%22%29%3B%0A%0A//%20subPopup.appendChild%28cbPopup%29%3B%0A//%20subPopup.appendChild%28cbPopup.lastChild%29%3B%0A%0Avar%20subMenu%20%3D%20document.createElement%28%22menu%22%29%3B%0AsubMenu.setAttribute%28%22label%22%2C%20%22Custom%20Button%22%29%3B%0A//subMenu.setAttribute%28%22image%22%2C%20Cb.defaultImg%28%29%20%29%3B%0AsubMenu.appendChild%28cbPopup.lastChild%29%3B%0A%0Avar%20extensionsPopup%20%3D%20document.getElementById%28%22emb-context%22%29%3B%0Avar%20popup%20%3D%20extensionsPopup.cloneNode%28true%29%3B%0Apopup.id%20%3D%20%22cbContext-extensions%22%3B%0Apopup.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%0Apopup.appendChild%28subMenu%29%3B%0A//popup.appendChild%28subPopup%29%3B%0A%0AextensionsPopup.parentNode.appendChild%28popup%29%3B%0A%0Athis.setAttribute%28%22context%22%2C%20popup.id%29%3B%0A//this.onclick%20%3D%20function%28aEvent%29%20%7B%0A//%20%20if%28aEvent.button%20%3D%3D%3D%201%29%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%27chrome%3A//mozapps/content/extensions/extensions.xul%3Ftype%3Dextensions%27%29%3B%0A//%7D%0A%5D%5D%3E%3C/initcode%3E%0D%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A/*%20-------------------------------------------------------------%0A%20%20%20Extensions%20Menu%0A%20%20%20Based%20on%20snippet%20by%20onemen%0A%20%20%20http%3A//forums.mozillazine.org/viewtopic.php%3Fp%3D1774082%231774082%0A%20%20%20Modified%20by%20LouCypher%20%28aka%20Zoolcar9%29%0A%20%20%20-------------------------------------------------------------%0A%20%20%20MiddleClick%20%26%20Rightclick%20menu%20Mod%20by%203Jlou%20%5Baka%20DeeP%20%28%20*_%3E*%29%5D%3A%20%0A%20%20%20http%3A//torrents.ru/forum/profile.php%3Fmode%3Dviewprofile%26u%3D512593%0A%20%20%20-------------------------------------------------------------%20*/%5D%5D%3E%3C/code%3E%0D%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0D%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0D%0A%20%20%3Cattributes/%3E%0D%0A%3C/custombutton%3E

В firefox отключены Праверка совместимости расширений и Проверка безопасности обновлений:

Выделить код

Код:

extensions.checkCompatibility - false,
extensions.checkUpdateSecurity - false

Как заставить работать вот такой код и в боковой панели тоже:

Выделить код

Код:

@-moz-document url("chrome://mozapps/content/extensions/extensions.xul"){
	notification[type="warning"][label^="Проверка совместимости"],
	notification[label^="Было установлено"],
	notification[type="warning"][label^="Проверка безопасности обновлений"],
	#getMore 
{display: none !important;}}

Отсутствует

 

№118613-09-2009 23:58:16

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Custom Buttons

Jarichek пишет

Как заставить работать вот такой код и в боковой панели тоже:

Странно, вроде, должно работать.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№118714-09-2009 00:17:57

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

Jarichek
Infocatcher

Странно, вроде, должно работать.

Там browser в сайдбаре, из userContent.css по-моему должно работать.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№118814-09-2009 02:13:36

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Custom Buttons

Anton пишет

Там browser в сайдбаре, из userContent.css по-моему должно работать.

А, ну, возможно – я только через Stylish проверил.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№118914-09-2009 08:24:46

Jarichek
Member I
 
Группа: Members
Откуда: Минск
Зарегистрирован: 09-04-2009
Сообщений: 306
UA: Firefox 3.5

Re: Custom Buttons

Anton пишет

Там browser в сайдбаре, из userContent.css по-моему должно работать.

Да, точно, все работает. А то я как только не извращался с userChrome.css ничего не выходило :) Спасибо.

Отсутствует

 

№119015-09-2009 21:17:34

Jarichek
Member I
 
Группа: Members
Откуда: Минск
Зарегистрирован: 09-04-2009
Сообщений: 306
UA: Firefox 3.5

Re: Custom Buttons

Anton
Скажи пожалуйста, есть ли возможность исправить кнопку-переключатель "Работать автономно", так чтобы она реагировал на те ситуации, когда фокс сам переключает эту галку? Например, он всегда ее ставит если выдернуть сетевой кабель :)
Код:

Выделить код

Код:

BrowserOffline.toggleOfflineStatus();

Инициализация:

Выделить код

Код:

this.pref = 'browser.offline';
this.setState = function () {
    var state = this.PS.getBoolPref(this.pref);
    if (state == true) {
        this.image = 'data:image/png;base64,...
        this.checked = true;
    } else {
        this.image = 'data:image/png;base64,...
        this.checked = false;
    }
}

this.PS = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
this.ob = {};
this.ob.observe = this.setState.bind(this);
this.PS.addObserver(this.pref, this.ob, false);
this.setState();

Добавлено:
Кстати, вопрос по горячим клавишам. Если назначить клавишу а потом захотеть ее убрать, как это сделать (кроме убирания непосредственно из файла buttonsoverlay.xul)? Или надпись "DELETE" означает что клавиша не определена, а не клавишу Del на клавиатуре? :)
И еще, можно ли сделать чтобы горячая клавиша срабатывала в разных раскладках, а то получается переключил язык и клавиша не срабатывает? или тогда уже приделать возможность задавать не одну горячую клавишу.

Отредактировано Jarichek (16-09-2009 13:37:21)

Отсутствует

 

№119117-09-2009 15:52:34

150pi
Участник
 
Группа: Members
Зарегистрирован: 15-04-2008
Сообщений: 28
UA: Firefox 3.5

Re: Custom Buttons

Что то на макОС не работает. Кнопка создается, но не нажимается на панели...FF 3.5.3

Отредактировано 150pi (17-09-2009 15:53:15)

Отсутствует

 

№119217-09-2009 15:59:13

mshubin
Участник
 
Группа: Members
Зарегистрирован: 08-09-2009
Сообщений: 47
UA: Firefox 3.5

Re: Custom Buttons

Друзья, помогите плиз с кодом. Надо чтобы кнопка была добавлена на панели инструмента при создании нового письма, при этом при нажатии на кнопку осуществлялись следующие действия:

1. Смотрим на создаваемое письмо, в нем в таблице со списокм адресатов уже есть некоторые записи
2. Если в таблице со списком адресатов НЕ существует запись с типом <ТИП> и адресом <АДРЕС>, то добавить в список адресатов запись с типом <ТИП> и адресом <АДРЕС>, в противном случае ничего не делать.
Где
<ТИП> - это одно из [кому;копия;скрытая копия;обратный адрес]
<АДРЕС> - email адрес

<ТИП>  и <АДРЕС> задается пользователем при создании кнопки (в коде), при этом таких записей может быть несколько, т.е. при нажатии на кнопку, в таблице должны быть добавлены,например:
Обратный адрес: 123@mail.ru
Обратный адрес: 999@ngs.ru
Копия: ivan@ya.ru
Копия: kot@narod.ru

Заранее спасибо!

Отсутствует

 

№119317-09-2009 18:28:32

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

Jarichek

Скажи пожалуйста, есть ли возможность исправить кнопку-переключатель "Работать автономно", так чтобы она реагировал на те ситуации, когда фокс сам переключает эту галку? Например, он всегда ее ставит если выдернуть сетевой кабель

Не знаю. Попробуй

Выделить код

Код:

this.setState = function (state) {
    var ios = Components. classes ["@mozilla.org/network/io-service;1"]. getService (Components. interfaces. nsIIOService);
    state = state || (ios. offline? "offline": "online");
    if (state == "online") {
        this.image = 'file:///m:/redicon.png';
        this.checked = true;
    } else {
        this.image = 'file:///m:/greenicon.png';
        this.checked = false;
    }
}
this. observer =
{
	THIS: null,
	
	QueryInterface: function (iid)
	{
		if (iid. equals (Components. interfaces. nsISupports) ||
		    iid. equals (Components. interfaces. nsIObserver))
			return this;
		throw Components. results. NS_ERROR_NO_INTERFACE;
	},
	
	observe: function (subject, topic, data)
	{
		if (topic == "network:offline-status-changed")
			this. THIS. setState (data);
	}
};
this. observer. THIS = this;
var os = Components. classes ["@mozilla.org/observer-service;1"]. getService (Components. interfaces. nsIObserverService);
os. addObserver (this. observer, "network:offline-status-changed", false);
this.setState();

в раздел "Инициализация".

Если назначить клавишу а потом захотеть ее убрать, как это сделать

В поле "Сочетание клавиш" нажать клавишу ESC.

можно ли сделать чтобы горячая клавиша срабатывала в разных раскладках

Пока нет.

150pi

Что то на макОС не работает. Кнопка создается, но не нажимается на панели...FF 3.5.3

А поподробней ?


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№119417-09-2009 18:32:29

150pi
Участник
 
Группа: Members
Зарегистрирован: 15-04-2008
Сообщений: 28
UA: Firefox 3.5

Re: Custom Buttons

Куда уж подробней то ) Создал кнопку, поместил код в нее, засунул на панель инструментов, но кнопка не нажимается, скрипт не выполняется, соответственно, тоже

Отредактировано 150pi (17-09-2009 18:33:03)

Отсутствует

 

№119517-09-2009 18:36:23

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

150pi
Что за кнопка ?


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№119617-09-2009 18:42:01

150pi
Участник
 
Группа: Members
Зарегистрирован: 15-04-2008
Сообщений: 28
UA: Firefox 3.5

Re: Custom Buttons

Выделить код

Код:

javascript:var%20s=document.createElement('script');s.src='http://videosaver.ru/vs.js?nc='+Math.random();document.body.appendChild(s);void(0);

Отсутствует

 

№119717-09-2009 18:45:04

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

150pi
А вот так:

Выделить код

Код:

loadURI ("javascript:var%20s=document.createElement('script');s.src='http://videosaver.ru/vs.js?nc='+Math.random();document.body.appendChild(s);void(0);");

?

Отредактировано Anton (17-09-2009 18:45:45)


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№119817-09-2009 18:47:46

150pi
Участник
 
Группа: Members
Зарегистрирован: 15-04-2008
Сообщений: 28
UA: Firefox 3.5

Re: Custom Buttons

Anton пишет

150pi
А вот так:

Выделить код

Код:

loadURI ("javascript:var%20s=document.createElement('script');s.src='http://videosaver.ru/vs.js?nc='+Math.random();document.body.appendChild(s);void(0);");

?

не, само собой с лоадюрл. я просто не подумал написать ) сорри
есть подозрение что дело не в коде ибо код на виндах у меня пашет.

Отсутствует

 

№119917-09-2009 18:50:34

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

150pi
Ок, как раздобуду MacOS, буду смотреть и править.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№120017-09-2009 19:00:29

150pi
Участник
 
Группа: Members
Зарегистрирован: 15-04-2008
Сообщений: 28
UA: Firefox 3.5

Re: Custom Buttons

А давайте попробуем с каким нить кодом типа msgbox ("Hello world");  ?
Как такой сделать?

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]