যখন একজন ব্যবহারকারী ব্লক বা ওয়ার্কস্পেসে ডান-ক্লিক করে (বা দীর্ঘ প্রেস করে), তখন অতিরিক্ত ক্রিয়া সহ একটি প্রসঙ্গ মেনু দেখানো হয়। আপনি অতিরিক্ত বিকল্পগুলি দেখাতে বা ডিফল্ট বিকল্পগুলি সরাতে এই প্রসঙ্গ মেনুটি কনফিগার করতে পারেন। এই নির্দেশিকাটি সমস্ত ব্লক বা সমস্ত কর্মক্ষেত্রে একটি কাস্টম বিকল্প যোগ করার বিষয়ে। আপনি যদি শুধুমাত্র এক ধরনের ব্লকের জন্য প্রসঙ্গ মেনু পরিবর্তন করতে চান, কাস্টম ব্লক পৃষ্ঠায় তথ্য দেখুন।
প্রসঙ্গ মেনু API
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
এর সাথে, ব্লকের কিছু সম্পত্তি সত্য হলে বা অন্যথায় disabled
একটি মেনু বিকল্প enabled
করা যেতে পারে।
আরও উদাহরণের জন্য, আপনি contextmenu_items.js এ ডিফল্ট প্রসঙ্গ মেনু বিকল্পগুলির নিবন্ধন দেখতে পারেন।
ডিফল্ট বিকল্পগুলি পরিবর্তন করা বা অপসারণ করা
আপনি Blockly.ContextMenuRegistry.registry.unregister(id)
দিয়ে যেকোনো বিকল্প নিবন্ধনমুক্ত করতে পারেন। ডিফল্ট বিকল্পগুলির আইডিগুলি contextmenu_items.js- এ রয়েছে।
একটি ডিফল্ট বিকল্প পরিবর্তন করতে, ID সহ getItem
কল করুন এবং প্রয়োজন অনুযায়ী এটি পরিবর্তন করুন।