Minor docs adjustements.
This commit is contained in:
+102
@@ -0,0 +1,102 @@
|
||||
# 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
|
||||
|
||||
Design
|
||||
|
||||
<pre style="font-family: Mono;">
|
||||
+- GtkClutter.Embed::ClutterBox(BoxLayout) ----------------------------------+
|
||||
| |
|
||||
| +- _body_actor::ClutterBox(BoxLayout) --------------------------------+ |
|
||||
| | | |
|
||||
| | +- _main_toolbar -----------------------------------------------+ | |
|
||||
| | | | | |
|
||||
| | +---------------------------------------------------------------+ | |
|
||||
| | +- _contents_actor::ClutterBox(BinLayout) ----------------------+ | |
|
||||
| | | | | |
|
||||
| | | +- _sources_actor ----------------------------------------+ | | |
|
||||
| | | | | | | |
|
||||
| | | +---------------------------------------------------------+ | | |
|
||||
| | | | | |
|
||||
| | | +- _notebook_actor ---------------------------------------+ | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | +---------------------------------------------------------+ | | |
|
||||
| | +---------------------------------------------------------------+ | |
|
||||
| | | |
|
||||
| +---------------------------------------------------------------------+ |
|
||||
+----------------------------------------------------------------------------+
|
||||
</pre>
|
||||
|
||||
* 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
|
||||
Reference in New Issue
Block a user