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

Общайтесь со знакомыми и друзьями в нашей группе в Контакте.

№103-05-2006 14:04:15

Sky
Участник
 
Группа: Extensions
Откуда: Рязань
Зарегистрирован: 06-11-2004
Сообщений: 1378

Как поменять изображение на кнопке?

Есть кнопка:

Выделить код

Код:

<toolbarpalette id="BrowserToolbarPalette">
		<toolbarbutton id="TransBar-Button" type="menu-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
			       tooltiptext="&transbar.button.tooltip;" oncommand="TranslatePage();" label="&transbar.button.text;"/>
</toolbarpalette>

Для кнопки определен стиль:

Выделить код

Код:

#TransBar-Button {
  list-style-image: url("chrome://translatebar/skin/button.gif");
}

toolbar[iconsize="small"] #TransBar-Button {
  list-style-image: url("chrome://translatebar/skin/button_small.gif");
}

А как теперь из скрипта поменять изображение на кнопке? При этом нужно поменять изображение и для маленького и для большого варианта.


Gentoo Linux 2007-03-23 by XOR
Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b3pre) Gecko/2008010104
Нас мало, но мы в кедах! ;)

Отсутствует

 

№203-05-2006 14:23:38

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

Re: Как поменять изображение на кнопке?

Ну, например добавить в *.css что-то вроде

Выделить код

Код:

#TransBar-Button[transbarstate="1"] {
  list-style-image: url("chrome://translatebar/skin/state_1_button.gif");
}

toolbar[iconsize="small"] #TransBar-Button[transbarstate="1"] {
  list-style-image: url("chrome://translatebar/skin/state_1_button_small.gif");
}

А при необходимости сменить изображение устанавливать/удалять кнопке атрибут transbarstate:

Выделить код

Код:

...
if (...)
{
    ...
    document. getElementById ("BrowserToolbarPalette"). setAttribute ("transbarstate", "1");
    ...
}
...
...
if (...)
{
    ...
    document. getElementById ("BrowserToolbarPalette"). removeAttribute ("transbarstate");
    ...
}
...

Отредактировано Anton (03-05-2006 14:24:38)


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

Отсутствует

 

№303-05-2006 17:13:54

Sky
Участник
 
Группа: Extensions
Откуда: Рязань
Зарегистрирован: 06-11-2004
Сообщений: 1378

Re: Как поменять изображение на кнопке?

Спасибо!

Еще один вопрос (уже, правда, по другой теме :))
Добавляю контекстное меню:

Выделить код

Код:

<popup id="contentAreaContextMenu">
		<menuseparator/>
		<menuitem label="123456" oncommand="TranslateSelection();" id="TransBar-PM-Item"/>
	</popup>

Пункт появляется в меню. А вот как сделать, чтобы он появлялся только в том, случае, когда в окне выделен фрагмент текста?


Gentoo Linux 2007-03-23 by XOR
Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b3pre) Gecko/2008010104
Нас мало, но мы в кедах! ;)

Отсутствует

 

№403-05-2006 19:41:29

vladmir
SeaMonkey - вот это браузер
 
Группа: Extensions
Откуда: НН
Зарегистрирован: 16-10-2004
Сообщений: 4630

Re: Как поменять изображение на кнопке?

Sky

А вот как сделать, чтобы он появлялся только в том, случае, когда в окне выделен фрагмент текста?

В Autocopy можно посмотреть как сделано.
Только как это будет выглядеть, если стоят оба расширения...

Отсутствует

 

№503-05-2006 23:05:12

Sky
Участник
 
Группа: Extensions
Откуда: Рязань
Зарегистрирован: 06-11-2004
Сообщений: 1378

Re: Как поменять изображение на кнопке?

В Autocopy можно посмотреть как сделано.

У меня есть расширение, которое добавляет пункт в контекстное меню, смотрел его исходники, но что-то тольку ноль. :dumb:


Gentoo Linux 2007-03-23 by XOR
Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b3pre) Gecko/2008010104
Нас мало, но мы в кедах! ;)

Отсутствует

 

№604-05-2006 09:39:30

Merlyel
псЫх
 
Группа: Extensions
Откуда: Уфа
Зарегистрирован: 20-12-2005
Сообщений: 2415

Re: Как поменять изображение на кнопке?

vladmir
Вообще функция Autocopy кажется встроена в fx :) Так что подозреваю, что autocopy меняет всего лишь одну настройку :)


жЫзнь рандомна... и ничего с этим не поделаешь ;)

Отсутствует

 

№704-05-2006 11:54:53

