Как использовать библиотеки C для создания приложения GNOME в JavaScript

Я новичок в разработке настольных приложений GNOME, поэтому я пытаюсь узнать об этом как можно больше. Я прочитал различные руководства, представленные на developer.gnome.org, написанные для JavaScript. Я знаю, что через GObject Introspection я могу получить доступ к библиотекам C в JavaScript.

Поскольку использование JavaScript для настольных приложений является новым, поэтому существует не так много документации. Мне было интересно, есть ли способ узнать, какие функции я могу использовать с какими параметрами для доступа к некоторым библиотекам.

Например, я могу создать кнопку с помощью GTK в JavaScript:

this.mybutton = new GTK.Button({some code here});

Как мне узнать названия функций, которые я могу использовать? Могу ли я как-то разобрать имя функции для JavaScript, увидев документацию, написанную для C?

Для некоторых библиотек я видел эту документацию, написанную для JavaScript. Будем признательны за любую помощь, чтобы лучше понять разработку приложений GNOME.


person prolific    schedule 19.03.2014    source источник
comment
Мой первый инстинкт состоит в том, чтобы сказать, что если вы знаете javascript, вы почти знаете C, поэтому просто используйте C. Для следующего человека, который попытается помочь, вот ссылка на привет, мир в JS, просто чтобы показать, что javascript для приложений gnome возможен : developer.gnome.org/gnome-devel-demos /3.7/helloWorld.js.html.ru   -  person Tom Cerul    schedule 19.03.2014
comment
@TomCerul да, я знаю C, но я хочу научиться создавать приложения на javascript и хотел знать, как я могу использовать библиотеки C в javascript. Как я могу узнать об именах функций и параметрах, которые я могу использовать?   -  person prolific    schedule 19.03.2014


Ответы (2)


Я согласен с вами: документации по этому вопросу довольно мало.
Большую часть времени я пытаюсь найти уже написанный код от других разработчиков и изменить его так, чтобы он получил то, что мне нужно.
Документация по C довольно полная на http://developer.gnome.org и в большинстве случаев вы можете использовать почти те же методы.
Я предлагаю вам воспользоваться взгляните на этот веб-сайт: http://www.roojs.org/seed/gir-1.2-gtk-3.0/seed/
А также на этот: http://zetcode.com/gui/javascriptgtktutorial/
Удачи в разработке javascript!!!

person Nicolas    schedule 24.03.2014

Да, вы можете сопоставить функцию Javascript с этой функцией библиотеки C, выполнив поиск в файлах GIR. В каждой библиотеке должен быть XML-файл, содержащий информацию самоанализа.

Пример из один вопрос Я уже спрашивал.

grep -rn gdk_keymap_get_default /usr/share/gir-1.0/

/usr/share/gir-1.0/Gdk-2.0.gir:16781:                c:identifier="gdk_keymap_get_default"
/usr/share/gir-1.0/Gdk-3.0.gir:15776:      <function name="get_default" c:identifier="gdk_keymap_get_default">

vim /usr/share/gir-1.0/Gdk-3.0.gir +15776

    <class name="Keymap"
           c:symbol-prefix="keymap"
           c:type="GdkKeymap"
           parent="GObject.Object"
           glib:type-name="GdkKeymap"
           glib:get-type="gdk_keymap_get_type">
      <doc xml:space="preserve">A #GdkKeymap defines the translation from keyboard state
(including a hardware key, a modifier mask, and active keyboard group)
to a keyval. This translation has two phases. The first phase is
to determine the effective keyboard group and level for the keyboard
state; the second phase is to look up the keycode/group/level triplet
in the keymap and see what keyval it corresponds to.</doc>
      <function name="get_default" c:identifier="gdk_keymap_get_default">
        <doc xml:space="preserve">Returns the #GdkKeymap attached to the default display.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GdkKeymap attached to the default display.</doc>
          <type name="Keymap" c:type="GdkKeymap*"/>
        </return-value>
      </function>
person user.dz    schedule 16.08.2015