Я застрял, пытаясь найти путь от Vala/C до Python и обратно. Все мои гугл-фу водят меня по кругу. Я хочу использовать Vala для написания API, а затем применять его из Python (или, возможно, из Gnome Javascript).
Используя Clutter в качестве моего примера (это также может быть виджет GTK + 3), вот мой вопрос: как мне —
Иди туда
Напишите собственного Актера, который при нажатии будет:
- Изменение цвета — NB: это делается в обработчике Vala. То есть объект vala связан с событием «отпускание кнопки». Этот обработчик вызывает метод vala: this.set_col('blue');
- Попросите его продолжить это событие в Python вместе с некоторыми данными — скажем, я хочу напечатать «Я посинел!» - поэтому мне нужен "синий" в качестве строки.
В Python я бы создал сцену и (каким-то образом — с помощью магии GI) создал своего нового актера. Я делаю все, что нужно для Python, чтобы настроить его, и я подключаюсь к тому же событию «кнопка-релиз» (я думаю..)
а) Будет ли запущен обработчик Vala, а затем Python? (По порядку или вообще.)
б) Должен ли я делать что-то особенное в обработчике Vala — например, возвращать true или, возможно, посылать какой-то новый сигнал для получения Python?
И обратно
Предположим, актера зовут V. Как мне: V.set_col('red') (в Python) запустить метод Vala set_col, передав строку Python? (Подозреваю, что это автомагия под GI, но точно не знаю.)
Вкратце
Vala actor -- event --> handler (in Vala) --> handler (in Python) with data
Vala method <--- method call with args from Python
Я был бы признателен за любые ссылки и тому подобное, спасибо.