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

Будьте в курсе последних изменений в мире Mozilla, следя за нашим микроблогом в Twitter.

№887603-09-2015 15:49:19

oleg953
Участник
 
Группа: Members
Откуда: Ростов где Дон
Зарегистрирован: 07-05-2014
Сообщений: 557
UA: Firefox 39.0

Re: Custom Buttons

нужна кнопка,если такая конечно есть в природе которая сворачивает лису в трей.Или расширение.Спасибо.

Отсутствует

 

№887703-09-2015 16:10:49

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 3972
UA: Firefox 40.0

Re: Custom Buttons

oleg953 пишет

нужна кнопка,если такая конечно есть в природе которая сворачивает лису в трей.Или расширение.

Никогда не понимал : неужели проще залогиниться, написать комментарий и ждать ответа неизвестно сколько времени, чем набрать 4 слова "Firefox minimize to tray" в любом поиске ?
MinimizeToTray

oleg953 пишет

сворачивает лису

Жуть.

Отсутствует

 

№887804-09-2015 14:05:11

Masha
Участник
 
Группа: Members
Зарегистрирован: 04-09-2015
Сообщений: 2
UA: Firefox 24.0

Re: Custom Buttons

Привет всем.
Пользуюсь агрегатором Inoreader (безальтернативно). У Иноридера на AMO есть два собственных расширения - одно из них на моем FF вовсе не работает (вкл. тест на чистом профиле), при этом обе кнопки - страшнее некуда. Эти кнопки состоят из изображения и лейбла с количеством непрочитанных фидов, причем лейбл накладывается на кнопку и динамически рендерится самим расширением в base64, т.ч. я даже не представляю, как достать оттуда числовое значение.
Основная причина недовольства - эстетическая (даже странно, что у хорошего сервиса такой убогий выход в FF). Если, кто-нибудь может предложить, как перекроить такую кнопку Стайлишем - это было бы хорошим решением. Но думаю, что проще сделать Кастомную Кнопочку, которая обращалась бы к https://www.inoreader.com/all_articles, брала оттуда (хоть бы даже из заголовка) число непрочитанных фидов и отображала его на своем лейбле. При нажатии - просто перенаправляла по адресу. (Конечно, хотелось бы еще всякий дополнительный "обвес", например, тостер с количеством новых; aPNG с троббером в момент подгрузки или логаута на сайте... но это, наверное, можно позже прикрутить.)
К сожалению, мои знания JS крайне поверхностные, поэтому это даже не просьба помощи или совета. Это просто запрос на кнопочку, которую хотелось бы получить :)
Если кто-то возьмется, то для реги на иноридере не требуется никаких фейсбуков - достаточно треш-мэйла.

Отсутствует

 

№887904-09-2015 14:49:22

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 3972
UA: Firefox 40.0

Re: Custom Buttons

Masha
Не совсем по теме, но можно (на крайний случай) просто открыть xpi расширение, вытащить иконки (\Profiles\Firefox\extensions\inodhwnfgtr463428675drebcs@jetpack.xpi\resources\inoreader_companion\data\icon-16.png и, возможно, с другим разрешением : 32, 64), изменить их хотя бы в IcoFX (или вообще прозрачность одну оставить чтобы лишь фиды показывало) и запихать назад (удобно в total commander делать, работа с xpi как с папкой).
У меня к сожалению на [firefox] 40.0.3 оно как-то нестабильно работает и исчезает после перезапуска, поэтому проверить не смогу. :blush:

Отсутствует

 

№888004-09-2015 15:27:15

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1160
UA: Firefox 40.0

Re: Custom Buttons

Masha
Меня эстетика устраивает MonsXn2.png

Отсутствует

 

№888104-09-2015 23:17:01

wo00do01d
Участник
 
Группа: Members
Зарегистрирован: 04-09-2015
Сообщений: 2
UA: Firefox 40.0

Re: Custom Buttons

Мне хватает кнопки, помогите пожалуйста.
Кнопка для добавления страницы в определенную папку закладок лиса в один клик. То есть на панель добавил, выбрал в какую папку сохранять, нажал-добавил закладку.

Отсутствует

 

№888204-09-2015 23:31:24

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 43.0

Re: Custom Buttons

wo00do01d пишет

Мне хватает кнопки, помогите пожалуйста.
Кнопка для добавления страницы в определенную папку закладок лиса в один клик. То есть на панель добавил, выбрал в какую папку сохранять, нажал-добавил закладку.

Как я понял нужна кнопка? Тогда надо было писать, что не хватает. А если "хватает", то в чём помочь? :) Но если всё-таки не хватает тогда вот Custom Buttons • View topic - Bookmark to folder (single tab version)

Отсутствует

 

№888304-09-2015 23:35:09

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Seamonkey 2.35

Re: Custom Buttons

боковая панель - vertical_toolbar, не могу добавить кнопку на панель, так как она не всплывает в окне настроек firefox:

2b7393df75c3.jpg

Выделить код

Код:

var button = this;

const sideBarAutoClose = false; // true => включить авто закрытие боковой панели 
const autoCloseDelay = 500;     // ms

const showDelay = 1000;        // ms
const distanceShow = 2;        // px
const distanceHide = 180;    // px
const vtWidthCorrection = 160;    // px ( number [ + or - ] )

