सवाल
मैं मैगिट में उपयोग किए जाने वाले पॉपअप मेनू , पॉपअप मेनू के रूप में यूजर इंटरफेस बनाना चाहूंगा ।
विशेषताएं
पॉपअप की परिभाषा
इस प्रश्न के संदर्भ में पॉपअप का अर्थ है कि थोड़ी अस्थायी विंडो जिसमें मेनू आइटम का संग्रह हो ताकि उपयोगकर्ता इनमें से किसी एक और आइटम का चयन कर सके।
स्क्रीन पर स्थिति
पॉपअप को स्क्रीन के किसी भी भाग में प्रदर्शित होने की अनुमति है, लेकिन यह वांछनीय है कि यह काफी स्पष्ट होना चाहिए और इस प्रकार यह वर्तमान में सक्रिय विंडो के बगल में दिखाई देना चाहिए।
पॉपअप बफर की सामग्री
वस्तुओं को सुंदर तालिका के रूप में प्रदर्शित किया जाना चाहिए। सुंदर प्रश्न का संदर्भ है, नेत्रहीन अपील का अर्थ है, यह प्रभाव मेनू आइटमों को सीधे पंक्तियों में डालकर आसानी से प्राप्त किया जा सकता है, complete--insert-string
उदाहरण के लिए देखें
। यह अनुच्छेद अतिरिक्त स्पष्टीकरण के लिए कार्य करता है, आप इसे अपने तरीके से कर सकते हैं, इससे आपका उत्तर गलत नहीं होगा।
मेनू आइटम का चयन
चयन की उम्मीद है कि एक कुंजी दबाकर या, एक माउस के साथ वैकल्पिक रूप से प्रदर्शन किया जा सकता है (हालांकि यह इतना महत्वपूर्ण नहीं है कि प्रस्ताव वाले उत्तर जो माउस का समर्थन नहीं करते हैं कानूनी हैं)। यदि आप माउस का समर्थन करने वाले समाधान का प्रस्ताव करते हैं, तो कृपया ध्यान दें कि उपयोगकर्ता को सहज तरीके से मेनू आइटम का चयन करने में सक्षम होना चाहिए, अर्थात बाईं ओर-बटन वांछित विकल्प पर क्लिक करके।
नायब माउस का उपयोग कई तरीकों से किया जा सकता है और विकल्प को इंगित करने के लिए वैकल्पिक तरीकों का भी स्वागत किया जाता है।
पॉपअप का उन्मूलन
एक बार जब उपयोगकर्ता ने ऊपर वर्णित तरीके से मेनू आइटम का चयन किया है, तो बफर और इस तरह इसकी खिड़की को देखने के साथ-साथ मार दिया जाना चाहिए। पॉपअप मेनू के आह्वान से पहले सक्रिय हुई विंडो को फ़ोकस (यानी सक्रिय हो जाना) फिर से प्राप्त करना चाहिए।
लौटाया गया मूल्य और तर्क
अधिमानतः, कार्यों के इस परिणाम के परिणामस्वरूप एक लिस्प ऑब्जेक्ट लौटाया जाना चाहिए। लिस्प ऑब्जेक्ट या तो हो सकता है:
nil
- यह इंगित करता है कि उपयोगकर्ता ने पॉपअप मेनू को दबाकर C-gया किसी अन्य तरीके से has को निरस्त कर दिया है ।string
- स्ट्रिंग (यह एक प्रतीक का उपयोग करने की अनुमति है)string-equal
वास्तविक वस्तुओं के संग्रह के रूप में पॉपअप मेनू को आपूर्ति की गई तार में से एक होना चाहिए ।
बाकी कार्यक्रमों को उपयोगकर्ता की पसंद को बताने के वैकल्पिक तरीके, या, संभवतः, इसकी अनुपस्थिति स्वीकार्य हैं। हालांकि, अगर यह स्पष्ट नहीं है कि इसे और कैसे किया जा सकता है तो मैं सभी उत्तरदाताओं को सुधारने के लिए कहता हूं और मुझसे इस पहलू को स्पष्ट करने के लिए नहीं कहता।
लौटे मूल्य के लिए यह सब है। इनपुट पैरामीटर्स के लिए, उन्हें कम से कम स्ट्रिंग्स का संग्रह शामिल करना चाहिए जो संभावित विकल्पों का प्रतिनिधित्व करता है (यानी, मेनू आइटम)।
स्वीकार्य जवाब
अपेक्षित उत्तर निम्नलिखित रूपों में से हो सकते हैं:
पर्याप्त कोड स्निपेट जो शिक्षित पाठक को ऊपर वर्णित कार्य को लिखने की अनुमति देता है; पूरे कामकाज को लिखने के लिए यह अपेक्षित या आवश्यक नहीं है। हालांकि, अनिश्चितता से बचने के लिए (कोड के काफी हिस्सों को छोड़ा जा सकता है?), मुझे ध्यान देना चाहिए कि स्निपेट के लापता भागों को उत्तर के पाठकीय घटक में वर्णित किया जाना चाहिए।
मौजूदा लाइब्रेरी का लिंक जो समान कार्यक्षमता को लागू करता है। अनिश्चितता से बचने के लिए, मुझे ध्यान देना चाहिए कि हमारे मामले में इसी तरह का अर्थ है कि लाइब्रेरी का उपयोग पॉपअप बनाने के लिए किया जा सकता है (ऊपर परिभाषा देखें) जिसमें ऊपर वर्णित कम से कम 2 या 3 विशेषताएं हैं। यदि प्रस्तावित लाइब्रेरी उस बिंदु पर भिन्न है जहां पहले से बताई गई शर्त पूरी नहीं की जा सकती है, तो ऐसे प्रत्येक मामले को स्वतंत्र रूप से आंका जाएगा और यदि ओपी इसे उपयोगी बनाता है तो इसे हमेशा अपग्रेड किया जाएगा।
अंतर्निहित Emacs फ़ंक्शन या तृतीय-पक्ष वाले का वर्णन जिनका उपयोग अनुभाग में वर्णित किसी भी सुविधा को लागू करने के लिए किया जा सकता है «विशेषताएँ», ऊपर देखें। अनिश्चितता से बचने के लिए, कृपया स्पष्ट रूप से बताएं कि आपका उत्तर भविष्य के पाठकों के लिए कैसे उपयोगी हो सकता है जो मैगिट में उपयोग किए जाने वाले पॉपअप , पॉपअप मेनू को लागू करना चाहते हैं ।
Menu पॉपअप मेनू को निरस्त करने के वैकल्पिक तरीकों में निम्नलिखित शामिल हो सकते हैं (लेकिन इन तक सीमित नहीं):
पॉपअप मेनू विंडो के बाहर क्लिक करना;
एक विकल्प बनाने के बिना पॉपअप युक्त बफर की हत्या।
magit-popup
। नया पैकेज कहा जाता हैtransient
, और वर्तमान संस्करणों में इसका उपयोग किया जाता हैmagit
। प्रलेखन के लिए magit.vc/manual/transient देखें ।