lazarus/lcl/interfaces/gtk3/gtk3wsfactory.pas
2013-09-27 08:47:13 +00:00

640 lines
18 KiB
ObjectPascal

{
*****************************************************************************
* Gtk3WSFactory.pp *
* ---------- *
* *
* *
*****************************************************************************
*****************************************************************************
This file is part of the Lazarus Component Library (LCL)
See the file COPYING.modifiedLGPL.txt, included in this distribution,
for details about the license.
*****************************************************************************
}
unit Gtk3WSFactory;
{$mode objfpc}{$H+}
interface
uses
Classes, Controls, ComCtrls, Calendar, StdCtrls, Arrow, Spin,
Dialogs, ExtCtrls, ExtDlgs, Buttons, CheckLst, Forms, Grids, Menus,
PairSplitter, ImgList, 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
Gtk2WSArrow,
Gtk2WSButtons,
Gtk2WSCalendar,
Gtk2WSCheckLst,
Gtk2WSComCtrls,
Gtk2WSControls,
Gtk2WSDialogs,
Gtk2WSExtCtrls,
Gtk2WSExtDlgs,
Gtk2WSForms,
Gtk2WSGrids,
{%H-}Gtk2WSImgList,
Gtk2WSMenus,
Gtk2WSSpin,
Gtk2WSStdCtrls,
Gtk2WSPairSplitter,
Gtk2WSPrivate;
*)
uses
Gtk3WSImgList, Gtk3WSControls, Gtk3WSForms, Gtk3WSButtons, Gtk3WSStdCtrls,
Gtk3WSComCtrls, Gtk3WSExtCtrls, Gtk3WSSpin, Gtk3WSMenus, Gtk3WSCalendar,
Gtk3WSDialogs, Gtk3WSCheckLst;
// imglist
function RegisterCustomImageList: Boolean; alias : 'WSRegisterCustomImageList';
begin
// RegisterWSComponent(TImageList, TGtk3WSImageList);
RegisterWSComponent(TCustomImageList, TGtk3WSCustomImageList);
Result := True;
end;
// controls
function RegisterDragImageList: Boolean; alias : 'WSRegisterDragImageList';
begin
// RegisterWSComponent(TDragImageList, TGtk3WSDragImageList);
Result := False;
end;
function RegisterLazAccessibleObject: Boolean; alias : 'WSRegisterLazAccessibleObject';
begin
// RegisterWSLazAccessibleObject(TGtk3WSLazAccessibleObject);
Result := False;
end;
function RegisterControl: Boolean; alias : 'WSRegisterControl';
begin
// RegisterWSComponent(TControl, TGtk3WSControl);
Result := False;
end;
function RegisterWinControl: Boolean; alias : 'WSRegisterWinControl';
begin
RegisterWSComponent(TWinControl, TGtk3WSWinControl);
Result := True;
end;
function RegisterGraphicControl: Boolean; alias : 'WSRegisterGraphicControl';
begin
// RegisterWSComponent(TGraphicControl, TGtk3WSGraphicControl);
Result := False;
end;
function RegisterCustomControl: Boolean; alias : 'WSRegisterCustomControl';
begin
RegisterWSComponent(TCustomControl, TGtk3WSCustomControl);
Result := True;
end;
// comctrls
function RegisterStatusBar: Boolean; alias : 'WSRegisterStatusBar';
begin
RegisterWSComponent(TStatusBar, TGtk3WSStatusBar);
Result := True;
end;
function RegisterTabSheet: Boolean; alias : 'WSRegisterTabSheet';
begin
// RegisterWSComponent(TCustomTabSheet, TGtk3WSTabSheet);
Result := False;
end;
function RegisterPageControl: Boolean; alias : 'WSRegisterPageControl';
begin
// RegisterWSComponent(TCustomPageControl, TGtk3WSPageControl);
Result := False;
end;
function RegisterCustomListView: Boolean; alias : 'WSRegisterCustomListView';
begin
RegisterWSComponent(TCustomListView, TGtk3WSCustomListView);
Result := True;
end;
function RegisterCustomProgressBar: Boolean; alias : 'WSRegisterCustomProgressBar';
begin
RegisterWSComponent(TCustomProgressBar, TGtk3WSProgressBar);
Result := True;
end;
function RegisterCustomUpDown: Boolean; alias : 'WSRegisterCustomUpDown';
begin
// RegisterWSComponent(TCustomUpDown, TGtk3WSCustomUpDown);
Result := False;
end;
function RegisterCustomToolButton: Boolean; alias : 'WSRegisterCustomToolButton';
begin
// RegisterWSComponent(TCustomToolButton, TGtk3WSToolButton);
Result := False;
end;
function RegisterToolBar: Boolean; alias : 'WSRegisterToolBar';
begin
RegisterWSComponent(TToolBar, TGtk3WSToolBar);
Result := True;
end;
function RegisterCustomTrackBar: Boolean; alias : 'WSRegisterCustomTrackBar';
begin
RegisterWSComponent(TCustomTrackBar, TGtk3WSTrackBar);
Result := True;
end;
function RegisterCustomTreeView: Boolean; alias : 'WSRegisterCustomTreeView';
begin
// RegisterWSComponent(TCustomTreeView, TGtk3WSCustomTreeView);
Result := False;
end;
// calendar
function RegisterCustomCalendar: Boolean; alias : 'WSRegisterCustomCalendar';
begin
RegisterWSComponent(TCustomCalendar, TGtk3WSCustomCalendar);
Result := True;
end;
// dialogs
function RegisterCommonDialog: Boolean; alias : 'WSRegisterCommonDialog';
begin
RegisterWSComponent(TCommonDialog, TGtk3WSCommonDialog);
Result := True;
end;
function RegisterFileDialog: Boolean; alias : 'WSRegisterFileDialog';
begin
RegisterWSComponent(TFileDialog, TGtk3WSFileDialog);
Result := True;
end;
function RegisterOpenDialog: Boolean; alias : 'WSRegisterOpenDialog';
begin
RegisterWSComponent(TOpenDialog, TGtk3WSOpenDialog);
Result := True;
end;
function RegisterSaveDialog: Boolean; alias : 'WSRegisterSaveDialog';
begin
RegisterWSComponent(TSaveDialog, TGtk3WSSaveDialog);
Result := True;
end;
function RegisterSelectDirectoryDialog: Boolean; alias : 'WSRegisterSelectDirectoryDialog';
begin
RegisterWSComponent(TSelectDirectoryDialog, TGtk3WSSelectDirectoryDialog);
Result := True;
end;
function RegisterColorDialog: Boolean; alias : 'WSRegisterColorDialog';
begin
// RegisterWSComponent(TColorDialog, TGtk3WSColorDialog);
Result := False;
end;
function RegisterColorButton: Boolean; alias : 'WSRegisterColorButton';
begin
// RegisterWSComponent(TColorButton, TGtk3WSColorButton);
Result := False;
end;
function RegisterFontDialog: Boolean; alias : 'WSRegisterFontDialog';
begin
// RegisterWSComponent(TFontDialog, TGtk3WSFontDialog);
Result := False;
end;
// StdCtrls
function RegisterCustomScrollBar: Boolean; alias : 'WSRegisterCustomScrollBar';
begin
RegisterWSComponent(TCustomScrollBar, TGtk3WSScrollBar);
Result := True;
end;
function RegisterCustomGroupBox: Boolean; alias : 'WSRegisterCustomGroupBox';
begin
RegisterWSComponent(TCustomGroupBox, TGtk3WSCustomGroupBox);
Result := True;
end;
function RegisterCustomComboBox: Boolean; alias : 'WSRegisterCustomComboBox';
begin
RegisterWSComponent(TCustomComboBox, TGtk3WSCustomComboBox);
Result := True;
end;
function RegisterCustomListBox: Boolean; alias : 'WSRegisterCustomListBox';
begin
RegisterWSComponent(TCustomListBox, TGtk3WSCustomListBox);
Result := True;
end;
function RegisterCustomEdit: Boolean; alias : 'WSRegisterCustomEdit';
begin
RegisterWSComponent(TCustomEdit, TGtk3WSCustomEdit);
Result := True;
end;
function RegisterCustomMemo: Boolean; alias : 'WSRegisterCustomMemo';
begin
RegisterWSComponent(TCustomMemo, TGtk3WSCustomMemo);
Result := True;
end;
function RegisterButtonControl: Boolean; alias : 'WSRegisterButtonControl';
begin
// RegisterWSComponent(TButtonControl, TGtk3WSButtonControl);
Result := False;
end;
function RegisterCustomButton: Boolean; alias : 'WSRegisterCustomButton';
begin
RegisterWSComponent(TCustomButton, TGtk3WSButton);
Result := True;
end;
function RegisterCustomCheckBox: Boolean; alias : 'WSRegisterCustomCheckBox';
begin
RegisterWSComponent(TCustomCheckBox, TGtk3WSCustomCheckBox);
Result := True;
end;
function RegisterToggleBox: Boolean; alias : 'WSRegisterToggleBox';
begin
RegisterWSComponent(TToggleBox, TGtk3WSToggleBox);
Result := True;
end;
function RegisterRadioButton: Boolean; alias : 'WSRegisterRadioButton';
begin
RegisterWSComponent(TRadioButton, TGtk3WSRadioButton);
Result := True;
end;
function RegisterCustomStaticText: Boolean; alias : 'WSRegisterCustomStaticText';
begin
RegisterWSComponent(TCustomStaticText, TGtk3WSCustomStaticText);
Result := True;
end;
function RegisterCustomLabel: Boolean; alias : 'WSRegisterCustomLabel';
begin
// RegisterWSComponent(TCustomLabel, TGtk3WSCustomLabel);
// RegisterWSComponent(TLabel, TGtk3WSLabel);
Result := False;
end;
// extctrls
function RegisterCustomPage: Boolean; alias : 'WSRegisterCustomPage';
begin
RegisterWSComponent(TCustomPage, TGtk3WSCustomPage);
Result := True;
end;
function RegisterCustomNotebook: Boolean; alias : 'WSRegisterCustomNotebook';
begin
RegisterWSComponent(TCustomTabControl, TGtk3WSCustomTabControl);
Result := True;
end;
function RegisterShape: Boolean; alias : 'WSRegisterShape';
begin
// RegisterWSComponent(TShape, TGtk2WSShape);
Result := False;
end;
function RegisterCustomSplitter: Boolean; alias : 'WSRegisterCustomSplitter';
begin
// RegisterWSComponent(TCustomSplitter, TGtk2WSCustomSplitter);
// RegisterWSComponent(TSplitter, TGtk2WSSplitter);
Result := False;
end;
function RegisterPaintBox: Boolean; alias : 'WSRegisterPaintBox';
begin
// RegisterWSComponent(TPaintBox, TGtk2WSPaintBox);
Result := False;
end;
function RegisterCustomImage: Boolean; alias : 'WSRegisterCustomImage';
begin
// RegisterWSComponent(TCustomImage, TGtk2WSCustomImage);
// RegisterWSComponent(TImage, TGtk2WSImage);
Result := False;
end;
function RegisterBevel: Boolean; alias : 'WSRegisterBevel';
begin
// RegisterWSComponent(TBevel, TGtk2WSBevel);
Result := False;
end;
function RegisterCustomRadioGroup: Boolean; alias : 'WSRegisterCustomRadioGroup';
begin
// RegisterWSComponent(TCustomRadioGroup, TGtk2WSCustomRadioGroup);
// RegisterWSComponent(TRadioGroup, TGtk2WSRadioGroup);
Result := False;
end;
function RegisterCustomCheckGroup: Boolean; alias : 'WSRegisterCustomCheckGroup';
begin
// RegisterWSComponent(TCustomCheckGroup, TGtk2WSCustomCheckGroup);
// RegisterWSComponent(TCheckGroup, TGtk2WSCheckGroup);
Result := False;
end;
function RegisterCustomLabeledEdit: Boolean; alias : 'WSRegisterCustomLabeledEdit';
begin
// RegisterWSComponent(TBoundLabel, TGtk2WSBoundLabel);
// RegisterWSComponent(TCustomLabeledEdit, TGtk2WSCustomLabeledEdit);
// RegisterWSComponent(TLabeledEdit, TGtk2WSLabeledEdit);
Result := False;
end;
function RegisterCustomPanel: Boolean; alias : 'WSRegisterCustomPanel';
begin
RegisterWSComponent(TCustomPanel, TGtk3WSCustomPanel);
// RegisterWSComponent(TPanel, TGtk2WSPanel);
Result := True;
end;
function RegisterCustomTrayIcon: Boolean; alias : 'WSRegisterCustomTrayIcon';
begin
// RegisterWSComponent(TCustomTrayIcon, TGtk2WSCustomTrayIcon);
Result := False;
end;
//ExtDlgs
function RegisterPreviewFileControl: Boolean; alias : 'WSRegisterPreviewFileControl';
begin
// RegisterWSComponent(TPreviewFileControl, TGtk2WSPreviewFileControl); { GTK1 }
// RegisterWSComponent(TPreviewFileControl, TGtk2WSPreviewFileControl);
Result := False;
end;
function RegisterPreviewFileDialog: Boolean; alias : 'WSRegisterPreviewFileDialog';
begin
// RegisterWSComponent(TPreviewFileDialog, TGtk2WSPreviewFileDialog);
Result := False;
end;
function RegisterOpenPictureDialog: Boolean; alias : 'WSRegisterOpenPictureDialog';
begin
// RegisterWSComponent(TOpenPictureDialog, TGtk2WSOpenPictureDialog);
Result := False;
end;
function RegisterSavePictureDialog: Boolean; alias : 'WSRegisterSavePictureDialog';
begin
// RegisterWSComponent(TSavePictureDialog, TGtk2WSSavePictureDialog);
Result := False;
end;
function RegisterCalculatorDialog: Boolean; alias : 'WSRegisterCalculatorDialog';
begin
// RegisterWSComponent(TCalculatorDialog, TGtk2WSCalculatorDialog);
Result := False;
end;
function RegisterCalculatorForm: Boolean; alias : 'WSRegisterCalculatorForm';
begin
// RegisterWSComponent(TCalculatorForm, TGtk2WSCalculatorForm);
Result := False;
end;
(*function RegisterCalendarDialogForm: Boolean; alias : 'WSRegisterCalendarDialogForm';
begin
// RegisterWSComponent(TCalendarDialogForm, TGtk2WSCalendarDialogForm);
Result := False;
end;*)
function RegisterCalendarDialog: Boolean; alias : 'WSRegisterCalendarDialog';
begin
// RegisterWSComponent(TCalendarDialog, TGtk2WSCalendarDialog);
Result := False;
end;
// Buttons
function RegisterCustomBitBtn: Boolean; alias : 'WSRegisterCustomBitBtn';
begin
RegisterWSComponent(TCustomBitBtn, TGtk3WSBitBtn);
Result := True;
end;
function RegisterCustomSpeedButton: Boolean; alias : 'WSRegisterCustomSpeedButton';
begin
// RegisterWSComponent(TCustomSpeedButton, TGtk2WSSpeedButton);
Result := False;
end;
// Arrow
function RegisterArrow: Boolean; alias : 'WSRegisterArrow';
begin
// RegisterWSComponent(TArrow, TGtk2WSArrow); { GTK2 }
Result := False;
end;
// CheckLst
function RegisterCustomCheckListBox: Boolean; alias : 'WSRegisterCustomCheckListBox';
begin
RegisterWSComponent(TCustomCheckListBox, TGtk3WSCustomCheckListBox);
Result := True;
end;
// Forms
function RegisterScrollingWinControl: Boolean; alias : 'WSRegisterScrollingWinControl';
begin
RegisterWSComponent(TScrollingWinControl, TGtk3WSScrollingWinControl);
Result := True;
end;
function RegisterScrollBox: Boolean; alias : 'WSRegisterScrollBox';
begin
// RegisterWSComponent(TScrollBox, TGtk2WSScrollBox);
Result := False;
end;
function RegisterCustomFrame: Boolean; alias : 'WSRegisterCustomFrame';
begin
// RegisterWSComponent(TCustomFrame, TGtk2WSCustomFrame);
// RegisterWSComponent(TFrame, TGtk2WSFrame);
Result := False;
end;
function RegisterCustomForm: Boolean; alias : 'WSRegisterCustomForm';
begin
RegisterWSComponent(TCustomForm, TGtk3WSCustomForm);
// RegisterWSComponent(TForm, TGtk2WSForm);
Result := True;
end;
function RegisterHintWindow: Boolean; alias : 'WSRegisterHintWindow';
begin
RegisterWSComponent(THintWindow, TGtk3WSHintWindow);
Result := True;
end;
function RegisterCustomGrid: Boolean; alias : 'WSRegisterCustomGrid';
begin
// RegisterWSComponent(TCustomGrid, TGtk2WSCustomGrid); { GTK1 }
// RegisterWSComponent(TCustomGrid, TGtk2WSCustomGrid);
Result := False;
end;
function RegisterMenuItem: Boolean; alias : 'WSRegisterMenuItem';
begin
RegisterWSComponent(TMenuItem, TGtk3WSMenuItem);
Result := True;
end;
function RegisterMenu: Boolean; alias : 'WSRegisterMenu';
begin
RegisterWSComponent(TMenu, TGtk3WSMenu);
Result := True;
end;
function RegisterMainMenu: Boolean; alias : 'WSRegisterMainMenu';
begin
// RegisterWSComponent(TMainMenu, TGtk2WSMainMenu);
Result := False;
end;
function RegisterPopupMenu: Boolean; alias : 'WSRegisterPopupMenu';
begin
RegisterWSComponent(TPopupMenu, TGtk3WSPopupMenu);
Result := True;
end;
function RegisterPairSplitterSide: Boolean; alias : 'WSRegisterPairSplitterSide';
begin
// RegisterWSComponent(TPairSplitterSide, TGtk2WSPairSplitterSide); { GTK1 }
// RegisterWSComponent(TPairSplitterSide, TGtk2WSPairSplitterSide);
Result := False;
end;
function RegisterCustomPairSplitter: Boolean; alias : 'WSRegisterCustomPairSplitter';
begin
// RegisterWSComponent(TCustomPairSplitter, TGtk2WSCustomPairSplitter, TGtkPrivatePaned); { GTK1 }
// RegisterWSComponent(TCustomPairSplitter, TGtk2WSCustomPairSplitter);
Result := False;
end;
function RegisterCustomFloatSpinEdit: Boolean; alias : 'WSRegisterCustomFloatSpinEdit';
begin
RegisterWSComponent(TCustomFloatSpinEdit, TGtk3WSCustomFloatSpinEdit);
Result := True;
end;
function RegisterCustomRubberBand: Boolean; alias : 'WSRegisterCustomRubberBand';
begin
// RegisterWSComponent(TFloatSpinEdit, TGtk2WSFloatSpinEdit);
Result := False;
end;
function RegisterLazDeviceAPIs: Boolean; alias : 'WSRegisterLazDeviceAPIs';
begin
//RegisterWSLazDeviceAPIs(TCDWSLazDeviceAPIs);
Result := False;
end;
end.