const toolbarId = "vertical_toolbar";
const toolboxId = toolbarId + "_toolbox";
const sep = "\u00A0";
const firstAttributes = "\
id %id% class chromeclass-toolbar fullscreentoolbar true context toolbar-context-menu _width 20 \
customizable true flex 1 iconize large mode icons orient vertical widthcorr 0"
.replace(/ /g, sep).replace(/%id%/, toolbarId);

// ....................................................................................................

const pn = "custombutton.verticaltoolbar.attributes";
var prefs = Application.prefs;
if (!prefs.has(pn)) prefs.setValue(pn, firstAttributes);
var pref = prefs.get(pn);
function getAttr_pref() {
    return pref.value
}
function setAttr_pref() {
    pref.value = "";
    Array.slice(document.getElementById(toolbarId).attributes).forEach(function(attr) {
        pref.value += (attr.name + sep + attr.value + sep);
    });
}
// ....................................................................................................

var browser = document.getElementById("browser");
var toolbar = document.getElementById(toolbarId);
var toolbox = document.getElementById(toolboxId);

if (!toolbar) {

    toolbox = document.createElement("toolbox");
    toolbox.id = toolboxId;
    toolbox.palette = gNavToolbox.palette;
    
    toolbar = document.createElement("toolbar");
    toolbar.style.minWidth = "20px";
    
    browser.insertBefore(toolbox, browser.firstChild);
    toolbox.appendChild(toolbar);

// ....................................................................................................
// Thanks - http://nanto.asablo.jp/blog/2007/04/22/1459018

    const style ='\
\
    toolbar[orient="vertical"] {\n\
        -moz-appearance: none;\n\
        border-bottom: 0px none;\n\
        border-top: 0px none;\n\
        border-right: 1px solid rgb(170, 188, 207);\n\
        background: none repeat scroll 0% 0% rgb(207, 219, 236);\n\
        -image: -moz-linear-gradient(rgba(255, 255, 255, .5), rgba(255, 255, 255, 0) 27px) !important;\n\
}\n\
    toolbar[orient="vertical"] > toolbarseparator,\n\
    toolbar[orient="vertical"] > [id^="wrapper-separator"] {\n\
        -moz-appearance: none !important;\n\
        margin: 0.2em 2px;\n\
        border-bottom: 1px solid ThreeDHighlight;\n\
        border-top: 1px solid ThreeDShadow;\n\
        height: 2px;\n\
        border-left: none;\n\
        border-right: none;\n\
}\n\
    toolbar[orient="vertical"] > toolbarspacer,\n\
    toolbar[orient="vertical"] > [id^="wrapper-spacer"] { height: 15px; }'

    var sspi = document.createProcessingInstruction('xml-stylesheet',
          'type="text/css" href="data:text/css,' + encodeURI(style) + '"');
    document.insertBefore(sspi, document.documentElement);

// ....................................................................................................

    var attr = getAttr_pref().split(sep);
    for (var i=0; i<(attr.length-1); i+=2) { toolbar.setAttribute(attr[i], attr[i+1]); }

    var currentSet = toolbar.getAttribute("currentset").split(",");
    currentSet.forEach(function(id){ toolbar.insertItem(id); });
}
// ....................................................................................................

var et = gNavToolbox.externalToolbars;
var already = false;
for (var i=0; i<et.length; i++) { if (et[i] == toolbar) { already = true; break } }
if (!already) et[et.length] = toolbar;

var delta = toolbar.getAttribute("widthcorr") - vtWidthCorrection;
toolbar.setAttribute("widthcorr", vtWidthCorrection);
if (delta) toolbar.setAttribute("_width", toolbar.getAttribute("_width") - delta);

function lock() {

    var width = toolbar.getAttribute("_width");
    
    toolbox.style.position = toolbar.hasAttribute("autohide") ? "" : "fixed";
    toolbox.style.height =
    toolbar.style.height = browser.boxObject.height + "px";

    toolbar.style.maxWidth =
    toolbar.style.minWidth =
    toolbox.style.maxWidth =
    toolbox.style.minWidth = width * !toolbar.collapsed + "px";    
}
function beforeCustomize() {

    toolbox.removeAttribute("style");
    toolbox.removeAttribute("width");
    toolbar.removeAttribute("style");
    toolbar.style.minWidth = "20px";
}
function customizationChange() {
    window.setTimeout(function() {
        toolbar.setAttribute("_width", toolbar.boxObject.width + vtWidthCorrection);
    }, 640);
}
function afterCustomize() {

    setAttr_pref();
    removeListeners();
    lock();
}
function collapser(e) {

    var distance = e.screenX - browser.boxObject.screenX;
    if (toolbar.waiting) return;

    if ((distance <= distanceShow) && (toolbar.collapsed)) {

        if (showDelay < 1) { toolbar.collapsed = false; lock(); return; }

        toolbar.waiting = true;
        window.setTimeout(function() {

            if (distance >= distanceShow) { toolbar.waiting = false; return; }
            toolbar.collapsed = false;
            lock();
            toolbar.waiting = false;

        }, showDelay);
    }
    if ((distance >= distanceHide) && (!toolbar.collapsed)) {
        toolbar.collapsed = true;
        lock();
    }
}
function removeListeners() {

    gNavToolbox.removeEventListener("beforecustomization", beforeCustomize, false);
    gNavToolbox.removeEventListener("customizationchange", customizationChange, false);
    gNavToolbox.removeEventListener("aftercustomization", afterCustomize, false);
}

