unit GtkWSFactory; {$mode objfpc}{$H+} interface uses Classes, Controls, ComCtrls, ImgList, Calendar, StdCtrls, Arrow, Spin, Dialogs, ExtCtrls, ExtDlgs, Buttons, CheckLst, Forms, Grids, Menus, PairSplitter, WSLCLClasses; // imglist function RegisterCustomImageList: Boolean; // controls function RegisterDragImageList: Boolean; function RegisterLazAccessibleObject: Boolean; function RegisterControl: Boolean; function RegisterWinControl: Boolean; function RegisterGraphicControl: Boolean; function RegisterCustomControl: Boolean; // comctrls function RegisterStatusBar: Boolean; function RegisterTabSheet: Boolean; function RegisterPageControl: Boolean; function RegisterCustomListView: Boolean; function RegisterCustomProgressBar: Boolean; function RegisterCustomUpDown: Boolean; function RegisterCustomToolButton: Boolean; function RegisterToolBar: Boolean; function RegisterCustomTrackBar: Boolean; function RegisterCustomTreeView: Boolean; // calendar function RegisterCustomCalendar: Boolean; // dialogs function RegisterCommonDialog: Boolean; function RegisterFileDialog: Boolean; function RegisterOpenDialog: Boolean; function RegisterSaveDialog: Boolean; function RegisterSelectDirectoryDialog: Boolean; function RegisterColorDialog: Boolean; function RegisterColorButton: Boolean; function RegisterFontDialog: Boolean; // StdCtrls function RegisterCustomScrollBar: Boolean; function RegisterCustomGroupBox: Boolean; function RegisterCustomComboBox: Boolean; function RegisterCustomListBox: Boolean; function RegisterCustomEdit: Boolean; function RegisterCustomMemo: Boolean; function RegisterButtonControl: Boolean; function RegisterCustomButton: Boolean; function RegisterCustomCheckBox: Boolean; function RegisterToggleBox: Boolean; function RegisterRadioButton: Boolean; function RegisterCustomStaticText: Boolean; function RegisterCustomLabel: Boolean; // extctrls function RegisterCustomPage: Boolean; function RegisterCustomNotebook: Boolean; function RegisterShape: Boolean; function RegisterCustomSplitter: Boolean; function RegisterPaintBox: Boolean; function RegisterCustomImage: Boolean; function RegisterBevel: Boolean; function RegisterCustomRadioGroup: Boolean; function RegisterCustomCheckGroup: Boolean; function RegisterCustomLabeledEdit: Boolean; function RegisterCustomPanel: Boolean; function RegisterCustomTrayIcon: Boolean; //ExtDlgs function RegisterPreviewFileControl: Boolean; function RegisterPreviewFileDialog: Boolean; function RegisterOpenPictureDialog: Boolean; function RegisterSavePictureDialog: Boolean; function RegisterCalculatorDialog: Boolean; function RegisterCalculatorForm: Boolean; function RegisterCalendarDialog: Boolean; // Buttons function RegisterCustomBitBtn: Boolean; function RegisterCustomSpeedButton: Boolean; // Arrow function RegisterArrow: Boolean; // CheckLst function RegisterCustomCheckListBox: Boolean; // Forms function RegisterScrollingWinControl: Boolean; function RegisterScrollBox: Boolean; function RegisterCustomFrame: Boolean; function RegisterCustomForm: Boolean; function RegisterHintWindow: Boolean; function RegisterCustomGrid: Boolean; function RegisterMenuItem: Boolean; function RegisterMenu: Boolean; function RegisterMainMenu: Boolean; function RegisterPopupMenu: Boolean; function RegisterPairSplitterSide: Boolean; function RegisterCustomPairSplitter: Boolean; function RegisterCustomFloatSpinEdit: Boolean; function RegisterCustomRubberBand: Boolean; // LazDeviceAPIs function RegisterLazDeviceAPIs: Boolean; implementation uses GtkWSArrow, GtkWSButtons, GtkWSCalendar, GtkWSCheckLst, GtkWSComCtrls, GtkWSControls, GtkWSDialogs, GtkWSExtCtrls, GtkWSExtDlgs, GtkWSForms, GtkWSGrids, GtkWSImgList, GtkWSMenus, GtkWSSpin, GtkWSStdCtrls, GtkWSPairSplitter, GtkWSPrivate, Gtk1WSPrivate; // imglist function RegisterCustomImageList: Boolean; alias : 'WSRegisterCustomImageList'; begin // RegisterWSComponent(TImageList, TGtkWSImageList); // RegisterWSComponent(TCustomImageList, TGtkWSCustomImageList); Result := False; end; // controls function RegisterDragImageList: Boolean; alias : 'WSRegisterDragImageList'; begin RegisterWSComponent(TDragImageList, TGtkWSDragImageList); Result := True; end; function RegisterLazAccessibleObject: Boolean; alias : 'WSRegisterLazAccessibleObject'; begin Result := False; end; function RegisterControl: Boolean; alias : 'WSRegisterControl'; begin // RegisterWSComponent(TControl, TGtkWSControl); Result := False; end; function RegisterWinControl: Boolean; alias : 'WSRegisterWinControl'; begin RegisterWSComponent(TWinControl, TGtkWSWinControl, TGtkPrivateWidget); Result := True; end; function RegisterGraphicControl: Boolean; alias : 'WSRegisterGraphicControl'; begin // RegisterWSComponent(TGraphicControl, TGtkWSGraphicControl); Result := False; end; function RegisterCustomControl: Boolean; alias : 'WSRegisterCustomControl'; begin // RegisterWSComponent(TCustomControl, TGtkWSCustomControl); Result := False; end; // comctrls function RegisterStatusBar: Boolean; alias : 'WSRegisterStatusBar'; begin RegisterWSComponent(TStatusBar, TGtkWSStatusBar); Result := True; end; function RegisterTabSheet: Boolean; alias : 'WSRegisterTabSheet'; begin // RegisterWSComponent(TCustomTabSheet, TGtkWSTabSheet); Result := False; end; function RegisterPageControl: Boolean; alias : 'WSRegisterPageControl'; begin // RegisterWSComponent(TCustomPageControl, TGtkWSPageControl); Result := False; end; function RegisterCustomListView: Boolean; alias : 'WSRegisterCustomListView'; begin {$IFDEF GTK1} RegisterWSComponent(TCustomListView, TGtkWSCustomListView, TGtkPrivateScrolling); Result := True; {$ELSE} Result := False; {$ENDIF} end; function RegisterCustomProgressBar: Boolean; alias : 'WSRegisterCustomProgressBar'; begin {$IFDEF GTK1} RegisterWSComponent(TCustomProgressBar, TGtkWSProgressBar); Result := True; {$ELSE} Result := False; {$ENDIF} end; function RegisterCustomUpDown: Boolean; alias : 'WSRegisterCustomUpDown'; begin // RegisterWSComponent(TCustomUpDown, TGtkWSCustomUpDown); // RegisterWSComponent(TCustomUpDown, TGtkWSUpDown); Result := False; end; function RegisterCustomToolButton: Boolean; alias : 'WSRegisterCustomToolButton'; begin // RegisterWSComponent(TCustomToolButton, TGtkWSToolButton); Result := False; end; function RegisterToolBar: Boolean; alias : 'WSRegisterToolBar'; begin RegisterWSComponent(TToolBar, TGtkWSToolBar); Result := True; end; function RegisterCustomTrackBar: Boolean; alias : 'WSRegisterCustomTrackBar'; begin RegisterWSComponent(TCustomTrackBar, TGtkWSTrackBar); Result := True; end; function RegisterCustomTreeView: Boolean; alias : 'WSRegisterCustomTreeView'; begin // RegisterWSComponent(TCustomTreeView, TGtkWSCustomTreeView); // RegisterWSComponent(TCustomTreeView, TGtkWSTreeView); Result := False; end; // calendar function RegisterCustomCalendar: Boolean; alias : 'WSRegisterCustomCalendar'; begin RegisterWSComponent(TCustomCalendar, TGtkWSCustomCalendar); Result := True; end; // dialogs function RegisterCommonDialog: Boolean; alias : 'WSRegisterCommonDialog'; begin RegisterWSComponent(TCommonDialog, TGtkWSCommonDialog); Result := True; end; function RegisterFileDialog: Boolean; alias : 'WSRegisterFileDialog'; begin // RegisterWSComponent(TFileDialog, TGtkWSFileDialog); Result := False; end; function RegisterOpenDialog: Boolean; alias : 'WSRegisterOpenDialog'; begin RegisterWSComponent(TOpenDialog, TGtkWSOpenDialog); Result := True; end; function RegisterSaveDialog: Boolean; alias : 'WSRegisterSaveDialog'; begin // RegisterWSComponent(TSaveDialog, TGtkWSSaveDialog); Result := False; end; function RegisterSelectDirectoryDialog: Boolean; alias : 'WSRegisterSelectDirectoryDialog'; begin // RegisterWSComponent(TSelectDirectoryDialog, TGtkWSSelectDirectoryDialog); Result := False; end; function RegisterColorDialog: Boolean; alias : 'WSRegisterColorDialog'; begin RegisterWSComponent(TColorDialog, TGtkWSColorDialog); Result := True; end; function RegisterColorButton: Boolean; alias : 'WSRegisterColorButton'; begin // RegisterWSComponent(TColorButton, TGtkWSColorButton); Result := False; end; function RegisterFontDialog: Boolean; alias : 'WSRegisterFontDialog'; begin RegisterWSComponent(TFontDialog, TGtkWSFontDialog); Result := True; end; // StdCtrls function RegisterCustomScrollBar: Boolean; alias : 'WSRegisterCustomScrollBar'; begin RegisterWSComponent(TScrollBar, TGtkWSScrollBar); Result := True; end; function RegisterCustomGroupBox: Boolean; alias : 'WSRegisterCustomGroupBox'; begin RegisterWSComponent(TCustomGroupBox, TGtkWSCustomGroupBox); // RegisterWSComponent(TGroupBox, TGtkWSGroupBox); Result := True; end; function RegisterCustomComboBox: Boolean; alias : 'WSRegisterCustomComboBox'; begin RegisterWSComponent(TCustomComboBox, TGtkWSCustomComboBox); // RegisterWSComponent(TComboBox, TGtkWSComboBox); Result := True; end; function RegisterCustomListBox: Boolean; alias : 'WSRegisterCustomListBox'; begin // RegisterWSComponent(TListBox, TGtkWSListBox); RegisterWSComponent(TCustomListBox, TGtkWSCustomListBox, TGtk1PrivateList); Result := True; end; function RegisterCustomEdit: Boolean; alias : 'WSRegisterCustomEdit'; begin RegisterWSComponent(TCustomEdit, TGtkWSCustomEdit, TGtkPrivateEntry); Result := True; end; function RegisterCustomMemo: Boolean; alias : 'WSRegisterCustomMemo'; begin RegisterWSComponent(TCustomMemo, TGtkWSCustomMemo, TGtkPrivateScrolling); Result := True; end; function RegisterButtonControl: Boolean; alias : 'WSRegisterButtonControl'; begin // RegisterWSComponent(TButtonControl, TGtkWSButtonControl); Result := False; end; function RegisterCustomButton: Boolean; alias : 'WSRegisterCustomButton'; begin RegisterWSComponent(TCustomButton, TGtkWSButton, TGtk1PrivateButton); Result := True; end; function RegisterCustomCheckBox: Boolean; alias : 'WSRegisterCustomCheckBox'; begin RegisterWSComponent(TCustomCheckBox, TGtkWSCustomCheckBox); // RegisterWSComponent(TCheckBox, TGtkWSCheckBox); Result := True; end; function RegisterToggleBox: Boolean; alias : 'WSRegisterToggleBox'; begin RegisterWSComponent(TToggleBox, TGtkWSToggleBox); Result := True; end; function RegisterRadioButton: Boolean; alias : 'WSRegisterRadioButton'; begin RegisterWSComponent(TRadioButton, TGtkWSRadioButton); Result := True; end; function RegisterCustomStaticText: Boolean; alias : 'WSRegisterCustomStaticText'; begin // RegisterWSComponent(TStaticText, TGtkWSStaticText); RegisterWSComponent(TCustomStaticText, TGtkWSCustomStaticText); Result := True; end; function RegisterCustomLabel: Boolean; alias : 'WSRegisterCustomLabel'; begin Result := False; end; // extctrls function RegisterCustomPage: Boolean; alias : 'WSRegisterCustomPage'; begin RegisterWSComponent(TCustomPage, TGtkWSCustomPage); Result := True; end; function RegisterCustomNotebook: Boolean; alias : 'WSRegisterCustomNotebook'; begin {$IFDEF GTK1} RegisterWSComponent(TCustomTabControl, TGtkWSCustomTabControl, TGtk1PrivateNotebook); Result := True; {$ELSE} Result := False; {$ENDIF} end; function RegisterShape: Boolean; alias : 'WSRegisterShape'; begin // RegisterWSComponent(TShape, TGtkWSShape); Result := False; end; function RegisterCustomSplitter: Boolean; alias : 'WSRegisterCustomSplitter'; begin // RegisterWSComponent(TSplitter, TGtkWSSplitter); // RegisterWSComponent(TCustomSplitter, TGtkWSCustomSplitter); Result := False; end; function RegisterPaintBox: Boolean; alias : 'WSRegisterPaintBox'; begin // RegisterWSComponent(TPaintBox, TGtkWSPaintBox); Result := False; end; function RegisterCustomImage: Boolean; alias : 'WSRegisterCustomImage'; begin // RegisterWSComponent(TCustomImage, TGtkWSCustomImage); // RegisterWSComponent(TImage, TGtkWSImage); Result := False; end; function RegisterBevel: Boolean; alias : 'WSRegisterBevel'; begin // RegisterWSComponent(TBevel, TGtkWSBevel); Result := False; end; function RegisterCustomRadioGroup: Boolean; alias : 'WSRegisterCustomRadioGroup'; begin // RegisterWSComponent(TCustomRadioGroup, TGtkWSCustomRadioGroup); // RegisterWSComponent(TRadioGroup, TGtkWSRadioGroup); Result := False; end; function RegisterCustomCheckGroup: Boolean; alias : 'WSRegisterCustomCheckGroup'; begin // RegisterWSComponent(TCustomCheckGroup, TGtkWSCustomCheckGroup); // RegisterWSComponent(TCheckGroup, TGtkWSCheckGroup); Result := False; end; function RegisterCustomLabeledEdit: Boolean; alias : 'WSRegisterCustomLabeledEdit'; begin // RegisterWSComponent(TCustomLabeledEdit, TGtkWSCustomLabeledEdit); // RegisterWSComponent(TLabeledEdit, TGtkWSLabeledEdit); Result := False; end; function RegisterCustomPanel: Boolean; alias : 'WSRegisterCustomPanel'; begin {$IFDEF GTK1} RegisterWSComponent(TCustomPanel, TGtkWSCustomPanel); Result := True; {$ELSE} Result := False; {$ENDIF} end; function RegisterCustomTrayIcon: Boolean; alias : 'WSRegisterCustomTrayIcon'; begin RegisterWSComponent(TCustomTrayIcon, TGtkWSCustomTrayIcon); Result := True; end; //ExtDlgs function RegisterPreviewFileControl: Boolean; alias : 'WSRegisterPreviewFileControl'; begin RegisterWSComponent(TPreviewFileControl, TGtkWSPreviewFileControl); Result := True; end; function RegisterPreviewFileDialog: Boolean; alias : 'WSRegisterPreviewFileDialog'; begin // RegisterWSComponent(TPreviewFileDialog, TGtkWSPreviewFileDialog); Result := False; end; function RegisterOpenPictureDialog: Boolean; alias : 'WSRegisterOpenPictureDialog'; begin // RegisterWSComponent(TOpenPictureDialog, TGtkWSOpenPictureDialog); Result := False; end; function RegisterSavePictureDialog: Boolean; alias : 'WSRegisterSavePictureDialog'; begin // RegisterWSComponent(TSavePictureDialog, TGtkWSSavePictureDialog); Result := False; end; function RegisterCalculatorDialog: Boolean; alias : 'WSRegisterCalculatorDialog'; begin // RegisterWSComponent(TCalculatorDialog, TGtkWSCalculatorDialog); Result := False; end; function RegisterCalculatorForm: Boolean; alias : 'WSRegisterCalculatorForm'; begin // RegisterWSComponent(TCalculatorForm, TGtkWSCalculatorForm); Result := False; end; (*function RegisterCalendarDialogForm: Boolean; alias : 'WSRegisterCalendarDialogForm'; begin // RegisterWSComponent(TCalendarDialogForm, TGtkWSCalendarDialogForm); Result := False; end;*) function RegisterCalendarDialog: Boolean; alias : 'WSRegisterCalendarDialog'; begin // RegisterWSComponent(TCalendarDialog, TGtkWSCalendarDialog); Result := False; end; // Buttons function RegisterCustomBitBtn: Boolean; alias : 'WSRegisterCustomBitBtn'; begin RegisterWSComponent(TCustomBitBtn, TGtkWSBitBtn, TGtk1PrivateButton); // register it to fallback to default Result := True; end; function RegisterCustomSpeedButton: Boolean; alias : 'WSRegisterCustomSpeedButton'; begin Result := False; end; // Arrow function RegisterArrow: Boolean; alias : 'WSRegisterArrow'; begin RegisterWSComponent(TArrow, TGtkWSArrow); Result := True; end; // CheckLst function RegisterCustomCheckListBox: Boolean; alias : 'WSRegisterCustomCheckListBox'; begin RegisterWSComponent(TCustomCheckListBox, TGtkWSCustomCheckListBox); Result := True; end; // Forms function RegisterScrollingWinControl: Boolean; alias : 'WSRegisterScrollingWinControl'; begin RegisterWSComponent(TScrollingWinControl, TGtkWSScrollingWinControl, TGtkPrivateScrollingWinControl); Result := True; end; function RegisterScrollBox: Boolean; alias : 'WSRegisterScrollBox'; begin // RegisterWSComponent(TScrollBox, TGtkWSScrollBox); Result := False; end; function RegisterCustomFrame: Boolean; alias : 'WSRegisterCustomFrame'; begin // RegisterWSComponent(TCustomFrame, TGtkWSCustomFrame); // RegisterWSComponent(TFrame, TGtkWSFrame); Result := False; end; function RegisterCustomForm: Boolean; alias : 'WSRegisterCustomForm'; begin RegisterWSComponent(TCustomForm, TGtkWSCustomForm); // RegisterWSComponent(TForm, TGtkWSForm); Result := True; end; function RegisterHintWindow: Boolean; alias : 'WSRegisterHintWindow'; begin RegisterWSComponent(THintWindow, TGtkWSHintWindow); Result := True; end; function RegisterCustomGrid: Boolean; alias : 'WSRegisterCustomGrid'; begin RegisterWSComponent(TCustomGrid, TGtkWSCustomGrid); Result := True; end; function RegisterMenuItem: Boolean; alias : 'WSRegisterMenuItem'; begin RegisterWSComponent(TMenuItem, TGtkWSMenuItem); Result := True; end; function RegisterMenu: Boolean; alias : 'WSRegisterMenu'; begin RegisterWSComponent(TMenu, TGtkWSMenu); Result := True; end; function RegisterMainMenu: Boolean; alias : 'WSRegisterMainMenu'; begin // RegisterWSComponent(TMainMenu, TGtkWSMainMenu); Result := False; end; function RegisterPopupMenu: Boolean; alias : 'WSRegisterPopupMenu'; begin RegisterWSComponent(TPopupMenu, TGtkWSPopupMenu); Result := True; end; function RegisterPairSplitterSide: Boolean; alias : 'WSRegisterPairSplitterSide'; begin RegisterWSComponent(TPairSplitterSide, TGtkWSPairSplitterSide); Result := True; end; function RegisterCustomPairSplitter: Boolean; alias : 'WSRegisterCustomPairSplitter'; begin RegisterWSComponent(TCustomPairSplitter, TGtkWSCustomPairSplitter, TGtkPrivatePaned); Result := True; end; function RegisterCustomFloatSpinEdit: Boolean; alias : 'WSRegisterCustomFloatSpinEdit'; begin RegisterWSComponent(TCustomFloatSpinEdit, TGtkWSCustomFloatSpinEdit); // RegisterWSComponent(TFloatSpinEdit, TGtkWSFloatSpinEdit); Result := True; end; function RegisterCustomRubberBand: Boolean; alias : 'WSRegisterCustomRubberBand'; begin Result := False; end; function RegisterLazDeviceAPIs: Boolean; alias : 'WSRegisterLazDeviceAPIs'; begin Result := False; end; end.