संदर्भ मेनू

जब कोई उपयोगकर्ता किसी ब्लॉक या फ़ाइल फ़ोल्डर पर राइट-क्लिक करता है या दबाकर रखता है, तो ज़्यादा कार्रवाइयों वाला संदर्भ मेन्यू दिखता है. अतिरिक्त विकल्प दिखाने या डिफ़ॉल्ट विकल्पों को हटाने के लिए, इस संदर्भ मेन्यू को कॉन्फ़िगर करें. इस गाइड में, सभी ब्लॉक या सभी फ़ाइल फ़ोल्डर में कस्टम विकल्प जोड़ने के बारे में बताया गया है. अगर आपको सिर्फ़ एक ही तरह के ब्लॉक के लिए, संदर्भ मेन्यू बदलना है, तो कस्टम ब्लॉक पेज पर दी गई जानकारी देखें.

संदर्भ मेन्यू एपीआई

ContextMenuRegistry क्लास में, रजिस्टर करने, रजिस्ट्रेशन रद्द करने, और संदर्भ मेन्यू के सभी विकल्प पाने के तरीके होते हैं. क्लास एक सिंगलटन है, इसलिए खुद एक नया इंस्टेंस इंस्टैंशिएट करने के बजाय, Blockly.ContextMenuRegistry.registry ऑब्जेक्ट पर तरीकों को कॉल किया जाना चाहिए. संदर्भ मेन्यू दिखाने के लिए, ContextMenu क्लास getContextMenuItems तरीके को कॉल करती है. अगर ब्लॉक या फ़ाइल फ़ोल्डर में customContextMenu फ़ंक्शन है, तो उसे बाद में कॉल किया जाता है, ताकि विकल्पों की सूची में बदलाव किया जा सके.

कस्टम विकल्प जोड़ना

रजिस्ट्री में मौजूद हर मेन्यू विकल्प में कई प्रॉपर्टी होती हैं:

  • callback: यह फ़ंक्शन, मेन्यू के विकल्प पर क्लिक होने पर कॉल किया जाता है.
  • scopeType: जहां यह विकल्प दिखना चाहिए वहां के लिए, Blockly.ContextMenuRegistry.ScopeType.BLOCK या Blockly.ContextMenuRegistry.ScopeType.WORKSPACE में से एक. अगर फ़ाइल फ़ोल्डर और ब्लॉक, दोनों के लिए कोई विकल्प दिखाना है, तो उसे हर स्कोप टाइप के लिए एक बार रजिस्टर किया जाना चाहिए.
  • displayText: या तो एक स्ट्रिंग या फिर एचटीएमएल या ऐसा फ़ंक्शन जो पहले वाली स्ट्रिंग दिखाता है. इससे मेन्यू में दिखाया जाने वाला टेक्स्ट तय किया जाता है.
  • preconditionFn: ऐसा फ़ंक्शन जो enabled, disabled या hidden में से किसी एक को दिखाता है, ताकि यह तय किया जा सके कि मेन्यू विकल्प को रेंडर करना है या नहीं और अगर करना है, तो कैसे.
  • weight: वह संख्या जो विकल्प का क्रम तय करती है. ज़्यादा मोटाई वाले विकल्प, बाद में संदर्भ मेन्यू में दिखते हैं.
  • id: विकल्प के लिए एक यूनीक स्ट्रिंग आईडी.

हर फ़ंक्शन callback, displayText (अगर फ़ंक्शन है), और preconditionFn को Scope ऑब्जेक्ट के साथ कॉल किया जाएगा. इसमें, उस फ़ाइल फ़ोल्डर या ब्लॉक के बारे में जानकारी होगी जिस पर क्लिक किया जा रहा है. इस तरह, आपके संदर्भ मेन्यू विकल्प से फ़ाइल फ़ोल्डर या ब्लॉक से जुड़ी प्रॉपर्टी का रेफ़रंस मिल सकता है. उदाहरण के लिए, अगर फ़ाइल फ़ोल्डर में 42 ब्लॉक हैं, तो संदर्भ मेन्यू के विकल्प में, उपयोगकर्ता सभी ब्लॉक मिटाने के लिए "42 ब्लॉक मिटाएं" लिखा हुआ है. preconditionFn के साथ, अगर ब्लॉक की कुछ प्रॉपर्टी सही है, तो मेन्यू का विकल्प enabled हो सकता है या disabled हो सकता है.

ज़्यादा उदाहरणों के लिए, contextmenu_items.js में डिफ़ॉल्ट संदर्भ मेन्यू के विकल्पों का रजिस्ट्रेशन देखा जा सकता है.

डिफ़ॉल्ट विकल्पों को बदलना या हटाना

आप Blockly.ContextMenuRegistry.registry.unregister(id) से किसी भी विकल्प का रजिस्ट्रेशन रद्द कर सकते हैं. डिफ़ॉल्ट विकल्पों के आईडी contextmenu_items.js में हैं.

डिफ़ॉल्ट विकल्प बदलने के लिए, आईडी के साथ getItem को कॉल करें और ज़रूरत के हिसाब से उसमें बदलाव करें.