this.onclick = function(e) { 

    if (e.button) return;

    var autohide = toolbar.hasAttribute("autohide");
    toolbar.collapsed = autohide;

    if (!autohide) {
        browser.removeEventListener("mousemove", collapser, false);
        toolbar.setAttribute("autohide", "true");
    }
    else {
        browser.addEventListener("mousemove", collapser, false);
        toolbar.removeAttribute("autohide");
    }
    lock();
}

toolbar.ondblclick = function(e) {

    if ( e.button || e.target.nodeName == "toolbarbutton"
                || e.target.nodeName == "toolbaritem" ) return;
    button.click();
}
// ....................................................................................................

if (!toolbar.hasAttribute("autohide")) {
    browser.addEventListener("mousemove", collapser, false);
}
else toolbar.setAttribute("autohide", "true");

lock();

gNavToolbox.addEventListener("beforecustomization", beforeCustomize, false);
gNavToolbox.addEventListener("customizationchange", customizationChange, false);
gNavToolbox.addEventListener("aftercustomization", afterCustomize, false);



// ....................................................................................................
var observer = {
    get obs() {
        return Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
    },
    init: function() {
        this.obs.addObserver(this, "lightweight-theme-styling-update", false);
        this.observe();
    },
    destroy: function() {
        try {
            this.obs.removeObserver(this, "lightweight-theme-styling-update");
        } catch(ex) {}
    },
    observe: function(subject, topc, data) {
        setTimeout(function() {

            var win = document.getElementById("main-window");
            var bgi = window.getComputedStyle(win).backgroundImage;
            if (bgi == "none") {
                var bgc = window.getComputedStyle(win).backgroundColor;
                toolbar.style.backgroundColor = bgc;
            
                var brc = bgc;
                bgc.match(/\d+/g).forEach(function(color, i) {
                    if (i > 2) return;
                    brc = brc.replace(color, Math.round(color/1.5));
                });
                toolbar.style.borderRightColor = brc;
                return;
            }
            var url = bgi.replace('url("', "").replace('")', "");

            const xhtml = "http://www.w3.org/1999/xhtml";
            var img = document.createElementNS(xhtml, "img");
            var canvas = document.createElementNS(xhtml, "canvas");
            img.src = url;
            img.onload = function() {

                var width = canvas.width = img.width;
                var height = canvas.height = img.height;
                var context = canvas.getContext("2d");
                context.drawImage(img, 0, 0);
                var arr = context.getImageData(0, 0, width, height).data;

                var r = 0, g = 0, b = 0;
                var len = arr.length;
                for (var i = 0; i < len; i += 4) {
                    r += arr[i];
                    g += arr[i + 1];
                    b += arr[i + 2];
                }
                var colors = [r, g, b], borderRightColors = [];
                colors.forEach(function(color, i) {
                    var clr = Math.round(4 * color / len);
                    colors[i] = clr;
                    borderRightColors.push(Math.round(clr /1.5));
                });
                var rgb = "rgb(" + colors.join(", ") + ")";
                var rgbBrc = "rgb(" + borderRightColors.join(", ") + ")";

                toolbar.style.backgroundColor = rgb;
                toolbar.style.borderRightColor = rgbBrc;
            }
        }, 200);
    }
};
observer.init();



function n(id) document.getElementById(id);
const page = n("content"), box = n("sidebar-box"), sidebar = n("sidebar");
var tvtc, timeout;

function listenMO(node, listen) {
    var func = node == box ? onBMO : onPMO;
    (listen ? addEventListener : removeEventListener)
    .apply(this, ["mouseover", func, false, node]);
}
function onPMO() {
    listenMO(page, false);
    timeout = setTimeout(hideSB, autoCloseDelay );
    listenMO(box, true);
}
function onBMO() {
    listenMO(box, false);
    clearTimeout(timeout);
    listenMO(page, true);
}
function hideSB() {
    listenMO(box, false);
    if (box.hidden) return;
    var id = box.getAttribute("sidebarcommand") || "viewBookmarksSidebar";
    n(id).setAttribute("checked", true);
    toggleSidebar(id);
}
function onSBL() {
    var time = Date.now();
    listenMO(page, false);
    if (time - tvtc < 800) listenMO(page, true);
}
function onVTC(e) {
    var time = Date.now();
    for (var node = e.target; node; node = node.parentNode) {
        if (node != toolbar) continue;
        tvtc = time;
        break;
    }
}
function ael(add) {
    [    ["DOMContentLoaded", onSBL, false, sidebar],
        ["click", onVTC, false, window],
        ["command", onVTC, false, window]
    ].forEach(function(args) {
        (add ? addEventListener : removeEventListener).apply(this, args);
    });
}
if ( sideBarAutoClose ) ael(true);



this.onDestroy = function(reason) {
        observer.destroy();
        
    browser.removeEventListener("mousemove", collapser, false);
    if (!toolbar.hasAttribute("customizing")) removeListeners();
    if (reason == "delete") pref.reset();
    if (!getAttr_pref()) return;
    setAttr_pref();
    
    ael(false);
};

Что посоветуете?

Отсутствует

 

№888405-09-2015 00:11:39

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Seamonkey 2.35

Re: Custom Buttons

О, а есть такое, мышкой перетащить ссылку в "корзину" (как в windows) и она удаляется? :)

Отсутствует

 

№888505-09-2015 00:47:28

wo00do01d
Участник
 
