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.
The overflow layout used to display "Other X events" text when
there is no enough space to accomodate more events.
But due to the way the events were sorted, some events are folded to
'Other events' popover even when the cell has enough space to accomodate
the event(s) or when it is not required to be folded.
We rework how the events will be sorted. First, the events are sorted by their
start dates(starting with the closest). But if two or more events have same start date
then they are sorted according to their lengths. And still if they have same start
date and length then they are sorted according to their modified times(the closest first).
https://bugzilla.gnome.org/show_bug.cgi?id=778478
The compare_for_single_day() method is reproducing the
same functionality from gcal_event_compare(), and the only
consumer is the Year View. So, for now, simplify the
comparing function and put it in year view file.
Also, this commit vastly improves and documents the year
view's algorithm to add events to the sidebar list.
This compare function is made to sort using the same two methods used
before but together, giving priority to the longer events.
The idea is sort event properly on year-view's sidebar.
This function will probably change later.
Added GcalEventWidget::is_multiday to check if an event span more than
one day.
Added GcalEventWidget::compare_by_length which compares two event
widgets according to the duration of the events they represent.
The changes made here are minimal to get this building. GcalEventWidget
needs a new rethink and rework to accommodate to those new internal
attributes, which replaces some of the old ones.
Refactoring the code inside GcalMonthView for drawing and for showing child
widgets.
Fixed ref_sink in GcalEditableRemainder. (Don't need it)
Added translation for weekdays abbreviation. (Thxs to ebassi & mclasen)
Passed make distcheck.
Added GcalEventWidget::activated signal.
Fixed bug in GcalMonthView preventing to get button events.
Added methods in GcalUtils from Evo for formatting time.
..and stuff