3.6 KiB
Internals
Description of some internals of Gnome Calendar Application
-
mainToolbar object:
Has 3 states:
- Overview
- View Event
- 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:
- Esource, ECalClient,ECalClientView,
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:
- objects-added (wrapping ECalClientView)
- objects-removed (wrapping ECalClientView)
- 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_dateattribute -
Has child classes
- 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_viewattribute For keeping the type view is actually showing -
Has views
- GcalDayView
- GcalWeekView
- GcalMonthView ...
-
Has icaltimetype attribute For keeping actual date
-
Has
set_view/update_viewmethod For updating the view content by talking to GcalManager about events and dates of the view