Mozilla Thunderbird的日历扩展,Lightning,将为不同的日历使用不同的颜色,并使用一个窄的垂直条作为类别颜色:(浅蓝色作为日历颜色,红色作为类别颜色)
我想知道的是我如何改变/“黑客”css样式 – 肯定 – 必须与此相关联,埋在插件目录中的某处,以便在上面的示例中,事件将是完全的红色的.
谁知道如何实现这一目标?
解决方法
这里有两个选择.一个更容易但不可靠,另一个更难:
选项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~ = …]添加一个规则,如果有类别,它会覆盖默认规则.这样,如果没有设置类别,则使用日历颜色,否则使用所需的类别颜色.
玩得开心 :)