একটি উপস্থাপনা মধ্যে আইটেম নির্বাচন

নির্বাচন হল একটি খোলা উপস্থাপনা পৃষ্ঠায় বর্তমানে যা নির্বাচিত, যেমন হাইলাইট করা পাঠ্যের একটি স্প্যান বা একটি টেবিল। এই নির্দেশিকাটি আপনাকে বলে যে অ্যাপস স্ক্রিপ্ট ব্যবহার করে একটি সক্রিয় উপস্থাপনায় নির্বাচনটি কীভাবে পেতে এবং সেট করতে হয়।

স্ক্রিপ্টটি শুরু হওয়ার সময় কী ছিল তার একটি স্ন্যাপশট হল এই নির্বাচন। যদি ব্যবহারকারী ক্লিক করেন এবং স্ক্রিপ্টটি চলাকালীন নির্বাচনটি পরিবর্তন হয়, তাহলে সেই পরিবর্তনগুলি প্রতিফলিত হবে না।

নির্বাচন এবং নির্বাচনের ধরণ

আপনি Selection ক্লাস ব্যবহার করে নির্বাচনটি পড়তে পারেন। নির্বাচিত বস্তুর ধরণের উপর ভিত্তি করে নির্বাচিত বস্তুগুলি পেতে ক্লাসটিতে বিভিন্ন পদ্ধতি রয়েছে।

SelectionType enum নির্দিষ্ট ধরণের নির্বাচিত বস্তুর প্রতিনিধিত্ব করে। উদাহরণস্বরূপ, যদি ব্যবহারকারী কোনও আকারে কিছু পাঠ্য নির্বাচন করে থাকেন, তাহলে নির্বাচনের ধরণটি হবে TEXT । এই ক্ষেত্রে, আপনি selection.getTextRange() পদ্ধতি ব্যবহার করে নির্বাচিত পাঠ্যের পরিসর পুনরুদ্ধার করতে পারেন।

আপনি নির্বাচন ধারণকারী বস্তুটিও পুনরুদ্ধার করতে পারেন; উপরের উদাহরণটি চালিয়ে যাওয়ার জন্য, আপনি selection.getPageElementRange().getPageElements()[0] ব্যবহার করে নির্বাচিত পাঠ্য ধারণকারী আকৃতিটি পুনরুদ্ধার করতে পারেন। একইভাবে, যে পৃষ্ঠায় এনক্লোজিং আকৃতি রয়েছে তা হল বর্তমান সক্রিয় পৃষ্ঠা; সেই পৃষ্ঠাটি পুনরুদ্ধার করতে, selection.getCurrentPage() ব্যবহার করুন।

নির্বাচনটি পড়া

নির্বাচনটি পড়তে, নিম্নলিখিত উদাহরণে দেখানো Presentation.getSelection() পদ্ধতিটি ব্যবহার করুন:

স্লাইড/নির্বাচন/নির্বাচন.gs
const selection = SlidesApp.getActivePresentation().getSelection();

বর্তমান পৃষ্ঠাটি পড়া হচ্ছে

ব্যবহারকারী যে বর্তমান পৃষ্ঠাটি দেখছেন তা পুনরুদ্ধার করতে, getSelection() এবং getCurrentPage() পদ্ধতিগুলি নিম্নরূপ ব্যবহার করুন:

স্লাইড/নির্বাচন/নির্বাচন.gs
const currentPage = SlidesApp.getActivePresentation()
  .getSelection()
  .getCurrentPage();

মনে রাখবেন যে বর্তমান পৃষ্ঠাটি নিম্নলিখিত যেকোনো ধরণের হতে পারে:

বর্তমান পৃষ্ঠায় এক বা একাধিক বস্তু নির্বাচিত থাকতে পারে, এবং SelectionType নির্বাচনের ধরণ নির্ধারণ করে।

নির্বাচনের ধরণের উপর ভিত্তি করে নির্বাচনটি পড়া

নিম্নলিখিত উদাহরণটি দেখায় যে কীভাবে আপনি বর্তমান নির্বাচনটি টাইপ-উপযুক্ত উপায়ে পড়ার জন্য নির্বাচনের ধরণ ব্যবহার করতে পারেন।

