Files
federated-calendar/doc/Internals
T

109 lines
3.4 KiB
Plaintext

Rough 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
For keeping the last view and last day selected
Has command-line option
For opening on the day specified
Has a GcalManager object
For managingn source and events, and everything else
+ GcalManager
Has a list of GcalStoreUnit,
Containing:
Esource, ECalClient,ECalClientView
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:
- objects-added (wrapping ECalClientView)
- objects-removed (wrapping ECalClientView)
- events-retrieved (for time range changing)
Has a GtkListStore with calendar/sources info.
+ GcalSource
Has a base_uri
Has a relative uri
Has a color
+ GcalView
Has NavigationPane
Has icaltimetype: selected_date attribute
Has child classes
1. GcalDayView
...
+ GcalEvent
Has one source
+ GcalMainWindow
Design
+- GtkClutter.Embed::ClutterBox(BoxLayout) ----------------------------------+
| |
| +- _body_actor::ClutterBox(BoxLayout) --------------------------------+ |
| | | |
| | +- _main_toolbar -----------------------------------------------+ | |
| | | | | |
| | +---------------------------------------------------------------+ | |
| | +- _contents_actor::ClutterBox(BinLayout) ----------------------+ | |
| | | | | |
| | | +- _sources_actor ----------------------------------------+ | | |
| | | | | | | |
| | | +---------------------------------------------------------+ | | |
| | | | | |
| | | +- _notebook_actor ---------------------------------------+ | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | +---------------------------------------------------------+ | | |
| | +---------------------------------------------------------------+ | |
| | | |
| +---------------------------------------------------------------------+ |
+----------------------------------------------------------------------------+
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 an dates of the view