Newer
Older
DungeonShooting / DungeonShooting_Godot / editor / src / CodePanel.cs
  1. using Godot;
  2.  
  3. namespace DScript.GodotEditor
  4. {
  5. public class CodePanel : Control
  6. {
  7. /// <summary>
  8. /// 初始缩放
  9. /// </summary>
  10. public Vector2 StartScale { get; private set; }
  11.  
  12. //缩放面板
  13. private Control _scalePanel;
  14. //绘制组件
  15. private TextEditPainter _editPainter;
  16. //文本编辑节点
  17. private CodeTextEdit _codeTextEdit;
  18.  
  19.  
  20. public override void _Ready()
  21. {
  22. _codeTextEdit = GetNode<CodeTextEdit>("ScalePanel/TextEdit");
  23. _editPainter = _codeTextEdit.GetNode<TextEditPainter>("TextEditPainter");
  24.  
  25. _scalePanel = GetNode<Control>("ScalePanel");
  26. StartScale = _scalePanel.RectScale;
  27.  
  28. _editPainter.SetIdePanel(this);
  29. _editPainter.SetTextEdit(_codeTextEdit);
  30.  
  31. //刷新大小
  32. _on_ScalePanel_resized();
  33. //缩放代码提示面板
  34. CodeHintPanel.Instance.RectScale = StartScale;
  35. }
  36.  
  37. public override void _Process(float delta)
  38. {
  39. _editPainter.Update();
  40. }
  41.  
  42. /// <summary>
  43. /// 连接信号, 当面板调整大小时调用
  44. /// </summary>
  45. private void _on_ScalePanel_resized()
  46. {
  47. //更新textEditor的缩放
  48. if (_scalePanel != null)
  49. {
  50. _scalePanel.SetSize(RectSize / StartScale);
  51. }
  52. }
  53. }
  54. }