স্লাইড/নির্বাচন/নির্বাচন.gs
const selection = SlidesApp.getActivePresentation().getSelection();
const selectionType = selection.getSelectionType();
let currentPage;
switch (selectionType) {
  case SlidesApp.SelectionType.NONE:
    console.log("Nothing selected");
    break;
  case SlidesApp.SelectionType.CURRENT_PAGE:
    currentPage = selection.getCurrentPage();
    console.log(`Selection is a page with ID: ${currentPage.getObjectId()}`);
    break;
  case SlidesApp.SelectionType.PAGE_ELEMENT: {
    const pageElements = selection.getPageElementRange().getPageElements();
    console.log(`There are ${pageElements.length} page elements selected.`);
    break;
  }
  case SlidesApp.SelectionType.TEXT: {
    const tableCellRange = selection.getTableCellRange();
    if (tableCellRange !== null) {
      const tableCell = tableCellRange.getTableCells()[0];
      console.log(
        `Selected text is in a table at row ${tableCell.getRowIndex()}, column ${tableCell.getColumnIndex()}`,
      );
    }
    const textRange = selection.getTextRange();
    if (textRange.getStartIndex() === textRange.getEndIndex()) {
      console.log(`Text cursor position: ${textRange.getStartIndex()}`);
    } else {
      console.log(
        `Selection is a text range from: ${textRange.getStartIndex()} to: ${textRange.getEndIndex()} is selected`,
      );
    }
    break;
  }
  case SlidesApp.SelectionType.TABLE_CELL: {
    const tableCells = selection.getTableCellRange().getTableCells();
    const table = tableCells[0].getParentTable();
    console.log(`There are ${tableCells.length} table cells selected.`);
    break;
  }
  case SlidesApp.SelectionType.PAGE: {
    const pages = selection.getPageRange().getPages();
    console.log(`There are ${pages.length} pages selected.`);
    break;
  }
  default:
    break;
}

পাঠ্য নির্বাচন পড়া

আপনি Selection.getTextRange() পদ্ধতি ব্যবহার করে টেক্সট নির্বাচন পড়তে পারেন। টেক্সট নির্বাচন দুই ধরণের হয়:

  • রেঞ্জ নির্বাচন : যদি কোন আকৃতিতে "Hello" লেখা থাকে এবং "He" নির্বাচন করা হয়, তাহলে ফিরে আসা রেঞ্জটিতে startIndex=0 এবং endIndex=2 থাকবে।
  • কার্সার নির্বাচন : যদি কোন আকৃতিতে "Hello" লেখা থাকে এবং কার্সার "H" ("H|ello") এর পরে থাকে, তাহলে startIndex=1 এবং endIndex=1 সহ রিটার্ন করা পরিসরটি খালি পরিসর হবে।

নির্বাচন পরিবর্তন করা হচ্ছে

স্ক্রিপ্টটি ব্যবহারকারীর নির্বাচন পরিবর্তন করতে পারে। উপস্থাপনায় স্ক্রিপ্ট যে কোনও নির্বাচন পরিবর্তন করে তা স্ক্রিপ্ট কার্যকর করার সময়কালের জন্য পরবর্তী নির্বাচন ক্রিয়াকলাপগুলিতে প্রতিফলিত হয়।

স্ক্রিপ্ট এক্সিকিউশন সম্পূর্ণ হওয়ার পরে অথবা Presentation.saveAndClose() কল করার পরেই কেবল ব্যবহারকারীর ব্রাউজারে নির্বাচনের পরিবর্তনগুলি প্রতিফলিত হয়।

বর্তমান পৃষ্ঠাটি নির্বাচন করা হচ্ছে

সক্রিয় উপস্থাপনার একটি পৃষ্ঠাকে selectAsCurrentPage() পদ্ধতি ব্যবহার করে বর্তমান পৃষ্ঠা হিসেবে নির্বাচন করা যেতে পারে। এই পদ্ধতিটি পূর্ববর্তী যেকোনো পৃষ্ঠার উপাদান, পৃষ্ঠা, বা পাঠ্য নির্বাচন সরিয়ে দেয়। তাই বর্তমান পৃষ্ঠায় এই পদ্ধতিটি ব্যবহার করলে আপনি পৃষ্ঠার যেকোনো বর্তমান নির্বাচন অনির্বাচিত করতে পারবেন। উদাহরণস্বরূপ:

স্লাইড/নির্বাচন/নির্বাচন.gs
// Select the first slide as the current page selection and remove any previous selection.
const selection = SlidesApp.getActivePresentation().getSelection();
const slide = SlidesApp.getActivePresentation().getSlides()[0];
slide.selectAsCurrentPage();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.CURRENT_PAGE
// selection.getCurrentPage() = slide
//

একটি পৃষ্ঠা উপাদান নির্বাচন করা

একটি পৃষ্ঠার একটি পৃষ্ঠা উপাদান নির্বাচন করতে, PageElement.select() পদ্ধতিটি ব্যবহার করুন। এটি পূর্বে নির্বাচিত কোনও পৃষ্ঠা উপাদানকেও অনির্বাচিত করে।

