diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /comm/calendar/base/src/CalDuration.jsm | |
parent | Initial commit. (diff) | |
download | thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'comm/calendar/base/src/CalDuration.jsm')
-rw-r--r-- | comm/calendar/base/src/CalDuration.jsm | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/comm/calendar/base/src/CalDuration.jsm b/comm/calendar/base/src/CalDuration.jsm new file mode 100644 index 0000000000..cb289bdde4 --- /dev/null +++ b/comm/calendar/base/src/CalDuration.jsm @@ -0,0 +1,106 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +var EXPORTED_SYMBOLS = ["CalDuration"]; + +const { ICAL, unwrap } = ChromeUtils.import("resource:///modules/calendar/Ical.jsm"); + +function CalDuration(innerObject) { + this.innerObject = innerObject || new ICAL.Duration(); + this.wrappedJSObject = this; +} + +CalDuration.prototype = { + QueryInterface: ChromeUtils.generateQI(["calIDuration"]), + classID: Components.ID("{7436f480-c6fc-4085-9655-330b1ee22288}"), + + get icalDuration() { + return this.innerObject; + }, + set icalDuration(val) { + this.innerObject = val; + }, + + isMutable: true, + makeImmutable() { + this.isMutable = false; + }, + clone() { + return new CalDuration(this.innerObject.clone()); + }, + + get isNegative() { + return this.innerObject.isNegative; + }, + set isNegative(val) { + this.innerObject.isNegative = !!val; + }, + + get weeks() { + return this.innerObject.weeks; + }, + set weeks(val) { + this.innerObject.weeks = parseInt(val, 10); + }, + + get days() { + return this.innerObject.days; + }, + set days(val) { + this.innerObject.days = parseInt(val, 10); + }, + + get hours() { + return this.innerObject.hours; + }, + set hours(val) { + this.innerObject.hours = parseInt(val, 10); + }, + + get minutes() { + return this.innerObject.minutes; + }, + set minutes(val) { + this.innerObject.minutes = parseInt(val, 10); + }, + + get seconds() { + return this.innerObject.seconds; + }, + set seconds(val) { + this.innerObject.seconds = parseInt(val, 10); + }, + + get inSeconds() { + return this.innerObject.toSeconds(); + }, + set inSeconds(val) { + this.innerObject.fromSeconds(val); + }, + + addDuration: unwrap(ICAL.Duration, function (val) { + this.innerObject.fromSeconds(this.innerObject.toSeconds() + val.toSeconds()); + }), + + compare: unwrap(ICAL.Duration, function (val) { + return this.innerObject.compare(val); + }), + + reset() { + this.innerObject.reset(); + }, + normalize() { + this.innerObject.normalize(); + }, + toString() { + return this.innerObject.toString(); + }, + + get icalString() { + return this.innerObject.toString(); + }, + set icalString(val) { + this.innerObject = ICAL.Duration.fromString(val); + }, +}; |