मैं यूनिक्स प्लेटफ़ॉर्म के लिए कंसोल एप्लिकेशन बना रहा हूं, और मैं कीबोर्ड और माउस इनपुट को संभालने के लिए शाप (या ncurses) लाइब्रेरी का उपयोग कर रहा हूं। समस्या यह है कि मुझे बहुत कम दस्तावेज मिल गया है कि इसके लिए इसका उपयोग कैसे किया जाए, this page और this one से डालें, जिसमें बहुत विस्तृत उदाहरण नहीं हैं। मैंने बाएं क्लिक को कैप्चर करने में कामयाब रहा है, लेकिन मैं इसे दायाँ क्लिक के लिए काम नहीं कर सकता क्योंकि टर्मिनल एमुलेटर के लिए विकल्प मेनू कर्सर स्थान पर दिखाई देता है, लेकिन ईवेंट को एप्लिकेशन द्वारा संसाधित नहीं किया जाता है। मैं इससे कैसे बच सकता हूं और इस कार्यक्रम में आवेदन कैप्चर कर सकता हूं?कंसोल एप्लिकेशन पर माउस क्लिक कैप्चर करने के लिए ncurses का उपयोग
// Set up mouse event throwing
mousemask(BUTTON1_PRESSED | BUTTON2_PRESSED, NULL);
और विधि है कि इनपुट प्रक्रियाओं में, मैं निम्नलिखित है:
int c = getch();
MEVENT event;
switch(c)
{
case KEY_UP:
... do stuff
break;
case KEY_DOWN:
... do stuff
break;
case KEY_MOUSE:
if(getmouse(&event) == OK)
{
if(event.bstate & BUTTON1_PRESSED) // This works for left-click
{
... do stuff
}
else if(event.bstate & BUTTON2_PRESSED) // This doesn't capture right-click
{
... do other stuff
}
else
fprintf(stderr, "Event: %i", event.bstate); // Doesn't print anything on right-click
}
break;
default:
return;
}
मैं भी mousemask()
को विन्यस्त की कोशिश की है
मैं माउस की घटनाओं के विन्यास के लिए निम्नलिखित रेखा है ALL_MOUSE_EVENTS
मास्क के साथ, लेकिन यह अभी भी पिछले else
खंड पर किसी भी ईवेंट को प्रिंट नहीं करता है, इसलिए मुझे लगता है कि ईवेंट बस ट्रिगर नहीं कर रहा है। इस पर किसी भी मदद की सराहना की जाएगी।
ऐसा लगता है कि आपका टर्मिनल एमुलेटर टर्मिनल विंडो पर राइट क्लिक इवेंट पास नहीं कर रहा है। अधिकांश अनुकरणकर्ताओं में ऐसे विकल्प होते हैं जो इनपुट उपकरणों के विशेष हैंडलिंग को अक्षम करते हैं और टर्मिनल पर सीधे ईवेंट पास करने में सक्षम होते हैं। –
खैर, मैंने इसे कई टर्मिनल पर चलाने का प्रयास किया है: उबंटू 11.10 के लिए डिफ़ॉल्ट टर्मिनल, नेटबीन आईडीई का आंतरिक टर्मिनल गुएक, और उनमें से कोई भी काम नहीं करता है। क्या आप जानते हैं कि मैं ऐप में ईवेंट को पास करने के लिए उनमें से एक को कैसे कॉन्फ़िगर कर सकता हूं? –
इसी तरह के प्रश्न के लिए http://askubuntu.com/questions/21330/how-to-disable-right-click-menu-in-terminal, आंशिक उत्तर है यानी xterm का उपयोग करें। –