الاختيار هو ما يتم اختياره حاليًا في صفحة عرض تقديمي مفتوحة، مثل نطاق نص مميَّز أو جدول. يوضِّح لك هذا الدليل كيفية الحصول على التحديد في عرض تقديمي نشط وضبطه باستخدام لغة "برمجة تطبيقات Google".
التحديد هو نبذة عن ما كان عليه عند بدء النص البرمجي. إذا نقر المستخدم وتغير التحديد أثناء تشغيل النص البرمجي، لن تنعكس هذه التغييرات.
الاختيارات ونوع الاختيار
يمكنك قراءة النص المحدد باستخدام فئة التحديد. تتضمن الفئة طرقًا مختلفة للحصول على الكائنات المحددة بناءً على نوع العنصر(العناصر) المحدد.
يمثل تعداد SelectionType
النوع المحدد من العناصر المحددة. على سبيل المثال، إذا اختار المستخدم نصًا في شكله، سيكون نوع التحديد نص. في هذه الحالة، يمكنك استرداد نطاق النص المحدّد باستخدام طريقة selection.getTextRange()
.
يمكنك أيضًا استرداد الكائن الذي يحتوي على النص المحدد، من خلال متابعة المثال أعلاه، يمكنك استرداد الشكل الذي يحتوي على النص المحدد باستخدام selection.getPageElementRange().getPageElements()[0]
. وبالمثل، تكون الصفحة التي تحتوي على الشكل المرفق هي الصفحة النشطة الحالية، ولاسترداد هذه الصفحة، استخدِم selection.getCurrentPage()
.
قراءة التحديد
لقراءة الاختيار، استخدِم الإجراء Presentation.getSelection() كما هو موضّح في المثال التالي:
قراءة الصفحة الحالية
لاسترداد الصفحة الحالية التي يشاهدها المستخدم، استخدِم الطريقتين getSelection() وgetCurrentPage() على النحو التالي:
تجدر الإشارة إلى أنّ الصفحة الحالية قد تكون من بين الأنواع التالية:
يمكن أن تحتوي الصفحة الحالية على كائن واحد أو أكثر محدد، ويحدد SelectType نوع التحديد.
قراءة الاختيار استنادًا إلى نوع الاختيار
يوضح المثال التالي كيف يمكنك استخدام نوع التحديد لقراءة الاختيار الحالي بطريقة مناسبة للنوع.
قراءة النص الذي تم اختياره
يمكنك قراءة اختيار النص باستخدام الإجراء Selection.getTextRange(). هناك نوعان من تحديد النص:
- اختيار النطاق: إذا كان الشكل يحتوي على النص "Hello" (مرحبًا) وتم تحديد "he"، يكون النطاق المعروض يحتوي على startIndex=0 وendIndex=2.
- تحديد المؤشر: إذا كان الشكل يحتوي على النص "مرحبًا"، وكان المؤشر بعد "H" ("H|ello")، فإن النطاق المعروض يكون فارغًا بـ startIndex=1 وendIndex=1.
تعديل الاختيار
يمكن للنص البرمجي تعديل اختيار المستخدم. تنعكس أي تغييرات في التحديد يجريها النص البرمجي على العرض التقديمي في عمليات الاختيار اللاحقة طوال مدة تنفيذ النص البرمجي.
لا تظهر تغييرات الاختيار في متصفّح المستخدم إلا بعد اكتمال تنفيذ النص البرمجي أو عند استدعاء Presentation.saveAndClose()
.
تحديد الصفحة الحالية
يمكن اختيار صفحة في العرض التقديمي النشط باعتبارها الصفحة الحالية من خلال استدعاء طريقة selectAsCurrentPage(). تؤدي هذه الطريقة إلى إزالة أي عنصر صفحة أو صفحة أو نص سابق. لذلك، يتيح لك استخدام هذه الطريقة في الصفحة الحالية إلغاء اختيار أي اختيارات حالية على الصفحة. مثال:
اختيار عنصر صفحة
لاختيار عنصر صفحة في صفحة، استخدِم الإجراء PageElement.select(). يؤدي هذا الإجراء أيضًا إلى إلغاء اختيار أي عناصر صفحة تم اختيارها سابقًا.
مثال:
اختيار عناصر صفحة متعدّدة
لإلحاق عناصر صفحة إضافية بالتحديد، استخدِم الإجراء PageElement.select(false). يجب أن تكون جميع عناصر الصفحة في الصفحة الحالية.
تحويل الاختيار
يمكن للتعديلات التي يجريها النص البرمجي تحويل التحديد الحالي، بحيث يتغير ما تم تحديده نتيجةً للتعديل. مثال:
- لنفترض أنك اخترت شكلين A وB.
- بعد ذلك، يزيل النص البرمجي الشكل A.
- ونتيجةً لذلك، يتم تحويل التحديد مقابل التعديل بحيث يتم تحديد الشكل ب فقط.
يوضّح المثال التالي كيف يمكن تحويل مجموعة الاختيار من خلال معالجة عناصر الصفحة المحدّدة.
تحديد نص
يمكن تحديد النص الموجود في شكل أو في خلية جدول باستخدام طريقة TextRange.select(). إذا كان النص مضمَّنًا في شكل، يتم تحديد هذا الشكل أيضًا. إذا كان النص موجودًا في خلية جدول، فسيتم تحديد كل من خلية الجدول وجدولها المضمّن.
يؤدي هذا أيضًا إلى تعيين الصفحة الرئيسية على أنها الصفحة الحالية.
اختيار النطاق في شكل
يوضح المثال التالي كيفية إجراء تحديد نطاق داخل نص مضمّن في شكل.
اختيار المؤشر في شكل
يوضح المثال التالي كيفية إجراء تحديد المؤشر داخل النص الموجود في شكل.
تحديد النطاق في خلية جدول
يوضح المثال التالي كيفية إجراء تحديد نطاق داخل نص مضمّن في خلية جدول.
تحديد المؤشر في TableCell
يوضح المثال التالي كيفية إجراء تحديد المؤشر داخل النص الوارد في خلية جدول.
تحويل التحديد باستخدام التعديلات النصية
يوضح المثال التالي كيف يمكن تحويل الاختيار من خلال تعديل النص المحدد.
جارٍ إلغاء الاختيار
لا تتوفّر أي طرق صريحة لإلغاء اختيار النص أو عناصر الصفحة. ومع ذلك، يمكن تحقيق هذه النتيجة باستخدام طريقة Page.selectAsCurrentPage()
أو pageElement.select()
.
اختيار صفحة حالية
يوضح المثال التالي كيفية إلغاء اختيار أي اختيارات حالية في صفحة معيّنة من خلال ضبط هذه الصفحة على أنّها الصفحة الحالية.
اختيار عنصر صفحة
يعرض المثال التالي كيفية إلغاء اختيار أي اختيارات حالية على صفحة من خلال اختيار عنصر صفحة واحد، وبالتالي إزالة جميع العناصر الأخرى من المنطقة المحددة.