b=260120, improvements to datepicker and timepicker, forgot to cvs add new files last commit

This commit is contained in:
vladimir%pobox.com 2005-05-06 21:42:51 +00:00
Родитель e4740df8be
Коммит 5695848c2e
5 изменённых файлов: 2471 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,60 @@
/* ***** 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 OEone Calendar Code, released October 31st, 2001.
*
* The Initial Developer of the Original Code is OEone Corporation.
* Portions created by the Initial Developer are Copyright (C) 2001
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* 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 ***** */
@import url("chrome://calendar/content/datetimepickers/minimonth.css");
datepicker {
-moz-binding: url("chrome://calendar/content/datetimepickers/datetimepickers.xml#datepicker");
}
datetimepicker {
-moz-binding: url("chrome://calendar/content/datetimepickers/datetimepickers.xml#datetimepicker");
}
timepicker {
-moz-binding: url("chrome://calendar/content/datetimepickers/datetimepickers.xml#timepicker");
}
timepicker-grids {
-moz-binding: url("chrome://calendar/content/datetimepickers/datetimepickers.xml#timepicker-grids");
}
timepicker-minute {
-moz-binding: url("chrome://calendar/content/datetimepickers/datetimepickers.xml#timepicker-minute");
}
timepicker-hour {
-moz-binding: url("chrome://calendar/content/datetimepickers/datetimepickers.xml#timepicker-hour");
}

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,545 @@
<?xml version="1.0"?>
<!--
/* MiniMonth Calendar: day-of-month grid XBL component.
Displays month name and year above grid of days of month by week rows.
Arrows move forward or back a month.
Selecting a month name from month menu moves to that month in same year.
Selecting a year from year menu moves to same month in selected year.
Clicking on a day cell calls onchange attribute.
Changing month via arrows or menus calls onmonthchange attribute.
Used in datepicker.xbl and as mini-month in calendar.xul of Calendar.
At site, can provide id, and code to run when value changed by picker.
<calendar id="my-date-picker" onchange="myDatePick( this );"/>
May get/set value in javascript with
document.getElementById("my-date-picker").value = new Date();
Use attributes onpopuplisthidden and onmonthchange for working around
bugs that occur when minimonth is displayed in a popup (as in datepicker):
Currently (2005.3)
whenever a child popup is hidden, the parent popup needs to be reshown.
Use onpopuplisthidden to reshow parent popop (hidePopup, showPopup).
When title month or year changes, parent popup may need to be reshown.
Use onmonthchange to reshow parent popop (hidePopup, showPopup).
*/
-->
<bindings id="xulMiniMonth"
xmlns="http://www.mozilla.org/xbl"
xmlns:xbl="http://www.mozilla.org/xbl"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<binding id="minimonth" extends="xul:box" xbl:inherits="onchange,onmonthchange,onpopuplisthidden">
<resources>
<stylesheet src="chrome://calendar/skin/datetimepickers/minimonth.css"/>
</resources>
<!-- ::::::::::::::::: CONTENT ::::::::::::::::::::::::: -->
<content>
<xul:vbox class="minimonth-mainbox" flex="1">
<xul:hbox class="minimonth-month-box">
<xul:image class="minimonth-navbtn" dir="-1"/>
<xul:spacer flex="1"/>
<xul:text class="minimonth-month-name" value="Month" onclick="showPopupList('month')"/>
<xul:text class="minimonth-year-name" value="Year" onclick="showPopupList('year')"/>
<xul:spacer flex="1"/>
<xul:image class="minimonth-navbtn" dir="1"/>
</xul:hbox>
<xul:vbox class="minimonth-cal-box" flex="1">
<xul:hbox class="minimonth-row-head" equalsize="always">
<xul:text class="minimonth-header" flex="1"/>
<xul:text class="minimonth-header" flex="1"/>
<xul:text class="minimonth-header" flex="1"/>
<xul:text class="minimonth-header" flex="1"/>
<xul:text class="minimonth-header" flex="1"/>
<xul:text class="minimonth-header" flex="1"/>
<xul:text class="minimonth-header" flex="1"/>
</xul:hbox>
<xul:hbox class="minimonth-row-body" equalsize="always" flex="1">
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
</xul:hbox>
<xul:hbox class="minimonth-row-body" equalsize="always" flex="1">
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
</xul:hbox>
<xul:hbox class="minimonth-row-body" equalsize="always" flex="1">
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
</xul:hbox>
<xul:hbox class="minimonth-row-body" equalsize="always" flex="1">
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
</xul:hbox>
<xul:hbox class="minimonth-row-body" equalsize="always" flex="1">
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
</xul:hbox>
<xul:hbox class="minimonth-row-body" equalsize="always" flex="1">
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
<xul:text class="minimonth-day" flex="1"/>
</xul:hbox>
</xul:vbox>
</xul:vbox>
<xul:popupset>
<xul:popup anonid="months-popup" position="after_start"
onpopupshowing="event.preventBubble();"
onpopuphidden="firePopupListHidden();">
<xul:vbox>
<xul:text class="minimonth-list"/>
<xul:text class="minimonth-list"/>
<xul:text class="minimonth-list"/>
<xul:text class="minimonth-list"/>
<xul:text class="minimonth-list"/>
<xul:text class="minimonth-list"/>
<xul:text class="minimonth-list"/>
<xul:text class="minimonth-list"/>
<xul:text class="minimonth-list"/>
<xul:text class="minimonth-list"/>
<xul:text class="minimonth-list"/>
<xul:text class="minimonth-list"/>
</xul:vbox>
</xul:popup>
<xul:popup anonid="years-popup" position="after_start"
onpopupshowing="event.preventBubble();"
onpopuphidden="firePopupListHidden();">
<xul:vbox>
<xul:text class="minimonth-list"/>
<xul:text class="minimonth-list"/>
<xul:text class="minimonth-list"/>
<xul:text class="minimonth-list"/>
<xul:text class="minimonth-list"/>
<xul:text class="minimonth-list"/>
<xul:text class="minimonth-list"/>
</xul:vbox>
</xul:popup>
</xul:popupset>
</content>
<!-- ::::::::::::::::: INTERFACE ::::::::::::::::::::::::: -->
<implementation>
<property name="value"
onget="return this.mValue"
onset="this.update(val)"/>
<constructor>
<![CDATA[
this.mInitialized = false;
this.mSelected = false;
this.mValue = null;
this.kMonthNames = new Array(12);
var tempDate = new Date();
for (var month = 0; month < 12; month++) {
tempDate.setMonth(month);
this.kMonthNames[month] = tempDate.toLocaleFormat("%B");
}
this.mPopup = null;
this.refreshDisplay( );
]]>
</constructor>
<method name="refreshDisplay">
<body>
<![CDATA[
if (!this.mInitialized) {
this.mInitialized = true;
// Find out which should be the first day of the week
try {
var pref = Components.classes[
"@mozilla.org/preferences-service;1"
].getService(Components.interfaces.nsIPrefBranch);
// this.weekStart;
this.weekStart = pref.getIntPref("calendar.week.start");
} catch (e) {
this.weekStart = 0;
}
// save references for convenience
var anonContent = document.getAnonymousNodes(this);
var mainBox = anonContent[0];
var headBox = mainBox.childNodes[0];
this.kLeftBtn = headBox.firstChild;
this.kLeftBtn.kMinimonth = this;
this.kRightBtn = headBox.lastChild;
this.kRightBtn.kMinimonth = this;
this.kMonthCell = headBox.childNodes[2];
this.kYearCell = headBox.childNodes[3];
this.kDaysOfMonthBox = mainBox.childNodes[1];
var popupSet = anonContent[1];
this.kMonthPopup = popupSet.childNodes[0];
this.kMonthList = this.kMonthPopup.firstChild.childNodes;
this.kYearPopup = popupSet.childNodes[1];
this.kYearList = this.kYearPopup.firstChild.childNodes;
if (!this.mValue) this.mValue = new Date();
this.setHeader();
this.showMonth(this.mValue);
}
]]>
</body>
</method>
<method name="setHeader">
<body>
<![CDATA[
// Reset the headers
var header = document.getAnonymousNodes(this)[0].
childNodes[1].childNodes[0];
var dayList = new Array(7);
var tempDate = new Date();
var i, j;
tempDate.setDate(tempDate.getDate() - (tempDate.getDay() - this.weekStart));
for (i = 0; i < header.childNodes.length; i++) {
dayList[i] = tempDate.toLocaleFormat("%a")
tempDate.setDate(tempDate.getDate() + 1);
}
//abbreviations are too long, so shrink them down
var foundMatch;
for (i = 0; i < header.childNodes.length; i++) {
foundMatch = 1;
for (j = 0; j < header.childNodes.length; j++) {
if (i != j) {
if (dayList[i].substring(0,1) == dayList[j].substring(0,1)) {
foundMatch = 2;
break;
}
}
}
dayList[i] = dayList[i].substring(0,foundMatch)
}
for (var column = 0; column < header.childNodes.length; column++) {
header.childNodes[column].setAttribute( "value", dayList[column]);
}
]]>
</body>
</method>
<method name="showMonth">
<parameter name="aDate"/>
<body>
<![CDATA[
if (!aDate) {
aDate = new Date();
} else {
aDate = new Date(aDate);
}
aDate.setDate(1);
this.mEditorDate = aDate;
if (this.mSelected) {
this.mSelected.setAttribute("selected", "");
this.mSelected = null;
}
// Update the month and year title
var mon = this.getMonthName(aDate);
this.kMonthCell.setAttribute("value", mon);
this.kYearCell.setAttribute("value", aDate.getFullYear());
// Update the month popup
var i;
var months = this.kMonthList;
for (i = 0; i < months.length; i++) {
months[i].setAttribute("value", this.kMonthNames[i]);
months[i].setAttribute("index", i);
months[i].setAttribute("current", "false");
if (i == aDate.getMonth())
months[i].setAttribute("current", "true");
}
// Update the year popup
var years = this.kYearList;
var year = new Date(aDate);
year.setFullYear(aDate.getFullYear() - (years.length%2 + 1));
for (i = 0; i < years.length; i++) {
years[i].setAttribute("value", year.getFullYear());
years[i].setAttribute("current", "false");
if (year.getFullYear() == aDate.getFullYear())
years[i].setAttribute("current", "true");
year.setFullYear(year.getFullYear() + 1);
}
// Update the calendar
var calbox = this.kDaysOfMonthBox;
var firstWeekday = (7 + aDate.getDay() - this.weekStart) % 7;
var date = new Date(aDate);
date.setDate(date.getDate()-firstWeekday);
for (var k = 1; k < calbox.childNodes.length; k++) {
var row = calbox.childNodes[k];
for (i = 0; i < 7; i++) {
var day = row.childNodes[i];
if (aDate.getMonth() != date.getMonth()) {
day.setAttribute("othermonth", "true");
} else {
day.setAttribute("othermonth", "");
}
// highlight the current date
var val = this.value;
if (val) {
if ((val.getFullYear() == date.getFullYear()) &&
(val.getMonth() == date.getMonth()) &&
(val.getDate() == date.getDate())) {
this.mSelected = day;
day.setAttribute("selected", "true");
}
}
day.date = new Date(date);
day.calendar = this;
day.setAttribute("value", date.getDate());
date.setDate(date.getDate() + 1);
}
}
]]>
</body>
</method>
<method name="showPopupList">
<parameter name="type"/> <!-- 'month' or 'year' -->
<body>
<![CDATA[
// Close open popups (if any), to prevent linux crashes
if (this.mPopup)
this.mPopup.hidePopup();
this.mPopup = (type == 'month'? this.kMonthPopup : this.kYearPopup);
var base = (type == 'month'? this.kMonthCell : this.kYearCell);
this.mPopup.showPopup(base, -1, -1, "popup", "bottomleft", "topleft");
]]>
</body>
</method>
<method name="fireEvent">
<parameter name="aEventName"/>
<body>
<![CDATA[
var event = document.createEvent('Events');
event.initEvent(aEventName, false, true);
this.dispatchEvent(event);
]]>
</body>
</method>
<method name="firePopupListHidden">
<body>
<![CDATA[
this.mPopup = null;
this.fireEvent("popuplisthidden");
]]>
</body>
</method>
<method name="setBusyDates">
<parameter name="arrayOfDates"/>
<body>
<![CDATA[
/* CODE FROM monthView.js for finding the events for the month. */
/*
document.getElementById( "lefthandcalendar" ).value = date;
//get a list of events for this month.
var monthEvents =
this.eventSource.getEventsForMonth( this.getSelectedDate() );
var arrayOfDates = new Array();
for( var eventIndex = 0; eventIndex < monthEvents.length; ++eventIndex )
{
var calendarEventDisplay = monthEvents[ eventIndex ];
var eventDate = new Date( calendarEventDisplay.displayDate );
//add them to an array
arrayOfDates[ eventDate.getDate() ] = true;
}
document.getElementById( "lefthandcalendar" ).setBusyDates( arrayOfDates );
*/
var aDate = new Date();
aDate.setDate( 1 );
// Update the calendar
var calbox = document.getAnonymousNodes(this)[0].childNodes[1];
// weekStart day is set by preference
var firstWeekday = (7 + aDate.getDay() - this.weekStart) % 7;
var date = new Date(aDate.getTime());
date.setDate(date.getDate() - firstWeekday);
for (var k = 1; k < calbox.childNodes.length; k++) {
var row = calbox.childNodes[k];
for (var i = 0; i < 7; i++) {
var day = row.childNodes[i];
if (aDate.getMonth() == date.getMonth() &&
arrayOfDates[ date.getDate() ] == true ) {
day.setAttribute("busy", "true");
} else {
day.removeAttribute("busy");
}
// next date of month, may increment month
date.setDate(date.getDate() + 1);
}
}
]]>
</body>
</method>
<method name="advanceMonth">
<parameter name="aDir"/>
<body>
<![CDATA[
var ad = this.mEditorDate.getMonth() + aDir;
this.mEditorDate.setMonth(ad);
this.showMonth(this.mEditorDate);
if (this.mSelected) {
this.mSelected.removeAttribute("selected");
}
this.value = this.mEditorDate;
this.fireEvent("monthchange");
]]>
</body>
</method>
<method name="dayClicked">
<parameter name="aDay"/>
<body>
<![CDATA[
if (this.mSelected) {
this.mSelected.setAttribute("selected", "");
}
this.mSelected = aDay;
aDay.setAttribute("selected", "true");
this.value = aDay.date;
this.fireEvent('select');
]]>
</body>
</method>
<method name="update">
<parameter name="aValue"/>
<body>
<![CDATA[
this.mValue = aValue;
this.fireEvent('change');
this.showMonth(aValue);
]]>
</body>
</method>
<method name="getMonthName">
<parameter name="aDate"/>
<body>
<![CDATA[
return this.kMonthNames[aDate.getMonth()];
]]>
</body>
</method>
<method name="switchMonth">
<parameter name="aMonth"/>
<body>
<![CDATA[
this.mEditorDate.setMonth(aMonth);
this.showMonth(this.mEditorDate);
if (this.mSelected)
this.mSelected.removeAttribute("selected");
this.value = this.mEditorDate;
this.fireEvent("monthchange");
]]>
</body>
</method>
<method name="switchYear">
<parameter name="aYear"/>
<body>
<![CDATA[
this.mEditorDate.setFullYear(aYear);
this.showMonth(this.mEditorDate);
if (this.mSelected)
this.mSelected.removeAttribute("selected");
this.value = this.mEditorDate;
this.fireEvent("monthchange");
]]>
</body>
</method>
</implementation>
<!-- ::::::::::::::::: HANDLERS ::::::::::::::::::::::::: -->
<handlers>
<handler event="bindingattached" action="this.initialize();"/>
<!-- handle click from nested months popup and years popup -->
<handler event="click">
<![CDATA[
var element = event.originalTarget;
if (element.parentNode && element.parentNode.parentNode) {
var grandparent = element.parentNode.parentNode;
switch(grandparent) {
case this.kMonthPopup:
grandparent.hidePopup();
this.switchMonth(element.getAttribute("index"));
break;
case this.kYearPopup:
grandparent.hidePopup();
this.switchYear(element.getAttribute("value"));
break;
}
}
]]>
</handler>
</handlers>
</binding>
<binding id="minimonth-navbtn" inherits="dir">
<!-- ::::::::::::::::: HANDLERS ::::::::::::::::::::::::: -->
<handlers>
<handler event="click">
<![CDATA[
this.kMinimonth.advanceMonth(parseInt(this.getAttribute('dir')));
]]>
</handler>
</handlers>
</binding>
<binding id="minimonth-day" extends="xul:text">
<!-- ::::::::::::::::: HANDLERS ::::::::::::::::::::::::: -->
<handlers>
<handler event="click" action="if (event.button == 0) this.calendar.dayClicked(this)"/>
</handlers>
</binding>
</bindings>