Группа: Members
Зарегистрирован: 04-09-2015
Сообщений: 2
UA: Firefox 40.0

Re: Custom Buttons

voqabuhe пишет

wo00do01d пишет: Мне хватает кнопки, помогите пожалуйста.Кнопка для добавления страницы в определенную папку закладок лиса в один клик. То есть на панель добавил, выбрал в какую папку сохранять, нажал-добавил закладку.Как я понял нужна кнопка? Тогда надо было писать, что не хватает. А если "хватает", то в чём помочь?  Но если всё-таки не хватает тогда вот Custom Buttons • View topic - Bookmark to folder (single tab version)

Пропустил "не". Спасибо за ссылку. Сам почему-то не нашел.

Отсутствует

 

№888605-09-2015 09:43:19

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: Custom Buttons

fokanik пишет

Что посоветуете?

Выделить код

Код:

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%0A%20%20%3Cname%3EVT%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAKP+AAIX/gAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAFf+AABUAAAAAAAAAAAAAAAAAAAAA/4AAJP+AAP//gAD//4AA//+AACQAAAAAAAAAAAAAAAAAAAAA/4AAEv+AAP//gAD//4AAEgAAAAAAAAAA/4AAIP+AAP//gAD//4AA//+AAP//gAD//4AAJgAAAAAAAAAAAAAAAP+AABH/gAD//4AA//+AABEAAAAAAAAAAP+AAP//gAD//4AA//+AADb/gAD//4AA//+AAP//gAAQAAAAAAAAAAD/gAAP/4AA//+AAP//gAAPAAAAAAAAAAD/gAD//4AA//+AACAAAAAA/4AAIP+AAP//gAD//4AAEQAAAAAAAAAA/4AAD/+AAP//gAD//4AADwAAAAAAAAAA/4AA//+AAP//gAAMAAAAAP+AAAz/gAD//4AA//+AAA8AAAAAAAAAAP+AAA//gAD//4AA//+AAA8AAAAAAAAAAP+AAP//gAD//4AADwAAAAD/gAAP/4AA//+AAP//gAAPAAAAAAAAAAD/gAAP/4AA//+AAP//gAAPAAAAAAAAAAD/gAD//4AA//+AAA8AAAAA/4AAD/+AAP//gAD//4AADAAAAAAAAAAA/4AACv+AAP//gAD//4AACgAAAAAAAAAA/4AA//+AAP//gAAPAAAAAP+AAA//gAD//4AA//+AAAv/gAAL/4AADP+AACH/gAD//4AA//+AACH/gAAK/4AAD/+AAP//gAD//4AAEQAAAAD/gAAR/4AA//+AAP//gAAm/4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AABIAAAAA/4AAEv+AAP//gAD//4AAJ/+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AAEf+AABIAAAAAAAAAAAAAAAD/gAAV/4AAEgAAAAD/gAAQ/4AAEf+AAA//gAAP/4AAD/+AAA//gAAP/4AADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQe//rEHH56xBg8OsQQHDrEEAw6xBEMOsQRDDrEEQw6xBEMOsQRAArEEQAKxBEACsQTkArEH//6xB//+sQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20vto%20%3D%20%7B%0A%20%20%20%20distanceShow%3A%202%2C%0A%20%20%20%20distanceHide%3A%2064%2C%0A%20%20%20%20showDelay%3A%20320%2C%0A%20%20%20%20color%3A%20%22lightblue%22%2C%0A%20%20%20%20fringe%3A%20%22black%22%2C%0A%20%20%20%20padding%3A%203%2C%0A%20%20%20%20name%3A%20%22VT%22%2C%0A%0A%20%20%20%20btn%3A%20this%2C%0A%20%20%20%20tcm%3A%20document.getElementById%28%22toolbar-context-menu%22%29%2C%0A%20%20%20%20ctm%3A%20document.getElementById%28%22customization-toolbar-menu%22%29%2C%0A%20%20%20%20deck%3A%20document.getElementById%28%22content-deck%22%29%2C%0A%20%20%20%20id%3A%20%22cb-vt%22%2C%0A%0A%20%20%20%20get%20cust%28%29%20gBrowser.currentURI.spec%20%3D%3D%20%22about%3Acustomizing%22%2C%0A%20%20%20%20get%20xs%28%29%20%7B%0A%20%20%20%20%20%20%20%20delete%20this.xs%3B%0A%20%20%20%20%20%20%20%20return%20this.xs%20%3D%20Cc%5B%22@mozilla.org/xul/xulstore%3B1%22%5D.getService%28Ci.nsIXULStore%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20init%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28this.cust%20%7C%7C%20this.btn._destructors.length%29%20return%3B%0A%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.initVT%28%29%3B%0A%20%20%20%20%20%20%20%20var%20vto%20%3D%20this%3B%0A%0A%20%20%20%20%20%20%20%20this.btn.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20e.button%20%7C%7C%20vto.toggleVT%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20window.addEventListener%28%22popupshown%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20window.addEventListener%28%22popuphidden%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20window.addEventListener%28%22resize%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.tcm.addEventListener%28%22command%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.tcm.addEventListener%28%22popupshowing%22%2C%20this%2C%20false%29%3B%0A%0A%20%20%20%20%20%20%20%20vto.toggleVT%28vt.hasOwnProperty%28%22on%22%29%20%3F%20vt.on%0A%20%20%20%20%20%20%20%20%20%20%20%20%3A%20%21this.xs.hasValue%28location%2C%20vto.id%2C%20%22collapsed%22%29%0A%20%20%20%20%20%20%20%20%29%3B%0A%20%20%20%20%20%20%20%20this.resize%28%29%3B%0A%20%20%20%20%20%20%20%20vto.btn._destructors.push%28%7Bcontext%3A%20vto%2C%20destructor%3A%20vto.destroy%7D%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20destroy%3A%20function%28reason%29%20%7B%0A%20%20%20%20%20%20%20%20window.removeEventListener%28%22popupshown%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20window.removeEventListener%28%22popuphidden%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20window.removeEventListener%28%22resize%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.tcm.removeEventListener%28%22command%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.tcm.removeEventListener%28%22popupshowing%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.setCollapser%28false%29%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28reason%20%3D%3D%20%22destructor%22%20%26%26%20this.cust%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20vto%20%3D%20this%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vto.resize%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.addEventListener%28%22customizationready%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20CustomizableUI.addListener%28vto%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20this.ctm.addEventListener%28%22command%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.ctm.addEventListener%28%22popupshowing%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20window.addEventListener%28%22resize%22%2C%20vto%2C%20false%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.addEventListener%28%22aftercustomization%22%2C%20function%20ac%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.removeEventListener%28%22aftercustomization%22%2C%20ac%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.removeEventListener%28%22customizationready%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20CustomizableUI.removeListener%28vto%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20vto.ctm.removeEventListener%28%22command%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20vto.ctm.removeEventListener%28%22popupshowing%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20window.removeEventListener%28%22resize%22%2C%20vto%2C%20false%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28vto.btn.id%29%20%7C%7C%20vto.destroyVT%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20%28reason%20%3D%3D%20%22delete%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20CustomizableUI.removeWidgetFromArea%28this.btn.id%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.destroyVT%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%2C%0A%20%20%20%20handleEvent%3A%20function%28e%29%20this%5Be.type%5D%28e%29%2C%0A%0A%20%20%20%20command%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28e.target.id%20%21%3D%20%22toggle_%22%20+%20this.id%29%20return%3B%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20this.toggleVT%28%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20popupshowing%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20var%20menuitem%20%3D%20e.target.querySelector%28%22%23toggle_%22%20+%20this.id%29%3B%0A%20%20%20%20%20%20%20%20menuitem%20%26%26%20menuitem.setAttribute%28%22checked%22%2C%20this.vt.on%29%3B%0A%20%20%20%20%20%20%20%20if%20%28this.cust%20%7C%7C%20%21this.vt.contains%28e.target.triggerNode%29%29%20return%3B%0A%20%20%20%20%20%20%20%20for%28var%20selector%20of%20%5B%22.customize-context-moveToPanel%22%2C%20%22.customize-context-removeFromToolbar%22%5D%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20menuitem%20%3D%20e.target.querySelector%28selector%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20menuitem%20%26%26%20menuitem.removeAttribute%28%22disabled%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%2C%0A%20%20%20%20mousemove%3A%20function%20collapser%28e%29%20%7B%0A%20%20%20%20%20%20%20%20var%20distance%20%3D%20collapser.distance%20%3D%20e.screenX%20-%20document.documentElement.boxObject.screenX%3B%0A%20%20%20%20%20%20%20%20if%20%28collapser.waiting%29%20return%3B%0A%20%20%20%20%20%20%20%20if%20%28distance%20%3C%3D%20this.distanceShow%20%26%26%20this.vt.collapsed%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28this.showDelay%20%3C%201%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.vt.collapsed%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20collapser.waiting%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20setTimeout%28function%28vto%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28collapser.distance%20%3E%3D%20vto.distanceShow%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20collapser.waiting%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20vto.vt.collapsed%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20collapser.waiting%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20this.showDelay%2C%20this%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20%28distance%20%3E%3D%20this.distanceHide%20%26%26%20%21this.vt.collapsed%29%0A%20%20%20%20%20%20%20%20%20%20%20%20this.vt.collapsed%20%3D%20true%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20setCollapser%3A%20function%28set%29%20%7B%0A%20%20%20%20%20%20%20%20set%0A%20%20%20%20%20%20%20%20%3F%20this.cust%20%7C%7C%20window.addEventListener%28%22mousemove%22%2C%20this%2C%20false%29%0A%20%20%20%20%20%20%20%20%3A%20window.removeEventListener%28%22mousemove%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20callCollapser%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20this.mousemove%28%7BscreenX%3A%20document.documentElement.boxObject.screenX%20+%20MousePosTracker._x%7D%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20customizationready%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20window.removeEventListener%28%22customizationready%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.vt.on%20%26%26%20this.insertBox%28true%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20resize%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20this.vt.style.maxHeight%20%3D%20this.deck.boxObject.height%20+%201%20+%20%22px%22%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20popupshown%3A%20function%28e%29%20this.handlePopup%28e%29%2C%0A%20%20%20%20popuphidden%3A%20function%28e%29%20this.handlePopup%28e%29%2C%0A%0A%20%20%20%20handlePopup%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%0A%20%20%20%20%20%20%20%20%20%20%20%20this.vt.collapsed%20%7C%7C%20this.vt.on%0A%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%28e.target.localName%20%21%3D%20%22menupopup%22%20%26%26%20e.target.localName%20%21%3D%20%22panel%22%29%0A%20%20%20%20%20%20%20%20%29%20return%3B%0A%20%20%20%20%20%20%20%20setTimeout%28function%28vto%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20hasPopup%20%3D%20Array.concat%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Array.slice%28document.getElementsByTagName%28%22menupopup%22%29%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Array.slice%28document.getElementsByTagName%28%22panel%22%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%29.some%28function%28popup%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22state%22%20in%20popup%20%26%26%20popup.state%20%3D%3D%20%22open%22%20%26%26%20%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20vto.vt.contains%28popup%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%28%22triggerNode%22%20in%20popup%20%26%26%20vto.vt.contains%28popup.triggerNode%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%28%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%22anchorNode%22%20in%20popup%20%26%26%20popup.anchorNode%20%26%26%20%28%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%20vto.vt.contains%28popup.anchorNode%29%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%7C%7C%20vto.vt.contains%28document.getBindingParent%28popup.anchorNode%29%29%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%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vto.setCollapser%28%21hasPopup%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20hasPopup%20%7C%7C%20vto.callCollapser%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20200%2C%20this%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20onWidgetAfterDOMChange%3A%20function%28...a%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28a%5B2%5D%20%3D%3D%20this.vt.box%29%20this.vt.hbox.style.minWidth%20%3D%20this.vt.boxObject.width%20+%20%22px%22%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20initVT%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20var%20id%20%3D%20this.id%3B%0A%20%20%20%20%20%20%20%20var%20boxId%20%3D%20id%20+%20%22-customization-target%22%3B%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.vt%20%3D%0A%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28id%29%20%7C%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20document.createElement%28%22toolbar%22%29%3B%0A%20%20%20%20%20%20%20%20var%20attrs%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20id%3A%20id%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20mode%3A%20%22icons%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20iconsize%3A%20%22small%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20orient%3A%20%22vertical%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20customizable%3A%20%22true%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20persist%3A%20%22collapsed%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20toolbarname%3A%20this.name%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20fullscreentoolbar%3A%20%22true%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20class%3A%20%22chromeclass-toolbar%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20context%3A%20%22toolbar-context-menu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20style%3A%20%22-moz-appearance%3A%20none%3B%20display%3A%20-moz-box%3B%20height%3A%20100%25%3B%20position%3A%20fixed%3B%20min-width%3A%2020px%22%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20for%28var%20attr%20in%20attrs%29%20vt.setAttribute%28attr%2C%20attrs%5Battr%5D%29%3B%0A%20%20%20%20%20%20%20%20if%20%28%21vt.parentNode%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20box%20%3D%20vt.box%20%3D%20document.createElement%28%22vbox%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vt.appendChild%28box%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20box.id%20%3D%20boxId%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20box.style.cssText%20%3D%20%22height%3A%20100%25%3B%20width%3A%20100%25%3B%22%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20vt.customizationTarget%20%3D%20box%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.appendChild%28vt%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28CustomizableUI.areas.indexOf%28id%29%20%3D%3D%20-1%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20CustomizableUI.registerArea%28id%2C%20%7Blegacy%3A%20true%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20box.removeAttribute%28%22class%22%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20box.__defineGetter__%28%22localName%22%2C%20function%28%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Components.stack.caller.toString%28%29.indexOf%28%22custombutton.buttonConstructor%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%3D%20-1%20%3F%20%22vbox%22%20%3A%20%22toolbar%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vt.hbox%20%3D%20document.createElement%28%22hbox%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vt.hbox.id%20%3D%20id%20+%20%22-hbox%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20vt.box.style.padding%20%3D%20%220%20%22%20+%20this.padding%20+%20%22px%22%3B%0A%20%20%20%20%20%20%20%20vt.style.backgroundColor%20%3D%20this.color%3B%0A%20%20%20%20%20%20%20%20vt.style.borderRight%20%3D%20%221px%20solid%20%22%20+%20this.fringe%3B%0A%20%20%20%20%20%20%20%20return%20vt%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20destroyVT%3A%20function%28reason%29%20%7B%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.vt%3B%0A%20%20%20%20%20%20%20%20CustomizableUI.unregisterArea%28vt.id%2C%20%7B%7D%29%3B%0A%20%20%20%20%20%20%20%20vt.hbox.parentNode%20%26%26%20vt.hbox.parentNode.removeChild%28vt.hbox%29%3B%0A%20%20%20%20%20%20%20%20vt.parentNode%20%26%26%20vt.parentNode.removeChild%28vt%29%3B%0A%0A%20%20%20%20%20%20%20%20this.xs.removeValue%28location%2C%20vto.id%2C%20%22collapsed%22%29%3B%0A%20%20%20%20%20%20%20%20this.xs.removeValue%28location%2C%20vto.id%2C%20%22currentset%22%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20insertBox%3A%20function%28ins%29%20%7B%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.vt%3B%0A%20%20%20%20%20%20%20%20var%20box%20%3D%20vt.hbox%3B%0A%20%20%20%20%20%20%20%20if%20%28%21ins%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20box.parentNode%20%26%26%20box.parentNode.removeChild%28box%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20var%20id%20%3D%20this.cust%20%3F%20%22customization-palette-container%22%20%3A%20%22sidebar-box%22%3B%0A%20%20%20%20%20%20%20%20var%20point%20%3D%20document.getElementById%28id%29%3B%0A%20%20%20%20%20%20%20%20point.parentNode.insertBefore%28box%2C%20point%29%3B%0A%20%20%20%20%20%20%20%20var%20mw%20%3D%20function%28%29%20box.style.minWidth%20%3D%20vt.boxObject.width%20+%20%22px%22%3B%0A%20%20%20%20%20%20%20%20mw%28%29%3B%20setTimeout%28mw%2C%20100%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20toggleVT%3A%20function%28on%29%20%7B%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.vt%3B%0A%20%20%20%20%20%20%20%20if%20%28on%20%3D%3D%20undefined%29%20on%20%3D%20%21vt.on%3B%0A%20%20%20%20%20%20%20%20vt.on%20%3D%20on%3B%0A%20%20%20%20%20%20%20%20this.setCollapser%28%21on%29%3B%0A%20%20%20%20%20%20%20%20vt.collapsed%20%3D%20%21on%3B%0A%20%20%20%20%20%20%20%20this.insertBox%28on%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Avto.init%28%29%3B%0A%0A%0Afunction%20addBackground%28e%29%20%7B%0A%20%20%20setTimeout%28function%28%29%20%7B%0A%20%20%20%20%20%20var%20toolbar%20%3D%20document.getElementById%28%27cb-vt%27%29%3B%0A%20%20%20%20%20%20var%20win%20%3D%20document.getElementById%28%22main-window%22%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20image%20%3D%20win.style.backgroundImage%3B%0A%20%20%20%20%20%20if%20%28%20image%20%3D%3D%20%27%27%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20toolbar.style.background%20%3D%20%27%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20toolbar.style.background%20%3D%20image%3B%0A%20%20%20%20%20%20toolbar.style.backgroundSize%20%3D%20%27auto%20100%25%27%3B%0A%20%20%20%7D%2C%20500%29%3B%0A%7D%3B%0AaddBackground%28%29%3B%20%0AServices.obs.addObserver%28%20addBackground%2C%20%22lightweight-theme-styling-update%22%2C%20false%20%29%3B%0AaddDestructor%28function%28%29%20Services.obs.removeObserver%28%20addBackground%2C%20%22lightweight-theme-styling-update%22%29%20%29%3B%20%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№888705-09-2015 10:02:43

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Seamonkey 2.35

