From 1a3d616c2d2d2502cf1f04712ccc1eb354775447 Mon Sep 17 00:00:00 2001 From: Simon Kornblith Date: Mon, 24 Jan 2011 10:29:36 +0000 Subject: [PATCH] - add support for Zotero as a separate tab (currently only via loading chrome://zotero/content/tab.xul) - tweak twisty appearance on OS X (highlight-on-click is gone, but this seems preferable to the previous behavior) - simplify chrome.manifest for standalone --- .../content/zotero-platform/mac/overlay.css | 45 ++++++++++++ chrome/content/zotero/browser.js | 7 +- chrome/content/zotero/overlay.js | 11 +-- chrome/content/zotero/overlay.xul | 13 ++-- chrome/content/zotero/standalone.xul | 3 + chrome/content/zotero/tab.xul | 64 ++++++++++++++++++ .../default/zotero/mac/twisty-active-open.png | Bin 0 -> 1046 bytes .../skin/default/zotero/mac/twisty-active.png | Bin 0 -> 1125 bytes .../skin/default/zotero/mac/twisty-open.png | Bin 0 -> 1043 bytes .../zotero/mac/twisty-selected-open.png | Bin 0 -> 1093 bytes .../default/zotero/mac/twisty-selected.png | Bin 0 -> 1104 bytes chrome/skin/default/zotero/mac/twisty.png | Bin 0 -> 1060 bytes 12 files changed, 132 insertions(+), 11 deletions(-) create mode 100644 chrome/content/zotero/tab.xul create mode 100644 chrome/skin/default/zotero/mac/twisty-active-open.png create mode 100644 chrome/skin/default/zotero/mac/twisty-active.png create mode 100644 chrome/skin/default/zotero/mac/twisty-open.png create mode 100644 chrome/skin/default/zotero/mac/twisty-selected-open.png create mode 100644 chrome/skin/default/zotero/mac/twisty-selected.png create mode 100644 chrome/skin/default/zotero/mac/twisty.png diff --git a/chrome/content/zotero-platform/mac/overlay.css b/chrome/content/zotero-platform/mac/overlay.css index a0818694b..9517aa6e7 100644 --- a/chrome/content/zotero-platform/mac/overlay.css +++ b/chrome/content/zotero-platform/mac/overlay.css @@ -396,4 +396,49 @@ #zotero-items-tree treechildren::-moz-tree-cell, #zotero-items-tree treechildren::-moz-tree-column { border-right: 1px solid #d7dad7; +} + +treechildren::-moz-tree-twisty { + -moz-appearance: none; + width: 11px; + height: 11px; + list-style-image: url("chrome://zotero/skin/mac/twisty.png"); + -moz-padding-start: 5px; + -moz-padding-end: 6px; +} + +treechildren::-moz-tree-twisty(open) { + -moz-appearance: none; + width: 11px; + height: 11px; + list-style-image: url("chrome://zotero/skin/mac/twisty-open.png"); + -moz-padding-start: 4px; + -moz-padding-end: 7px; +} + +/* How to get active twisty? +treechildren::-moz-tree-twisty(active) { + -moz-appearance: none; + list-style-image: url("chrome://zotero/skin/mac/twisty-active.png") !important; +} + +treechilren::-moz-tree-twisty(active) { + -moz-appearance: none; + list-style-image: url("chrome://zotero/skin/mac/twisty-active-open.png"); +} +*/ + +:root[active] treechildren::-moz-tree-twisty(selected) { + -moz-appearance: none; + list-style-image: url("chrome://zotero/skin/mac/twisty-selected.png"); +} + +:root[active] treechildren::-moz-tree-twisty(selected, open) { + -moz-appearance: none; + list-style-image: url("chrome://zotero/skin/mac/twisty-selected-open.png"); +} + +treechildren::-moz-tree-image { + height: 16px; + padding-bottom: 1px; } \ No newline at end of file diff --git a/chrome/content/zotero/browser.js b/chrome/content/zotero/browser.js index 814951b94..64066e5be 100644 --- a/chrome/content/zotero/browser.js +++ b/chrome/content/zotero/browser.js @@ -104,7 +104,12 @@ var Zotero_Browser = new function() { * Initialize some variables and prepare event listeners for when chrome is done loading */ function init() { - if (!Zotero || !Zotero.initialized || Zotero.isStandalone) { + try { + var gb = gBrowser; + } catch(e) { + return; + } + if (!Zotero || !Zotero.initialized || !gb) { return; } diff --git a/chrome/content/zotero/overlay.js b/chrome/content/zotero/overlay.js index 1d4a9cb80..3e6354326 100644 --- a/chrome/content/zotero/overlay.js +++ b/chrome/content/zotero/overlay.js @@ -90,6 +90,7 @@ var ZoteroPane = new function() var self = this; var _loaded = false; + var _isStandaloneOrTab = false; var titlebarcolorState, toolbarCollapseState, titleState; // Also needs to be changed in collectionTreeView.js @@ -100,9 +101,11 @@ var ZoteroPane = new function() */ function onLoad() { + _isStandaloneOrTab = Zotero.isStandalone || document.getElementById('zotero-tab'); + if (!Zotero) return; if (!Zotero.initialized) { - if(Zotero.isStandalone) { + if(_isStandaloneOrTab) { _loaded = true; this.toggleDisplay(); } @@ -229,7 +232,7 @@ var ZoteroPane = new function() document.getElementById('zotero-tb-actions-showDuplicates').hidden = false; } - if(Zotero.isStandalone) { + if(_isStandaloneOrTab) { this.toggleDisplay(true); this.fullScreen(true); } @@ -350,7 +353,7 @@ var ZoteroPane = new function() var isCollapsed = true; } - if (isHidden || isCollapsed || Zotero.isStandalone) { + if (isHidden || isCollapsed || _isStandaloneOrTab) { var makeVisible = true; } @@ -510,7 +513,7 @@ var ZoteroPane = new function() */ function _setFullWindowMode(set) { // hide or show navigation toolbars - if(Zotero.isStandalone) return; + if(_isStandaloneOrTab) return; var toolbox = getNavToolbox(); if(set) { diff --git a/chrome/content/zotero/overlay.xul b/chrome/content/zotero/overlay.xul index 881d62f80..ad66f1113 100644 --- a/chrome/content/zotero/overlay.xul +++ b/chrome/content/zotero/overlay.xul @@ -478,11 +478,11 @@ Zotero.getString('errorReport.reportErrors')); } + var fx36Icon = document.getElementById('zotero-status-bar-icon'); + var addonBar = document.getElementById('addon-bar'); + // Check whether standalone is running, and return if so - var appInfo = Components.classes["@mozilla.org/xre/app-info;1"] - .getService(Components.interfaces.nsIXULAppInfo); - var isStandalone = appInfo.ID === "zotero@chnm.gmu.edu"; - if(isStandalone) return; + if(!addonBar && !fx36Icon) return; // THE FOLLOWING CODE IS NOT APPLIED IN STANDALONE // (It relates almost entirely to the Zotero icon) @@ -491,10 +491,12 @@ .getService(Components.interfaces.nsIPrefService) .getBranch('extensions.zotero.').getIntPref('statusBarIcon'); + var appInfo = Components.classes["@mozilla.org/xre/app-info;1"] + .getService(Components.interfaces.nsIXULAppInfo); var isFx36 = appInfo.platformVersion.indexOf('1.9') === 0; // Status bar in Fx3.6 if (isFx36) { - var icon = document.getElementById('zotero-status-bar-icon'); + var icon = fx36Icon; } // In >=Fx4, add to add-on bar else { @@ -502,7 +504,6 @@ icon.id = 'zotero-addon-bar-icon'; icon.setAttribute('oncommand', 'ZoteroPane.toggleDisplay()'); icon.setAttribute('hidden', true); - var addonBar = document.getElementById('addon-bar'); addonBar.appendChild(icon); if (addonBar.collapsed) { // If no Zotero or icon isn't set to hidden, show add-on bar diff --git a/chrome/content/zotero/standalone.xul b/chrome/content/zotero/standalone.xul index 58cab30e1..b5df77622 100644 --- a/chrome/content/zotero/standalone.xul +++ b/chrome/content/zotero/standalone.xul @@ -1,8 +1,11 @@ + + + diff --git a/chrome/content/zotero/tab.xul b/chrome/content/zotero/tab.xul new file mode 100644 index 000000000..ea343bf32 --- /dev/null +++ b/chrome/content/zotero/tab.xul @@ -0,0 +1,64 @@ + + + + + + + + + +%globalDTD; + +%charsetDTD; + +%textcontextDTD; + +%standaloneDTD; + +%brandDTD; +]> + + + + + + + + + + + + + + + + + + + diff --git a/chrome/skin/default/zotero/mac/twisty-active-open.png b/chrome/skin/default/zotero/mac/twisty-active-open.png new file mode 100644 index 0000000000000000000000000000000000000000..c5b13ed047280372776f8fbfdaa8a53b1f4b59c0 GIT binary patch literal 1046 zcmaJ=Pe>F|93Ig&)1;ul41~u>hoaq?*-^J0+?L&)U0rZwS(jQmH9PZkC!KlI%+pj7%TZAR)Ef8YzhpM z%jG;d-h-?`hV%RVj)vFkCJ47ZW?(t*Hte>tf(UKJ(oC!&12~Fu294kVO(NY(K{qS1 zhFvNXDHxNNO@{NZPD*8f+%>lL((lW;%Ye+t{FF%vRLXrmEJA&nbob6lB1#DX$L zRtllvaupL1&^kw0?)VeJQrrUSlG{T zQ8pZndZXc3_*^6ui$p`AGFL>(hz<>0=BoQ#t}53V1>Gc`MQCZGP>oqg2gQ^Ht!gZx zXjQ!uSFIXLC{~rrkYE_6v41tXd_|_mIabD&7?r_?2AOt?jPAu_pVd0aHU7v?7#lb|>x9?#{Y9HEBVp zrG*L}JSZN#>p}D;9#mAQ)}r9W2k6C0u2oPJw6=9NZK{V-!G+zKfA;&n|1tl6A=B2n zv3^@UMNu15N0lsD*OPa{y0zqc>(q_yWZ8<<4&06kxTt%ON|-1QLCV&vx8=m?&-WhEz%t|X$!MBOyE5#t zjt+XTeXuQO4E7o^lWsW-noAN9up!n#$?kJ}sT8Lxx)Rw3$1Dvh5ZoK57lP_YXMl`6 z2%-!ZGPouVH1P}{j)>c-!sU46n0n1q;@Mi3V9}W+OVRrjWc1t6!6_w9lRu1UnUZ!;)OcQuaH7C99pp*+5n1KANLUD~N+Oo5YAnZ< zV*;;6qB5@~2~*{gsw${SV#osiQFfu401nwp1fP^qtEE#qHP{+0Iv*ZiNFu_PEaXpX;{ zrFujg7s7i%_k z)ofuq?_XNIZ*G(6tp51x+|2j5a$@ zYinx(%+_5yJvTcu@o0R!JTWry;NNdZfes|~Qwb9WvQ-}5py)JgC q4Gj%1uZB+V9ev)ZWyTs-Q8jC+v1i&;%j2iR!QiLVHsyA*Yxp-fNO7P5 literal 0 HcmV?d00001 diff --git a/chrome/skin/default/zotero/mac/twisty-open.png b/chrome/skin/default/zotero/mac/twisty-open.png new file mode 100644 index 0000000000000000000000000000000000000000..ec9b5ef05c8b0ff2ab17d15b399148b6fcfa0388 GIT binary patch literal 1043 zcmah|O;6N77;ZuWh@yBfh|y$H3>V$)wB65!6?V5>SVIX}*0}K^-FB93pdYq_TTl}q zD)HjM8~y;oMGqc~i3bjb5DkeQ(1SOLM-n)o7ZIE;yI>5#CexXB@;vYRydU#qXt1xf z(T)mjKy1uvEaqRtZ-W2T@7QDk6|Ilu?vJiZ*%YJ?f^Y z23pS-a6ujrRLck|J|^fHHepj#caLW)>KMYHh(>iYL2tfYqJgd@=$l~~%61x+_5LXb z4Nnc`)u}NxuF*Z$K({9l2L{3l@QiWO6}$vp^(&CGf6dUK3c+IudS6sQ9s+60K_DE2 z0To6dh_FGH4@INVtAK+nWFW_|T!4)VJSRX1Y9CFaIa*1`iJ4j~VkPJ@#%tN9F_E=)LAE!+8rOr2NE@cXsHth zGI3T+(Bvkl>6#$%$yhR-jIxcNwIhm*11{J#fqt-I#)mBMvmnQ zX$L9Ta`KinUhm#e*}|4vwrr3d4g*!AJT!x5Y{Ko#(==v3z9{+eSw!}CXd}NYo zcgR>TiX z&vku#c=`3&xm#~yuh#E_-I;~0ru@Yl?5Bn^GxxpAd; zA<}kRmgUb%F;#fFajJ1q6xOD(_GpB9*1N)&R=1YBPPdIvYsKr8t{3eO{AZe#2E~`D Gk=Z{>nos`# literal 0 HcmV?d00001 diff --git a/chrome/skin/default/zotero/mac/twisty-selected-open.png b/chrome/skin/default/zotero/mac/twisty-selected-open.png new file mode 100644 index 0000000000000000000000000000000000000000..484aa8f6252de5832105c14ceadd3e2e66f51d84 GIT binary patch literal 1093 zcmbVLJ8aWX6m>zWN=Z<+s!*YayOQ|X`8Y8RRs0D})s!d=BH~lkwO<;m^{4g=NxDE$ zJ5;C(6H;M9to%g9z|a8}Ht0Zs8L2R!A_mxi=X^?siUCXZd-wUCbI-l+-qrlXxnS?{ zUW%fE*-^Pb)}!P-($h`8pY(SjvJ7CQgeUDXuBk4f(z-o^K-N@eQ30uXW8pO#rl`YZ zqgcYF+_<3GW?1!o!gbRjXo?yhsXMARhcK8yvxb$TcVBGMz|d3l#aIsJ90^s7(M10A+#W^jh(<5iWa9tn-Cc-MHoAZ_@)KhemS0H=;n4v+_1<$4EmZ(xL4+rX7n|DY}BOBQQ*@Rtwi6 zVcVT$*km&4b8uXUc!a!$h1Gh<@`gGLGV(OnaIj%pz-Lrv>?%&tL}@Dp)5+!bh%K*O zC{i+}t~v}GhKykwQurM0oB8r?&iXD!Fuu_s^m1rEY z8Id3rC@Ko4h{TZ68A(Z}JJ_t{Vb#)5C$2%_wy?3xKe2-3A{Enj)s#D`o0?$0}+5Gj%@a$+&SRW&Q8i}jDoYj1-$KtR4czBAod zb_Tn>{%)|)b3M8dyU=xNsxY=YbxAMx<-R?7`DNXkdhqrB)4@DHL_fawIs5&VxAHvj zetWZj>}TP`_ST1yD~+qao-An_&z4t5cl7D4M$h^{;Mm&lmC&6tC+{8#P{CJAYd>yp QzVQb;t4zob#p#=W05gVNfB*mh literal 0 HcmV?d00001 diff --git a/chrome/skin/default/zotero/mac/twisty-selected.png b/chrome/skin/default/zotero/mac/twisty-selected.png new file mode 100644 index 0000000000000000000000000000000000000000..b7d58a4ee171eb985716de5cd47f206909011f7c GIT binary patch literal 1104 zcmbVLO-$2J9B+ajFd^!J1k{*P)JSyeYdhH1Fk$_IsY5cB2nQ2O`^Fk*Uu_?5kQf#@ z5E3|hB^>mmk(<#2m@FnFdM94=i19$wiy9Mr9UF2W9Bk6QkN$qY|M%kX&_GM*T!^Bm zmh_;KC2JFTPc@z(-{)h`&Xc7btD|@X<#AE>AeA!FIHc3IJ^`~(H)kGf!d{AM$XmHl zJes*J8pw|50VYziUBafQ-oBEn8neWkuaIQ8+30;Bmy?XI$g4-9A7LYnX0Zx_Q5sF&{YVYOfq{;jb?^v8F`TIj)1TM zdH~(SMK~cEi^Zv+$oAhob%5j0@Q;^wG3ukb2}h>tvF;*EI6vq(|& zDFqqRHgs@WNiyV5#I#INi^nvMi$y_<2R(6)gddev4nzfBP?c0ds%sp^6@;iDa4Ch; zqy)#QKvGp+l{6_Xr!-kjrRv=yPq$B=d9t>)_JwM_aJ=c|O4n9nj;TGrQ}|PEM=t&gModx-MiO(m3359g>x(gH(cc?BJm;K~g~-I+T6bn{8Jkq6Xf)_ka9;|Nrm*@h-Qw z9jz$aTSie-MWQv9BKuad%1bws|J2FJYO+;fr3-hWKAceceN| zVIxJAFh;rycO{QY8Z!N=hw*1ko3JUWF_N`aZ4hF*7xo*L%zT)A#L$K=GbchxkhG(4 zz-S$DVCP6%S{oVE!a5T2NMfCDVxS&sK{f)wB-0O-QUkZ6wHC#7QXLM&p*%mBu= z#Il)8#-9oJk<-s|;c(dV!SgSP= zw3Ep-$Cg_t6e$^-Rc)5@1J*RXyz*!lr{KDbzoOmrunpN1bkUHbk$&{m7RjV`{|@8< zi5e+}v>_8(I1!T>a^u$xT~b6&5keu6i?;+hP5~kx1Y(d2ffhv(!_A<`O;|2gEe#gA z#yVH{Cs&F(P{qheBXqjhz4ifwkvo8FI@%ecld5J|p6!*kpcFdBS*XVyWYYQCNX8%W zJ?(K(h;y6}1Og8lM2@s97*#kB4DbOZ)*NnO3S9j!dH~Who}QO) lIyyR1Gw