Files
federated-calendar/doc/Internals
T

76 lines
1.8 KiB
Plaintext

# Internals #
Description of some internals of Gnome Calendar Application
* mainToolbar object:
Has 3 states:
1. Overview
2. View Event
3. Edit Event (this one could act as New Event View,
or even as New anything view)
* GcalApplication
* Has dconf-key attribute (To keep the last view and last day selected)
* Has command-line option (To open on a specified day)
* Has a GcalManager object (To manage source and events, and everything else)
* GcalManager
* Has a list of GcalStoreUnit containing:
1. Esource, ECalClient,ECalClientView,
2. `GHashTable<uid, ECalComponent>`
(representing *active events* of the view)
* Has a list of ESourceGroup
* Has `icaltimetype *initial_date, *final_date;`
For defining a range to get events from
Could have an active query representing the range (s-exp)
* Has a list of Events in the active range (a list of ECalComponent)
* Emit signals for:
1. objects-added (wrapping ECalClientView)
2. objects-removed (wrapping ECalClientView)
3. events-changed (for time range changing)
This signal is emitted so the views knows they have to update the
GcalEvent widgets they contain. E.g. when you disable/enable a Calendar in
SourcesView widget.
* Has a GtkListStore with calendar/sources info.
* GcalView
* Has NavigationPane
* Has icaltimetype: `selected_date` attribute
* Has child classes
1. GcalDayView
* GcalEvent
* Has one source
* GcalMainWindow
* Has an `active_view` attribute
For keeping the type view is actually showing
* Has views
1. GcalDayView
2. GcalWeekView
3. GcalMonthView
...
* Has icaltimetype attribute
For keeping actual date
* Has `set_view/update_view` method
For updating the view content by talking to GcalManager
about events and dates of the view