Просмотреть файл

@ -0,0 +1,226 @@
/* ***** 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 OEone Calendar Code, released October 31st, 2001.
*
* The Initial Developer of the Original Code is OEone Corporation.
* Portions created by the Initial Developer are Copyright (C) 2001
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* 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 ***** */
/*--------------------------------------------------------------------
* Datepicker (text field with minimonth popup)
*-------------------------------------------------------------------*/
/* flex box around menulist */
.datepicker-box-class {
}
/* menulist */
.datepicker-text-class {
width: 11em;
}
/* text input field */
.datepicker-text-class input {
}
/*-------------------------------------------------------------------
* Timepicker (text menulist with popup)
*-------------------------------------------------------------------*/
.timepicker-box-class {
}
.timepicker-text-class {
width: 8em;
}
/*-------------------------------------------------------------------
* popup (from timepicker/timepicker.css)
*-------------------------------------------------------------------*/
/* Box that occupies whole window */
vbox[anonid="time-picker-grids"] {
background-color : #F8F8F8;
font-size : 8pt;
margin-bottom : 1px;
margin-right : 1px;
}
/* Grid for hours */
grid[anonid="time-picker-hour-grid"] {
border-top : 1px solid #2060c7;
border-left : 1px solid #2060c7;
margin-top : 1px;
}
/* Box in each cell of the grid for hours */
.time-picker-hour-box-class {
-moz-box-align : center;
border-right : 1px solid #2060c7;
border-bottom : 1px solid #2060c7;
}
.time-picker-hour-box-class:hover {
color : #ff0000;
cursor : pointer;
}
/* selected hour box */
.time-picker-hour-box-class[selected="true"] {
background-color : #6699CC;
}
/* label inside each minute/hour */
.time-picker-minute-label:hover {
color : #ff0000;
cursor: pointer !important;
}
.time-picker-hour-label:hover {
color : #ff0000;
cursor: pointer !important;
}
.time-picker-minute-box-class {
-moz-box-align : center;
border-right : 1px solid #2060c7;
border-bottom : 1px solid #2060c7;
}
.time-picker-minute-box-class:hover {
color : #ff0000;
cursor : pointer;
}
/* box around five minute grid */
vbox[anonid="time-picker-five-minute-grid-box"] {
min-width : 195px;
margin-left : 1px;
}
/* five minute grid */
grid[anonid="time-picker-five-minute-grid"] {
margin-top : 2px;
margin-right : 2px;
border-top : 1px solid #003399;
border-left : 1px solid #003399;
border-right : 1px solid #003399;
background-color : #e7eeec;
}
/* box in five-minute grid elements */
.time-picker-five-minute-class {
-moz-box-align : center;
}
.time-picker-five-minute-class:hover {
color: #ff0000;
cursor: pointer;
}
/* selected five-minute grid element box */
.time-picker-five-minute-class[selected="true"] {
background-color : #6699CC;
}
/* box around one minute grid */
vbox[anonid="time-picker-one-minute-grid-box"] {
min-width : 195px;
margin-left : 1px;
}
/* one minute grid */
grid[anonid="time-picker-one-minute-grid"] {
margin-top : 2px;
margin-right : 2px;
border-top : 1px solid #003399;
border-left : 1px solid #003399;
border-right : 1px solid #003399;
background-color : #e7eeec;
}
/* box in one-minute grid elements */
.time-picker-one-minute-class {
-moz-box-align : center;
}
.time-picker-one-minute-class:hover {
color: #ff0000;
cursor: pointer;
}
/* selected one-minute grid element box */
.time-picker-one-minute-class[selected="true"] {
background-color : #6699CC;
}
.time-picker-more-control-label {
background-color : #6699CC;
color : #ffffff;
font-size : 12pt;
height : 12px;
min-width : 40px;
margin : 0px;
border : 1px solid #003399;
text-align : center;
}
.time-picker-more-control-label:hover {
background-color : #477eb7;
}
.time-picker-more-control-label:hover:active {
background-color : #2063a8;
}
/* line across the bottom of the minute boxes, made to line up with more & less tabs */
.time-picker-minutes-bottom {
background-color : #e7eeec;
border-bottom : 1px solid #003399;
border-left : 1px solid #003399;
border-right : 1px solid #003399;
margin-right : 2px;
}

