private void stop_selection() { m_interaction.SelectEvents.OnSelect -= new Inventor.SelectEventsSink_OnSelectEventHandler(this.SelectEvents_OnSelect); m_interaction.OnTerminate -= new Inventor.InteractionEventsSink_OnTerminateEventHandler(this.M_interaction_OnTerminate); m_interaction.Stop(); m_interaction = null; m_dialog.FormClosed -= M_dialog_FormClosed; m_form_state = m_dialog.getState(); m_dialog.Close(); m_dialog = null; }
private void m_buttonDef_OnExecute(NameValueMap context) { if (m_dialog != null) { m_dialog.Focus(); return; } m_interaction = m_inventorApplication.CommandManager.CreateInteractionEvents(); m_interaction.StatusBarText = "Select the face to add tabs to"; m_selects = m_interaction.SelectEvents; m_selects.ClearSelectionFilter(); m_selects.AddSelectionFilter(SelectionFilterEnum.kPartFacePlanarFilter); //m_selects.SingleSelectEnabled = true; m_selects.MouseMoveEnabled = false; // recommended for performance if not used m_selects.Enabled = true; // ??? // no idea what these event sinks are and why we need them... m_selects.OnSelect += new Inventor.SelectEventsSink_OnSelectEventHandler(this.SelectEvents_OnSelect); m_interaction.OnTerminate += new Inventor.InteractionEventsSink_OnTerminateEventHandler(this.M_interaction_OnTerminate); // TODO: only do this once per document! // TODO: why doesn't it work at all??!?! m_browser_events = m_inventorApplication.ActiveDocument.BrowserPanes.BrowserPanesEvents; m_browser_events.OnBrowserNodeActivate += new Inventor.BrowserPanesSink_OnBrowserNodeActivateEventHandler(this.BrowserPanesEvents_OnBrowserNodeActivate); m_browser_events.OnBrowserNodeLabelEdit += new Inventor.BrowserPanesSink_OnBrowserNodeLabelEditEventHandler(M_browser_events_OnBrowserNodeLabelEdit); m_dialog = new LaserTabForm(m_form_state); m_dialog.Show(new InventorMainFrame(m_inventorApplication.MainFrameHWND)); m_dialog.FormClosed += M_dialog_FormClosed; m_dialog.button_ok.Click += Button_ok_Click; m_interaction.Start(); }