উদাহরণস্বরূপ:

স্লাইড/নির্বাচন/নির্বাচন.gs
const slide = SlidesApp.getActivePresentation().getSlides()[0];
const pageElement = slide.getPageElements()[0];
// Only select this page element and remove any previous selection.
pageElement.select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.PAGE_ELEMENT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = pageElement
//

একাধিক পৃষ্ঠার উপাদান নির্বাচন করা হচ্ছে

নির্বাচনে অতিরিক্ত পৃষ্ঠা উপাদান যুক্ত করতে, PageElement.select(false) পদ্ধতিটি ব্যবহার করুন। সমস্ত পৃষ্ঠা উপাদান বর্তমান পৃষ্ঠায় থাকা আবশ্যক।

স্লাইড/নির্বাচন/নির্বাচন.gs
const slide = SlidesApp.getActivePresentation().getSlides()[0];
// First select the slide page, as the current page selection.
slide.selectAsCurrentPage();
// Then select all the page elements in the selected slide page.
const pageElements = slide.getPageElements();
for (let i = 0; i < pageElements.length; i++) {
  pageElements[i].select(false);
}
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.PAGE_ELEMENT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements() = pageElements
//

নির্বাচন রূপান্তর করা হচ্ছে

আপনার স্ক্রিপ্ট যে সম্পাদনাগুলি সম্পাদন করে তা বর্তমান নির্বাচনকে রূপান্তরিত করতে পারে, যাতে সম্পাদনার ফলে নির্বাচিত বিষয়গুলি পরিবর্তিত হয়। উদাহরণস্বরূপ:

  1. ধরুন আপনার দুটি আকৃতি A এবং B নির্বাচিত আছে।
  2. এরপর আপনার স্ক্রিপ্টটি A আকৃতিটি সরিয়ে ফেলবে।
  3. ফলস্বরূপ, নির্বাচনটি সম্পাদনার বিপরীতে রূপান্তরিত হয় যাতে শুধুমাত্র আকৃতি B নির্বাচন করা হয়।

নিম্নলিখিত উদাহরণটি দেখায় যে নির্বাচিত পৃষ্ঠার উপাদানগুলিকে ম্যানিপুলেট করে কীভাবে নির্বাচনকে রূপান্তরিত করা যায়।

স্লাইড/নির্বাচন/নির্বাচন.gs
const slide = SlidesApp.getActivePresentation().getSlides()[0];
const shape1 = slide.getPageElements()[0].asShape();
const shape2 = slide.getPageElements()[1].asShape();
// Select both the shapes.
shape1.select();
shape2.select(false);
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.PAGE_ELEMENT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements() = [shape1, shape2]
//
// Remove one shape.
shape2.remove();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.PAGE_ELEMENT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements() = [shape1]
//

টেক্সট নির্বাচন করা হচ্ছে

একটি আকৃতিতে বা একটি টেবিল কক্ষে থাকা টেক্সট TextRange.select() পদ্ধতি ব্যবহার করে নির্বাচন করা যেতে পারে। যদি টেক্সটটি একটি আকৃতিতে থাকে, তাহলে সেই আকৃতিটিও নির্বাচন করা হয়। যদি টেক্সটটি একটি টেবিল কক্ষে থাকে, তাহলে সেই টেবিল কক্ষ এবং তার আবদ্ধ টেবিল উভয়ই নির্বাচিত হয়।

এটি মূল পৃষ্ঠাটিকে বর্তমান পৃষ্ঠা হিসেবেও সেট করে।

একটি আকৃতিতে পরিসর নির্বাচন

নিচের উদাহরণটি দেখায় কিভাবে একটি আকৃতির মধ্যে থাকা টেক্সটের মধ্যে একটি পরিসর নির্বাচন করতে হয়।

স্লাইড/নির্বাচন/নির্বাচন.gs
const slide = SlidesApp.getActivePresentation().getSlides()[0];
const shape = slide.getPageElements()[0].asShape();
shape.getText().setText("Hello");
// Range selection: Select the text range 'He'.
shape.getText().getRange(0, 2).select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = shape
// selection.getTextRange().getStartIndex() = 0
// selection.getTextRange().getEndIndex() = 2
//

একটি আকৃতিতে কার্সার নির্বাচন

নিচের উদাহরণটি দেখায় কিভাবে একটি আকৃতির মধ্যে থাকা টেক্সটের মধ্যে কার্সার নির্বাচন করতে হয়।

স্লাইড/নির্বাচন/নির্বাচন.gs
const slide = SlidesApp.getActivePresentation().getSlides()[0];
const shape = slide.getPageElements()[0].asShape();
shape.getText().setText("Hello");
// Cursor selection: Place the cursor after 'H' like 'H|ello'.
shape.getText().getRange(1, 1).select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = shape
// selection.getTextRange().getStartIndex() = 1
// selection.getTextRange().getEndIndex() = 1
//

