More calendar work -mig
svn path=/trunk/; revision=98
This commit is contained in:
@ -1,3 +1,12 @@
|
||||
1998-04-02 Miguel de Icaza <miguel@nuclecu.unam.mx>
|
||||
|
||||
* eventedit.c: Object editor widget. We dropped ObjEdit.
|
||||
|
||||
* timeutil.c (time_from_isodate): Fix.
|
||||
|
||||
* view-utils.c (view_utils_draw_events): Changed the display
|
||||
formats.
|
||||
|
||||
1998-04-02 Federico Mena Quintero <federico@nuclecu.unam.mx>
|
||||
|
||||
* view-utils.c (view_utils_draw_events): Use better format
|
||||
|
@ -25,7 +25,9 @@ gnomecal_SOURCES = \
|
||||
view-utils.h \
|
||||
view-utils.c \
|
||||
views.h \
|
||||
views.c
|
||||
views.c \
|
||||
eventedit.c \
|
||||
eventedit.h
|
||||
|
||||
|
||||
#gncal_SOURCES = \
|
||||
|
@ -87,6 +87,17 @@ calendar_destroy (Calendar *cal)
|
||||
g_free (cal);
|
||||
}
|
||||
|
||||
char *
|
||||
ice (time_t t)
|
||||
{
|
||||
static char buffer [100];
|
||||
struct tm *tm;
|
||||
|
||||
tm = localtime (&t);
|
||||
sprintf (buffer, "%d/%d/%d", tm->tm_mday, tm->tm_mon, tm->tm_year);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
static GList *
|
||||
calendar_get_objects_in_range (GList *objects, time_t start, time_t end, GCompareFunc sort_func)
|
||||
{
|
||||
@ -94,12 +105,13 @@ calendar_get_objects_in_range (GList *objects, time_t start, time_t end, GCompar
|
||||
|
||||
for (; objects; objects = objects->next){
|
||||
iCalObject *object = objects->data;
|
||||
|
||||
if ((start <= object->dtstart) && (end >= object->dtend))
|
||||
|
||||
if ((start <= object->dtstart) && (object->dtend <= end)){
|
||||
if (sort_func)
|
||||
new_events = g_list_insert_sorted (new_events, object, sort_func);
|
||||
else
|
||||
new_events = g_list_prepend (new_events, object);
|
||||
}
|
||||
}
|
||||
|
||||
return new_events;
|
||||
|
158
calendar/eventedit.c
Normal file
158
calendar/eventedit.c
Normal file
@ -0,0 +1,158 @@
|
||||
/*
|
||||
* EventEditor widget
|
||||
* Copyright (C) 1998 the Free Software Foundation
|
||||
*
|
||||
* Author: Miguel de Icaza (miguel@kernel.org)
|
||||
*/
|
||||
|
||||
#include <gnome.h>
|
||||
#include "eventedit.h"
|
||||
#include "main.h"
|
||||
|
||||
static void event_editor_init (EventEditor *ee);
|
||||
GtkWindow *parent_class;
|
||||
|
||||
guint
|
||||
event_editor_get_type (void)
|
||||
{
|
||||
static guint event_editor_type = 0;
|
||||
|
||||
if(!event_editor_type) {
|
||||
GtkTypeInfo event_editor_info = {
|
||||
"EventEditor",
|
||||
sizeof(EventEditor),
|
||||
sizeof(EventEditorClass),
|
||||
(GtkClassInitFunc) NULL,
|
||||
(GtkObjectInitFunc) event_editor_init,
|
||||
(GtkArgSetFunc) NULL,
|
||||
(GtkArgGetFunc) NULL,
|
||||
};
|
||||
event_editor_type = gtk_type_unique (gtk_window_get_type (), &event_editor_info);
|
||||
parent_class = gtk_type_class (gtk_window_get_type ());
|
||||
}
|
||||
return event_editor_type;
|
||||
}
|
||||
|
||||
/*
|
||||
* when the start time is changed, this adjusts the end time.
|
||||
*/
|
||||
static void
|
||||
adjust_end_time (GtkWidget *widget, EventEditor *ee)
|
||||
{
|
||||
struct tm *tm;
|
||||
time_t start_t;
|
||||
|
||||
start_t = gnome_date_edit_get_date (GNOME_DATE_EDIT (ee->start_time));
|
||||
tm = localtime (&start_t);
|
||||
if (tm->tm_hour < 22)
|
||||
tm->tm_hour++;
|
||||
gnome_date_edit_set_time (GNOME_DATE_EDIT (ee->end_time), mktime (tm));
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
adjust (GtkWidget *w, gfloat x, gfloat y, gfloat xs, gfloat ys)
|
||||
{
|
||||
GtkWidget *a = gtk_alignment_new (x, y, xs, ys);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (a), w);
|
||||
return a;
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
event_editor_setup_time_frame (EventEditor *ee)
|
||||
{
|
||||
GtkWidget *frame;
|
||||
GtkWidget *start_time, *end_time;
|
||||
GtkTable *t;
|
||||
|
||||
frame = gtk_frame_new (_("Time"));
|
||||
t = GTK_TABLE (ee->general_time_table = gtk_table_new (1, 1, 0));
|
||||
gtk_container_add (GTK_CONTAINER (frame), ee->general_time_table);
|
||||
|
||||
ee->start_time = start_time = gnome_date_edit_new (0);
|
||||
ee->end_time = end_time = gnome_date_edit_new (0);
|
||||
gnome_date_edit_set_popup_range ((GnomeDateEdit *) start_time, day_begin, day_end);
|
||||
gnome_date_edit_set_popup_range ((GnomeDateEdit *) end_time, day_begin, day_end);
|
||||
gtk_signal_connect (GTK_OBJECT (start_time), "time_changed",
|
||||
GTK_SIGNAL_FUNC (adjust_end_time), ee);
|
||||
gtk_table_attach (t, gtk_label_new (_("Start time")), 1, 2, 1, 2, 0, 0, 0, 0);
|
||||
gtk_table_attach (t, gtk_label_new (_("End time")), 1, 2, 2, 3, 0, 0, 0, 0);
|
||||
|
||||
gtk_table_attach (t, start_time, 2, 3, 1, 2, 0, 0, 0, 0);
|
||||
gtk_table_attach (t, end_time, 2, 3, 2, 3, 0, 0, 0, 0);
|
||||
return frame;
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
ee_create_buttons ()
|
||||
{
|
||||
return gtk_label_new ("xx");
|
||||
}
|
||||
|
||||
enum {
|
||||
OWNER_LINE,
|
||||
DESC_LINE,
|
||||
SUMMARY_LINE,
|
||||
TIME_LINE = 4
|
||||
};
|
||||
|
||||
#define LABEL_SPAN 2
|
||||
|
||||
static void
|
||||
event_editor_init (EventEditor *ee)
|
||||
{
|
||||
GtkWidget *frame, *l;
|
||||
|
||||
ee->hbox = gtk_vbox_new (0, 0);
|
||||
gtk_container_add (GTK_CONTAINER (ee), ee->hbox);
|
||||
|
||||
ee->notebook = gtk_notebook_new ();
|
||||
gtk_box_pack_start (GTK_BOX (ee->hbox), ee->notebook, 1, 1, 0);
|
||||
|
||||
ee->general_table = (GtkTable *) gtk_table_new (1, 1, 0);
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (ee->notebook), GTK_WIDGET (ee->general_table),
|
||||
gtk_label_new (_("General")));
|
||||
|
||||
l = adjust (gtk_label_new (_("Owner:")), 1.0, 0.5, 1.0, 1.0);
|
||||
gtk_table_attach (ee->general_table, l,
|
||||
1, LABEL_SPAN, OWNER_LINE, OWNER_LINE + 1, GTK_FILL|GTK_EXPAND, 0, 0, 6);
|
||||
|
||||
ee->general_owner = gtk_label_new ("");
|
||||
gtk_table_attach (ee->general_table, ee->general_owner,
|
||||
LABEL_SPAN, LABEL_SPAN + 1, OWNER_LINE, OWNER_LINE + 1, GTK_FILL|GTK_EXPAND, 0, 0, 0);
|
||||
|
||||
l = gtk_label_new (_("Description:"));
|
||||
gtk_table_attach (ee->general_table, l,
|
||||
1, LABEL_SPAN, DESC_LINE, DESC_LINE + 1, GTK_FILL|GTK_EXPAND, 0, 0, 0);
|
||||
|
||||
ee->general_summary = gtk_text_new (NULL, NULL);
|
||||
gtk_widget_set_usize (ee->general_summary, 0, 60);
|
||||
gtk_text_set_editable (GTK_TEXT (ee->general_summary), 1);
|
||||
gtk_table_attach (ee->general_table, ee->general_summary,
|
||||
1, 40, SUMMARY_LINE, SUMMARY_LINE+1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 6, 0);
|
||||
|
||||
frame = event_editor_setup_time_frame (ee);
|
||||
gtk_table_attach (ee->general_table, frame,
|
||||
1, 40, TIME_LINE + 2, TIME_LINE + 3,
|
||||
GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
|
||||
|
||||
/* Separator */
|
||||
gtk_box_pack_start (GTK_BOX (ee->hbox), gtk_hseparator_new (), 1, 1, 0);
|
||||
|
||||
/* Buttons */
|
||||
gtk_box_pack_start (GTK_BOX (ee->hbox), ee_create_buttons (), 1, 1, 0);
|
||||
|
||||
/* We show all of the contained widgets */
|
||||
gtk_widget_show_all (GTK_WIDGET (ee));
|
||||
/* And we hide the toplevel, to be consistent with the rest of Gtk */
|
||||
gtk_widget_hide (GTK_WIDGET (ee));
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
event_editor_new (void)
|
||||
{
|
||||
GtkWidget *retval;
|
||||
|
||||
retval = gtk_type_new (event_editor_get_type ());
|
||||
return retval;
|
||||
}
|
38
calendar/eventedit.h
Normal file
38
calendar/eventedit.h
Normal file
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* EventEditor widget
|
||||
* Copyright (C) 1998 the Free Software Foundation
|
||||
*
|
||||
* Author: Miguel de Icaza (miguel@kernel.org)
|
||||
*/
|
||||
|
||||
#ifndef EVENT_EDITOR_H
|
||||
#define EVENT_EDITOR_H
|
||||
|
||||
BEGIN_GNOME_DECLS
|
||||
|
||||
#define EVENT_EDITOR(obj) GTK_CHECK_CAST(obj, event_editor_get_type(), EventEditor)
|
||||
#define EVENT_EDITOR_CLASS(class) GTK_CHECK_CAST_CLASS(class, event_editor_get_type(), EventEditorClass)
|
||||
#define IS_EVENT_EDITOR(obj) GTK_CHECK_TYPE(obj, event_editor_get_type())
|
||||
|
||||
typedef struct {
|
||||
GtkWindow gtk_window;
|
||||
GtkWidget *notebook;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *vbox;
|
||||
|
||||
GtkWidget *general;
|
||||
GtkTable *general_table;
|
||||
GtkWidget *general_time_table;
|
||||
GtkWidget *general_owner;
|
||||
GtkWidget *general_summary;
|
||||
GtkWidget *start_time, *end_time;
|
||||
} EventEditor;
|
||||
|
||||
typedef struct {
|
||||
GnomePropertyBoxClass parent_class;
|
||||
} EventEditorClass;
|
||||
|
||||
GtkWidget *event_editor_new (void);
|
||||
|
||||
END_GNOME_DECLS
|
||||
#endif
|
@ -18,9 +18,10 @@ BEGIN_GNOME_DECLS
|
||||
#define GNOME_IS_CALENDAR(obj) GTK_CHECK_TYPE(obj, gnome_calendar_get_type())
|
||||
|
||||
typedef struct {
|
||||
GnomeApp gnome_app;
|
||||
Calendar *cal;
|
||||
GtkWidget *week_view;
|
||||
GnomeApp gnome_app;
|
||||
Calendar *cal;
|
||||
GtkWidget *week_view;
|
||||
void *event_editor;
|
||||
} GnomeCalendar;
|
||||
|
||||
typedef struct {
|
||||
|
@ -25,7 +25,9 @@ gnomecal_SOURCES = \
|
||||
view-utils.h \
|
||||
view-utils.c \
|
||||
views.h \
|
||||
views.c
|
||||
views.c \
|
||||
eventedit.c \
|
||||
eventedit.h
|
||||
|
||||
|
||||
#gncal_SOURCES = \
|
||||
|
@ -87,6 +87,17 @@ calendar_destroy (Calendar *cal)
|
||||
g_free (cal);
|
||||
}
|
||||
|
||||
char *
|
||||
ice (time_t t)
|
||||
{
|
||||
static char buffer [100];
|
||||
struct tm *tm;
|
||||
|
||||
tm = localtime (&t);
|
||||
sprintf (buffer, "%d/%d/%d", tm->tm_mday, tm->tm_mon, tm->tm_year);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
static GList *
|
||||
calendar_get_objects_in_range (GList *objects, time_t start, time_t end, GCompareFunc sort_func)
|
||||
{
|
||||
@ -94,12 +105,13 @@ calendar_get_objects_in_range (GList *objects, time_t start, time_t end, GCompar
|
||||
|
||||
for (; objects; objects = objects->next){
|
||||
iCalObject *object = objects->data;
|
||||
|
||||
if ((start <= object->dtstart) && (end >= object->dtend))
|
||||
|
||||
if ((start <= object->dtstart) && (object->dtend <= end)){
|
||||
if (sort_func)
|
||||
new_events = g_list_insert_sorted (new_events, object, sort_func);
|
||||
else
|
||||
new_events = g_list_prepend (new_events, object);
|
||||
}
|
||||
}
|
||||
|
||||
return new_events;
|
||||
|
158
calendar/gui/eventedit.c
Normal file
158
calendar/gui/eventedit.c
Normal file
@ -0,0 +1,158 @@
|
||||
/*
|
||||
* EventEditor widget
|
||||
* Copyright (C) 1998 the Free Software Foundation
|
||||
*
|
||||
* Author: Miguel de Icaza (miguel@kernel.org)
|
||||
*/
|
||||
|
||||
#include <gnome.h>
|
||||
#include "eventedit.h"
|
||||
#include "main.h"
|
||||
|
||||
static void event_editor_init (EventEditor *ee);
|
||||
GtkWindow *parent_class;
|
||||
|
||||
guint
|
||||
event_editor_get_type (void)
|
||||
{
|
||||
static guint event_editor_type = 0;
|
||||
|
||||
if(!event_editor_type) {
|
||||
GtkTypeInfo event_editor_info = {
|
||||
"EventEditor",
|
||||
sizeof(EventEditor),
|
||||
sizeof(EventEditorClass),
|
||||
(GtkClassInitFunc) NULL,
|
||||
(GtkObjectInitFunc) event_editor_init,
|
||||
(GtkArgSetFunc) NULL,
|
||||
(GtkArgGetFunc) NULL,
|
||||
};
|
||||
event_editor_type = gtk_type_unique (gtk_window_get_type (), &event_editor_info);
|
||||
parent_class = gtk_type_class (gtk_window_get_type ());
|
||||
}
|
||||
return event_editor_type;
|
||||
}
|
||||
|
||||
/*
|
||||
* when the start time is changed, this adjusts the end time.
|
||||
*/
|
||||
static void
|
||||
adjust_end_time (GtkWidget *widget, EventEditor *ee)
|
||||
{
|
||||
struct tm *tm;
|
||||
time_t start_t;
|
||||
|
||||
start_t = gnome_date_edit_get_date (GNOME_DATE_EDIT (ee->start_time));
|
||||
tm = localtime (&start_t);
|
||||
if (tm->tm_hour < 22)
|
||||
tm->tm_hour++;
|
||||
gnome_date_edit_set_time (GNOME_DATE_EDIT (ee->end_time), mktime (tm));
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
adjust (GtkWidget *w, gfloat x, gfloat y, gfloat xs, gfloat ys)
|
||||
{
|
||||
GtkWidget *a = gtk_alignment_new (x, y, xs, ys);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (a), w);
|
||||
return a;
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
event_editor_setup_time_frame (EventEditor *ee)
|
||||
{
|
||||
GtkWidget *frame;
|
||||
GtkWidget *start_time, *end_time;
|
||||
GtkTable *t;
|
||||
|
||||
frame = gtk_frame_new (_("Time"));
|
||||
t = GTK_TABLE (ee->general_time_table = gtk_table_new (1, 1, 0));
|
||||
gtk_container_add (GTK_CONTAINER (frame), ee->general_time_table);
|
||||
|
||||
ee->start_time = start_time = gnome_date_edit_new (0);
|
||||
ee->end_time = end_time = gnome_date_edit_new (0);
|
||||
gnome_date_edit_set_popup_range ((GnomeDateEdit *) start_time, day_begin, day_end);
|
||||
gnome_date_edit_set_popup_range ((GnomeDateEdit *) end_time, day_begin, day_end);
|
||||
gtk_signal_connect (GTK_OBJECT (start_time), "time_changed",
|
||||
GTK_SIGNAL_FUNC (adjust_end_time), ee);
|
||||
gtk_table_attach (t, gtk_label_new (_("Start time")), 1, 2, 1, 2, 0, 0, 0, 0);
|
||||
gtk_table_attach (t, gtk_label_new (_("End time")), 1, 2, 2, 3, 0, 0, 0, 0);
|
||||
|
||||
gtk_table_attach (t, start_time, 2, 3, 1, 2, 0, 0, 0, 0);
|
||||
gtk_table_attach (t, end_time, 2, 3, 2, 3, 0, 0, 0, 0);
|
||||
return frame;
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
ee_create_buttons ()
|
||||
{
|
||||
return gtk_label_new ("xx");
|
||||
}
|
||||
|
||||
enum {
|
||||
OWNER_LINE,
|
||||
DESC_LINE,
|
||||
SUMMARY_LINE,
|
||||
TIME_LINE = 4
|
||||
};
|
||||
|
||||
#define LABEL_SPAN 2
|
||||
|
||||
static void
|
||||
event_editor_init (EventEditor *ee)
|
||||
{
|
||||
GtkWidget *frame, *l;
|
||||
|
||||
ee->hbox = gtk_vbox_new (0, 0);
|
||||
gtk_container_add (GTK_CONTAINER (ee), ee->hbox);
|
||||
|
||||
ee->notebook = gtk_notebook_new ();
|
||||
gtk_box_pack_start (GTK_BOX (ee->hbox), ee->notebook, 1, 1, 0);
|
||||
|
||||
ee->general_table = (GtkTable *) gtk_table_new (1, 1, 0);
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (ee->notebook), GTK_WIDGET (ee->general_table),
|
||||
gtk_label_new (_("General")));
|
||||
|
||||
l = adjust (gtk_label_new (_("Owner:")), 1.0, 0.5, 1.0, 1.0);
|
||||
gtk_table_attach (ee->general_table, l,
|
||||
1, LABEL_SPAN, OWNER_LINE, OWNER_LINE + 1, GTK_FILL|GTK_EXPAND, 0, 0, 6);
|
||||
|
||||
ee->general_owner = gtk_label_new ("");
|
||||
gtk_table_attach (ee->general_table, ee->general_owner,
|
||||
LABEL_SPAN, LABEL_SPAN + 1, OWNER_LINE, OWNER_LINE + 1, GTK_FILL|GTK_EXPAND, 0, 0, 0);
|
||||
|
||||
l = gtk_label_new (_("Description:"));
|
||||
gtk_table_attach (ee->general_table, l,
|
||||
1, LABEL_SPAN, DESC_LINE, DESC_LINE + 1, GTK_FILL|GTK_EXPAND, 0, 0, 0);
|
||||
|
||||
ee->general_summary = gtk_text_new (NULL, NULL);
|
||||
gtk_widget_set_usize (ee->general_summary, 0, 60);
|
||||
gtk_text_set_editable (GTK_TEXT (ee->general_summary), 1);
|
||||
gtk_table_attach (ee->general_table, ee->general_summary,
|
||||
1, 40, SUMMARY_LINE, SUMMARY_LINE+1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 6, 0);
|
||||
|
||||
frame = event_editor_setup_time_frame (ee);
|
||||
gtk_table_attach (ee->general_table, frame,
|
||||
1, 40, TIME_LINE + 2, TIME_LINE + 3,
|
||||
GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
|
||||
|
||||
/* Separator */
|
||||
gtk_box_pack_start (GTK_BOX (ee->hbox), gtk_hseparator_new (), 1, 1, 0);
|
||||
|
||||
/* Buttons */
|
||||
gtk_box_pack_start (GTK_BOX (ee->hbox), ee_create_buttons (), 1, 1, 0);
|
||||
|
||||
/* We show all of the contained widgets */
|
||||
gtk_widget_show_all (GTK_WIDGET (ee));
|
||||
/* And we hide the toplevel, to be consistent with the rest of Gtk */
|
||||
gtk_widget_hide (GTK_WIDGET (ee));
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
event_editor_new (void)
|
||||
{
|
||||
GtkWidget *retval;
|
||||
|
||||
retval = gtk_type_new (event_editor_get_type ());
|
||||
return retval;
|
||||
}
|
38
calendar/gui/eventedit.h
Normal file
38
calendar/gui/eventedit.h
Normal file
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* EventEditor widget
|
||||
* Copyright (C) 1998 the Free Software Foundation
|
||||
*
|
||||
* Author: Miguel de Icaza (miguel@kernel.org)
|
||||
*/
|
||||
|
||||
#ifndef EVENT_EDITOR_H
|
||||
#define EVENT_EDITOR_H
|
||||
|
||||
BEGIN_GNOME_DECLS
|
||||
|
||||
#define EVENT_EDITOR(obj) GTK_CHECK_CAST(obj, event_editor_get_type(), EventEditor)
|
||||
#define EVENT_EDITOR_CLASS(class) GTK_CHECK_CAST_CLASS(class, event_editor_get_type(), EventEditorClass)
|
||||
#define IS_EVENT_EDITOR(obj) GTK_CHECK_TYPE(obj, event_editor_get_type())
|
||||
|
||||
typedef struct {
|
||||
GtkWindow gtk_window;
|
||||
GtkWidget *notebook;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *vbox;
|
||||
|
||||
GtkWidget *general;
|
||||
GtkTable *general_table;
|
||||
GtkWidget *general_time_table;
|
||||
GtkWidget *general_owner;
|
||||
GtkWidget *general_summary;
|
||||
GtkWidget *start_time, *end_time;
|
||||
} EventEditor;
|
||||
|
||||
typedef struct {
|
||||
GnomePropertyBoxClass parent_class;
|
||||
} EventEditorClass;
|
||||
|
||||
GtkWidget *event_editor_new (void);
|
||||
|
||||
END_GNOME_DECLS
|
||||
#endif
|
@ -18,9 +18,10 @@ BEGIN_GNOME_DECLS
|
||||
#define GNOME_IS_CALENDAR(obj) GTK_CHECK_TYPE(obj, gnome_calendar_get_type())
|
||||
|
||||
typedef struct {
|
||||
GnomeApp gnome_app;
|
||||
Calendar *cal;
|
||||
GtkWidget *week_view;
|
||||
GnomeApp gnome_app;
|
||||
Calendar *cal;
|
||||
GtkWidget *week_view;
|
||||
void *event_editor;
|
||||
} GnomeCalendar;
|
||||
|
||||
typedef struct {
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include <sys/types.h>
|
||||
#include "calendar.h"
|
||||
#include "gnome-cal.h"
|
||||
#include "main.h"
|
||||
|
||||
/* The username, used to set the `owner' field of the event */
|
||||
char *user_name;
|
||||
@ -118,6 +119,15 @@ about_calendar_cmd (GtkWidget *widget, void *data)
|
||||
gtk_widget_show (about);
|
||||
}
|
||||
|
||||
void
|
||||
display_objedit (GtkWidget *widget, GnomeCalendar *gcal)
|
||||
{
|
||||
if (!gcal->event_editor){
|
||||
gcal->event_editor = event_editor_new ();
|
||||
gtk_widget_show (gcal->event_editor);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
quit_cmd (GtkWidget *widget, GnomeCalendar *gcal)
|
||||
{
|
||||
@ -167,8 +177,14 @@ GnomeUIInfo gnome_cal_about_menu [] = {
|
||||
GNOMEUIINFO_END
|
||||
};
|
||||
|
||||
GnomeUIInfo gnome_cal_edit_menu [] = {
|
||||
{ GNOME_APP_UI_ITEM, N_("Appointment"), NULL, display_objedit },
|
||||
GNOMEUIINFO_END
|
||||
};
|
||||
|
||||
GnomeUIInfo gnome_cal_menu [] = {
|
||||
{ GNOME_APP_UI_SUBTREE, N_("File"), NULL, &gnome_cal_file_menu },
|
||||
{ GNOME_APP_UI_SUBTREE, N_("Edit"), NULL, &gnome_cal_edit_menu },
|
||||
{ GNOME_APP_UI_SUBTREE, N_("Help"), NULL, &gnome_cal_about_menu },
|
||||
GNOMEUIINFO_END
|
||||
};
|
||||
|
3
calendar/gui/main.h
Normal file
3
calendar/gui/main.h
Normal file
@ -0,0 +1,3 @@
|
||||
|
||||
extern int day_begin, day_end;
|
||||
extern char *user_name;
|
@ -79,7 +79,7 @@ view_utils_draw_events (GtkWidget *widget, GdkWindow *window, GdkGC *gc, GdkRect
|
||||
str = ico->summary;
|
||||
|
||||
if (flags & VIEW_UTILS_DRAW_END) {
|
||||
strftime (buf, 512, "%R%p - ", &tm_start);
|
||||
strftime (buf, 512, "%R%p-", &tm_start);
|
||||
len = strlen (buf);
|
||||
strftime (buf + len, 512 - len, "%R%p ", &tm_end);
|
||||
} else
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include <sys/types.h>
|
||||
#include "calendar.h"
|
||||
#include "gnome-cal.h"
|
||||
#include "main.h"
|
||||
|
||||
/* The username, used to set the `owner' field of the event */
|
||||
char *user_name;
|
||||
@ -118,6 +119,15 @@ about_calendar_cmd (GtkWidget *widget, void *data)
|
||||
gtk_widget_show (about);
|
||||
}
|
||||
|
||||
void
|
||||
display_objedit (GtkWidget *widget, GnomeCalendar *gcal)
|
||||
{
|
||||
if (!gcal->event_editor){
|
||||
gcal->event_editor = event_editor_new ();
|
||||
gtk_widget_show (gcal->event_editor);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
quit_cmd (GtkWidget *widget, GnomeCalendar *gcal)
|
||||
{
|
||||
@ -167,8 +177,14 @@ GnomeUIInfo gnome_cal_about_menu [] = {
|
||||
GNOMEUIINFO_END
|
||||
};
|
||||
|
||||
GnomeUIInfo gnome_cal_edit_menu [] = {
|
||||
{ GNOME_APP_UI_ITEM, N_("Appointment"), NULL, display_objedit },
|
||||
GNOMEUIINFO_END
|
||||
};
|
||||
|
||||
GnomeUIInfo gnome_cal_menu [] = {
|
||||
{ GNOME_APP_UI_SUBTREE, N_("File"), NULL, &gnome_cal_file_menu },
|
||||
{ GNOME_APP_UI_SUBTREE, N_("Edit"), NULL, &gnome_cal_edit_menu },
|
||||
{ GNOME_APP_UI_SUBTREE, N_("Help"), NULL, &gnome_cal_about_menu },
|
||||
GNOMEUIINFO_END
|
||||
};
|
||||
|
3
calendar/main.h
Normal file
3
calendar/main.h
Normal file
@ -0,0 +1,3 @@
|
||||
|
||||
extern int day_begin, day_end;
|
||||
extern char *user_name;
|
@ -20,7 +20,7 @@ time_from_isodate (char *str)
|
||||
my_tm.tm_year = (digit_at (str, 0) * 1000 + digit_at (str, 1) * 100 +
|
||||
digit_at (str, 2) * 10 + digit_at (str, 3)) - 1900;
|
||||
|
||||
my_tm.tm_mon = digit_at (str, 4) * 10 + digit_at (str, 5);
|
||||
my_tm.tm_mon = digit_at (str, 4) * 10 + digit_at (str, 5) - 1;
|
||||
my_tm.tm_mday = digit_at (str, 6) * 10 + digit_at (str, 7);
|
||||
my_tm.tm_hour = digit_at (str, 9) * 10 + digit_at (str, 10);
|
||||
my_tm.tm_min = digit_at (str, 11) * 10 + digit_at (str, 12);
|
||||
@ -28,16 +28,20 @@ time_from_isodate (char *str)
|
||||
my_tm.tm_isdst = -1;
|
||||
|
||||
t = mktime (&my_tm);
|
||||
{
|
||||
struct tm *tm = localtime (&t);
|
||||
|
||||
printf ("TIEMPO: %d/%d/%d %d:%d:%d\n",
|
||||
tm->tm_mday, tm->tm_mon, tm->tm_year,
|
||||
tm->tm_hour, tm->tm_min, tm->tm_sec);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
void
|
||||
print_time_t (time_t t)
|
||||
{
|
||||
struct tm *tm = localtime (&t);
|
||||
|
||||
printf ("TIEMPO: %d/%d/%d %d:%d:%d\n",
|
||||
tm->tm_mday, tm->tm_mon, tm->tm_year,
|
||||
tm->tm_hour, tm->tm_min, tm->tm_sec);
|
||||
}
|
||||
|
||||
|
||||
char *
|
||||
isodate_from_time_t (time_t t)
|
||||
{
|
||||
|
@ -79,7 +79,7 @@ view_utils_draw_events (GtkWidget *widget, GdkWindow *window, GdkGC *gc, GdkRect
|
||||
str = ico->summary;
|
||||
|
||||
if (flags & VIEW_UTILS_DRAW_END) {
|
||||
strftime (buf, 512, "%R%p - ", &tm_start);
|
||||
strftime (buf, 512, "%R%p-", &tm_start);
|
||||
len = strlen (buf);
|
||||
strftime (buf + len, 512 - len, "%R%p ", &tm_end);
|
||||
} else
|
||||
|
Reference in New Issue
Block a user