mirror of
https://github.com/seriocomedy/ShiftOS-C-.git
synced 2025-01-22 17:22:14 +00:00
Added DEF events for unity toggle and desktop panel draw.
Also this is the first REAL AppVeyor build test.
This commit is contained in:
parent
b20c17f5a4
commit
98fe96c5d3
3 changed files with 38 additions and 2 deletions
|
@ -83,7 +83,9 @@ public class ModApplauncherItem
|
||||||
public class API
|
public class API
|
||||||
{
|
{
|
||||||
public static Dictionary<Form, string> OpenGUIDs = new Dictionary<Form, string>();
|
public static Dictionary<Form, string> OpenGUIDs = new Dictionary<Form, string>();
|
||||||
|
public static Dictionary<string, Control> DEF_PanelGUIDs = new Dictionary<string, Control>();
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Settings file.
|
/// Settings file.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -32,6 +32,9 @@ public ShiftOSDesktop()
|
||||||
//Window draw event handler.
|
//Window draw event handler.
|
||||||
public delegate void WindowDrawEventHandler(Form win);
|
public delegate void WindowDrawEventHandler(Form win);
|
||||||
|
|
||||||
|
//Event handler for passing a single control (e.g, a desktop panel) to the Lua API.
|
||||||
|
public delegate void ControlDrawEventHandler(string ControlGUID);
|
||||||
|
|
||||||
//Lua events.
|
//Lua events.
|
||||||
public event EmptyEventHandler OnDesktopReload;
|
public event EmptyEventHandler OnDesktopReload;
|
||||||
public event ListEventHandler<ApplauncherItem> OnAppLauncherPopulate;
|
public event ListEventHandler<ApplauncherItem> OnAppLauncherPopulate;
|
||||||
|
@ -45,6 +48,8 @@ public ShiftOSDesktop()
|
||||||
public event WindowDrawEventHandler TitlebarReset;
|
public event WindowDrawEventHandler TitlebarReset;
|
||||||
public event WindowDrawEventHandler BorderReset;
|
public event WindowDrawEventHandler BorderReset;
|
||||||
public event ListEventHandler<DesktopIcon> DesktopIconsPopulated;
|
public event ListEventHandler<DesktopIcon> DesktopIconsPopulated;
|
||||||
|
public event EmptyEventHandler OnUnityToggle;
|
||||||
|
public event ControlDrawEventHandler OnDesktopPanelDraw;
|
||||||
|
|
||||||
public void InvokeWindowOp(string operation, Form win)
|
public void InvokeWindowOp(string operation, Form win)
|
||||||
{
|
{
|
||||||
|
@ -104,7 +109,9 @@ public void SetUnityMode()
|
||||||
{
|
{
|
||||||
UnityEnabled = true;
|
UnityEnabled = true;
|
||||||
}
|
}
|
||||||
|
OnUnityToggle?.Invoke(); //We want this to be invoked BEFORE the desktop reset in case the user wants to do things with the desktop during reset.
|
||||||
SetupDesktop();
|
SetupDesktop();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetUnityMode(bool value)
|
public void SetUnityMode(bool value)
|
||||||
|
@ -596,7 +603,7 @@ public void SetupDesktopPanel()
|
||||||
public void SetupPanels(List<Skinning.DesktopPanel> lst)
|
public void SetupPanels(List<Skinning.DesktopPanel> lst)
|
||||||
{
|
{
|
||||||
DesktopPanels = new List<Panel>();
|
DesktopPanels = new List<Panel>();
|
||||||
|
API.DEF_PanelGUIDs.Clear();
|
||||||
foreach (var dp in lst)
|
foreach (var dp in lst)
|
||||||
{
|
{
|
||||||
Panel pnl = new Panel();
|
Panel pnl = new Panel();
|
||||||
|
@ -699,6 +706,9 @@ public void SetupPanels(List<Skinning.DesktopPanel> lst)
|
||||||
pnl.Hide();
|
pnl.Hide();
|
||||||
this.Controls.Remove(pnl);
|
this.Controls.Remove(pnl);
|
||||||
}
|
}
|
||||||
|
string guid = Guid.NewGuid().ToString();
|
||||||
|
API.DEF_PanelGUIDs.Add(guid, pnl);
|
||||||
|
OnDesktopPanelDraw?.Invoke(guid);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -119,6 +119,30 @@ public void RegisterCore()
|
||||||
mod(func + "()");
|
mod(func + "()");
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
mod.on_unity_set += new Action<ShiftOSDesktop, string>((desktop, func) =>
|
||||||
|
{
|
||||||
|
desktop.OnUnityToggle += () =>
|
||||||
|
{
|
||||||
|
mod(func + "()");
|
||||||
|
};
|
||||||
|
});
|
||||||
|
mod.on_desktop_panel_draw += new Action<ShiftOSDesktop, string>((desktop, func) =>
|
||||||
|
{
|
||||||
|
desktop.OnDesktopPanelDraw += (c) =>
|
||||||
|
{
|
||||||
|
mod(func + $"(get_panel_from_guid(\"{c}\"))");
|
||||||
|
};
|
||||||
|
});
|
||||||
|
mod.get_panel_from_guid = new Func<string, Control>((guid) =>
|
||||||
|
{
|
||||||
|
foreach(var kv in API.DEF_PanelGUIDs)
|
||||||
|
{
|
||||||
|
if (kv.Key == guid)
|
||||||
|
return kv.Value;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
|
||||||
mod.on_desktop_reset += new Action<ShiftOSDesktop, string>((desktop, func) =>
|
mod.on_desktop_reset += new Action<ShiftOSDesktop, string>((desktop, func) =>
|
||||||
{
|
{
|
||||||
desktop.OnDesktopReload += () =>
|
desktop.OnDesktopReload += () =>
|
||||||
|
|
Loading…
Reference in a new issue