Re: Custom Buttons

bunda1 пишет

Код

71e12db9ce7b.jpg Под меню заехала.

Это у меня косяк со стилями получается:

Выделить код

Код:

/* Порядок запуска панелей */
#PersonalToolbar {-moz-box-ordinal-group:1 !important; }
#nav-bar  {-moz-box-ordinal-group:2 !important; } 
#TabsToolbar {-moz-box-ordinal-group:3 !important; }

bunda1, спасибо большое!

P.S А значки можно можно побольше как-то сделать в этой панели? :)

Отредактировано fokanik (05-09-2015 11:08:07)

Отсутствует

 

№888805-09-2015 22:24:05

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: Custom Buttons

fokanik пишет

P.S А значки можно можно побольше как-то сделать в этой панели? :)

:)

Выделить код

Код:

#cb-vt .toolbarbutton-icon {
  width: 36px !important; height: 36px !important;
}

Отсутствует

 

№888906-09-2015 09:56:54

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Seamonkey 2.35

Re: Custom Buttons

bunda1 пишет

#cb-vt .toolbarbutton-icon

bunda1, огромное спасибо, теперь значки как песня смотрятся :)

Ссылка удалена.
В следующий раз будет расценено как спам!
Sergeys

Отсутствует

 

№889006-09-2015 12:11:57

