The current GcalEventWidget implementation is a direct GtkWidget subclass, which means we have to take care of all the implementation details such as raising GdkWindows and managing the drawing all by ourselves. The event widget, however, can be easily described through a GtkBuilder file. This would simplify the implementation and makes us maintain less code. Fix that by making GcalEventWidget a GtkBin subclass.
433 lines
8.2 KiB
CSS
433 lines
8.2 KiB
CSS
@define-color event_shadow_color alpha(black, 0.2);
|
|
|
|
.nav-button {
|
|
background-color: transparent;
|
|
background-image: none;
|
|
}
|
|
|
|
/* nav-bar labels */
|
|
.start-header {
|
|
font-size: 16pt;
|
|
font-weight: bold;
|
|
color: @theme_selected_bg_color;
|
|
padding: 12px;
|
|
}
|
|
|
|
.end-header {
|
|
font-size: 16pt;
|
|
font-weight: bold;
|
|
padding: 12px;
|
|
color: alpha(@theme_fg_color, 0.55);
|
|
}
|
|
|
|
calendar-view {
|
|
padding: 6px;
|
|
font-size: 10pt;
|
|
}
|
|
|
|
calendar-view.header {
|
|
font-size: 10pt;
|
|
font-weight: bold;
|
|
color: alpha(@theme_fg_color, 0.55);
|
|
}
|
|
|
|
calendar-view.current,
|
|
weekgrid.current {
|
|
background-color: alpha(@theme_selected_bg_color, 0.3);
|
|
}
|
|
|
|
calendar-view:selected {
|
|
color: @theme_selected_bg_color;
|
|
font-weight: bold;
|
|
}
|
|
|
|
calendar-view.overflow:hover {
|
|
font-weight: bold;
|
|
color: @theme_selected_bg_color;
|
|
background-image: linear-gradient(to bottom, shade(@theme_bg_color, 0.9), alpha(@theme_bg_color, 0.2) 10%,
|
|
alpha(@theme_bg_color, 0.2) 95%, shade(@theme_bg_color, 0.95) 100%);
|
|
}
|
|
|
|
calendar-view.overflow {
|
|
font-size: 8pt;
|
|
}
|
|
|
|
calendar-view.lines {
|
|
color: alpha(@theme_fg_color, 0.4);
|
|
}
|
|
|
|
calendar-view.offset {
|
|
background-color: alpha(@theme_bg_color, 0.5);
|
|
}
|
|
|
|
/* Year View CSS */
|
|
.year-view {
|
|
padding: 0px;
|
|
}
|
|
|
|
/* Header the padding if for sizing, on drawing the spacing between cells,
|
|
* and the padding will be automatically calculated
|
|
* Because of year-view widget internals, the color property should be the same
|
|
* of .start-header selector */
|
|
.year-navigator {
|
|
padding: 12px;
|
|
color: @theme_selected_bg_color;
|
|
}
|
|
|
|
.year-navigator.header {
|
|
color: @theme_selected_bg_color;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.year-navigator.lines {
|
|
color: alpha(@theme_fg_color, 0.4);
|
|
}
|
|
|
|
.year-navigator.days {
|
|
padding: 5px;
|
|
color: @theme_fg_color;
|
|
font-size: 9pt;
|
|
}
|
|
|
|
.year-navigator.non-workday {
|
|
color: alpha(@theme_fg_color, 0.5);
|
|
}
|
|
|
|
.year-navigator.week-numbers {
|
|
font-size: 70%;
|
|
font-weight: bold;
|
|
border-radius: 2px;
|
|
background-color: alpha(@theme_fg_color, 0.05);
|
|
color: alpha(@theme_fg_color, 0.4);
|
|
}
|
|
|
|
/* these two are supposed be changed in sync with .calendar-view */
|
|
.year-navigator.current {
|
|
background-color: black;
|
|
border-radius: 2px;
|
|
color: white;
|
|
font-weight: bold;
|
|
}
|
|
.year-navigator:selected {
|
|
color: @theme_selected_bg_color;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.year-navigator:hover {
|
|
background-color: alpha(@theme_fg_color, 0.1);
|
|
border-radius: 2px;
|
|
}
|
|
|
|
.year-navigator.dnd {
|
|
border: solid 1px #4e9a06;
|
|
box-shadow: inset 0 0 0 1px #4e9a06;
|
|
}
|
|
|
|
.year-navigator.with-events {
|
|
background-color: @theme_fg_color;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.year-navigator.with-events-selected {
|
|
background-color: @theme_selected_bg_color;
|
|
}
|
|
|
|
.year-navigator.with-events-non-workday {
|
|
background-color: alpha(@theme_fg_color, 0.5);
|
|
}
|
|
|
|
.sidebar-header {
|
|
font-weight: bold;
|
|
font-size: 11pt;
|
|
}
|
|
|
|
.italic-label {
|
|
font-style: italic;
|
|
}
|
|
|
|
.year-view .sidebar {
|
|
padding: 4px;
|
|
border: 1px none @borders;
|
|
}
|
|
|
|
.year-view .sidebar:backdrop {
|
|
border-color: @unfocused_borders;
|
|
}
|
|
|
|
.year-view .sidebar:dir(ltr) {
|
|
border-left-style: solid;
|
|
}
|
|
.year-view .sidebar:dir(rtl) {
|
|
border-right-style: solid;
|
|
}
|
|
|
|
/* no events label */
|
|
.year-view box.sidebar label:nth-child(2) {
|
|
margin-top: 4px;
|
|
}
|
|
|
|
.year-view button {
|
|
border-radius: 0;
|
|
border-bottom-style: none;
|
|
}
|
|
|
|
.year-view button:dir(ltr) {
|
|
border-right-style: none;
|
|
}
|
|
|
|
.year-view button:dir(rtl) {
|
|
border-left-style: none;
|
|
}
|
|
|
|
|
|
.year-view scrolledwindow {
|
|
border-top-width: 0;
|
|
border-bottom-width: 0;
|
|
}
|
|
|
|
popover.events {
|
|
background-color: @theme_bg_color;
|
|
padding: 0;
|
|
}
|
|
|
|
popover.events box {
|
|
border-top-left-radius: 6px;
|
|
border-top-right-radius: 6px;
|
|
}
|
|
|
|
popover.events list {
|
|
background-color: @theme_bg_color;
|
|
border-radius: 6px;
|
|
}
|
|
|
|
popover.events scrolledwindow {
|
|
border-width: 0;
|
|
}
|
|
|
|
popover.events button {
|
|
border-radius: 6px;
|
|
border-top-left-radius: 0;
|
|
border-top-right-radius: 0;
|
|
border-style: solid none none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
|
|
/*
|
|
* Event widget
|
|
*/
|
|
|
|
event {
|
|
border-radius: 2px;
|
|
margin: 1px 1px 0 2px;
|
|
font-size: 9pt;
|
|
}
|
|
|
|
event.color-dark {
|
|
color: white;
|
|
outline-color: rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
event.color-dark:backdrop {
|
|
color: rgba(255, 255, 255, 0.3);
|
|
}
|
|
|
|
event.color-light {
|
|
color: black;
|
|
outline-color: rgba(255, 255, 255, 0.5);
|
|
}
|
|
|
|
event.color-light:backdrop {
|
|
color: rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
.search-viewport {
|
|
background-color: @theme_base_color;
|
|
}
|
|
|
|
/* calendar popover */
|
|
.calendar-list {
|
|
background-color: transparent;
|
|
}
|
|
|
|
.calendar-list > list {
|
|
border-radius: 4px;
|
|
}
|
|
|
|
/* Edit dialog's header button */
|
|
.sources-button {
|
|
margin-top: 0;
|
|
margin-bottom: 0;
|
|
border-radius: 0;
|
|
border-top-style: none;
|
|
border-bottom-style: none;
|
|
}
|
|
|
|
.sources-button:hover:not(:backdrop) {
|
|
background-image: none;
|
|
text-shadow: none;
|
|
}
|
|
|
|
/* defeats the ugly hover effect of the calendar color dot on buttons */
|
|
.calendar-color-image {
|
|
-gtk-icon-effect: none;
|
|
}
|
|
|
|
/* adds a subtle shadow to the calendar color dot when it makes sense */
|
|
button:active:not(:backdrop) .calendar-color-image,
|
|
button:checked:not(:backdrop) .calendar-color-image,
|
|
.calendars-list .calendar-color-image:not(:backdrop):not(:disabled),
|
|
.calendar-list .calendar-color-image:not(:backdrop):not(:disabled),
|
|
.sources-button:not(:backdrop):not(:disabled) .calendar-color-image {
|
|
-gtk-icon-shadow: 0 1px alpha(black, 0.1);
|
|
}
|
|
|
|
|
|
/* Date chooser */
|
|
|
|
/* month/year controls */
|
|
datechooser navigator { /* add some space between the two controls */
|
|
margin-right: 6px;
|
|
margin-left: 6px;
|
|
margin-bottom: 6px;
|
|
}
|
|
|
|
datechooser navigator label {
|
|
font-weight: bold;
|
|
}
|
|
|
|
datechooser navigator button {
|
|
padding: 0;
|
|
}
|
|
|
|
/* day names and week numbers*/
|
|
datechooser .weeknum,
|
|
datechooser .weekday {
|
|
color: @insensitive_fg_color;
|
|
font-size: smaller;
|
|
}
|
|
|
|
datechooser .weeknum:backdrop,
|
|
datechooser .weekday:backdrop {
|
|
color: @unfocused_insensitive_color;
|
|
}
|
|
|
|
/* days */
|
|
datechooser day {
|
|
transition-property: background-color;
|
|
transition-duration: 200ms;
|
|
}
|
|
|
|
datechooser day label {
|
|
transition-property: color;
|
|
transition-duration: 200ms;
|
|
}
|
|
|
|
datechooser day {
|
|
min-height: 32px;
|
|
min-width: 32px;
|
|
border-radius: 50%;
|
|
}
|
|
|
|
datechooser day.other-month:not(:hover),
|
|
datechooser day.other-month:backdrop {
|
|
color: alpha(currentColor, 0.1);
|
|
}
|
|
|
|
/* avoid the theme interfering with label colors */
|
|
datechooser day:selected label,
|
|
datechooser day.other-month label:hover,
|
|
datechooser day.other-month label:backdrop {
|
|
color: currentColor;
|
|
}
|
|
|
|
/* hovered days style */
|
|
datechooser day:hover:not(:backdrop) {
|
|
background-color: alpha(currentColor, 0.1);
|
|
}
|
|
|
|
datechooser day.other-month:hover:not(:backdrop) {
|
|
color: @insensitive_fg_color;
|
|
}
|
|
|
|
datechooser day:selected,
|
|
datechooser day:selected:hover {
|
|
color: @theme_selected_fg_color;
|
|
background-color: @theme_selected_bg_color;
|
|
font-weight: bold;
|
|
}
|
|
|
|
/* Week View CSS */
|
|
|
|
.week-header {
|
|
padding: 0px;
|
|
border-bottom: solid @borders 1px;
|
|
}
|
|
|
|
.week-header .month-name {
|
|
font-size: 16pt;
|
|
font-weight: bold;
|
|
color: alpha(@theme_selected_bg_color, 0.75);
|
|
padding: 12px;
|
|
}
|
|
|
|
.week-header .week-number {
|
|
font-size: 16pt;
|
|
font-weight: bold;
|
|
padding: 12px 12px 18px 12px;
|
|
color: alpha(@theme_fg_color, 0.25);
|
|
}
|
|
|
|
.week-header.week-names {
|
|
font-size: 10pt;
|
|
font-weight: bold;
|
|
color: alpha(@theme_fg_color, 0.55);
|
|
}
|
|
|
|
.week-header.week-dates {
|
|
font-size: 16pt;
|
|
font-weight: bold;
|
|
color: alpha(@theme_fg_color, 0.70);
|
|
}
|
|
|
|
.week-header.lines {
|
|
color: alpha(@theme_fg_color, 0.4);
|
|
}
|
|
|
|
.week-header .margin {
|
|
color: alpha(@theme_fg_color, 0.6);
|
|
}
|
|
|
|
.week-header .today {
|
|
color: @theme_selected_bg_color;
|
|
}
|
|
|
|
.week-view {
|
|
padding: 0px;
|
|
}
|
|
|
|
.week-view .hours {
|
|
font-size: 10pt;
|
|
color: alpha(@theme_fg_color, 0.8);
|
|
padding: 8px 12px;
|
|
}
|
|
|
|
.week-view .lines {
|
|
color: alpha(@theme_fg_color, 0.30);
|
|
}
|
|
|
|
weekgrid.now-strip {
|
|
background-color: alpha(@theme_selected_bg_color, 0.8);
|
|
margin: 0 0 0 1px;
|
|
min-height: 2px;
|
|
}
|
|
|
|
weekgrid:selected,
|
|
.week-header:selected {
|
|
background-color: alpha(@theme_selected_bg_color, 0.25);
|
|
}
|
|
|
|
.week-header:selected {
|
|
border: solid 1px alpha(@theme_selected_bg_color, 0.8);
|
|
}
|