Repository URL to install this package:
Version:
3.0.0 ▾
|
{
}
{****************************************************************************
Interface
****************************************************************************}
{$ifdef read_interface}
type
TGtkCalendarDisplayOptions = (
GTK_CALENDAR_SHOW_HEADING := 1 shl 0,
GTK_CALENDAR_SHOW_DAY_NAMES := 1 shl 1,
GTK_CALENDAR_NO_MONTH_CHANGE := 1 shl 2,
GTK_CALENDAR_SHOW_WEEK_NUMBERS := 1 shl 3,
GTK_CALENDAR_WEEK_START_MONDAY := 1 shl 4
);
PGtkCalendar = ^TGtkCalendar;
TGtkCalendar = record
widget : TGtkWidget;
header_style : PGtkStyle;
label_style : PGtkStyle;
month : gint;
year : gint;
selected_day : gint;
day_month : array[0..5] of array[0..6] of gint;
day : array[0..5] of array[0..6] of gint;
num_marked_dates : gint;
marked_date : array[0..30] of gint;
display_flags : TGtkCalendarDisplayOptions;
marked_date_color : array[0..30] of TGdkColor;
gc : PGdkGC;
xor_gc : PGdkGC;
focus_row : gint;
focus_col : gint;
highlight_row : gint;
highlight_col : gint;
private_data : gpointer;
grow_space : array[0..31] of gchar;
end;
PGtkCalendarClass = ^TGtkCalendarClass;
TGtkCalendarClass = record
parent_class : TGtkWidgetClass;
month_changed : procedure (calendar:PGtkCalendar);cdecl;
day_selected : procedure (calendar:PGtkCalendar);cdecl;
day_selected_double_click : procedure (calendar:PGtkCalendar);cdecl;
prev_month : procedure (calendar:PGtkCalendar);cdecl;
next_month : procedure (calendar:PGtkCalendar);cdecl;
prev_year : procedure (calendar:PGtkCalendar);cdecl;
next_year : procedure (calendar:PGtkCalendar);cdecl;
end;
type
GTK_CALENDAR=PGtkCalendar;
GTK_CALENDAR_CLASS=PGtkCalendarClass;
function GTK_CALENDAR_TYPE:TGtkType;cdecl;external gtkdll name 'gtk_calendar_get_type';
function GTK_IS_CALENDAR(obj:pointer):boolean;
function GTK_IS_CALENDAR_CLASS(klass:pointer):boolean;
function gtk_calendar_get_type:TGtkType;cdecl;external gtkdll name 'gtk_calendar_get_type';
function gtk_calendar_new:PGtkWidget;cdecl;external gtkdll name 'gtk_calendar_new';
function gtk_calendar_select_month(calendar:PGtkCalendar; month:guint; year:guint):gint;cdecl;external gtkdll name 'gtk_calendar_select_month';
procedure gtk_calendar_select_day(calendar:PGtkCalendar; day:guint);cdecl;external gtkdll name 'gtk_calendar_select_day';
function gtk_calendar_mark_day(calendar:PGtkCalendar; day:guint):gint;cdecl;external gtkdll name 'gtk_calendar_mark_day';
function gtk_calendar_unmark_day(calendar:PGtkCalendar; day:guint):gint;cdecl;external gtkdll name 'gtk_calendar_unmark_day';
procedure gtk_calendar_clear_marks(calendar:PGtkCalendar);cdecl;external gtkdll name 'gtk_calendar_clear_marks';
procedure gtk_calendar_display_options(calendar:PGtkCalendar; flags:TGtkCalendarDisplayOptions);cdecl;external gtkdll name 'gtk_calendar_display_options';
procedure gtk_calendar_get_date(calendar:PGtkCalendar; year:Pguint; month:Pguint; day:Pguint);cdecl;external gtkdll name 'gtk_calendar_get_date';
procedure gtk_calendar_freeze(calendar:PGtkCalendar);cdecl;external gtkdll name 'gtk_calendar_freeze';
procedure gtk_calendar_thaw(calendar:PGtkCalendar);cdecl;external gtkdll name 'gtk_calendar_thaw';
{$endif read_interface}
{****************************************************************************
Implementation
****************************************************************************}
{$ifdef read_implementation}
function GTK_IS_CALENDAR(obj:pointer):boolean;
begin
GTK_IS_CALENDAR:=(obj<>nil) and GTK_IS_CALENDAR_CLASS(PGtkTypeObject(obj)^.klass);
end;
function GTK_IS_CALENDAR_CLASS(klass:pointer):boolean;
begin
GTK_IS_CALENDAR_CLASS:=(klass<>nil) and (PGtkTypeClass(klass)^.thetype=GTK_CALENDAR_TYPE);
end;
{$endif read_implementation}