mruby-mix
|
#include <mruby.h>
マクロ定義 | |
#define | mix_class_get(mrb, ...) mix_class_dig(mrb, sizeof((const char*[]){ __VA_ARGS__ }) / sizeof(const char*), (const char*[]){ __VA_ARGS__ }) |
#define | mix_module_get(mrb, ...) mix_module_dig(mrb, sizeof((const char*[]){ __VA_ARGS__ }) / sizeof(const char*), (const char*[]){ __VA_ARGS__ }) |
#define | mix_plugin_create(mrb, slug) mix_plugin_get(mrb, slug) |
型定義 | |
typedef void(* | mix_remain_handler) (mrb_state *mrb) |
typedef void(* | mix_reserve_handler) (mrb_state *mrb, mrb_float delay) |
typedef void(* | mix_log_handler) (const char *msg) |
列挙型 | |
enum | mix_event_env_t { MIX_EVENT_ENV_RECEIVER = 0, MIX_EVENT_ENV_NAME = 1 } |
関数 | |
void MRB_API | mix_run (mrb_state *mrb) |
void MRB_API | mix_register_remain_handler (mrb_state *mrb, mix_remain_handler handler) |
void MRB_API | mix_register_reserve_handler (mrb_state *mrb, mix_reserve_handler handler) |
void MRB_API | mix_register_log_handler (mrb_state *mrb, mix_log_handler handler) |
int MRB_API | mix_require (mrb_state *mrb, const char *path) |
MRB_API struct RClass * | mix_class_dig (mrb_state *mrb, size_t count, const char **names) |
MRB_API struct RClass * | mix_module_dig (mrb_state *mrb, size_t count, const char **names) |
mrb_value MRB_API | mix_gui_event_new (mrb_state *mrb, const char *event, mrb_value widget, mrb_value messages, mrb_value world) |
MRB_API mrb_value | mix_plugin_get (mrb_state *mrb, const char *slug) |
MRB_API mrb_value | mix_plugin_call_arg0 (mrb_state *mrb, const char *event_name) |
MRB_API mrb_value | mix_plugin_call_arg1 (mrb_state *mrb, const char *event_name, mrb_value arg) |
MRB_API mrb_value | mix_plugin_call_argv (mrb_state *mrb, const char *event_name, mrb_int argc, const mrb_value *argv) |
MRB_API mrb_value | mix_plugin_filtering_arg1 (mrb_state *mrb, const char *event_name, mrb_value arg) |
MRB_API mrb_value | mix_plugin_filtering_argv (mrb_state *mrb, const char *event_name, mrb_int argc, const mrb_value *argv) |
MRB_API mrb_value | mix_plugin_filtering_and_nth (mrb_state *mrb, const char *event_name, mrb_int argc, const mrb_value *argv, mrb_int nth_result) |
MRB_API mrb_value | mix_plugin_event_env (mrb_state *mrb, mix_event_env_t item) |
MRB_API mrb_value | mix_plugin_event_get_receiver_from_env (mrb_state *mrb) |
MRB_API mrb_value | mix_plugin_event_get_name_from_env (mrb_state *mrb) |
MRB_API mrb_value | mix_plugin_add_event_listener (mrb_state *mrb, mrb_value plugin, const char *event_name, mrb_func_t callback) |
MRB_API mrb_value | mix_plugin_add_event_listener_proc (mrb_state *mrb, mrb_value plugin, const char *event_name, mrb_value proc) |
MRB_API mrb_value | mix_plugin_add_event_filter (mrb_state *mrb, mrb_value plugin, const char *event_name, mrb_func_t callback) |
MRB_API mrb_value | mix_plugin_add_event_filter_proc (mrb_state *mrb, mrb_value plugin, const char *event_name, mrb_value proc) |
MRB_API mrb_value | mix_spell (mrb_state *mrb, const char *spell_name, mrb_int argc, const mrb_value *argv) |
MRB_API mrb_bool | mix_spell_defined (mrb_state *mrb, const char *spell_name, mrb_int argc, const mrb_value *argv) |
MRB_API mrb_value | mix_define_spell (mrb_state *mrb, const char *spell_name, mrb_int slug_count, const mrb_sym *slugs, mrb_value condition, mrb_value body) |
MRB_API mrb_value | mix_miquire_load_all (mrb_state *mrb) |
MRB_API mrb_value | mix_miquire_load_all_failfast (mrb_state *mrb) |
MRB_API void | mix_miquire_append_loadpath (mrb_state *mrb, mrb_value loadpath) |
MRB_API void | mix_miquire_append_loadpath_cstr (mrb_state *mrb, const char *loadpath) |
#define mix_class_get | ( | mrb, | |
... | |||
) | mix_class_dig(mrb, sizeof((const char*[]){ __VA_ARGS__ }) / sizeof(const char*), (const char*[]){ __VA_ARGS__ }) |
#define mix_module_get | ( | mrb, | |
... | |||
) | mix_module_dig(mrb, sizeof((const char*[]){ __VA_ARGS__ }) / sizeof(const char*), (const char*[]){ __VA_ARGS__ }) |
#define mix_plugin_create | ( | mrb, | |
slug | |||
) | mix_plugin_get(mrb, slug) |
mix_plugin_get() のエイリアス
typedef void(* mix_log_handler) (const char *msg) |
typedef void(* mix_remain_handler) (mrb_state *mrb) |
mix_register_remain_handler() で使えるコールバック関数の仕様。
typedef void(* mix_reserve_handler) (mrb_state *mrb, mrb_float delay) |
mix_register_reserve_handler() で使えるコールバック関数の仕様。
delay | イベントが何秒後に予約されたかの値。コールバックされた時点からこの時間が経過したら mix_run() が呼ばれることを期待している。 |
enum mix_event_env_t |
mix_plugin_event_env() で取得可能な情報の識別子。
列挙値 | |
---|---|
MIX_EVENT_ENV_RECEIVER | 実行中のイベントリスナーが登録されているPlugin |
MIX_EVENT_ENV_NAME | 実行中のイベントの名前 (Symbol) |
MRB_API struct RClass* mix_class_dig | ( | mrb_state * | mrb, |
size_t | count, | ||
const char ** | names | ||
) |
ネストした空間に対するmrb_class_getの簡易版。
MRB_API mrb_value mix_define_spell | ( | mrb_state * | mrb, |
const char * | spell_name, | ||
mrb_int | slug_count, | ||
const mrb_sym * | slugs, | ||
mrb_value | condition, | ||
mrb_value | body | ||
) |
Spellを定義する。
spell_name | Spellの名前 |
slug_count | 引数となるModelのslugの数 |
slugs | 引数となるModelのslugの配列 |
condition | 前提条件のProc。不要な場合は mrb_nil_value() で省略可能。 |
body | 呼び出された際に実行するProc。 |
mrb_value MRB_API mix_gui_event_new | ( | mrb_state * | mrb, |
const char * | event, | ||
mrb_value | widget, | ||
mrb_value | messages, | ||
mrb_value | world | ||
) |
commandのProc呼出引数として使うPlugin::GUI::Eventを生成する。 この関数を使うにはmruby-mix-polyfill-gtkが必要。
event | コマンドイベントの発生元。mikutterのメニューコマンドおよびショートカットコマンドでは contextmenu が使用される。 |
widget | コマンドイベントが発生したWidget。例えば、Plugin::GUI::TimelineやPlugin::GUI::Postboxのインスタンスを渡す。 |
messages | 関連するMessageを格納したArray。Messageとしての振る舞いを持ったDiva::Modelとして渡す必要がある。 |
world | このイベントを処理する必要のあるWorld。明示的な指定が必要なければ、単にカレントのWorldを渡す。 |
MRB_API void mix_miquire_append_loadpath | ( | mrb_state * | mrb, |
mrb_value | loadpath | ||
) |
Mix::Miquire.load_path の末尾にエントリを追加する。
loadpath | 追加するエントリ |
MRB_API void mix_miquire_append_loadpath_cstr | ( | mrb_state * | mrb, |
const char * | loadpath | ||
) |
Mix::Miquire.load_path の末尾に文字列のエントリを追加する。 この関数を使ってファイルシステム上のプラグインを読み込むためには、mruby-mix-miquire-fsが必要。
loadpath | 追加するエントリ |
MRB_API mrb_value mix_miquire_load_all | ( | mrb_state * | mrb | ) |
Mix::Miquire.load_all を呼び出す。
[[:foo, :bar, ...], [:baz, ...]]
MRB_API mrb_value mix_miquire_load_all_failfast | ( | mrb_state * | mrb | ) |
Mix::Miquire.load_all を呼び出す。ただし、1つでも読み込みに失敗したら例外をスローする。
MRB_API struct RClass* mix_module_dig | ( | mrb_state * | mrb, |
size_t | count, | ||
const char ** | names | ||
) |
ネストした空間に対するmrb_module_getの簡易版。
MRB_API mrb_value mix_plugin_add_event_filter | ( | mrb_state * | mrb, |
mrb_value | plugin, | ||
const char * | event_name, | ||
mrb_func_t | callback | ||
) |
Pluginにネイティブのイベントフィルタを登録する。
plugin | Plugin |
event_name | イベント名 |
callback | コールバック |
MRB_API mrb_value mix_plugin_add_event_filter_proc | ( | mrb_state * | mrb, |
mrb_value | plugin, | ||
const char * | event_name, | ||
mrb_value | proc | ||
) |
Pluginにイベントフィルタを登録する。
plugin | Plugin |
event_name | イベント名 |
proc | コールバック (Proc) |
MRB_API mrb_value mix_plugin_add_event_listener | ( | mrb_state * | mrb, |
mrb_value | plugin, | ||
const char * | event_name, | ||
mrb_func_t | callback | ||
) |
Pluginにネイティブのイベントリスナーを登録する。
plugin | Plugin |
event_name | イベント名 |
callback | コールバック |
MRB_API mrb_value mix_plugin_add_event_listener_proc | ( | mrb_state * | mrb, |
mrb_value | plugin, | ||
const char * | event_name, | ||
mrb_value | proc | ||
) |
Pluginにイベントリスナーを登録する。
plugin | Plugin |
event_name | イベント名 |
proc | コールバック (Proc) |
MRB_API mrb_value mix_plugin_call_arg0 | ( | mrb_state * | mrb, |
const char * | event_name | ||
) |
引数なしでイベントを発生させる。
event_name | イベント名 |
MRB_API mrb_value mix_plugin_call_arg1 | ( | mrb_state * | mrb, |
const char * | event_name, | ||
mrb_value | arg | ||
) |
1つの引数を持ったイベントを発生させる。
event_name | イベント名 |
arg | 最初の引数 |
MRB_API mrb_value mix_plugin_call_argv | ( | mrb_state * | mrb, |
const char * | event_name, | ||
mrb_int | argc, | ||
const mrb_value * | argv | ||
) |
任意数の引数を持ったイベントを発生させる。
event_name | イベント名 |
argc | 引数の数 |
argv | 引数の配列 |
MRB_API mrb_value mix_plugin_event_env | ( | mrb_state * | mrb, |
mix_event_env_t | item | ||
) |
現在実行中のイベントに関する変数(イベント名など)を取得する。 イベントリスナー関数の外で呼び出してはいけない。
item | 取得する情報 |
MRB_API mrb_value mix_plugin_event_get_name_from_env | ( | mrb_state * | mrb | ) |
MRB_API mrb_value mix_plugin_event_get_receiver_from_env | ( | mrb_state * | mrb | ) |
現在実行中のイベントリスナーが登録されているPluginを取得する。 イベントリスナー関数の外で呼び出してはいけない。
MRB_API mrb_value mix_plugin_filtering_and_nth | ( | mrb_state * | mrb, |
const char * | event_name, | ||
mrb_int | argc, | ||
const mrb_value * | argv, | ||
mrb_int | nth_result | ||
) |
任意数の引数をフィルタリングし、結果の nth_result
番目を取り出す。
event_name | イベント名 |
argc | 引数の数 |
argv | 引数の配列 |
nth_result | フィルタ結果から取り出す要素の序数 |
nth_result
番目の値 MRB_API mrb_value mix_plugin_filtering_arg1 | ( | mrb_state * | mrb, |
const char * | event_name, | ||
mrb_value | arg | ||
) |
1つの引数をフィルタリングした結果を返す。
event_name | イベント名 |
arg | 最初の引数 |
MRB_API mrb_value mix_plugin_filtering_argv | ( | mrb_state * | mrb, |
const char * | event_name, | ||
mrb_int | argc, | ||
const mrb_value * | argv | ||
) |
任意数の引数をフィルタリングした結果を返す。
event_name | イベント名 |
argc | 引数の数 |
argv | 引数の配列 |
MRB_API mrb_value mix_plugin_get | ( | mrb_state * | mrb, |
const char * | slug | ||
) |
Pluginのインスタンスを取得、または新規作成します。
slug | プラグインのslug |
void MRB_API mix_register_log_handler | ( | mrb_state * | mrb, |
mix_log_handler | handler | ||
) |
utils.rb経由で出力されたログを受け取るコールバックを登録する。
void MRB_API mix_register_remain_handler | ( | mrb_state * | mrb, |
mix_remain_handler | handler | ||
) |
イベントがキューされた際に呼び出されるコールバックを登録する。 ホスト側で持っているイベントループにキューするために使える。
void MRB_API mix_register_reserve_handler | ( | mrb_state * | mrb, |
mix_reserve_handler | handler | ||
) |
ある時間が経過した後に実行されることを期待したイベントがキューされた際に呼び出されるコールバックを登録する。 mix_register_remain_handler() と同様の目的で使える。
int MRB_API mix_require | ( | mrb_state * | mrb, |
const char * | path | ||
) |
Kernel.requireを呼び出す。 この関数を使う場合はmruby-requireを依存関係に加えること。
path | 読み込むファイルのフルパス |
void MRB_API mix_run | ( | mrb_state * | mrb | ) |
キューされているイベントを全て処理する。
MRB_API mrb_value mix_spell | ( | mrb_state * | mrb, |
const char * | spell_name, | ||
mrb_int | argc, | ||
const mrb_value * | argv | ||
) |
Spellを呼び出す。
spell_name | Spellの名前 |
argc | 引数の数 |
argv | 引数の配列 |
MRB_API mrb_bool mix_spell_defined | ( | mrb_state * | mrb, |
const char * | spell_name, | ||
mrb_int | argc, | ||
const mrb_value * | argv | ||
) |
指定した引数に応答できるSpellが定義されているかを確認する。
spell_name | Spellの名前 |
argc | 引数の数 |
argv | 引数の配列 |