- using Godot;
-
- namespace DScript.GodotEditor
- {
- public class CodePanel : Control
- {
- /// <summary>
- /// 初始缩放
- /// </summary>
- public Vector2 StartScale { get; private set; }
-
- //缩放面板
- private Control _scalePanel;
- //绘制组件
- private TextEditPainter _editPainter;
- //文本编辑节点
- private CodeTextEdit _codeTextEdit;
-
-
- public override void _Ready()
- {
- _codeTextEdit = GetNode<CodeTextEdit>("ScalePanel/TextEdit");
- _editPainter = _codeTextEdit.GetNode<TextEditPainter>("TextEditPainter");
-
- _scalePanel = GetNode<Control>("ScalePanel");
- StartScale = _scalePanel.RectScale;
-
- _editPainter.SetIdePanel(this);
- _editPainter.SetTextEdit(_codeTextEdit);
-
- //刷新大小
- _on_ScalePanel_resized();
-
- //缩放代码提示面板
- CodeHintPanel.Instance.RectScale = StartScale;
- }
-
- public override void _Process(float delta)
- {
- _editPainter.Update();
- }
-
- /// <summary>
- /// 连接信号, 当面板调整大小时调用
- /// </summary>
- private void _on_ScalePanel_resized()
- {
- //更新textEditor的缩放
- if (_scalePanel != null)
- {
- _scalePanel.SetSize(RectSize / StartScale);
- }
- }
- }
- }