[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

Reply via email to