Gnome Shell Extension Library Начинающий, где определен button.connect()?

Я изучаю API расширения Gnome для удовольствия. Мои вопросы выделены жирным шрифтом ниже. Любые предложения приветствуются! Кажется, используются две основные библиотеки:

  • Примечания к скале (если есть)
    • Использование: Ubuntu 16.4.3 LTS x64
    • Использование: GNOME Shell 3.18.5
    • Кажется, две основные библиотеки используются с JS привязки для расширений:

Примечание: я использую по умолчанию gnome-shell-extension-tool --create-extension на этот вопрос.

Вопрос

Мне интересно, есть ли ссылка на библиотеку JS в Gnome? (Это то, что мы пишем расширения) для сайта Gnome Ext.

Немного глубже вопрос

По мере того, как я это делаю, многое меняется, и мне еще предстоит выяснить, как: button.connect работает, или где это проходит? 1. Обновление: перед публикацией я искал через Clutter Индекс API и нашел несколько connect слов, но я не могу понять, как это работает - кнопка является St пример, Clutter это скорее вызов функции для подключения signals, а не применять элементы пользовательского интерфейса, если я далеко?.

  1. Я ничего не могу найти с connect в полном индексе API я что-то упустил?

  2. button является примером St.Btn (или действительно, St.Button) пример.

  3. St.Button это ребенок St.Btn почему бы нам не создать экземпляр дочернего объекта? Это кажется более правильным. ( Ссылка, см. Иерархия объектов)

пример

  // Why is St.Bin created and not St.Button?
  // Somehow it knows it's a button? Yet St.Bin has two subclasses:
  // - StButton
  // - StScrollView
  button = new St.Bin({           
    style_class: 'panel-button',  // <-- Inherited from StWidget
    reactive: true,               // <-- Inherited from StWidget
    can_focus: true,              // <-- Inherited from StWidget
    x_fill: true,
    y_fill: false,
    track_hover: true             // <-- Inherited from StWidget
  });

  // ...
  button.connect('button-press-event', _showHello);

Конец

Ниже приведены "Заметки", которые я предпринял, чтобы попытаться обработать это мысленно, я оставляю это здесь, если кто-то еще заинтересован в том же Возможно, это может помочь.

Только примечания / Не имеет значения, если не заинтересован в теме

  /**
   * -----------------------------------------------------------------
   * Purpose: Create a top panel button (Empty Icon by Default).
   * -----------------------------------------------------------------
   * StBin is a simple container with one actor, the hierarchy inherits
   * more from StWidget, see the graph below. This is common for the
   * St Items.
   *
   * -----------------------------------------------------------------
   * Structure: Making Sense of the Object
   * -----------------------------------------------------------------
   * GObject
   * ╰── GInitiallyUnowned
   *     ╰── ClutterActor
   *         ╰── StWidget           <-- Properties Inherited
   *             ╰── StBin
   *                 ╰──  StButton  <-- Item we Created
   *
   * - StWidget Parent Properties Used:
   *     style_class, reactive, can_focus,track_hover
   * - StBin Properties Used:
   *     x_fill, y_fill
   *
   * -----------------------------------------------------------------
   * Answers: What's Happening
   * -----------------------------------------------------------------
   * - Creates a Single Element
   * - Parameters pass do the following:
   *   - style_class: refers to your stylesheets.css, aka .panel-button styles`
   *   - reactive: ST Parameter which allows responding to Mouse Clicks.
   *   - can_focus: ST Parameter which allows responding to Keyboard.
   *   - x_fill: (Default false)
   *             Whether the child should fill the horizontal allocation
   *   - y_fill: (Default false, shouldnt need to be here)
   *             Whether the child should fill the vertical allocation
   *   - track_hover: ST Parameter which allows Reacting to Mouse Hover.
   *
   * -----------------------------------------------------------------
   * References
   * -----------------------------------------------------------------
   * StBin: https://developer.gnome.org/st/stable/StBin.html
   * StWidget (Inherited): https://developer.gnome.org/st/stable/StWidget.html
   *   - See the Properties
   * -----------------------------------------------------------------
   */
  button = new St.Bin({
    style_class: 'panel-button',
    reactive: true,
    can_focus: true,
    x_fill: true,
    y_fill: false,
    track_hover: true
  });

0 ответов

Другие вопросы по тегам