aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gncal-full-day.c
Commit message (Collapse)AuthorAgeFilesLines
* Do some cleanup; now we pass a struct with the layout algorithm's stateFederico Mena Quintero1998-10-091-126/+45
| | | | | | | | | | | | | | | | | | | | | 1998-10-08 Federico Mena Quintero <federico@nuclecu.unam.mx> * layout.c: Do some cleanup; now we pass a struct with the layout algorithm's state instead of passing a trillion parameters around. * gncal-full-day.c (layout_children): Use the new generic layout engine. (child_compare): Sort keys are start time then end time, not just start time. This produces somewhat nicer results for the layout algorithm. The new layout code uses a partition of the time range occupied by the events, rather than using a fixed time granularity. This is better since the different parts of the program that use the layout module will have different semantics regarding snapping the event bounds to a fixed "time grid". svn path=/trunk/; revision=434
* Changed name from time_start_of_day() to be consistent with the otherFederico Mena Quintero1998-10-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 1998-10-02 Federico Mena Quintero <federico@nuclecu.unam.mx> * timeutil.c (time_day_begin): Changed name from time_start_of_day() to be consistent with the other begin/end functions. (time_day_end): Likewise. * calobj.c (ical_object_get_first_weekday): New public function to get the first toggled day in a weekday mask. Since we do not support multiple weekdays in a monthly-by-pos rule, we just fetch the first toggled one. (ical_object_generate_events): Added a missing break statement. * timeutil.c (time_month_end): Made it consistent with the rest of the time begin/end functions -- now it returns the first second of the *next* month. (time_week_end): Actually implemented this function. It will be used when the week view is rewritten. * calobj.c (time_in_range): Fix off-by-one in the comparison of the time against the end time. * gncal-full-day.c (expand_space): Fixed bug where the columns not were being expanded due to a missing "slot + j". svn path=/trunk/; revision=425
* Finished with the properties dialog. You can jump to days from the yearFederico Mena Quintero1998-09-041-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Finished with the properties dialog. You can jump to days from the year view now. I'm off to rewrite gnome-popupmenu and friends. 1998-09-03 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal-full-day.c (gncal_full_day_forall): Updated foreach -> forall from Gtk changes, bleah. * year-view.c (day_event): New function to handle events from days. Jumps to the day that is clicked. * main.c: Use a watch cursor while the previous/today/next functions are doing their job. * mark.c (month_item_prepare_prelight): New public utility function to prepare a month item for prelighting. It will store the proper prelight information and attach the appropriate signals. (mark_current_day): Make the current day bold as well (useful for color-blind people, I guess). * prop.c (set_current_day): Reset the date in the sample calendar and mark the current day. (fake_mark_days): Mark fake events in the sample calendar. * year-view.c (year_view_set): Use the general prelighting engine. * goto.c (day_event): Just process button presses, as prelighting is done behind the scenes now. (update): Use the general prelighting engine. * prop.c (create_colors_page): We can now configure the colors of svn path=/trunk/; revision=361
* Centralized marking of month items. We now have a little utility functionFederico Mena Quintero1998-08-301-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Centralized marking of month items. We now have a little utility function to colorify the days in a month item that have events scheduled for them. This is currently used by the year view and the go-to dialog. Fixed buglets here and there. 1998-08-29 Federico Mena Quintero <federico@nuclecu.unam.mx> * mark.[ch]: New files with utility functions to mark calendars with their events. * mark.c (mark_month_item): New public function to mark a month item with events. (unmark_month_item): New public function to unmark all the days in a month item to their default appearance. * year-view.c (year_view_set): Use the new unmark_month_item() and mark_month_item() to mark the months with events. * goto.c (update): New function that updates the calendar in the Go-to dialog by marking the days. * timeutil.c (time_year_begin): Modified to take a time_t value. (time_year_end): Likewise. (time_month_begin): Actually implemented this function, which was in the header file but not here. (time_days_in_month): New public function that returns the number of days in a month. * Makefile.am (gnomecal_SOURCES): Added mark.[ch] to the sources. * year-view.c (unmark_days): Use unmark_month_item(). * gncal-full-day.c (gncal_full_day_destroy): Fixed crash when destroying the full day view. The full day's destroy method is unusual in that it destroys the list of child widgets itself, as it does not have a remove method, so it needs to reset the list to NULL. svn path=/trunk/; revision=351
* Use an array of const strings to keep gcc happy.Federico Mena Quintero1998-08-041-3/+3
| | | | | | | | | | | | | 1998-08-03 Federico Mena Quintero <federico@nuclecu.unam.mx> * main.c (about_calendar_cmd): Use an array of const strings to keep gcc happy. * alarm.c (alarm_compare_by_time): Use gconstpointer to keep gcc happy. * calendar.c (calendar_object_compare_by_start): Likewise. * gncal-full-day.c (child_compare_by_start): Likewise. svn path=/trunk/; revision=296
* Paint the decorations correctly. (child_draw_decor): Paint theFederico Mena Quintero1998-05-311-53/+54
| | | | | | | | | 1998-05-30 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal-full-day.c (child_draw): Paint the decorations correctly. (child_draw_decor): Paint the recurrence/bell icons correctly. svn path=/trunk/; revision=241
* Fix the gc destruction in the unrealization code and fix the pixmapMiguel de Icaza1998-05-261-5/+13
| | | | | | | | | | | | 1998-05-25 Miguel de Icaza <miguel@nuclecu.unam.mx> * gncal-full-day.c (gncal_full_day_unrealize): Fix the gc destruction in the unrealization code and fix the pixmap unrefing. * main.c (close_cmd): Remove a bad hack that disabled calendar widget destruction. svn path=/trunk/; revision=238
* Implemented ultra-cool layout for the events that share the same timeMiguel de Icaza1998-05-191-102/+161
| | | | | | | | | | | | | | | | | | 1998-05-18 Miguel de Icaza <miguel@nuclecu.unam.mx> * gncal-full-day.c (layout_children): Implemented ultra-cool layout for the events that share the same time range. Gals and guys you can now drop Outlook on the recycle bin. Which reminds me. We do not have a recycle bin. How could that happen in a project as cool as this one? Someone explain this to me. 1998-05-18 Federico Mena <federico@nuclecu.unam.mx> * gncal-full-day.c (paint_back): Eliminated unnecessary border repainting. svn path=/trunk/; revision=218
* Do not add the spurious padding.Miguel de Icaza1998-05-151-5/+39
| | | | | | | | | | | | | | | | | | | | | | | | 1998-05-14 Miguel de Icaza <miguel@nuclecu.unam.mx> * timeutil.c (isodate_from_time_t): Do not add the spurious padding. * calobj.c (store_date_list): Bug fix: I was using the wrong pointer when saving the exception date list. (set_date_list): Bug fix: load correctly the complete exception date list. (set_date_list): Use ',' for the exception date separator as the versit people can not get their standard right. * gncal-full-day.c (unrecur_appointment): Support for making an existing recurrent event `movable' for a day. * calobj.c (ical_object_add_exdate): New routine, used to add exception dates. (ical_object_duplicate): New routine: used to do the magic recur->no-recur event. svn path=/trunk/; revision=214
* Further work on getting nice pixmaps displayed -migArturo Espinosa1998-05-091-14/+17
| | | | svn path=/trunk/; revision=210
* My attempt at getting the nice pixmaps drawn next to the events.Arturo Espinosa1998-05-071-20/+141
| | | | | | | | My attempt at getting the nice pixmaps drawn next to the events. For some wierdo reason it is not drawing them now. svn path=/trunk/; revision=208
* Various fixes and optimizations; Tagging of the days with appointements.Arturo Espinosa1998-04-301-2/+3
| | | | | | | | | Various fixes and optimizations; Tagging of the days with appointements. the 1969 bug is gone. Really. Miguel. svn path=/trunk/; revision=201
* Lots of fixes:Arturo Espinosa1998-04-291-2/+7
| | | | | | | | | | | | | Lots of fixes: 1. Alarms are rescheduled when an event has been changed. 2. Avoid emitting spurious event changes. 3. Applied black magic to get the mail-notification working. Miguel. svn path=/trunk/; revision=199
* Made it use popup_menu().Federico Mena Quintero1998-04-231-5/+7
| | | | | | | | | | | | | | | | | | | | | | | 1998-04-22 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal-full-day.c: Made it use popup_menu(). * popup-menu.c: New file with utility functions for creating popup menus. Maybe such a thing would be useful in libgnomeui, a la gnome-app-helper? * Makefile.am (gnomecal_SOURCES): Added popup-menu.[ch] to the sources. 1998-04-21 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal-todo.c: New widget for editing TODO lists. This will be worked on a lot. * Makefile.am (gnomecal_SOURCES): Added gncal-todo.[ch] to the sources. * gncal-day-panel.c: Make it use the new TODO widget. svn path=/trunk/; revision=189
* 1. Calendar property configuration is finally here with nice live-updates.Arturo Espinosa1998-04-221-34/+0
| | | | | | | | | | | | | 1. Calendar property configuration is finally here with nice live-updates. 2. Double clicking on week view jumps to that day in the day view; Context menu allows adding an appointment on that day. Miguel. svn path=/trunk/; revision=182
* Misc. event handling fixes - FedericoArturo Espinosa1998-04-211-4/+16
| | | | svn path=/trunk/; revision=175
* Make the any-key-creates-new-appointment-at-selection thing actually work - ↵Arturo Espinosa1998-04-211-6/+25
| | | | | | Federico svn path=/trunk/; revision=173
* Now any printable keystroke (not just Return) will activate the selectedFederico Mena Quintero1998-04-211-2/+25
| | | | | | | | | 1998-04-20 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal-full-day.c (gncal_full_day_key_press): Now any printable keystroke (not just Return) will activate the selected range. svn path=/trunk/; revision=172
* Made it use the new paint_row function instead of painting everythingFederico Mena Quintero1998-04-211-133/+130
| | | | | | | | | | | | | 1998-04-20 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal-full-day.c (paint_back): Made it use the new paint_row function instead of painting everything directly. We calculate areas in a smarter way so there is even less flicker than before, especially when selecting regions. * eventedit.c: Sensitize recurrence widgets properly. svn path=/trunk/; revision=171
* Fix compiler warnings - FedericoArturo Espinosa1998-04-211-1/+0
| | | | svn path=/trunk/; revision=170
* A lot of usability changes to GnomeCal -miguelArturo Espinosa1998-04-211-15/+34
| | | | svn path=/trunk/; revision=168
* Added mandatory status property. (ical_object_to_vobject): Only storeFederico Mena Quintero1998-04-181-2/+3
| | | | | | | | | | | | | | | | 1998-04-17 Federico Mena Quintero <federico@nuclecu.unam.mx> * calobj.c (ical_new): Added mandatory status property. (ical_object_to_vobject): Only store "related" list if it exists. * main.c (save_calendar_cmd): Implemented calendar saving. (open_calendar_cmd): Implemented calendar loading. (new_calendar_cmd): Implemented calendar creation. (new_calendar): Don't load our test calendar by default. * gncal-full-day.c (delete_appointment): Delete appointment implemented. svn path=/trunk/; revision=153
* The event dialog is beautified, recurrences are saner.Federico Mena Quintero1998-04-181-2/+6
| | | | | | | | | | 1998-04-17 Federico Mena Quintero <federico@nuclecu.unam.mx> * eventedit.c (ee_init_recurrence_page): New function that creates the recurrence page in the toplevel notebook. (ee_store_recur_values_to_ical): Now we can also store the recurrences. svn path=/trunk/; revision=151
* Large number of updates. Recurrence basically works now in most of itsArturo Espinosa1998-04-181-4/+6
| | | | | | | | | Large number of updates. Recurrence basically works now in most of its forms (daily, weekly, month-by-position). Miguel. svn path=/trunk/; revision=148
* Remove deadly excessive abuse of encapsulation -migArturo Espinosa1998-04-171-3/+2
| | | | svn path=/trunk/; revision=147
* New event generation api in place -miguelArturo Espinosa1998-04-171-23/+39
| | | | svn path=/trunk/; revision=146
* Use menu_shell->children, not menu->children. Why does GtkMenu have aFederico Mena Quintero1998-04-171-75/+93
| | | | | | | | | | | | | | | | | | | | | 1998-04-16 Federico Mena Quintero <federico@nuclecu.unam.mx> * eventedit.c (ee_store_alarm): Use menu_shell->children, not menu->children. Why does GtkMenu have a children field in the object structure? (check_dates): New function that insures that start_date < end_date. (check_times): In addition to checking whether the event spans the whole day, now it insures that start_time < end_time. * gncal-full-day.c (child_set_size): Now children get bigger temporarily while they are focused. This allows the handles not to "overlap" the rows used by the child and thus allow editing of very thin events. (recompute_motion): Fix for new child coordinates. (gncal_full_day_expose): Make it use find_child_by_window() instead of looking for it by hand. svn path=/trunk/; revision=145
* XPM files for events with alarm and recurrence, respectively.Federico Mena Quintero1998-04-161-3/+3
| | | | | | | | | | | | | 1998-04-16 Federico Mena Quintero <federico@nuclecu.unam.mx> * bell.xpm recur.xpm: XPM files for events with alarm and recurrence, respectively. 1998-04-15 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal-full-day.c (button_1): Preserve the up/down cursor while dragging. svn path=/trunk/; revision=143
* Now children have a vertical handle as well. This can be used to move theFederico Mena Quintero1998-04-161-35/+72
| | | | | | | | | | | 1998-04-15 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal-full-day.c (child_draw): Now children have a vertical handle as well. This can be used to move the child anytime, not only when it is focused. (recompute_motion): Modified for new drag behavior. svn path=/trunk/; revision=142
* The general_owner may be null. Do the proper thing when creating theFederico Mena Quintero1998-04-161-78/+118
| | | | | | | | | | | | | | | | | | | | | | | | 1998-04-15 Federico Mena Quintero <federico@nuclecu.unam.mx> * eventedit.c (ee_init_general_page): The general_owner may be null. Do the proper thing when creating the label. (ee_ok): Update the gnome calendar appropriately. * timeutil.h: * gncal-year-view.h: Add some missing prototypes. * gncal-full-day.c (child_popup_menu): Set the sensitivity of menu items according to whether the ical object is being edited or not. * eventedit.c (event_editor_new): Set the "being edited" flag on the ical object (stored as the ical object's user data). (event_editor_destroy): Release the flag. * calobj.h: The iCalObject structure now has a generic user_data pointer. * calobj.c (ical_object_set_user_data ical_object_get_user_data): Functions to set this data. svn path=/trunk/; revision=140
* Now using time_t for new and set. Random fixes, as well.Arturo Espinosa Aldama1998-04-151-33/+155
| | | | | | | | | 1998-04-15 Arturo Espinosa Aldama <arturo@nuclecu.unam.mx> * gncal-year-view.[hc]: Now using time_t for new and set. Random fixes, as well. svn path=/trunk/; revision=137
* Routine to destory rows array properly.Miguel de Icaza1998-04-151-4/+15
| | | | | | | | | | | | | | | 1998-04-15 Miguel de Icaza <miguel@nuclecu.unam.mx> * gncal-full-day.c (layout_kill_rows): Routine to destory rows array properly. * gncal-year-view.c (gncal_year_view_new): Add missing year in call to strftime. * calobj.c (ical_object_create_from_vobject): Fixed memory leaks from the return values of versit's fakeCString. svn path=/trunk/; revision=136
* ArghArturo Espinosa1998-04-151-0/+23
| | | | svn path=/trunk/; revision=135
* New widget for the year view. added required compilation of the new files.Arturo Espinosa Aldama1998-04-151-3/+19
| | | | | | | | | 1998-04-14 Arturo Espinosa Aldama <arturo@nuclecu.unam.mx> * gncal-year-view.[hc]: New widget for the year view. * Makefile.am: added required compilation of the new files. svn path=/trunk/; revision=134
* Now takes object and flags parameters. Likewise. Likewise.Federico Mena Quintero1998-04-141-14/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | 1998-04-13 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal-week-view.c (gncal_week_view_update): Now takes object and flags parameters. * gncal-day-view.c (gncal_day_view_update): Likewise. * gncal-full-day.c (gncal_full_day_update): Likewise. (child_focus_in): New function. In conjunction with child_focus_out(), these only display the handles in the child when it is focused. The result is that the user can see more of the child's text when nothing is focused, and we can also display fatter and nicer drag handles. * gnome-cal.c (gnome_calendar_object_changed): Now takes an additional flags parameter (gnome_calendar_update_all): Made function static. Now takes changed object and flags parameters as well. (gnome_calendar_object_changed): Now takes additional flags parameter to indicate what changed in the specified object. * calobj.h (CalObjectChange): New enum with flags to describe what has been changed in an object. svn path=/trunk/; revision=132
* New function to let the outside world decide which child to focus.Federico Mena Quintero1998-04-141-0/+36
| | | | | | | | | | | | | | | 1998-04-13 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal-full-day.h: * gncal-full-day.c (gncal_full_day_focus_child): New function to let the outside world decide which child to focus. (gncal_full_day_focus_child): Bleah. We have to synthesize a click because GtkText will not set the cursor when you focus it. * gnome-cal.c (day_view_range_activated): Focus the new child in the full day widget. svn path=/trunk/; revision=131
* Create new object and add it to the calendar. You can now select a rangeFederico Mena Quintero1998-04-141-24/+126
| | | | | | | | | | | | | | | | | | | | 1998-04-13 Federico Mena Quintero <federico@nuclecu.unam.mx> * gnome-cal.c (day_view_range_activated): Create new object and add it to the calendar. You can now select a range in the full-day view, hit Return, and a new event will be added at the selected range. I still have to figure out how to focus this new child. * gncal-full-day.c (paint_back): Rewrote function to avoid painting an area more than once -- eliminate flicker. (paint_back_rows): New function that calls paint_back() only for the area of the specified rows. (gncal_full_day_button_press): (gncal_full_day_button_release): (gncal_full_day_motion): Made these functions use paint_back_rows() instead of paint_back(), to eliminate flicker. Wheee! svn path=/trunk/; revision=129
* We now connect to the range_activated signal of the fullday widget insteadFederico Mena Quintero1998-04-131-34/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1998-04-12 Federico Mena Quintero <federico@nuclecu.unam.mx> * gnome-cal.c (setup_day_view): We now connect to the range_activated signal of the fullday widget instead of catching key presses ourselves. (day_view_range_activated): New function that creates a new iCalObject and inserts it into the calendar, not finished yet. 1998-04-11 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal-full-day.c (get_time_from_rows): New function, calculates a pair of time_t values from the specified start and number of rows. * gncal-full-day.h (GncalFullDayClass): New signal "range_activated". It is emitted when a range is selected and the user hits Return. (gncal_full_day_selection_range): New function, returns the selected range. * gncal-full-day.c (struct drag_info): Moved selection information to their own fields instead of sharing the child's drag fields. This allows us to keep the selection when a child is moved. (recompute_motion): Made the case when (row < di->sel_click_row) work correctly. svn path=/trunk/; revision=128
* Begginning of the create-appointment-on-range-selection-and-enter code -miguelArturo Espinosa1998-04-121-0/+18
| | | | svn path=/trunk/; revision=127
* Now we support selecting a range in the main window (byFederico Mena Quintero1998-04-111-33/+110
| | | | | | | | | | 1998-04-11 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal-full-day.c (recompute_motion): Now we support selecting a range in the main window (by clicking+dragging). It flickers horribly and is not perfect, but it is a start. svn path=/trunk/; revision=125
* Oops, compilation fixes plus more work - FedericoArturo Espinosa1998-04-111-40/+45
| | | | svn path=/trunk/; revision=123
* More work in progress - FedericoArturo Espinosa1998-04-111-25/+161
| | | | svn path=/trunk/; revision=121
* Show instead of just map the child widget (otherwise the text widget getsFederico Mena Quintero1998-04-091-123/+139
| | | | | | | | | | | | | | | | | | | | | | | | | 1998-04-09 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal-full-day.c (child_map): Show instead of just map the child widget (otherwise the text widget gets confused and will not focus). * calobj.c (ical_object_to_vobject): Quote chars as 'x', not "x". * calobj.h: Added prototype for ical_object_to_vobject(). * gnome-cal.c (gnome_calendar_object_changed): New function. This should be called when a calendar object is changed. * gncal-full-day.c (update_from_drag_info): Call gnome_calendar_object_changed() instead of updating manually. * calendar.c (calendar_add_object): (calendar_remove_object): Set the modified flag to true. * gncal-full-day.c (gncal_full_day_draw): Finished implementing this function. svn path=/trunk/; revision=120
* The full day widget now gets updated correctly when you add anArturo Espinosa1998-04-091-12/+33
| | | | | | appointment from the menus. - Federico svn path=/trunk/; revision=116
* Wheee! Now you can drag events correctly - FedericoArturo Espinosa1998-04-091-10/+19
| | | | svn path=/trunk/; revision=112
* More updates - FedericoArturo Espinosa1998-04-081-10/+75
| | | | svn path=/trunk/; revision=111
* More work in progress, wheeeee - FedericoArturo Espinosa1998-04-081-71/+831
| | | | svn path=/trunk/; revision=109
* The "better" format string for strftime() wasn't better, after all :-(Federico Mena Quintero1998-04-031-3/+65
| | | | | | | | | | | 1998-04-03 Federico Mena Quintero <federico@nuclecu.unam.mx> * view-utils.c (view_utils_draw_events): The "better" format string for strftime() wasn't better, after all :-( ... plus more work on progress svn path=/trunk/; revision=101
* New full-day widget. It is still a work in progress. It will be similar toFederico Mena Quintero1998-04-031-0/+320
1998-04-02 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal-full-day.c: New full-day widget. It is still a work in progress. It will be similar to M$ Schedule's nifty full day view widget, but with Gtk's elegance :-) * Makefile.am (gnomecal_SOURCES): Added gncal-full-day.[ch] to the sources. svn path=/trunk/; revision=99