একটি টেবিল কক্ষে পরিসর নির্বাচন

নিচের উদাহরণটি দেখায় কিভাবে একটি টেবিল কক্ষে থাকা টেক্সটের মধ্যে একটি পরিসর নির্বাচন করতে হয়।

স্লাইড/নির্বাচন/নির্বাচন.gs
const slide = SlidesApp.getActivePresentation().getSlides()[0];
const table = slide.getPageElements()[0].asTable();
const tableCell = table.getCell(0, 1);
tableCell.getText().setText("Hello");
// Range selection: Select the text range 'He'.
tableCell.getText().getRange(0, 2).select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = table
// selection.getTableCellRange().getTableCells()[0] = tableCell
// selection.getTextRange().getStartIndex() = 0
// selection.getTextRange().getEndIndex() = 2
//

টেবিলসেলে কার্সার নির্বাচন

নিচের উদাহরণটি দেখায় কিভাবে একটি টেবিল কক্ষে থাকা টেক্সটের মধ্যে কার্সার নির্বাচন করতে হয়।

স্লাইড/নির্বাচন/নির্বাচন.gs
const slide = SlidesApp.getActivePresentation().getSlides()[0];
const table = slide.getPageElements()[0].asTable();
const tableCell = table.getCell(0, 1);
tableCell.getText().setText("Hello");
// Cursor selection: Place the cursor after 'H' like 'H|ello'.
tableCell.getText().getRange(1, 1).select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = table
// selection.getTableCellRange().getTableCells()[0] = tableCell
// selection.getTextRange().getStartIndex() = 1
// selection.getTextRange().getEndIndex() = 1
//

পাঠ্য সম্পাদনা সহ নির্বাচন রূপান্তর

নিম্নলিখিত উদাহরণটি দেখায় যে নির্বাচিত পাঠ্য সম্পাদনা করে কীভাবে নির্বাচনটি রূপান্তরিত করা যেতে পারে।

স্লাইড/নির্বাচন/নির্বাচন.gs
const slide = SlidesApp.getActivePresentation().getSlides()[0];
const shape = slide.getPageElements()[0].asShape();
const textRange = shape.getText();
textRange.setText("World");
// Select all the text 'World'.
textRange.select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = shape
// selection.getTextRange().getStartIndex() = 0
// selection.getTextRange().getEndIndex() = 6
//
// Add some text to the shape, and the selection will be transformed.
textRange.insertText(0, "Hello ");

// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = shape
// selection.getTextRange().getStartIndex() = 0
// selection.getTextRange().getEndIndex() = 12
//

নির্বাচনমুক্ত করা হচ্ছে

টেক্সট বা পৃষ্ঠার উপাদানগুলি অনির্বাচন করার জন্য কোনও স্পষ্ট পদ্ধতি নেই। তবে, এই ফলাফলটি Page.selectAsCurrentPage() বা pageElement.select() পদ্ধতি ব্যবহার করে অর্জন করা যেতে পারে।

একটি বর্তমান পৃষ্ঠা নির্বাচন করুন

নিচের উদাহরণটি দেখায় যে কীভাবে একটি পৃষ্ঠার বর্তমান নির্বাচনগুলিকে বর্তমান পৃষ্ঠা হিসেবে সেট করে অনির্বাচিত করা যায়।

স্লাইড/নির্বাচন/নির্বাচন.gs
// Unselect one or more page elements already selected.
//
// In case one or more page elements in the first slide are selected, setting the
// same (or any other) slide page as the current page would do the unselect.
//
const slide = SlidesApp.getActivePresentation().getSlides()[0];
slide.selectAsCurrentPage();

একটি পৃষ্ঠা উপাদান নির্বাচন করুন

নিচের উদাহরণটি দেখায় কিভাবে একটি পৃষ্ঠার উপাদান নির্বাচন করে একটি পৃষ্ঠার বর্তমান নির্বাচনগুলি অনির্বাচিত করা যায়, এইভাবে নির্বাচন থেকে অন্যান্য সমস্ত আইটেম সরিয়ে ফেলা যায়।

স্লাইড/নির্বাচন/নির্বাচন.gs
// Unselect one or more page elements already selected.
//
// In case one or more page elements in the first slide are selected,
// selecting any pageElement in the first slide (or any other pageElement) would
// do the unselect and select that pageElement.
//
const slide = SlidesApp.getActivePresentation().getSlides()[0];
slide.getPageElements()[0].select();