Browse Source

add function menu

master
jkpete 2 months ago
parent
commit
3eeeeacf19
  1. 61
      addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotTable.cs

61
addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotTable.cs

@ -31,8 +31,12 @@ namespace EGFramework.UI
protected Dictionary<string,object> EmptyData { set; get; } protected Dictionary<string,object> EmptyData { set; get; }
protected Dictionary<string,object> TitleData { set; get; }
protected EasyEvent<Dictionary<string, object>> AddData { set; get; } = new EasyEvent<Dictionary<string, object>>(); protected EasyEvent<Dictionary<string, object>> AddData { set; get; } = new EasyEvent<Dictionary<string, object>>();
public Vector2 MinimumFunctionButtonSize = new Vector2(120,0);
/// <summary> /// <summary>
/// The max data count for one page. /// The max data count for one page.
/// </summary> /// </summary>
@ -53,8 +57,9 @@ namespace EGFramework.UI
} }
this.Vertical = true; this.Vertical = true;
EmptyData = typeof(T).EGenerateEmptyDictiontaryByType(); EmptyData = typeof(T).EGenerateEmptyDictiontaryByType();
TitleData = typeof(T).EGenerateDictiontaryByType();
InitFunctionMenu(); InitFunctionMenu();
InitTitle(typeof(T).EGenerateDictiontaryByType()); InitTitle(TitleData);
InitRowData(tableData.EGenerateDictionaryByGroup()); InitRowData(tableData.EGenerateDictionaryByGroup());
InitPageMenu(); InitPageMenu();
} }
@ -74,9 +79,20 @@ namespace EGFramework.UI
OnPageChanged.Invoke(); OnPageChanged.Invoke();
} }
public virtual void OnOutputFile(string path)
{
}
public virtual void OnInputFile(string path)
{
}
public virtual void InitFunctionMenu() public virtual void InitFunctionMenu()
{ {
if (FunctionContainer == null) if (FunctionContainer == null)
{ {
FunctionContainer = this.CreateNode<BoxContainer>("FunctionContainer"); FunctionContainer = this.CreateNode<BoxContainer>("FunctionContainer");
@ -86,14 +102,55 @@ namespace EGFramework.UI
add.Text = "Add"; add.Text = "Add";
add.Connect("pressed", Callable.From(() => this.EGEditDialog(EmptyData, OnAddData, "Add"))); add.Connect("pressed", Callable.From(() => this.EGEditDialog(EmptyData, OnAddData, "Add")));
add.FocusMode = FocusModeEnum.None; add.FocusMode = FocusModeEnum.None;
add.CustomMinimumSize = MinimumFunctionButtonSize;
Button refresh = FunctionContainer.CreateNode<Button>("refresh"); Button refresh = FunctionContainer.CreateNode<Button>("refresh");
refresh.Text = "Refresh"; refresh.Text = "Refresh";
refresh.Connect("pressed", Callable.From(InitPageData)); refresh.Connect("pressed", Callable.From(InitPageData));
refresh.FocusMode = FocusModeEnum.None; refresh.FocusMode = FocusModeEnum.None;
refresh.CustomMinimumSize = MinimumFunctionButtonSize;
Button output = FunctionContainer.CreateNode<Button>("output");
output.Text = "Output";
// output.Connect("pressed", Callable.From());
output.FocusMode = FocusModeEnum.None;
output.CustomMinimumSize = MinimumFunctionButtonSize;
Button input = FunctionContainer.CreateNode<Button>("input");
input.Text = "Input";
input.FocusMode = FocusModeEnum.None;
input.CustomMinimumSize = MinimumFunctionButtonSize;
OptionButton filedSelect = FunctionContainer.CreateNode<OptionButton>("filedSelect");
filedSelect.FocusMode = FocusModeEnum.None;
filedSelect.SizeFlagsHorizontal = SizeFlags.Expand | SizeFlags.ShrinkEnd;
filedSelect.CustomMinimumSize = MinimumFunctionButtonSize;
foreach (string titleParam in TitleData.Keys)
{
filedSelect.AddItem(titleParam);
}
LineEdit searchEdit = FunctionContainer.CreateNode<LineEdit>("searchEdit");
searchEdit.PlaceholderText = "Please input search key";
searchEdit.SizeFlagsHorizontal = SizeFlags.ShrinkEnd;
searchEdit.CustomMinimumSize = new Vector2(MinimumFunctionButtonSize.X*2,MinimumFunctionButtonSize.Y);
Button search = FunctionContainer.CreateNode<Button>("search");
search.Text = "Search";
search.FocusMode = FocusModeEnum.None;
search.SizeFlagsHorizontal = SizeFlags.ShrinkEnd;
search.CustomMinimumSize = MinimumFunctionButtonSize;
Button reset = FunctionContainer.CreateNode<Button>("reset");
reset.Text = "Reset";
reset.FocusMode = FocusModeEnum.None;
reset.SizeFlagsHorizontal = SizeFlags.ShrinkEnd;
reset.CustomMinimumSize = MinimumFunctionButtonSize;
} }
} }
public void InitTitle(Dictionary<string, object> titleData)
public virtual void InitTitle(Dictionary<string, object> titleData)
{ {
if (Title == null) if (Title == null)
{ {

Loading…
Cancel
Save