浏览代码

paste for runtime and editor

/siyaoH-paste
siyao 3 年前
当前提交
e3c96460
共有 3 个文件被更改,包括 11 次插入27 次删除
  1. 13
      com.unity.uiwidgets/Editor/UIWidgetsEditorPanel.cs
  2. 12
      com.unity.uiwidgets/Runtime/engine/UIWidgetsPanel.cs
  3. 13
      com.unity.uiwidgets/Runtime/engine/UIWidgetsPanelWrapper.cs

13
com.unity.uiwidgets/Editor/UIWidgetsEditorPanel.cs


using System.Collections.Generic;
using Unity.UIWidgets.engine;
using Unity.UIWidgets.foundation;
using Unity.UIWidgets.gestures;
using Unity.UIWidgets.ui;
using UnityEditor;
using UnityEngine;

}
void Input_OnGUIEvent(Event evt) {
Debug.Log(evt);
if (evt.type == EventType.MouseDown) {
var pos = _getPointerPosition(position: evt.mousePosition);
_wrapper.OnPointerDown(pos: pos, _buttonToPointerId(buttonId: evt.button));

delta.y /= 3f;
var pos = _getPointerPosition(position: evt.mousePosition);
_wrapper.OnMouseScroll(delta: delta, pos: pos);
}
}
} else if (evt.type == EventType.ValidateCommand && evt.commandName == "Paste") {
foreach (var character in GUIUtility.systemCopyBuffer) {
var splitEvent = new Event();
splitEvent.type = EventType.KeyDown;
splitEvent.character = character;
PointerEventConverter.KeyEvent.Enqueue(splitEvent);
}
}
}
}
protected virtual void main() {

12
com.unity.uiwidgets/Runtime/engine/UIWidgetsPanel.cs


using System.IO;
using Unity.UIWidgets.external.simplejson;
using Unity.UIWidgets.foundation;
using Unity.UIWidgets.gestures;
using Unity.UIWidgets.rendering;
using Unity.UIWidgets.widgets;
using UnityEngine.Profiling;
using UnityEngine.Scripting;
using UnityEngine.UI;
using Path = System.IO.Path;
using RawImage = UnityEngine.UI.RawImage;

var e = Event.current;
if (e.isKey) {
_wrapper.OnKeyDown(e: e);
} else if (e.type == EventType.ValidateCommand && e.commandName == "Paste") {
foreach (var character in GUIUtility.systemCopyBuffer) {
var splitEvent = new Event();
splitEvent.type = EventType.KeyDown;
splitEvent.character = character;
PointerEventConverter.KeyEvent.Enqueue(splitEvent);
}
}
}

13
com.unity.uiwidgets/Runtime/engine/UIWidgetsPanelWrapper.cs


using System;
using System.Collections.Generic;
using System.IO;
using Unity.UIWidgets.engine;
using Path = Unity.UIWidgets.ui.Path;
namespace Unity.UIWidgets.engine {
#region Platform: MacOs/iOS/Windows Specific Functionalities

public void OnKeyDown(Event e) {
UIWidgetsPanel_onKey(ptr: _ptr, keyCode: e.keyCode, e.type == EventType.KeyDown);
if (e.character != 0 || e.keyCode == KeyCode.Backspace) {
if (e.type == EventType.KeyDown && e.keyCode == KeyCode.V &&
e.modifiers == EventModifiers.Command) {
foreach (var character in GUIUtility.systemCopyBuffer) {
var splitEvent = new Event();
splitEvent.type = EventType.KeyDown;
splitEvent.character = character;
PointerEventConverter.KeyEvent.Enqueue(splitEvent);
}
} else if (e.character != 0 || e.keyCode == KeyCode.Backspace) {
PointerEventConverter.KeyEvent.Enqueue(new Event(other: e));
// TODO: add on char
// UIWidgetsPanel_onChar(_ptr, e.character);

正在加载...
取消
保存