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,6 +83,8 @@ public class ModApplauncherItem
|
|||
public class API
|
||||
{
|
||||
public static Dictionary<Form, string> OpenGUIDs = new Dictionary<Form, string>();
|
||||
public static Dictionary<string, Control> DEF_PanelGUIDs = new Dictionary<string, Control>();
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Settings file.
|
||||
|
|
|
@ -32,6 +32,9 @@ public ShiftOSDesktop()
|
|||
//Window draw event handler.
|
||||
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.
|
||||
public event EmptyEventHandler OnDesktopReload;
|
||||
public event ListEventHandler<ApplauncherItem> OnAppLauncherPopulate;
|
||||
|
@ -45,6 +48,8 @@ public ShiftOSDesktop()
|
|||
public event WindowDrawEventHandler TitlebarReset;
|
||||
public event WindowDrawEventHandler BorderReset;
|
||||
public event ListEventHandler<DesktopIcon> DesktopIconsPopulated;
|
||||
public event EmptyEventHandler OnUnityToggle;
|
||||
public event ControlDrawEventHandler OnDesktopPanelDraw;
|
||||
|
||||
public void InvokeWindowOp(string operation, Form win)
|
||||
{
|
||||
|
@ -104,7 +109,9 @@ public void SetUnityMode()
|
|||
{
|
||||
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();
|
||||
|
||||
}
|
||||
|
||||
public void SetUnityMode(bool value)
|
||||
|
@ -596,7 +603,7 @@ public void SetupDesktopPanel()
|
|||
public void SetupPanels(List<Skinning.DesktopPanel> lst)
|
||||
{
|
||||
DesktopPanels = new List<Panel>();
|
||||
|
||||
API.DEF_PanelGUIDs.Clear();
|
||||
foreach (var dp in lst)
|
||||
{
|
||||
Panel pnl = new Panel();
|
||||
|
@ -699,6 +706,9 @@ public void SetupPanels(List<Skinning.DesktopPanel> lst)
|
|||
pnl.Hide();
|
||||
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.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) =>
|
||||
{
|
||||
desktop.OnDesktopReload += () =>
|
||||
|
|
Loading…
Reference in a new issue