public QueryDataForm() { InitializeComponent(); this.FormClosing += QueryDataForm_FormClosing; try { // Open a Wintab context that does not send Wintab data events. m_logContext = OpenQueryDigitizerContext(); // Create a data object. m_wtData = new CWintabData(m_logContext); m_wtData.SetWTPacketEventHandler(MyWTPacketEventHandler); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
public QueryDataForm() { InitializeComponent(); try { // Open a Wintab context that does not send Wintab data events. m_logContext = OpenQueryDigitizerContext(); // Create a data object. m_wtData = new CWintabData(m_logContext); m_wtData.SetWTPacketEventHandler(MyWTPacketEventHandler); //TraceMsg("Press \"Test\" and touch pen to tablet.\n"); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
/////////////////////////////////////////////////////////////////////// private void QueryDataForm_FormClosing(object sender, System.ComponentModel.CancelEventArgs e) { try { TraceMsg("QueryDataForm - Closing context...\n"); if (m_wtData != null) { m_wtData.RemoveWTPacketEventHandler(MyWTPacketEventHandler); m_wtData = null; } if (m_logContext != null) { m_logContext.Close(); m_logContext = null; } } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.ToString()); } }
/////////////////////////////////////////////////////////////////////// private void Test_DataPacketQueueSize() { bool status = false; UInt32 numPackets = 0; CWintabContext logContext = null; try { logContext = OpenTestDigitizerContext(); if (logContext == null) { TraceMsg("Test_DataPacketQueueSize: FAILED OpenTestDigitizerContext - bailing out...\n"); return; } CWintabData wtData = new CWintabData(logContext); TraceMsg("Creating CWintabData object: " + (wtData != null ? "PASSED" : "FAILED") + "\n"); if (wtData == null) { throw new Exception("Could not create CWintabData object."); } numPackets = wtData.GetPacketQueueSize(); TraceMsg("Initial packet queue size: " + numPackets + "\n"); status = wtData.SetPacketQueueSize(17); TraceMsg("Setting packet queue size: " + (status ? "PASSED" : "FAILED") + "\n"); numPackets = wtData.GetPacketQueueSize(); TraceMsg("Modified packet queue size: " + numPackets + "\n"); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.ToString()); } finally { if (logContext != null) { status = logContext.Close(); TraceMsg("Context Close: " + (status ? "PASSED" : "FAILED") + "\n"); } } }
/////////////////////////////////////////////////////////////////////// // Helper functions // /////////////////////////////////////////////////////////////////////// private void InitDataCapture( int ctxWidth_I = m_TABEXTX, int ctxHeight_I = m_TABEXTY, bool ctrlSysCursor_I = true) { try { // Close context from any previous test. CloseCurrentContext(); TraceMsg("Opening context...\n"); m_logContext = OpenTestSystemContext(ctxWidth_I, ctxHeight_I, ctrlSysCursor_I); if (m_logContext == null) { TraceMsg("Test_DataPacketQueueSize: FAILED OpenTestSystemContext - bailing out...\n"); return; } // Create a data object and set its WT_PACKET handler. m_wtData = new CWintabData(m_logContext); m_wtData.SetWTPacketEventHandler(MyWTPacketEventHandler); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.ToString()); } }
/////////////////////////////////////////////////////////////////////// private void CloseCurrentContext() { try { TraceMsg("Closing context...\n"); if (m_logContext != null) { m_logContext.Close(); m_logContext = null; m_wtData = null; } } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.ToString()); } }
private bool InitWintab() { bool status = false; try { mLogContext = CWintabInfo.GetDefaultDigitizingContext(ECTXOptionValues.CXO_MESSAGES); if (mLogContext == null) { return false; //throw new Exception("Oops - FAILED GetDefaultDigitizingContext"); } // Control system cursor. mLogContext.Options |= (UInt32)ECTXOptionValues.CXO_SYSTEM; // Verify which extensions are available for targeting. // Once we know what the tablet supports, we can set up the data packet // definition to be sent events from those control types. // All tablets should have at least expresskeys. mExpKeysMask = CWintabExtensions.GetWTExtensionMask(EWTXExtensionTag.WTX_EXPKEYS2); if (mExpKeysMask > 0) { mLogContext.PktData |= (WTPKT)mExpKeysMask; } else { Debug.WriteLine("InitWintab: WTX_EXPKEYS2 mask not found!"); throw new Exception("Oops - FAILED GetWTExtensionMask for WTX_EXPKEYS2"); } // It's not an error if either / both of these are zero. It simply means // that those control types are not supported. mTouchRingMask = CWintabExtensions.GetWTExtensionMask(EWTXExtensionTag.WTX_TOUCHRING); if (mTouchRingMask > 0) { mLogContext.PktData |= (WTPKT)mTouchRingMask; } mTouchStripMask = CWintabExtensions.GetWTExtensionMask(EWTXExtensionTag.WTX_TOUCHSTRIP); if (mTouchStripMask > 0) { mLogContext.PktData |= (WTPKT)mTouchStripMask; } status = mLogContext.Open(); if (!status) { //throw new Exception("Oops - failed logContext.Open()"); return false; } // Setup controls and overrides for first tablet. SetupControlsForTablet(mTabletIndexDefault); // Create a data object and set its WT_PACKET handler. m_wtData = new CWintabData(mLogContext); m_wtData.SetWTPacketEventHandler(MyWTPacketEventHandler); } catch (Exception ex) { MessageBox.Show("FormExtTestApp: InitWintab: " + ex.ToString()); } return true; }
//--------------------------------------------------------------------- // Prepare to take tablet input //--------------------------------------------------------------------- private void PrepareForTabletInput(object sender, EventArgs e) { // Set up the tablet context CWintabContext context = new CWintabContext(); context = CWintabInfo.GetDefaultDigitizingContext(ECTXOptionValues.CXO_MESSAGES); // Allow the mouse to move context.Options |= (uint)ECTXOptionValues.CXO_SYSTEM; context.Name = "Tablet event data context"; context.OutOrgX = 0; context.OutOrgY = 0; context.OutExtX = 800; context.OutExtY = 600; bool status = context.Open(); // Prepare to take data data = new CWintabData(context); data.SetWTPacketEventHandler(TabletEventHandler); }