Просмотреть файл

@ -0,0 +1,214 @@
/* ***** 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 OEone Calendar Code, released October 31st, 2001.
*
* The Initial Developer of the Original Code is OEone Corporation.
* Portions created by the Initial Developer are Copyright (C) 2001
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* 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 ***** */
/*--------------------------------------------------------------------
* Datepicker (text field with minimonth popup)
*-------------------------------------------------------------------*/
/* flex box around menulist */
.datepicker-box-class {
}
/* menulist */
.datepicker-text-class {
width:11em;
}
/* text input field */
.datepicker-text-class input {
}
/*-------------------------------------------------------------------
* Timepicker (text menulist with popup)
*-------------------------------------------------------------------*/
.timepicker-box-class {
}
.timepicker-text-class {
width: 8em;
}
/*-------------------------------------------------------------------
* popup (from timepicker/timepicker.css)
*-------------------------------------------------------------------*/
/* Box that occupies whole window */
vbox[anonid="timepicker-grids"] {
background-color : #F8F8F8;
font-size : 8pt;
margin-bottom : 1px;
margin-right : 1px;
}
/* Grid for hours */
grid[anonid="time-picker-hour-grid"] {
border-top : 1px solid #2060c7;
border-left : 1px solid #2060c7;
margin-top : 1px;
}
/* Box in each cell of the grid for hours */
.time-picker-hour-box-class {
-moz-box-align : center;
border-right : 1px solid #2060c7;
border-bottom : 1px solid #2060c7;
}
.time-picker-hour-box-class:hover {
color: #ff0000;
cursor: pointer;
}
/* label inside each minute/hour */
.time-picker-minute-label:hover {
color: #ff0000;
cursor: pointer !important;
}
.time-picker-hour-label:hover {
color: #ff0000;
cursor: pointer !important;
}
/* selected hour box */
.time-picker-hour-box-class[selected="true"] {
background-color : #6699CC;
}
/* box around five minute grid */
vbox[anonid="time-picker-five-minute-grid-box"] {
min-width : 195px;
margin-left : 1px;
}
/* five minute grid */
grid[anonid="time-picker-five-minute-grid"] {
margin-top : 2px;
margin-right : 2px;
border-top : 1px solid #003399;
border-left : 1px solid #003399;
border-right : 1px solid #003399;
background-color : #e7eeec;
}
/* box in five-minute grid elements */
.time-picker-five-minute-class {
-moz-box-align : center;
}
.time-picker-five-minute-class:hover {
color: #ff0000;
cursor: pointer;
}
/* selected five-minute grid element box */
.time-picker-five-minute-class[selected="true"] {
background-color : #6699CC;
}
/* box around one minute grid */
vbox[anonid="time-picker-one-minute-grid-box"] {
min-width : 195px;
margin-left : 1px;
}
/* one minute grid */
grid[anonid="time-picker-one-minute-grid"] {
margin-top : 2px;
margin-right : 2px;
border-top : 1px solid #003399;
border-left : 1px solid #003399;
border-right : 1px solid #003399;
background-color : #e7eeec;
}
/* box in one-minute grid elements */
.time-picker-one-minute-class {
-moz-box-align : center;
}
.time-picker-one-minute-class:hover {
color: #ff0000;
cursor: pointer;
}
/* selected one-minute grid element box */
.time-picker-one-minute-class[selected="true"] {
background-color : #6699CC;
}
.time-picker-more-control-label {
background-color : #6699CC;
color : #ffffff;
font-size : 12pt;
height : 12px;
min-width : 40px;
margin : 0px;
border : 1px solid #003399;
text-align : center;
}
.time-picker-more-control-label:hover {
background-color : #477eb7;
}
.time-picker-more-control-label:hover:active {
background-color : #2063a8;
}
/* line across the bottom of the minute boxes, made to line up with more & less tabs */
.time-picker-minutes-bottom {
background-color : #e7eeec;
border-bottom : 1px solid #003399;
border-left : 1px solid #003399;
border-right : 1px solid #003399;
margin-right : 2px;
}