EDayView cleanups.

This commit is contained in:
Matthew Barnes
2013-03-06 15:24:08 -05:00
parent 529c50f134
commit acdcd71d30
2 changed files with 1264 additions and 1265 deletions

File diff suppressed because it is too large Load Diff

View File

@ -21,8 +21,8 @@
*
*/
#ifndef _E_DAY_VIEW_H_
#define _E_DAY_VIEW_H_
#ifndef E_DAY_VIEW_H
#define E_DAY_VIEW_H
#include <time.h>
#include <gtk/gtk.h>
@ -31,12 +31,29 @@
#include "e-calendar-view.h"
#include "gnome-cal.h"
G_BEGIN_DECLS
/*
* EDayView - displays the Day & Work-Week views of the calendar.
*/
/* Standard GObject macros */
#define E_TYPE_DAY_VIEW \
(e_day_view_get_type ())
#define E_DAY_VIEW(obj) \
(G_TYPE_CHECK_INSTANCE_CAST \
((obj), E_TYPE_DAY_VIEW, EDayView))
#define E_DAY_VIEW_CLASS(cls) \
(G_TYPE_CHECK_CLASS_CAST \
((cls), E_TYPE_DAY_VIEW, EDayViewClass))
#define E_IS_DAY_VIEW(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE \
((obj), E_TYPE_DAY_VIEW))
#define E_IS_DAY_VIEW_CLASS(cls) \
(G_TYPE_CHECK_CLASS_TYPE \
((cls), E_TYPE_DAY_VIEW))
#define E_DAY_VIEW_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS \
((obj), E_TYPE_DAY_VIEW, EDayViewClass))
/* The maximum number of days shown. We use the week view for anything more
* than about 9 days. */
#define E_DAY_VIEW_MAX_DAYS 10
@ -96,11 +113,12 @@ G_BEGIN_DECLS
/* The gap between rows in the top canvas. */
#define E_DAY_VIEW_TOP_CANVAS_Y_GAP 2
G_BEGIN_DECLS
/* These are used to get/set the working days in the week. The bit-flags are
* combined together. The bits must be from 0 (Sun) to 6 (Sat) to match the
* day values used by localtime etc. */
typedef enum
{
typedef enum {
E_DAY_VIEW_SUNDAY = 1 << 0,
E_DAY_VIEW_MONDAY = 1 << 1,
E_DAY_VIEW_TUESDAY = 1 << 2,
@ -112,8 +130,7 @@ typedef enum
/* These are used to specify the type of an appointment. They match those
* used in EMeetingTimeSelector. */
typedef enum
{
typedef enum {
E_DAY_VIEW_BUSY_TENTATIVE = 0,
E_DAY_VIEW_BUSY_OUT_OF_OFFICE = 1,
E_DAY_VIEW_BUSY_BUSY = 2,
@ -126,8 +143,7 @@ typedef enum
* like 'Thu 12 Sep'. The no weekday format is like '12 Sep'. The short format
* is like '12'. The actual format used is determined in
* e_day_view_recalc_cell_sizes (), once we know the font being used. */
typedef enum
{
typedef enum {
E_DAY_VIEW_DATE_FULL,
E_DAY_VIEW_DATE_ABBREVIATED,
E_DAY_VIEW_DATE_NO_WEEKDAY,
@ -135,8 +151,7 @@ typedef enum
} EDayViewDateFormat;
/* These index our colors array. */
typedef enum
{
typedef enum {
E_DAY_VIEW_COLOR_BG_WORKING,
E_DAY_VIEW_COLOR_BG_NOT_WORKING,
E_DAY_VIEW_COLOR_BG_SELECTED,
@ -161,8 +176,7 @@ typedef enum
} EDayViewColors;
/* These specify which part of the selection we are dragging, if any. */
typedef enum
{
typedef enum {
E_DAY_VIEW_DRAG_START,
E_DAY_VIEW_DRAG_END
} EDayViewDragPosition;
@ -183,30 +197,13 @@ struct _EDayViewEvent {
guint8 num_columns;
};
/* Standard GObject macros */
#define E_TYPE_DAY_VIEW \
(e_day_view_get_type ())
#define E_DAY_VIEW(obj) \
(G_TYPE_CHECK_INSTANCE_CAST \
((obj), E_TYPE_DAY_VIEW, EDayView))
#define E_DAY_VIEW_CLASS(cls) \
(G_TYPE_CHECK_CLASS_CAST \
((cls), E_TYPE_DAY_VIEW, EDayViewClass))
#define E_IS_DAY_VIEW(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE \
((obj), E_TYPE_DAY_VIEW))
#define E_IS_DAY_VIEW_CLASS(cls) \
(G_TYPE_CHECK_CLASS_TYPE \
((cls), E_TYPE_DAY_VIEW))
#define E_DAY_VIEW_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS \
((obj), E_TYPE_DAY_VIEW, EDayViewClass))
typedef struct _EDayView EDayView;
typedef struct _EDayViewClass EDayViewClass;
typedef struct _EDayView EDayView;
typedef struct _EDayViewClass EDayViewClass;
typedef struct _EDayViewPrivate EDayViewPrivate;
struct _EDayView {
ECalendarView parent;
EDayViewPrivate *priv;
/* The top canvas where the dates are shown. */
GtkWidget *top_dates_canvas;
@ -477,124 +474,131 @@ struct _EDayView {
gboolean requires_update;
};
struct _EDayViewClass
{
struct _EDayViewClass {
ECalendarViewClass parent_class;
};
GType e_day_view_get_type (void);
ECalendarView * e_day_view_new (ECalModel *model);
GType e_day_view_get_type (void) G_GNUC_CONST;
ECalendarView * e_day_view_new (ECalModel *model);
/* Whether we are displaying a work-week, in which case the display always
* starts on the first day of the working week. */
gboolean e_day_view_get_work_week_view (EDayView *day_view);
void e_day_view_set_work_week_view (EDayView *day_view,
gboolean work_week_view);
gboolean e_day_view_get_work_week_view (EDayView *day_view);
void e_day_view_set_work_week_view (EDayView *day_view,
gboolean work_week_view);
/* The number of days shown in the EDayView, from 1 to 7. This is normally
* either 1 or 5 (for the Work-Week view). */
gint e_day_view_get_days_shown (EDayView *day_view);
void e_day_view_set_days_shown (EDayView *day_view,
gint days_shown);
gint e_day_view_get_days_shown (EDayView *day_view);
void e_day_view_set_days_shown (EDayView *day_view,
gint days_shown);
/* This specifies the working days in the week. The value is a bitwise
* combination of day flags. Defaults to Mon-Fri. */
EDayViewDays e_day_view_get_working_days (EDayView *day_view);
void e_day_view_set_working_days (EDayView *day_view,
EDayViewDays days);
EDayViewDays e_day_view_get_working_days (EDayView *day_view);
void e_day_view_set_working_days (EDayView *day_view,
EDayViewDays days);
/* Whether we display the Marcus Bains Line in the main canvas and time
* canvas. */
void e_day_view_marcus_bains_update (EDayView *day_view);
gboolean e_day_view_marcus_bains_get_show_line (EDayView *day_view);
void e_day_view_marcus_bains_set_show_line (EDayView *day_view,
gboolean show_line);
const gchar *
e_day_view_marcus_bains_get_day_view_color
void e_day_view_marcus_bains_update (EDayView *day_view);
gboolean e_day_view_marcus_bains_get_show_line
(EDayView *day_view);
void e_day_view_marcus_bains_set_day_view_color
void e_day_view_marcus_bains_set_show_line
(EDayView *day_view,
gboolean show_line);
const gchar * e_day_view_marcus_bains_get_day_view_color
(EDayView *day_view);
void e_day_view_marcus_bains_set_day_view_color
(EDayView *day_view,
const gchar *day_view_color);
const gchar *
e_day_view_marcus_bains_get_time_bar_color
const gchar * e_day_view_marcus_bains_get_time_bar_color
(EDayView *day_view);
void e_day_view_marcus_bains_set_time_bar_color
void e_day_view_marcus_bains_set_time_bar_color
(EDayView *day_view,
const gchar *time_bar_color);
/* Whether we display event end times in the main canvas. */
gboolean e_day_view_get_show_event_end_times (EDayView *day_view);
void e_day_view_set_show_event_end_times (EDayView *day_view,
gboolean show);
gboolean e_day_view_get_show_event_end_times
(EDayView *day_view);
void e_day_view_set_show_event_end_times
(EDayView *day_view,
gboolean show);
void e_day_view_delete_occurrence (EDayView *day_view);
void e_day_view_delete_occurrence (EDayView *day_view);
/* Returns the number of selected events (0 or 1 at present). */
gint e_day_view_get_num_events_selected (EDayView *day_view);
gint e_day_view_get_num_events_selected
(EDayView *day_view);
/*
* Internal functions called by the associated canvas items.
*/
void e_day_view_check_layout (EDayView *day_view);
gint e_day_view_convert_time_to_row (EDayView *day_view,
gint hour,
gint minute);
gint e_day_view_convert_time_to_position (EDayView *day_view,
gint hour,
gint minute);
gboolean e_day_view_get_event_rows (EDayView *day_view,
void e_day_view_check_layout (EDayView *day_view);
gint e_day_view_convert_time_to_row (EDayView *day_view,
gint hour,
gint minute);
gint e_day_view_convert_time_to_position
(EDayView *day_view,
gint hour,
gint minute);
gboolean e_day_view_get_event_rows (EDayView *day_view,
gint day,
gint event_num,
gint *start_row_out,
gint *end_row_out);
gboolean e_day_view_get_event_position (EDayView *day_view,
gint day,
gint event_num,
gint *item_x,
gint *item_y,
gint *item_w,
gint *item_h);
gboolean e_day_view_get_long_event_position (EDayView *day_view,
gint event_num,
gint *start_day,
gint *end_day,
gint *item_x,
gint *item_y,
gint *item_w,
gint *item_h);
gboolean e_day_view_get_event_position (EDayView *day_view,
gint day,
gint event_num,
gint *item_x,
gint *item_y,
gint *item_w,
gint *item_h);
gboolean e_day_view_get_long_event_position
(EDayView *day_view,
gint event_num,
gint *start_day,
gint *end_day,
gint *item_x,
gint *item_y,
gint *item_w,
gint *item_h);
void e_day_view_start_selection (EDayView *day_view,
gint day,
gint row);
void e_day_view_update_selection (EDayView *day_view,
gint day,
gint row);
void e_day_view_finish_selection (EDayView *day_view);
void e_day_view_start_selection (EDayView *day_view,
gint day,
gint row);
void e_day_view_update_selection (EDayView *day_view,
gint day,
gint row);
void e_day_view_finish_selection (EDayView *day_view);
void e_day_view_check_auto_scroll (EDayView *day_view,
gint event_x,
gint event_y);
void e_day_view_stop_auto_scroll (EDayView *day_view);
void e_day_view_check_auto_scroll (EDayView *day_view,
gint event_x,
gint event_y);
void e_day_view_stop_auto_scroll (EDayView *day_view);
void e_day_view_convert_time_to_display (EDayView *day_view,
gint hour,
gint *display_hour,
const gchar **suffix,
gint *suffix_width);
gint e_day_view_get_time_string_width (EDayView *day_view);
void e_day_view_convert_time_to_display
(EDayView *day_view,
gint hour,
gint *display_hour,
const gchar **suffix,
gint *suffix_width);
gint e_day_view_get_time_string_width
(EDayView *day_view);
gint e_day_view_event_sort_func (const void *arg1,
const void *arg2);
gint e_day_view_event_sort_func (gconstpointer arg1,
gconstpointer arg2);
gboolean e_day_view_find_event_from_item (EDayView *day_view,
GnomeCanvasItem *item,
gint *day_return,
gint *event_num_return);
void e_day_view_update_calendar_selection_time (EDayView *day_view);
void e_day_view_ensure_rows_visible (EDayView *day_view,
gint start_row,
gint end_row);
gboolean e_day_view_find_event_from_item (EDayView *day_view,
GnomeCanvasItem *item,
gint *day_return,
gint *event_num_return);
void e_day_view_update_calendar_selection_time
(EDayView *day_view);
void e_day_view_ensure_rows_visible (EDayView *day_view,
gint start_row,
gint end_row);
G_END_DECLS
#endif /* _E_DAY_VIEW_H_ */
#endif /* E_DAY_VIEW_H */