|
193 | 193 | class procedure ClickButtonScreenshot(Sender: TObject);
|
194 | 194 | class procedure ClickButtonAnimations(Sender: TObject);
|
195 | 195 | class procedure OnWarningHandle(const Category, S: string);
|
| 196 | + class procedure Press(const Sender: TCastleUserInterface; |
| 197 | + const Event: TInputPressRelease; var Handled: boolean); |
196 | 198 | end;
|
197 | 199 |
|
198 | 200 | { Custom viewport class ------------------------------------------------ }
|
|
203 | 205 | procedure RenderFromView3D(const Params: TRenderParams); override;
|
204 | 206 | public
|
205 | 207 | constructor Create(AOwner: TComponent); override;
|
| 208 | + procedure Resize; override; |
206 | 209 | procedure BeforeRender; override;
|
207 | 210 | procedure Render; override;
|
208 | 211 | function BaseLightsForRaytracer: TLightInstancesList;
|
@@ -243,6 +246,13 @@ begin
|
243 | 246 | Cursor := mcDefault;
|
244 | 247 | end;
|
245 | 248 |
|
| 249 | +procedure TV3DViewport.Resize; |
| 250 | +begin |
| 251 | + inherited; |
| 252 | + // Call ResizeViewports to change size of all viewports, when container size changed |
| 253 | + ResizeViewports(V3DSceneWindow.Window, MainViewport); |
| 254 | +end; |
| 255 | + |
246 | 256 | { Helper functions ----------------------------------------------------------- }
|
247 | 257 |
|
248 | 258 | { Show a multi-line message, allow to copy it to clipboard etc. }
|
@@ -768,7 +778,8 @@ begin
|
768 | 778 | SetViewpointForWholeScene(0, 1, true , true);
|
769 | 779 | end;
|
770 | 780 |
|
771 |
| -procedure Press(Container: TCastleContainer; const Event: TInputPressRelease); |
| 781 | +class procedure THelper.Press(const Sender: TCastleUserInterface; |
| 782 | + const Event: TInputPressRelease; var Handled: boolean); |
772 | 783 | begin
|
773 | 784 | { Although some of these shortcuts are also assigned to menu items,
|
774 | 785 | catching them here is more reliable -- allows to handle also Ctrl+number
|
@@ -3702,11 +3713,6 @@ begin
|
3702 | 3713 | Window.Controls.InsertFront(NavigationUi);
|
3703 | 3714 | end;
|
3704 | 3715 |
|
3705 |
| -procedure Resize(Container: TCastleContainer); |
3706 |
| -begin |
3707 |
| - ResizeViewports(V3DSceneWindow.Window, MainViewport); |
3708 |
| -end; |
3709 |
| - |
3710 | 3716 | class procedure THelper.ClickButtonOpen(Sender: TObject);
|
3711 | 3717 | var
|
3712 | 3718 | Url: String;
|
@@ -4075,14 +4081,10 @@ begin
|
4075 | 4081 | Window.MainMenu := CreateMainMenu;
|
4076 | 4082 | Window.MainMenuVisible := not Param_HideMenu;
|
4077 | 4083 | Window.OnMenuClick := @MenuClick;
|
4078 |
| - // castle-model-viewer uses deprecated OnXxx events. |
4079 |
| - // We should migrate to TCastleView -- but for now there's no significant |
4080 |
| - // reason to migrate, we can upgrade castle-model-viewer when necessary when |
4081 |
| - // CGE will remove it. |
4082 |
| - {$warnings off} |
4083 |
| - Window.OnResize := @Resize; |
4084 |
| - Window.OnPress := @Press; |
4085 |
| - {$warnings on} |
| 4084 | + { TODO: Use TCastleView to handle these events, |
| 4085 | + and inside that TCastleView should be a viewport. |
| 4086 | + Currently we abuse MainViewport for it. } |
| 4087 | + MainViewport.OnPress := {$ifdef FPC}@{$endif} THelper(nil).Press; |
4086 | 4088 | Window.OnDropFiles := @DropFiles;
|
4087 | 4089 | Window.AutoRedisplay := false;
|
4088 | 4090 |
|
|
0 commit comments