[Replying to myself to ask a clarifying question which I ignored in my
last mail. Sorry.]
On Wed, 23 May 2001 23:06:27 EDT, Russell Steinthal wrote:
>On Wed, 23 May 2001 18:58:58 CDT, Federico Mena Quintero wrote:
>>The way to make views display more than one calendar is as follows.
>>
>>All the views store a single CalClient. This should be replaced with
>>a list of something like
>>
>> struct LoadedCalendar {
>> CalClient *client;
>> CalQuery *query;
>> any_information_you_need_to_paint_the_events_for_that_calendar
>> }
>>
>>So for each open calendar you need a CalClient, a CalQuery to filter
>>which objects to display, and any extra information you need to
>>display the objects for that particular calendar (colors, icons,
>>whatever).
[snip]
>>Of course you then need methods to add and remove calendars from a
>>view.
>
>This is a view specific thing, with no support in the PCS, right?
When you wrote "All of the views store a single CalClient," you
really meant "each", right? There's no reason other than the fact
that they are all set in gnome-cal.c that the views couldn't have
different CalClients, pointed at completely different calendars,
correct? (That would seem to comport with the "dumb view" model.)
Although one would conceptually want the ability to selectively
include and exclude calendars from different views, I have a sense
that the UI required would be too complex; a user who right clicked
on the ECalendar to include a new calendar shouldn't then have to
also include it in the EDayView to get a unified view of the world.
That suggests that LoadedCalendar (and the GList* loaded_calendars)
should be at the GUI wide level, sort of "above" the different views.
Is there anything conceptually at that level now? GnomeCalendar?
I suppose I could maintain the conceptual separation and allow each
view to selectively include/exclude calendars, and then we could
still keep the only UI as calendar-global and have it simply proxy
changes to the individual views (as gnome_calendar_construct()
currently does to call e_{day,week}_view_set_cal_client()). Then if
someone later on wants to add a particular view which is sufficiently
self-contained that it could reasonably have its own Include/Exclude
interface (the Tasks component is a logical candidate), the support
would already be there...
Am I completely offbase?
-Russell
--
Russell Steinthal Columbia Law School, Class of 2002
<[EMAIL PROTECTED]> Columbia College, Class of 1999
<[EMAIL PROTECTED]> UNIX System Administrator, nj.org
_______________________________________________
evolution-hackers maillist - [EMAIL PROTECTED]
http://lists.helixcode.com/mailman/listinfo/evolution-hackers