category-overlay.png画像は、カテゴリバーに適切な外観を与えるための単なるグラデーションオーバーレイです。
ここに2つのオプションがあります。1つは簡単ですが信頼性は低く、もう1つはもう少し難しいです。
オプションA:簡単
$ profile /chrome/ディレクトリにuserChrome.cssを作成します。次のものが含まれている必要があります。
.calendar-color-box [categories〜= "mycategory"]、
.calendar-event-box-container [categories〜= "mycategory"] {
背景色:#abc123!important;
}
色を変更したいカテゴリごとにこれを行う必要があります。Lightningオプションでカテゴリの色を変更しても、ここで設定したカテゴリの色は変更されないことに注意してください。
オプションB:より完全
ここでlightning.xpi内のいくつかのファイルを変更する必要があります。このソリューションでは、Lightningでカテゴリの色を設定するだけで、新しく追加されたカテゴリでも機能します。このように、カテゴリのないイベントは透過的であることに注意してください。もっと必要な場合は、自分で行う必要があります。
- zipプログラムでlightning.xpiを開きます
- ディレクトリchrome/を入力してください
- 含まれているcalendar.jarをzipプログラムで開きます
- content /calendar/に降りる
- calendar-multiday-view.xmlを開きます
- 「calendar-color-box」を検索して、クラス属性から削除します
- その上の数行に<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を変更する
これは、JavaScriptの変更が必要ですが、最も効果的なハックです。オプションBの説明に従ってcalendar.jarを開き、calendar-views.jsをチェックアウトします。2つの関数があります:updateStyleSheetForViews()
とupdateStyleSheetForCategory()
。これは自分でいじくり回したい人に任せますが、.calendar-color-box[categories~=...]
カテゴリがある場合は、デフォルトのルールを上書きするルールを追加することをお勧めします。このように、カテゴリが設定されていない場合はカレンダーの色が使用され、そうでない場合は目的のカテゴリの色が使用されます。
楽しむ :)