Starting the application
- Create
GcalManagerinstance - Creating a gcal_window
- Connect the handlers to
GcalManagersignals - Get the date the app will show either from settings or from the actual view
- Instantiate every view
- Show the last active view (got from the settings)
- Connect the handlers to
Showing a view in a window
- Clean previous states (new event creation/search)
- API:
gcal_window_view_changed - Update
GcalMainWindow.view_type - Call
update_view
Update the app date
- API:
update_view: update only the active view 4. update NavBar headers
Update the app date. v2
- API:
update_view: 3. update NavBar headers
Create an event
- First approach
- call
gcal_window_new_event(from N or [New Event] menu item) - set
#GcalWindow:new-event-modeto TRUE - disable toolbar
- call
gcal_view_mark_current_unit - call
gcal_view_get_current_position
- call
- Second approach:
- Receive
#GcalView:create-eventsignal - set
#GcalWindow:new-event-modeto TRUE - disable toolbar
- Receive
- call
gcal_window_show_new_event_widget - handle outcome of the widget
- call
gcal_view_clear_marks - unset
#GcalWindow:new-event-mode - enable toolbar
Search events
- Init search
- set
#GcalWindow:search-mode - create
#GcalSearchView - update
priv->header_bar - add it to
GtkStack, show it
- set
- End search
- unset
#GcalWindow:search-mode - free
GcalSearchView - update
header_bar - reinstate last active view
- unset
Edit/show events
- API:
event_activated
`#GcalManager:events-created