عندما ينقر المستخدم بزر الماوس الأيمن (أو يضغط مع الاستمرار) على كتلة أو مساحة عمل، يتم عرض قائمة سياقات تحتوي على إجراءات إضافية. يمكنك تهيئة قائمة السياق هذه لعرض خيارات إضافية أو لإزالة الخيارات الافتراضية. يدور هذا الدليل حول إضافة خيار مخصص إلى جميع الكتل أو جميع مساحات العمل. إذا كنت تريد تغيير قائمة السياق لنوع واحد فقط من عمليات الحظر، راجِع المعلومات الواردة في صفحة أدوات الحظر المخصّصة.
واجهة برمجة التطبيقات لقائمة السياق
تحتوي الفئة ContextMenuRegistry
على طرق للتسجيل وإلغاء التسجيل
والحصول على جميع خيارات قائمة السياق. الفئة مفردة، لذا يجب استدعاء الطرق في الكائن Blockly.ContextMenuRegistry.registry
بدلاً من إنشاء مثيل جديد بنفسك. تستدعي الفئة ContextMenu
الطريقة
getContextMenuItems
كلما أردت عرض قائمة سياق. إذا كانت الكتلة أو مساحة العمل تتضمن وظيفة customContextMenu
، سيتم استدعاءها بعد ذلك لتعديل قائمة الخيارات.
إضافة خيارات مخصصة
يشتمل كل خيار قائمة في السجلّ على عدة خصائص:
callback
: دالة يتم استدعاءها عند النقر على خيار القائمة.scopeType
: تمثّل هذه السمة قيمة منBlockly.ContextMenuRegistry.ScopeType.BLOCK
أوBlockly.ContextMenuRegistry.ScopeType.WORKSPACE
لعرض هذا الخيار. إذا كان يجب عرض خيار لكل من مساحات العمل والكتل، يجب تسجيله مرة واحدة لكل نوع نطاق.displayText
: إما سلسلة، أو HTML، أو دالة تعرض أيًّا منهما. لتحديد النص المعروض في القائمة.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
باستخدام رقم التعريف، وتغييره حسب الحاجة.