vladmir
SeaMonkey - вот это браузер
 
Группа: Extensions
Откуда: НН
Зарегистрирован: 16-10-2004
Сообщений: 4630

Re: Как поменять изображение на кнопке?

Sky
Нет невтуды я с Autocopy - оно же своё контекстное выбрасывает автоматом, а нужно чтоб в обычное контекстное добавлялось.
Так Quick Note делает.

но что-то тольку ноль.

От меня, тогда - ваще минус.)))
Lynxx

Вообще функция Autocopy кажется встроена в fx

Что-то сомневаюсь...

Отсутствует

 

№804-05-2006 13:05:50

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

Re: Как поменять изображение на кнопке?

Выделить код

Код:

document. getElementById ("contentAreaContextMenu"). addEventListener ("popupshowing", setMenuitemsVisible, true);
function setMenuitemsVisible ()
{
    document. getElementById ("needed_menuitem_id"). hidden = (window. getSelection () == "");
}

Разумеется, "needed_menuitem_id" должен быть в оверлее contentAreaContextMenu.


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

Отсутствует

 

№904-05-2006 13:43:48

Sky
Участник
 
Группа: Extensions
Откуда: Рязань
Зарегистрирован: 06-11-2004
Сообщений: 1378

Re: Как поменять изображение на кнопке?

Спасибо.

2 vladmir
QuickNote помог. :)

Сделал так:

Выделить код

Код:

document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", OnContextMenuShowing, false);
function OnContextMenuShowing()
{
  var SelItem = document.getElementById("TransBar-PM-Item");
  var IsSelection = false;

  if(gContextMenu)
    IsSelection = gContextMenu.isTextSelected;
  if(SelItem)
    SelItem.hidden = !IsSelection;
}

Gentoo Linux 2007-03-23 by XOR
Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b3pre) Gecko/2008010104
Нас мало, но мы в кедах! ;)

Отсутствует

 

№1005-05-2006 16:19:59

cesspit
Участник
 
Группа: Members
Откуда: СПб
Зарегистрирован: 08-02-2006
Сообщений: 80

Re: Как поменять изображение на кнопке?

у меня странный эффект проявляется, при вставке в код фрагмента

Выделить код

Код:

document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", OnContextMenuShowing, false);

(функция обработчик - OnContextMenuShowing ничего не делает) у меня из контекстного меню исчезает куча пунктов (вместе с моими). Ни у кого нет идей с чем это может быть связано?
я ваще без вариантов :(

Отредактировано cesspit (05-05-2006 16:27:33)

Отсутствует

 

№1105-05-2006 16:52:49

cesspit
Участник
 
Группа: Members
Откуда: СПб
Зарегистрирован: 08-02-2006
Сообщений: 80

Re: Как поменять изображение на кнопке?

cesspit пишет

у меня странный эффект проявляется, при вставке в код фрагмента

Выделить код

Код:

document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", OnContextMenuShowing, false);

(функция обработчик - OnContextMenuShowing ничего не делает) у меня из контекстного меню исчезает куча пунктов (вместе с моими). Ни у кого нет идей с чем это может быть связано?
я ваще без вариантов :(

разобрался, точнее подсмотрел в transbar &), тока я вот подумал что скрывать элемент в меню это не очень красиво выглядит, гораздо симпатичнее было бы дизаблить его, но как удалось установить, установка(масло маслянное блин :) ) disabled=true для xul-элемента(пункта меню) не означает замены цвета шрифта на серый. То есть если я хочу добится вида задизабленного пункта меню как, например "Назад", "Вперёд" на пустой странице мне нужно руками менять цвет пункта меню?

Отсутствует

 

№1206-05-2006 12:55:01

Sky
Участник
 
Группа: Extensions
Откуда: Рязань
Зарегистрирован: 06-11-2004
Сообщений: 1378

Re: Как поменять изображение на кнопке?

скрывать элемент в меню это не очень красиво выглядит

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

Выделить код

Код:

var SelItem = document.getElementById("TransBar-Context-SelectionItem");
SelItem="true";

ничего не происходит.
А при изменении аттрибута

Выделить код

Код:

SelItem.setAttribute("disabled", "true");

или установке этого аттрибута статически, в .xul пункт меню пропадает.
Видимо единственный выход менять вручную его цвет.

Выделить код

Код:

SelItem.setAttribute("style", "color: red");

Отредактировано Sky (06-05-2006 13:04:49)


Gentoo Linux 2007-03-23 by XOR
Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b3pre) Gecko/2008010104
Нас мало, но мы в кедах! ;)

Отсутствует

 

Board footer

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