微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

css – 如何“破解”Thunderbird Lightning扩展以完全着色类别

(注意:虽然我不完全确定在SuperUser上是否更好地问这个问题,但我猜你可能不得不在xpi / jar文件中使用css设置,这应该使它适合SO.)

Mozilla Thunderbird的日历扩展,Lightning,将为不同的日历使用不同的颜色,并使用一个窄的垂直条作为类别颜色:(浅蓝色作为日历颜色,红色作为类别颜色)

我想知道的是我如何改变/“黑客”css样式 – 肯定 – 必须与此相关联,埋在插件目录中的某处,以便在上面的示例中,事件将是完全的红色的.

谁知道如何实现这一目标?

解决方法

category-overlay.png图像仅仅是一个渐变叠加,以使类别栏看起来正确.

这里有两个选择.一个更容易但不可靠,另一个更难:

选项A:简单

在$profile / chrome /目录中创建userChrome.css.它应包含以下内容

.calendar-color-Box[categories~="mycategory"],.calendar-event-Box-container[categories~="mycategory"] { 
   background-color: #abc123 !important;
}

您需要为要更改颜色的每个类别执行此操作.请注意,在“闪电”选项中更改类别的颜色不会更改您在此处设置的类别颜色.

选项B:更完整

你需要在这里修改lightning.xpi中的一些文件.此解决方案仅需要您在Lightning中设置类别颜色,并且还适用于新添加的类别.请注意,这种方式没有类别的事件是透明的,如果你想要更多,你必须自己做.

>使用zip程序打开lightning.xpi
>输入目录chrome /
>使用zip程序打开包含calendar.jar
>下降到内容/日历/
>打开calendar-multiday-view.xml

>搜索“calendar-color-Box”并将其从class属性删除
>上面几行有一个< content>标签,添加class =“category-color-Box

>打开calendar-month-view.xml和calendar-view-core.xml并执行相同操作
>将文件保存回calendar.jar
>将calendar.jar保存回lightning.xpi
>安装修改后的lightning.xpi

如果你想看一个补丁,这适用于最新的comm-central源:

diff --git a/calendar/base/content/calendar-month-view.xml b/calendar/base/content/calendar-month-view.xml
--- a/calendar/base/content/calendar-month-view.xml
+++ b/calendar/base/content/calendar-month-view.xml
@@ -52,21 +52,20 @@

 <bindings id="calendar-month-view-bindings"
   xmlns="http://www.mozilla.org/xbl"
   xmlns:html="http://www.w3.org/1999/xhtml"
   xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
   xmlns:xbl="http://www.mozilla.org/xbl">

   <binding id="calendar-month-day-Box-item" extends="chrome://calendar/content/calendar-view-core.xml#calendar-editable-item">
-    <content mousethrough="never" tooltip="itemTooltip">
+    <content mousethrough="never" tooltip="itemTooltip" class="category-color-Box">
       <xul:vBox flex="1">
         <xul:hBox>
           <xul:Box anonid="event-container"
-                   class="calendar-color-Box"
                    xbl:inherits="calendar-uri,calendar-id"
                    flex="1">
             <xul:Box class="calendar-event-selection" orient="horizontal" flex="1">
               <xul:stack anonid="eventBox"
                          class="calendar-event-Box-container"
                          xbl:inherits="readonly,flashing,alarm,allday,priority,progress,status,calendar,categories"
                          flex="1">
                 <xul:hBox class="calendar-event-details">
diff --git a/calendar/base/content/calendar-multiday-view.xml b/calendar/base/content/calendar-multiday-view.xml
--- a/calendar/base/content/calendar-multiday-view.xml
+++ b/calendar/base/content/calendar-multiday-view.xml
@@ -2119,20 +2119,19 @@
       ]]></handler>
     </handlers>
   </binding>

   <!--
      -  An individual event Box,to be inserted into a column.
     -->
   <binding id="calendar-event-Box" extends="chrome://calendar/content/calendar-view-core.xml#calendar-editable-item">
-    <content mousethrough="never" tooltip="itemTooltip">
+    <content mousethrough="never" tooltip="itemTooltip" class="category-color-Box">
         <xul:Box xbl:inherits="orient,width,height" flex="1">
           <xul:Box anonid="event-container"
-                   class="calendar-color-Box"
                    xbl:inherits="orient,readonly,categories,calendar-uri,calendar-id"
                    flex="1">
             <xul:Box class="calendar-event-selection" orient="horizontal" flex="1">
               <xul:stack anonid="eventBox"
                          align="stretch"
                          class="calendar-event-Box-container"
                          flex="1"
                          xbl:inherits="context,parentorient=orient,categories">
diff --git a/calendar/base/content/calendar-view-core.xml b/calendar/base/content/calendar-view-core.xml
--- a/calendar/base/content/calendar-view-core.xml
+++ b/calendar/base/content/calendar-view-core.xml
@@ -46,21 +46,21 @@
     xmlns="http://www.mozilla.org/xbl"
     xmlns:html="http://www.w3.org/1999/xhtml"
     xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
     xmlns:xbl="http://www.mozilla.org/xbl">

   <binding id="calendar-editable-item">
     <content mousethrough="never"
              tooltip="itemTooltip"
-             tabindex="-1">
+             tabindex="-1"
+             class="category-color-Box">
       <xul:vBox flex="1">
         <xul:hBox>
           <xul:Box anonid="event-container"
-                   class="calendar-color-Box"
                    xbl:inherits="calendar-uri,calendar-id"
                    flex="1">
             <xul:Box class="calendar-event-selection" orient="horizontal" flex="1">
               <xul:stack anonid="eventBox"
                          class="calendar-event-Box-container"
                          flex="1"
                          xbl:inherits="readonly,categories">
                 <xul:hBox class="calendar-event-details">

选项C:更改Javascript

这将是最好的工作黑客,虽然它需要javascript更改.按选项B中所述打开calendar.jar并查看calendar-views.js,有两个函数:updateStyleSheetForViews()和updateStyleSheetForCategory().我会把这个留给想要自己修补它的人,但想法是为.calendar-color-Box [categories~ = …]添加一个规则,如果有类别,它会覆盖认规则.这样,如果没有设置类别,则使用日历颜色,否则使用所需的类别颜色.

玩得开心 :)

原文地址:https://www.jb51.cc/css/215473.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。