category-overlay.png 图像只是为类别栏提供正确外观的渐变叠加。
这里有两个选择。一个更简单但不那么可靠,另一个更困难:
选项 A:简单
在您的 $profile/chrome/ 目录中创建一个 userChrome.css。它应包含以下内容:
.calendar-color-box[categories~="mycategory"],
.calendar-event-box-container[categories~="mycategory"] {
背景颜色:#abc123 !重要;
}
您需要为要更改颜色的每个类别执行此操作。请注意,更改 Lightning 选项中的类别颜色不会更改您在此处设置的类别颜色。
选项 B:更完整
您需要在此处修改 Lightning.xpi 中的一些文件。此解决方案仅需要您在 Lightning 中设置类别颜色,也适用于新添加的类别。请注意,这样没有类别的事件是透明的,如果你想要更多,你必须自己做。
- 使用 zip 程序打开 Lightning.xpi
- 进入目录 chrome/
- 使用 zip 程序打开包含的 calendar.jar
- 下降到内容/日历/
- 打开 calendar-multiday-view.xml
- 搜索“日历颜色框”并将其从类属性中删除
- 上面几行有一个 <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,flashing,alarm,allday,priority,progress,status,calendar,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,readonly,flashing,alarm,allday,priority,progress,status,calendar,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,flashing,alarm,allday,priority,progress,status,calendar,categories">
<xul:hbox class="calendar-event-details">
选项 C:更改 Javascript
这将是最好的 hack,尽管它需要更改 javascript。按照选项 B 中的说明打开 calendar.jar 并查看 calendar-views.js,有两个功能:updateStyleSheetForViews()
和updateStyleSheetForCategory()
. 我将把它留给想要自己修改它的人,但我的想法是添加一个规则来.calendar-color-box[categories~=...]
覆盖默认规则,以防有类别。这样,如果没有设置类别,则使用日历颜色,否则使用所需的类别颜色。
玩得开心 :)