From fe1cc3a1c8d817660938497e1789f6b60c90a6da Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Thu, 25 Apr 2019 15:37:28 +0300 Subject: [PATCH] Add a MouseCallback sample. --- .../EmbeddedResources/plugin-utility.ico | Bin 0 -> 33583 bytes .../Properties/AssemblyInfo.cs | 59 ++++++++++++ .../SampleCsMouseCallback.csproj | 85 ++++++++++++++++++ .../SampleCsMouseCallbackCommand.cs | 39 ++++++++ .../SampleCsMouseCallbackPlugIn.cs | 29 ++++++ .../SampleMouseCallback.cs | 31 +++++++ rhinocommon/cs/SamplesCs.sln | 6 ++ 7 files changed, 249 insertions(+) create mode 100644 rhinocommon/cs/SampleCsMouseCallback/EmbeddedResources/plugin-utility.ico create mode 100644 rhinocommon/cs/SampleCsMouseCallback/Properties/AssemblyInfo.cs create mode 100644 rhinocommon/cs/SampleCsMouseCallback/SampleCsMouseCallback.csproj create mode 100644 rhinocommon/cs/SampleCsMouseCallback/SampleCsMouseCallbackCommand.cs create mode 100644 rhinocommon/cs/SampleCsMouseCallback/SampleCsMouseCallbackPlugIn.cs create mode 100644 rhinocommon/cs/SampleCsMouseCallback/SampleMouseCallback.cs diff --git a/rhinocommon/cs/SampleCsMouseCallback/EmbeddedResources/plugin-utility.ico b/rhinocommon/cs/SampleCsMouseCallback/EmbeddedResources/plugin-utility.ico new file mode 100644 index 0000000000000000000000000000000000000000..022d1f78842c15850a45c0405c872e51c1070015 GIT binary patch literal 33583 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 `oL`4X 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 + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {CF2A3245-3EB5-4247-8532-A09139EEC262} + Library + Properties + SampleCsMouseCallback + SampleCsMouseCallback + v4.5 + 512 + false + + + true + full + false + ..\bin\ + DEBUG;TRACE + prompt + false + + + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + + + + + False + C:\Program Files\Rhino 6\System\rhinocommon.dll + False + + + False + C:\Program Files\Rhino 6\System\Eto.dll + False + + + False + C:\Program Files\Rhino 6\System\Rhino.UI.dll + False + + + + + + + + + + + + + + + Copy "$(TargetPath)" "$(TargetDir)$(ProjectName).rhp" +Erase "$(TargetPath)" + + + en-US + + + C:\Program Files\Rhino 6\System\Rhino.exe + + + Program + + \ No newline at end of file diff --git a/rhinocommon/cs/SampleCsMouseCallback/SampleCsMouseCallbackCommand.cs b/rhinocommon/cs/SampleCsMouseCallback/SampleCsMouseCallbackCommand.cs new file mode 100644 index 00000000..6c364fb8 --- /dev/null +++ b/rhinocommon/cs/SampleCsMouseCallback/SampleCsMouseCallbackCommand.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using Rhino; +using Rhino.Commands; +using Rhino.Geometry; +using Rhino.Input; +using Rhino.Input.Custom; + +namespace SampleCsMouseCallback +{ + public class SampleCsMouseCallbackCommand : Command + { + readonly SampleMouseCallback smcb = new SampleMouseCallback(); + public SampleCsMouseCallbackCommand() + { + // Rhino only creates one instance of each command class defined in a + // plug-in, so it is safe to store a refence in a static property. + Instance = this; + } + + ///The only instance of this command. + public static SampleCsMouseCallbackCommand Instance + { + get; private set; + } + + ///The command name as it appears on the Rhino command line. + public override string EnglishName + { + get { return "SampleCsMouseCallbackCommand"; } + } + + protected override Result RunCommand(RhinoDoc doc, RunMode mode) + { + smcb.Enabled = !smcb.Enabled; + return Result.Success; + } + } +} diff --git a/rhinocommon/cs/SampleCsMouseCallback/SampleCsMouseCallbackPlugIn.cs b/rhinocommon/cs/SampleCsMouseCallback/SampleCsMouseCallbackPlugIn.cs new file mode 100644 index 00000000..e6dcc2fb --- /dev/null +++ b/rhinocommon/cs/SampleCsMouseCallback/SampleCsMouseCallbackPlugIn.cs @@ -0,0 +1,29 @@ +namespace SampleCsMouseCallback +{ + /// + /// Every RhinoCommon .rhp assembly must have one and only one PlugIn-derived + /// class. DO NOT create instances of this class yourself. It is the + /// responsibility of Rhino to create an instance of this class. + /// To complete plug-in information, please also see all PlugInDescription + /// attributes in AssemblyInfo.cs (you might need to click "Project" -> + /// "Show All Files" to see it in the "Solution Explorer" window). + /// + public class SampleCsMouseCallbackPlugIn : Rhino.PlugIns.PlugIn + + { + public SampleCsMouseCallbackPlugIn() + { + Instance = this; + } + + ///Gets the only instance of the SampleCsMouseCallbackPlugIn plug-in. + public static SampleCsMouseCallbackPlugIn Instance + { + get; private set; + } + + // You can override methods here to change the plug-in behavior on + // loading and shut down, add options pages to the Rhino _Option command + // and maintain plug-in wide options in a document. + } +} \ No newline at end of file diff --git a/rhinocommon/cs/SampleCsMouseCallback/SampleMouseCallback.cs b/rhinocommon/cs/SampleCsMouseCallback/SampleMouseCallback.cs new file mode 100644 index 00000000..8af4d15a --- /dev/null +++ b/rhinocommon/cs/SampleCsMouseCallback/SampleMouseCallback.cs @@ -0,0 +1,31 @@ +using Rhino; +using Rhino.UI; + +namespace SampleCsMouseCallback +{ + public class SampleMouseCallback : MouseCallback + { + protected override void OnMouseEnter(MouseCallbackEventArgs e) + { + RhinoApp.WriteLine($"Entering view {e.View?.ActiveViewport?.Name}"); + } + + protected override void OnMouseHover(MouseCallbackEventArgs e) + { + RhinoApp.WriteLine($"Hovering on view {e.View?.ActiveViewport?.Name}"); + base.OnMouseHover(e); + } + + protected override void OnMouseLeave(MouseCallbackEventArgs e) + { + RhinoApp.WriteLine($"Leaving view {e.View?.ActiveViewport?.Name}"); + base.OnMouseLeave(e); + } + + protected override void OnMouseMove(MouseCallbackEventArgs e) + { + RhinoApp.WriteLine($"Moving over view {e.View?.ActiveViewport?.Name}"); + base.OnMouseMove(e); + } + } +} diff --git a/rhinocommon/cs/SamplesCs.sln b/rhinocommon/cs/SamplesCs.sln index 9e487e3b..64ef1fb3 100644 --- a/rhinocommon/cs/SamplesCs.sln +++ b/rhinocommon/cs/SamplesCs.sln @@ -69,6 +69,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleCsDeserializeEmbedded EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleCsDragDrop", "SampleCsDragDrop\SampleCsDragDrop.csproj", "{D94B1200-37DC-4DE7-856A-97ADDF3F965F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleCsMouseCallback", "SampleCsMouseCallback\SampleCsMouseCallback.csproj", "{CF2A3245-3EB5-4247-8532-A09139EEC262}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -195,6 +197,10 @@ Global {D94B1200-37DC-4DE7-856A-97ADDF3F965F}.Debug|Any CPU.Build.0 = Debug|Any CPU {D94B1200-37DC-4DE7-856A-97ADDF3F965F}.Release|Any CPU.ActiveCfg = Release|Any CPU {D94B1200-37DC-4DE7-856A-97ADDF3F965F}.Release|Any CPU.Build.0 = Release|Any CPU + {CF2A3245-3EB5-4247-8532-A09139EEC262}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF2A3245-3EB5-4247-8532-A09139EEC262}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CF2A3245-3EB5-4247-8532-A09139EEC262}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CF2A3245-3EB5-4247-8532-A09139EEC262}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE