/* -*- Mode: idl; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is * Oracle Corporation * Portions created by the Initial Developer are Copyright (C) 2004 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Vladimir Vukicevic * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #include "nsISupports.idl" interface calIItemBase; interface calIDateTime; interface calIItemOccurrence; [scriptable, uuid(a6a458cf-052c-45d1-bee7-b700ad21109a)] interface calIRecurrenceInfo : nsISupports { // returns true if this thing is able to be modified; // if the item is not mutable, attempts to modify // any data will throw CAL_ERROR_ITEM_IS_IMMUTABLE readonly attribute boolean isMutable; // makes this item immutable void makeImmutable(); // clone always returns a mutable event calIRecurrenceInfo clone(); // // recurrence // const long CAL_RECUR_INVALID = 0; const long CAL_RECUR_SECONDLY = 1; const long CAL_RECUR_MINUTELY = 2; const long CAL_RECUR_HOURLY = 3; const long CAL_RECUR_DAILY = 4; const long CAL_RECUR_WEEKLY = 5; const long CAL_RECUR_MONTHLY = 6; const long CAL_RECUR_YEARLY = 7; attribute long recurType; // setting either of these attributes calculates the other. // recurCount of -1 or null recurEnd means "forever" attribute long recurCount; attribute calIDateTime recurEnd; // skip every N attribute long interval; // the components defining the recurrence const long CAL_RECUR_BYSECOND = 8; const long CAL_RECUR_BYMINUTE = 9; const long CAL_RECUR_BYHOUR = 10; const long CAL_RECUR_BYDAY = 11; const long CAL_RECUR_BYMONTHDAY = 12; const long CAL_RECUR_BYYEARDAY = 13; const long CAL_RECUR_BYWEEKNO = 14; const long CAL_RECUR_BYMONTH = 15; const long CAL_RECUR_BYSETPOS = 16; void getComponent (in long aComponentType, out unsigned long aCount, [array,size_is(aCount),retval] out short aValues); void setComponent (in long aComponentType, in unsigned long aCount, [array,size_is(aCount)] in short aValues); // exceptions void getExceptions (out unsigned long aCount, [array,size_is(aCount),retval] out calIDateTime aDates); void setExceptions (in unsigned long aCount, [array, size_is(aCount)] in calIDateTime aDates); // return the next display item for the event, // where the start time is >= aStartTime calIItemOccurrence getNextOccurrence (in calIItemBase aItem, in calIDateTime aStartTime); // return array of calIItemOccurrence representing all // occurrences of this event between start and end. void getOccurrencesBetween (in calIItemBase aItem, in calIDateTime aStartTime, in calIDateTime aEndTime, out unsigned long aCount, [array,size_is(aCount),retval] out calIItemOccurrence aItems); // return array of calIItemOccurrence representing all occurrences // of this event, starting at the given time. if aMaxCount is not // 0, a max of aMaxCount occurrences is returned void getOccurrences (in calIItemBase aItem, in calIDateTime aStartTime, in unsigned long aMaxCount, out unsigned long aCount, [array,size_is(aCount),retval] out calIItemOccurrence aItems); };