Beiträge von harff182
-
-
-
-
Für Deine Hilfen, 2002Andreas
Ich finde es erstaunlich und klasse, daß hier im CFF so abgedrehte Ideen, wie ich sie manchmal hab, verwirklicht werden können, auch wenn meinereiner überall abguckt, zusammenklaut und vor lauter Rumstümperei irgendwann nur noch kleinlaut um Hilfe bitten kann.
Chapeau
und guuuts nächtle...
-
-
-
-
-
-
Aber bittebitte nicht über meine ganzen Versuche/kommentare lachen:
Code
Alles anzeigen// 31_Externals-button-bar.uc.js // // ==UserScript== // @name External-Aplication.uc.js // @namespace ithinc#mozine.cn // @description External Applications // @include main // @compatibility Firefox 3.5.x // @author ithinc // @version 20091212.0.0.1 Initial release // @version 20170911.0.0.2 Fix by aborix // ==/UserScript== // // Herkunft: // https://www.camp-firefox.de/forum/thema/126871 // // Sinn und Zweck diesmal: Zusatzleiste für App-Buttons im FullScreen-FF // ============ // 211203: erste versuche: Buttons immer mit Text :o => wo unnötig = '' // 211204: CSS-Regeln, u.a. Separatoren-Aussehen ersma in userChrome.css abgelegt. // 211205: 2. mögliche Position gefunden: insertafter: 'browser' = gaaanz unten :) // Tests zeigen, daß vertikal irgendwie möglich ist "orientation:" eingebaut // Heureka :-)= var gExternalApplications = { type: 'button', // 211205: eingebaut, getestet, funktioniert // horientation: 'vertical', orientation: 'horizontal', // die hier machten nicht das, was ich erwartete //////////////////////////////////// // insertafter: 'navbar', //klappt nicht // insertafter: 'main-window', //klappt nicht // insertafter: 'toolbar-menubar', // unter menü-bar // insertafter: 'titlebar', // auch unter menü-bar // insertafter: 'TabsToolbar', // auch unter menü-bar // insertafter: 'PersonalToolbar', // unter Lesezeichen-bar // insertafter: 'TabsToolbar-customization-target', // hinten _IN_ TabsToolbar // insertafter: 'navigator-toolbox', // hinter menü-bar ////////////////////////////////////////////////////////////////////////////////////// insertafter: 'toolbar-menubar', // unter menü-bar // insertafter: 'browser', // gaaanz unten :) apps: [ {name: 'Calc', path: 'C:/WINDOWS/system32/calc.exe'}, {name: 'Shell', path: 'C:/WINDOWS/system32/cmd.exe'}, {name: 'Unreal Commander', path: 'D:/___Stickware/util/uc/Uncom.exe'}, {name: 'separator'}, {name: 'Notepad++', path: 'D:/___Stickware/office/NPP/notepad++.exe'}, {name: 'OO-Writer', path: 'D:/___Stickware/office/OpenOffice/OpenOfficeWriterPortable.exe'}, {name: 'OO-Calc', path: 'D:/___Stickware/office/OpenOffice/OpenOfficeCalcPortable.exe'}, {name: 'separator'}, {name: 'Photofiltre', path: 'D:/___Stickware/gfx/PhotoFiltre/PhotoFiltre.exe'}, {name: 'separator'}, {name: 'AVC-Converter', path: 'C:/Program Files (x86)/Anvsoft/Any Video Converter/AVCFree.exe'}, {name: 'VDub', path: 'D:/___Stickware/av/vdub11005_64/Veedub64.exe'}, {name: 'TSDoctor', path: 'C:/Program Files (x86)/Cypheros/TSDoctor2/TSDoctor.exe'}, {name: 'separator'}, {name: 'Limical', path: 'D:/05_E-Smoke/02_panschen/Limical10.exe'}, {name: 'SnapTimert', path: 'D:/___Stickware/util/SnapTimer/SnapTimer.exe'}, {name: '7Zip', path: 'D:/___Stickware/util/7-Zip/7-ZipPortable.exe'}, {name: 'separator'}, {name: 'Solitair', path: 'C:/Program Files (x86)/123 Free Solitaire/123FreeSolitaire.exe'}, {name: 'Click', path: 'D:/___Stickware/fun/ClickOmania/Click.exe'}, {name: 'separator'}, {name: 'separator'}, {name: 'separator'}, {name: 'this bar', path: 'D:/___Stickware/comm/firefoxportable/Data/profile/chrome/my_js/31_Externals-button-bar.uc.js'}, ], init: function() { for (var i=0; i<this.apps.length; i++) { if (!this.apps[i].path) continue; if (!this.apps[i].args) this.apps[i].args = []; this.apps[i].path = this.apps[i].path.replace(/\//g, '\\'); var ffdir = Cc['@mozilla.org/file/directory_service;1'].getService(Ci.nsIProperties).get('CurProcD', Ci.nsIFile).path; if (/^(\\)/.test(this.apps[i].path)) { this.apps[i].path = ffdir.substr(0,2) + this.apps[i].path; } else if (/^(\.)/.test(this.apps[i].path)) { this.apps[i].path = ffdir + '\\' + this.apps[i].path; } } if (this.type == 'menu') { var mainmenu = document.getElementById('main-menubar'); // das war das Original var menu = mainmenu.appendChild(document.createXULElement('menu')); menu.setAttribute('label', 'Start'); // Menu = "Start" menu.setAttribute('accesskey', 't'); menu.setAttribute('id', 'start-menu'); var menupopup = menu.appendChild(document.createXULElement('menupopup')); for (var i=0; i<this.apps.length; i++) { menupopup.appendChild(this.createMenuitem(this.apps[i])); } } else { var menubarItems = document.getElementById(this.insertafter); var toolbaritem = menubarItems.parentNode.insertBefore(document.createXULElement('toolbaritem'), menubarItems.nextSibling); toolbaritem.id = 'ExtAppButtons'; toolbaritem.setAttribute("class", "chromeclass-toolbar-additional"); // toolbaritem.setAttribute("orient", "horizontal"); //original // 211205: this.orientation eingebaut toolbaritem.setAttribute("orient", this.orientation); for (var i=0; i<this.apps.length; i++) { toolbaritem.appendChild(this.createButton(this.apps[i])); } } }, exec: function(path, args) { for (var i=0; i<args.length; i++) { args[i] = args[i].replace(/%u/g, gBrowser.currentURI.spec); } var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile); file.initWithPath(path); if (!file.exists()) { throw 'File Not Found: ' + path; } if (!file.isExecutable() || args.length==0) { file.launch(); } else { var process = Cc['@mozilla.org/process/util;1'].getService(Ci.nsIProcess); process.init(file); process.run(false, args, args.length); } }, createButton: function(app) { if (app.name == 'separator') // hier könnte ich einen eigenen basteln, aber (noch) keine Ahnung, wie.... return document.createXULElement('toolbarseparator'); var item = document.createXULElement('toolbarbutton'); item.setAttribute('class', 'toolbarbutton-1 chromeclass-toolbar-additional'); // item.setAttribute('label', app.name); //überflüssig, Tooltips reichen item.setAttribute('image', 'moz-icon:file:///' + app.path + '?size=16'); item.setAttribute('oncommand', 'gExternalApplications.exec(this.path, this.args);'); item.setAttribute('tooltiptext', app.name); item.path = app.path; item.args = app.args; return item; }, createMenuitem: function(app) { if (app.name == 'separator') return document.createXULElement('menuseparator'); var item = document.createXULElement('menuitem'); item.setAttribute('class', 'menuitem-iconic'); item.setAttribute('label', app.name); item.setAttribute('image', 'moz-icon:file:///' + app.path + '?size=16'); item.setAttribute('oncommand', 'gExternalApplications.exec(this.path, this.args);'); item.path = app.path; item.args = app.args; return item; } }; gExternalApplications.init();
-
Sind zwar noch 2 Sachen, die mir nicht so ganz gefallen
Hab heute mal versucht, per css diese 2 Sachen hinzubiegen:
Die Pfeile zeigen die toolbarseparatoren , die ich nicht waagerecht und dicker bekomme.
Desweiteren schaffe ich es (mal wieder) nicht, beim hovern zu unterbinden, daß die Default-Farbe (irgendso ein grau) auftaucht.
Mein aktueller Code:
CSS
Alles anzeigen/*Testspielerei, solange ich keine Leiste mit Start-Exe-Buttons einsetzen kann */ #browser{ margin-left: 40px !important; } /*was für die ganze Leiste gelten soll*/ #ExtAppButtons { background: greenyellow !important;/*lightblue,gold,greenyellow,yellow,chartreuse */ position: absolute !important; display: block !important; bottom: -580px !important; /*damit es weit genug runterrutscht*/ height: 580px !important; /*damit der Rahmen um alle Icons geht*/ width: 35px !important; border: 2px solid black !important; border-radius: 5px !important; margin-left: 2px !important; padding: 5px !important; } /*was für die Buttons gelten soll*/ #ExtAppButtons .toolbarbutton-1 > .toolbarbutton-badge-stack , #ExtAppButtons .toolbarbutton-1 > image{ height: 20px !important; width: 20px !important; } /*und wie bekomme ich jetzt die hover-farbe weg? */ #ExtAppButtons .toolbarbutton-1, #ExtAppButtons .toolbarbutton-1 > .toolbarbutton-badge-stack:hover { background: greenyellow !important; } /* Seperatoren anpassen - neuer Versuch - tut auch fast nix */ #ExtAppButtons > toolbarseparator { display: block !important; padding: 4px !important; /* padding-top: 5px !important; */ /* padding-bottom: 5px !important; */ /* padding-left: 13px !important; */ /* padding-right: 13px !important; */ margin: 4px !important; /* margin-left: 6px !important; */ /* margin-right: 6px !important; */ max-width: 15px !important; max-width: 15px !important; } /*Seperatoren anpassen V3 - klappt auch nicht */ /* #ExtAppButtons > toolbarseparator { display: block !important; content: '\0333' !important; color: black !important; } */
Vielleicht hat ja einer von unseren CSS-Gurus 1-2 helfende Ideen
-
-
Hab heute 3 kleine Schritte nach vorne gemacht:
Als 1. hab ich eine zweite "funktionierende" Positionierung gefunden: insertafter: 'browser'
Dann hab ich mit "vertical" statt "horizontal" etwas rumgespielt und da tut sich was.
Als 2. hab ich dann am Anfang hinter type: 'button', noch orientation: 'horizontal', bzw orientation: 'vertical', eingeführt und hier eingesetzt:
JavaScript
Alles anzeigenelse { var menubarItems = document.getElementById(this.insertafter); var toolbaritem = menubarItems.parentNode.insertBefore(document.createXULElement('toolbaritem'), menubarItems.nextSibling); toolbaritem.id = 'ExtAppButtons'; toolbaritem.setAttribute("class", "chromeclass-toolbar-additional"); // toolbaritem.setAttribute("orient", "horizontal"); //original // 211205: this.orientation eingebaut toolbaritem.setAttribute("orient", this.orientation); for (var i=0; i<this.apps.length; i++) { toolbaritem.appendChild(this.createButton(this.apps[i])); } }
Funktionuckelt soweit momentan möglich.
Als drittes glaube ich im Code zur vertikalbar.uc.js abgucken zu können wie ich insertafter oder insertbefore, also links/rechts neben 'browser' eventuell hinbekommen könnte.
Evtl. kann dir ja unser Fachmann aborix dabei behilflich sein
Darauf hatte ich mit meinem "S:...."-Thread ja im Stillen gehofft
, aber unabhängig davon versuch ich mich weiter versuchsweise durch vorhandenen Code zu beißen... ...und vielleich 'n bischen dazuzulernen...
-
-
-
Aber, warum nimmst du ein Script für eine horizontale Leiste, wenn du eine vertikale Leiste möchtest?
Weil eine vertikale Ausrichtung der Buttons nach meinem Verstandnis in Zeile 93 vorgesehen ist:
toolbaritem.setAttribute("orient", "horizontal");
Und zwar indem man "horizontal" durch "vertical" ersetzt.
Kann latürnich sein, daß ich das fehlinterpretiere
Hier ein Script für eine vertikale Leiste:
Vielleicht bin ich wieder zudummzumzum, aber ich sehe keine Stelle, wo ich zu startende Programme eintragen könnte .
Denn grade das geht mit External-Aplication.uc.js und ist das was ich will.
-
Ich bastel seit gestern an meinem Full-Scrren-FF herum.
Meine Tabstoolbar hab ich hiermit nach unten verfrachtet:
CSS
Alles anzeigen/* 01_tabs_unten_andy_neu_89.css */ /* Tableiste unter Urlbar(Navigationsleiste verschieben und anpassen */ /* 210609: FF89_neu */ /* 210612: mit andys neuem angepinnten ausgetauscht https://www.camp-firefox.de/forum/thema/132802 */ /* 210613: New-Tab-Button rausgenommen - eigenes .css */ /* 211106: überarbeitet von 2002Andreas */ /* Note: Abstand der Tableiste nach oben: Zeile 26 */ #TabsToolbar { position: absolute; display: block; bottom: 0; width: 100vw; background-clip: padding-box; color: var(--toolbar-color); } #tabbrowser-tabs { width: 100vw; } #navigator-toolbox { position: relative; padding-bottom: calc( var(--tab-min-height) + 6px ); /* Abstand gefällt mir besser als die 8 px ;) */ } #main-window[tabsintitlebar][sizemode="maximized"]:not([inDOMFullscreen="true"]) #titlebar { height: 36px; /* kein Plan, wofür das gut is :(*/ } .titlebar-buttonbox-container { position: fixed; right: 0; visibility: visible; display: block; } #TabsToolbar .titlebar-buttonbox-container, #TabsToolbar #window-controls { display: none; }
Als nächstes habe ich dann mit External-Aplication.uc.js eine zusätzliche horizontale Button-Leiste erzeugt:
JavaScript
Alles anzeigen// 31_Externals-button-bar.uc.js // ==UserScript== // @name External-Aplication.uc.js // @namespace ithinc#mozine.cn // @description External Applications // @include main // @compatibility Firefox 3.5.x // @author ithinc // @version 20091212.0.0.1 Initial release // @version 20170911.0.0.2 Fix by aborix // ==/UserScript== // // Herkunft: // https://www.camp-firefox.de/forum/thema/126871 // // Sinn und Zweck hier: Zusatzleiste für App-Buttons im FullScreen-FF // ============ // 211203: erste versuche: Buttons immer mit Text :o => wo unnötig = '' // 211204: CSS-Regeln, u.a. Separatoren-Aussehen ersma in userChrome.css abgelegt. var gExternalApplications = { type: 'button', // insertbefore: 'toolbar-menubar', //klappt nicht insertafter: 'toolbar-menubar', // unter menü-bar // insertafter: 'titlebar', // auch unter menü-bar // insertafter: 'TabsToolbar', // auch unter menü-bar // insertafter: 'navbar', //klappt nicht // insertafter: 'PersonalToolbar', // unter Lesezeichen-Bereich // insertafter: 'TabsToolbar-customization-target', // hinten in TabsToolbar // insertafter: 'main-window', //klappt nich apps: [ {name: '', path: 'C:/WINDOWS/system32/calc.exe'}, {name: '', path: 'C:/WINDOWS/system32/cmd.exe'}, {name: '', path: 'D:/___Stickware/util/uc/Uncom.exe'}, {name: 'separator'}, {name: '', path: 'D:/___Stickware/office/NPP/notepad++.exe'}, {name: '', path: 'D:/___Stickware/office/OpenOffice/OpenOfficeWriterPortable.exe'}, {name: '', path: 'D:/___Stickware/office/OpenOffice/OpenOfficeCalcPortable.exe'}, {name: '', path: 'D:/___Stickware/gfx/PhotoFiltre/PhotoFiltre.exe'}, {name: 'separator'}, {name: '', path: 'C:/Program Files (x86)/Anvsoft/Any Video Converter/AVCFree.exe'}, {name: '', path: 'D:/___Stickware/av/vdub11005_64/Veedub64.exe'}, {name: '', path: 'C:/Program Files (x86)/Cypheros/TSDoctor2/TSDoctor.exe'}, {name: 'separator'}, {name: '', path: 'D:/05_E-Smoke/02_panschen/Limical10.exe'}, {name: '', path: 'D:/___Stickware/util/SnapTimer/SnapTimer.exe'}, {name: '', path: 'D:/___Stickware/util/7-Zip/7-ZipPortable.exe'}, {name: 'separator'}, {name: '', path: 'C:/Program Files (x86)/123 Free Solitaire/123FreeSolitaire.exe'}, {name: '', path: 'D:/___Stickware/fun/ClickOmania/Click.exe'}, {name: 'separator'}, {name: 'separator'}, {name: 'Leisten', path: 'D:/___Stickware/comm/FirefoxPortable_wissen/FF_LeistenBezeichnungen in Firefox.png'}, {name: 'shortcuts', path: 'D:/___Stickware/comm/firefoxportable_wissen/Tastenkombinationen Hilfe zu Firefox.URL'}, {name: 'Farben', path: 'D:/___Stickware/comm/firefoxportable_wissen/html-farben.url'}, {name: 'separator'}, {name: 'separator'}, {name: 'this bar', path: 'D:/___Stickware/comm/firefoxportable/Data/profile/chrome/my_js/31_Externals-button-bar.uc.js'}, ], init: function() { for (var i=0; i<this.apps.length; i++) { if (!this.apps[i].path) continue; if (!this.apps[i].args) this.apps[i].args = []; this.apps[i].path = this.apps[i].path.replace(/\//g, '\\'); var ffdir = Cc['@mozilla.org/file/directory_service;1'].getService(Ci.nsIProperties).get('CurProcD', Ci.nsIFile).path; if (/^(\\)/.test(this.apps[i].path)) { this.apps[i].path = ffdir.substr(0,2) + this.apps[i].path; } else if (/^(\.)/.test(this.apps[i].path)) { this.apps[i].path = ffdir + '\\' + this.apps[i].path; } } if (this.type == 'menu') { var mainmenu = document.getElementById('main-menubar'); // das war das Original var menu = mainmenu.appendChild(document.createXULElement('menu')); menu.setAttribute('label', 'Start'); // Menu = "Start" menu.setAttribute('accesskey', 't'); menu.setAttribute('id', 'start-menu'); var menupopup = menu.appendChild(document.createXULElement('menupopup')); for (var i=0; i<this.apps.length; i++) { menupopup.appendChild(this.createMenuitem(this.apps[i])); } } else { var menubarItems = document.getElementById(this.insertafter); var toolbaritem = menubarItems.parentNode.insertBefore(document.createXULElement('toolbaritem'), menubarItems.nextSibling); toolbaritem.id = 'ExtAppButtons'; toolbaritem.setAttribute("class", "chromeclass-toolbar-additional"); toolbaritem.setAttribute("orient", "horizontal"); for (var i=0; i<this.apps.length; i++) { toolbaritem.appendChild(this.createButton(this.apps[i])); } } }, exec: function(path, args) { for (var i=0; i<args.length; i++) { args[i] = args[i].replace(/%u/g, gBrowser.currentURI.spec); } var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile); file.initWithPath(path); if (!file.exists()) { throw 'File Not Found: ' + path; } if (!file.isExecutable() || args.length==0) { file.launch(); } else { var process = Cc['@mozilla.org/process/util;1'].getService(Ci.nsIProcess); process.init(file); process.run(false, args, args.length); } }, createButton: function(app) { if (app.name == 'separator') return document.createXULElement('toolbarseparator'); var item = document.createXULElement('toolbarbutton'); item.setAttribute('class', 'toolbarbutton-1 chromeclass-toolbar-additional'); item.setAttribute('label', app.name); item.setAttribute('image', 'moz-icon:file:///' + app.path + '?size=16'); item.setAttribute('oncommand', 'gExternalApplications.exec(this.path, this.args);'); // item.setAttribute('tooltiptext', app.name); item.path = app.path; item.args = app.args; return item; }, createMenuitem: function(app) { if (app.name == 'separator') return document.createXULElement('menuseparator'); var item = document.createXULElement('menuitem'); item.setAttribute('class', 'menuitem-iconic'); item.setAttribute('label', app.name); item.setAttribute('image', 'moz-icon:file:///' + app.path + '?size=16'); item.setAttribute('oncommand', 'gExternalApplications.exec(this.path, this.args);'); item.path = app.path; item.args = app.args; return item; } }; gExternalApplications.init();
Nun hätte ich gerne die Leiste unter der TabsToolbar vertikal ganz links neben dem "Inhaltsbereich", also da wo der Web-Seiten-Inhalt dargestellt wird.
Ich hoffe, ich hab mich verständlich genug ausgedrückt.
Irgendwelche Vorschläge, die mich zum Ziel führen könnten?
-
Huch, wat simpel. Mir schwirrte da was durchn Kopf mit AFAIR "appearence" oder so..
Danke, da hab ich ja wieder was zum Rumspielen
-
Huhu...
(Wie) Ist es möglich, um eine einzelne komplette Leiste, also navbar, toolbar-menubar, personaltoolbar, fp-statusbar-2 oder was hier sonst noch rumliegt, einen Rahmen (=border) zu setzen?
-
'nabend...
Kennt jemand ein Script, das einen Button erzeugt über den ich ein einzelnes, beliebiges, e
xternes Programm starten kann?Das Icon des Programms muß nicht unbedingt übernommen werden, es kann auch vorgebbar (...chrome/icons/...) sein.
Der Programmname neben dem Icon/Button ist nicht unbedingt notwendig.
Als Ziel sollte eine eine beliebige ...bar möglich sein, z.B. die Verticalbar, die fp-statusbar-2 oder was sonst noch vorhanden wäre.
External-Aplication.uc.js ist mir bekannt und wird hier auch in der Menü-Bar eingesetzt; ich hätte nur gern was schnuckeliges kleines für einige Buttons, die ich an exponierter Stelle platzieren kann/will.
Is nix eiliges/wichtiges, nur so eine Idee, die mir heute kam