diff --git a/lcl/interfaces/gtk/gtkdef.pp b/lcl/interfaces/gtk/gtkdef.pp index 705d9de7c8..1a301c89ae 100644 --- a/lcl/interfaces/gtk/gtkdef.pp +++ b/lcl/interfaces/gtk/gtkdef.pp @@ -77,6 +77,7 @@ type lgsTreeView, // for gtk2 lgsToolBar, // toolbar lgsToolButton, // button placed on toolbar + lgsCalendar, // button placed on toolbar // user defined lgsUserDefined ); @@ -107,6 +108,7 @@ const 'treeview', 'toolbar', 'toolbutton', + 'calendar', '' ); diff --git a/lcl/interfaces/gtk/gtkproc.inc b/lcl/interfaces/gtk/gtkproc.inc index fc6ed96125..bd41273b6f 100644 --- a/lcl/interfaces/gtk/gtkproc.inc +++ b/lcl/interfaces/gtk/gtkproc.inc @@ -7935,6 +7935,12 @@ begin AddToStyleWindow:=true; StyleObject^.Widget := gtk_statusbar_new; end + else + If CompareText(WName,LazGtkStyleNames[lgsCalendar])=0 then begin + lgs:=lgsCalendar; + AddToStyleWindow:=true; + StyleObject^.Widget := gtk_calendar_new; + end else If CompareText(WName,LazGtkStyleNames[lgsList])=0 then begin lgs:=lgsList; diff --git a/lcl/interfaces/gtk2/gtk2wscalendar.pp b/lcl/interfaces/gtk2/gtk2wscalendar.pp index a567214c32..2be2a766dd 100644 --- a/lcl/interfaces/gtk2/gtk2wscalendar.pp +++ b/lcl/interfaces/gtk2/gtk2wscalendar.pp @@ -58,6 +58,9 @@ type class procedure SetDateTime(const ACalendar: TCustomCalendar; const ADateTime: TDateTime); override; class procedure SetDisplaySettings(const ACalendar: TCustomCalendar; const ADisplaySettings: TDisplaySettings); override; + class procedure GetPreferredSize(const AWinControl: TWinControl; + var PreferredWidth, PreferredHeight: integer; + WithThemeSpace: Boolean); override; end; @@ -292,4 +295,12 @@ begin gtk_Calendar_Display_options(GetCalendar(ACalendar), gtkCalendarDisplayOptions); end; +class procedure TGtk2WSCustomCalendar.GetPreferredSize( + const AWinControl: TWinControl; var PreferredWidth, PreferredHeight: integer; + WithThemeSpace: Boolean); +begin + GetGTKDefaultWidgetSize(AWinControl, PreferredWidth, PreferredHeight, + WithThemeSpace); +end; + end.