示例#1
0
        public static IntPtr NewIRhinoOptionsPagePointer(StackedDialogPage page, uint rhinoDocRuntimeSn)
        {
            SetRhinoOptionsPageHooks();
            var id = Guid.Empty;
            // Appending the EnglishPageTitle to the end of the class name allows
            // a plug-in page class to get used more than once in the same options host,
            // this is the case in the Commands plug-in, there is a generic host that
            // creates specific panels for each page.
            var pointer = UnsafeNativeMethods.IRhinoOptionsPage_New(rhinoDocRuntimeSn, $"{page.GetType().FullName}.{page.EnglishPageTitle}", ref id);

            if (pointer != IntPtr.Zero)
            {
                g_irhino_page_dictionary.Add(id, new RhinoPageInsnce(page, pointer, null, rhinoDocRuntimeSn));
            }
            return(pointer);
        }