hartumov
Участник
 
Группа: Members
Зарегистрирован: 17-11-2013
Сообщений: 136
UA: Firefox 25.0

Re: Custom Buttons

Подскажите как сделать.
По событию маусовер над элементом у меня создается див с position absolute.
Я хочу чтобы этот див нижним краем располагался над event.target - т. е. чуть выше на странице от того самого элемента, где происходит событие маусовер.
Мне надо прописать div.style.bottom = ... и тут я не знаю что задать, чтобы учитывалась и прокрутка страницы.

Отсутствует

 

№889106-09-2015 17:54:25

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: Custom Buttons

hartumov пишет

Подскажите как сделать.
По событию маусовер над элементом у меня создается див с position absolute.
Я хочу чтобы этот див нижним краем располагался над event.target - т. е. чуть выше на странице от того самого элемента, где происходит событие маусовер.
Мне надо прописать div.style.bottom = ... и тут я не знаю что задать, чтобы учитывалась и прокрутка страницы.

Может посмотри Увеличивать размеры изображений из контекстного меню на странице там есть что то подобное.

Отсутствует

 

№889206-09-2015 20:12:47

hartumov
Участник
 
Группа: Members
Зарегистрирован: 17-11-2013
Сообщений: 136
UA: Firefox 25.0

Re: Custom Buttons

