New function to let the outside world decide which child to focus.
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
This commit is contained in:

committed by
Arturo Espinosa

parent
c9311c844f
commit
23ef00df35
@ -1,5 +1,14 @@
|
||||
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.
|
||||
|
||||
* eventedit.c (event_editor_setup_time_frame): Re-aligned some
|
||||
widgets to make it look prettier.
|
||||
(ee_alarm_widgets): Likewise.
|
||||
|
@ -15,9 +15,6 @@ Event editor dialog:
|
||||
|
||||
Full day view widget:
|
||||
|
||||
- Finish the code on gnome-cal.c to add an event when the
|
||||
range_activated signal is caught.
|
||||
|
||||
- Check notification to calendar when an object changes. Maybe we
|
||||
need some flags to tell gnome_calendar_object_changed() whether
|
||||
summary/dates/etc. changed. Maybe not.
|
||||
|
@ -1662,6 +1662,42 @@ gncal_full_day_selection_range (GncalFullDay *fullday, time_t *lower, time_t *up
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
gncal_full_day_focus_child (GncalFullDay *fullday, iCalObject *object)
|
||||
{
|
||||
GList *children;
|
||||
Child *child;
|
||||
GdkEvent event;
|
||||
|
||||
g_return_if_fail (fullday != NULL);
|
||||
g_return_if_fail (object != NULL);
|
||||
|
||||
for (children = fullday->children; children; children = children->next) {
|
||||
child = children->data;
|
||||
|
||||
if (child->ico == object) {
|
||||
gtk_widget_grab_focus (child->widget);
|
||||
|
||||
/* We synthesize a click because GtkText will not set the cursor and
|
||||
* the user will not be able to type-- this has to be fixed in
|
||||
* GtkText. */
|
||||
|
||||
memset (&event, 0, sizeof (event));
|
||||
|
||||
event.type = GDK_BUTTON_PRESS;
|
||||
event.button.window = child->widget->window;
|
||||
event.button.time = GDK_CURRENT_TIME;
|
||||
event.button.x = 0;
|
||||
event.button.y = 0;
|
||||
event.button.button = 1;
|
||||
|
||||
gtk_widget_event (child->widget, &event);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
range_activated (GncalFullDay *fullday)
|
||||
{
|
||||
|
@ -60,6 +60,8 @@ void gncal_full_day_set_bounds (GncalFullDay *fullday, time_t lower,
|
||||
*/
|
||||
int gncal_full_day_selection_range (GncalFullDay *fullday, time_t *lower, time_t *upper);
|
||||
|
||||
void gncal_full_day_focus_child (GncalFullDay *fullday, iCalObject *object);
|
||||
|
||||
END_GNOME_DECLS
|
||||
|
||||
#endif
|
||||
|
@ -49,6 +49,7 @@ day_view_range_activated (GncalFullDay *fullday, GnomeCalendar *gcal)
|
||||
gncal_full_day_selection_range (fullday, &ical->dtstart, &ical->dtend);
|
||||
|
||||
gnome_calendar_add_object (gcal, ical);
|
||||
gncal_full_day_focus_child (fullday, ical);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1662,6 +1662,42 @@ gncal_full_day_selection_range (GncalFullDay *fullday, time_t *lower, time_t *up
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
gncal_full_day_focus_child (GncalFullDay *fullday, iCalObject *object)
|
||||
{
|
||||
GList *children;
|
||||
Child *child;
|
||||
GdkEvent event;
|
||||
|
||||
g_return_if_fail (fullday != NULL);
|
||||
g_return_if_fail (object != NULL);
|
||||
|
||||
for (children = fullday->children; children; children = children->next) {
|
||||
child = children->data;
|
||||
|
||||
if (child->ico == object) {
|
||||
gtk_widget_grab_focus (child->widget);
|
||||
|
||||
/* We synthesize a click because GtkText will not set the cursor and
|
||||
* the user will not be able to type-- this has to be fixed in
|
||||
* GtkText. */
|
||||
|
||||
memset (&event, 0, sizeof (event));
|
||||
|
||||
event.type = GDK_BUTTON_PRESS;
|
||||
event.button.window = child->widget->window;
|
||||
event.button.time = GDK_CURRENT_TIME;
|
||||
event.button.x = 0;
|
||||
event.button.y = 0;
|
||||
event.button.button = 1;
|
||||
|
||||
gtk_widget_event (child->widget, &event);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
range_activated (GncalFullDay *fullday)
|
||||
{
|
||||
|
@ -60,6 +60,8 @@ void gncal_full_day_set_bounds (GncalFullDay *fullday, time_t lower,
|
||||
*/
|
||||
int gncal_full_day_selection_range (GncalFullDay *fullday, time_t *lower, time_t *upper);
|
||||
|
||||
void gncal_full_day_focus_child (GncalFullDay *fullday, iCalObject *object);
|
||||
|
||||
END_GNOME_DECLS
|
||||
|
||||
#endif
|
||||
|
@ -49,6 +49,7 @@ day_view_range_activated (GncalFullDay *fullday, GnomeCalendar *gcal)
|
||||
gncal_full_day_selection_range (fullday, &ical->dtstart, &ical->dtend);
|
||||
|
||||
gnome_calendar_add_object (gcal, ical);
|
||||
gncal_full_day_focus_child (fullday, ical);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Reference in New Issue
Block a user