private CWintabContext OpenQueryDigitizerContext() { bool status = false; CWintabContext logContext = null; try { // Get the default digitizing context. Turn off events. Control system cursor. logContext = CWintabInfo.GetDefaultDigitizingContext(ECTXOptionValues.CXO_SYSTEM); logContext.Options |= (uint)ECTXOptionValues.CXO_MESSAGES; logContext.Options &= ~(uint)ECTXOptionValues.CXO_SYSTEM; if (logContext == null) { TraceMsg("OpenQueryDigitizerContext: FAILED to get default digitizing context.\n"); //System.Diagnostics.Debug.WriteLine("FAILED to get default digitizing context."); return(null); } // Modify the digitizing region. logContext.Name = "WintabDN Query Data Context"; //WintabAxis tabletX = CWintabInfo.GetTabletAxis(EAxisDimension.AXIS_X); //WintabAxis tabletY = CWintabInfo.GetTabletAxis(EAxisDimension.AXIS_Y); //// Output X/Y values 1-1 with tablet dimensions. // logContext.OutOrgX = logContext.OutOrgY = 0; // logContext.OutExtX = tabletX.axMax; // logContext.OutExtY = tabletY.axMax; logContext.SysOrgX = logContext.SysOrgY = 0; logContext.SysExtX = SystemInformation.PrimaryMonitorSize.Width; logContext.SysExtY = SystemInformation.PrimaryMonitorSize.Height; // Open the context, which will also tell Wintab to send data packets. status = logContext.Open(); TraceMsg("Context Open: " + (status ? "PASSED [ctx=" + logContext.HCtx + "]" : "FAILED") + "\n"); //System.Diagnostics.Debug.WriteLine("Context Open: " + (status ? "PASSED [ctx=" + logContext.HCtx + "]" : "FAILED")); } catch (Exception ex) { TraceMsg("OpenQueryDigitizerContext: ERROR : " + ex.ToString()); } return(logContext); }
private CWintabContext OpenQueryDigitizerContext() { bool status = false; CWintabContext logContext = null; try { // Get the default digitizing context. Turn off events. Control system cursor. logContext = CWintabInfo.GetDefaultDigitizingContext(ECTXOptionValues.CXO_SYSTEM); logContext.Options |= (uint)ECTXOptionValues.CXO_MESSAGES; if (logContext == null) { TraceMsg("OpenQueryDigitizerContext: FAILED to get default digitizing context.\n"); //System.Diagnostics.Debug.WriteLine("FAILED to get default digitizing context."); return(null); } // Modify the digitizing region. logContext.Name = "WintabDN Query Data Context"; // output in a 5000 x 5000 grid logContext.OutOrgX = logContext.OutOrgY = 0; logContext.OutExtX = 5000; logContext.OutExtY = 5000; // Open the context, which will also tell Wintab to send data packets. status = logContext.Open(); TraceMsg("Context Open: " + (status ? "PASSED [ctx=" + logContext.HCtx + "]" : "FAILED") + "\n"); //System.Diagnostics.Debug.WriteLine("Context Open: " + (status ? "PASSED [ctx=" + logContext.HCtx + "]" : "FAILED")); } catch (Exception ex) { TraceMsg("OpenQueryDigitizerContext: ERROR : " + ex.ToString()); } return(logContext); }
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); }