bunda1 пишет

Посмотрел. Но разобраться не смог :(  Мне бы конкретный код.
Поскольку создаваемый див будет  400 x 400 px я бы хотел чтобы:

●  если див создается в верхней части страницы, то div.style.top был бы на 10 px выше места события. т. е. див в основном будет ниже event.target - чтобы он не заехал в верхнюю невидимую часть экрана.

●  если див создается в нижней части страницы, то div.style.bottom был бы на 10 px ниже места события, див при этом будет смотреть вверх, опять же, чтобы он не заехал за нижнюю часть экрана.

Короче, чтоб этот див, в какой бы точке по вертикали не создавался, всегда был бы виден полностью.

Отсутствует

 

№889306-09-2015 20:38:42

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Seamonkey 2.35

Re: Custom Buttons

скрытый текст
bunda1, старая кнопка VT сломалась, тестю на SeaMonkey 2.35.
Проблема - не могу ни как впихнуть в панель более 15 кнопок, засовываю - рестарт - пусто, а места еще полно.

А новая кнопка VT - бледная в SeaMonkey.

Может есть решение какое?


Почистил user.js и старая версия VT заработала :dumb:

Отредактировано fokanik (06-09-2015 21:57:29)

Отсутствует

 

№889406-09-2015 21:31:19

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: Custom Buttons

hartumov пишет

Короче, чтоб этот див, в какой бы точке по вертикали не создавался, всегда был бы виден полностью.

Так может лучше исползовать tooltip который вроде всегда виден полностью.

Отредактировано bunda1 (06-09-2015 21:36:07)

Отсутствует

 

№889506-09-2015 22:46:02

hartumov
Участник
 
Группа: Members
Зарегистрирован: 17-11-2013
Сообщений: 136
UA: Firefox 25.0

Re: Custom Buttons

bunda1 пишет
hartumov пишет

Короче, чтоб этот див, в какой бы точке по вертикали не создавался, всегда был бы виден полностью.

Так может лучше исползовать tooltip который вроде всегда виден полностью.

Я с этого и начал. Но в тултипе очень мелкий шрифт и кроме как plain text туда ничего не вставишь.
Так что системный tooltip - не самый лучший выход.

Я то сам див с html содержимым сделал, а с позиционированием его не получается. Я хотел бы чтоб  див появлялся рядом с местом события (маусовер) и  чтоб был всегда виден как системный тултип.

Отсутствует

 

№889606-09-2015 23:03:42

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: Custom Buttons

hartumov пишет

Я с этого и начал. Но в тултипе очень мелкий шрифт и кроме как plain text туда ничего не вставишь.

Ошибаешься, можно менять шрифт, цвет и даже добавить изображения, пример:

Выделить код

Код:

// всплывающая подсказка рядом с выделенным текстом ...     
     function showTooltip() {
        var tooltip = gBrowser.appendChild( document.createElement("tooltip") );
        tooltip.style.cssText = "color: red !important; font-weight: bold !important; font-size: 24px !important; -moz-box-orient: horizontal; text-align: center;";
   
        var image = tooltip.appendChild( document.createElement("image") );
        image.setAttribute("src", "http://www.google.lv/images/branding/product/ico/googleg_lodp.ico");
   
        var label = tooltip.appendChild( document.createElement("label") );
        label.setAttribute("value", "Установлен");
    
        var focused = document.commandDispatcher.focusedWindow;
        var selection = focused.getSelection().getRangeAt(0).getBoundingClientRect();
        var posX = focused.mozInnerScreenX + selection.left;
        var posY = focused.mozInnerScreenY + selection.bottom - 5;   

        tooltip.showPopup( gBrowser, posX, posY );
        setTimeout(function() { gBrowser.removeChild( tooltip ) }, 2000 );
     };
     showTooltip();

Отредактировано bunda1 (06-09-2015 23:06:33)

Отсутствует

 

№889707-09-2015 08:24:35

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Seamonkey 2.35

Re: Custom Buttons

А есть такая кнопка, после полного видимого заполнения панели закладок ссылками и папками - перемещать "правые" (не помещающиеся в видимую часть панели закладки и папки) элементы в какую-то папку "ИКС"? :)

Отредактировано fokanik (07-09-2015 18:39:18)

Отсутствует

 

№889807-09-2015 20:39:12

hartumov
Участник
 
Группа: Members
Зарегистрирован: 17-11-2013
Сообщений: 136
UA: Firefox 25.0

Re: Custom Buttons

bunda1 благодарю за код. Но этот тултип - не совсем то, что я хотел.

Отсутствует

 

№889907-09-2015 21:23:10

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Seamonkey 2.35

Re: Custom Buttons

Кнопка "Разделитель", в инициализацию: :P

Выделить код

Код:

//Ширину разделителя регулируем количеством пробелов в названии :)

this.setAttribute("context", "");
this.tooltipText=""; //Скрываем всплывающую подсказку

this.onclick = function(e) {
     if ( e.button == 0 ) onTitlebarMaxClick();                     // Свернуть/развернуть - Лкм.
     if ( e.button == 1 ) BrowserFullScreen();                      // Полный экран - Скм.
     if ( e.button == 2 ){                                          // Минимизировать - Пкм.
      if(e.ctrlKey || e.shiftKey) {gShowPopup(this); return;}
       window.minimize();}  
}

Отредактировано fokanik (07-09-2015 22:26:16)

Отсутствует

 

№890007-09-2015 23:04:59

annwein
Участник
 
Группа: Members
Зарегистрирован: 07-09-2015
Сообщений: 2
UA: Firefox 40.0

Re: Custom Buttons

пользовалась кнопкой в виде латинской буквы T для перевода отдельных слов или фразы, особенно часто при переводе отдельных китайских иероглифов, так как  китайской всей фразой переводчики переводят крайне не корректно
установила браузер на другой компьютер но при синхронизации эта кнопка исчезла
скачала дополнение Google Translator for Firefox version 2.1.0.5.1 но кнопка так и не появилась
помогите разобраться

Отсутствует

 

Board footer

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