ウィンドウ

ドッキングウィンドウやメッセージボックスを表示する等のAPI群です。

// Retrives the API instance.
IRCXWindowAPI? api = Main.GetAPI<IRCXWindowAPI>();

// Show message box.
var response = api?.ShowMessageBox(
    new RCXCaption(Main.CommonId, Caption.ExtensionName),
    new RCXCaption("Are you OK?"),
    IRCXWindowAPI.ButtonType.Yes_No,
    IRCXWindowAPI.IconType.Question
);
if (response == IRCXWindowAPI.ResponseType.OK)
{
    // Process when the response is OK.
}

WPF の WebView2 コントロールをホストするドッキングウィンドウ用の API もあります。

  • 以下の URI を扱うことができます。
    • 外部(インターネット、イントラネット)のサイト
    • RC+ を動かす PC のローカルに配置した静的サイト
      • JavaScript モジュールの動的インポートを行うために、専用の HTTP サーバーを起動することも可能です。
    • RC+ を動かす PC のローカルで動作する Web アプリケーション
      • アプリケーションの起動コマンド(node など)と、パラメーターが指定できます。
        • パラメーターとして、${port}、${lang} を与えると、それぞれポート番号(自動割り当て)、表示言語名に置き換えます。
  • Web 技術(HTML, CSS, JavaScript など)を用いて、機能を実装することができます。
    • ウィンドウクローズ、コンテンツ保存時のスクリプト実行
    • コンテンツ編集
      • 選択されている文字列の取得およびクリップボードへの転送
      • 編集メニューに対応したメッセージ("RCX.Clear", "RCX.Paste", "RCX.SelectAll", "RCX.Undo", "RCX.Redo")の送信
    • F10 キーによるヘルプ表示に対応したメッセージ("RCX.ShowHelp")の送信
  • ホストオブジェクトを作成すると、C# 側とやりとりすることができます。
    • 以下の関数を実装した組み込みのホストオブジェクト chrome.webview.hostObjects.BuiltinBridge も使えます。
      • string GetCaption(int number): 指定番号のキャプション文字列を取得する。
      • string ReadConfiguration(bool global): Extension の設定データを、Base64 エンコード文字列として読み出す。
      • string WriteConfiguration(bool global): Base64 エンコード文字列で与えた Extension の設定データを書き込む。
        • global フラグが true の場合、設定データは、Windows のログインユーザーに共通となり、false の場合は、ログインユーザーごととなります。
// Retrives the API instance.
IRCXWindowAPI? api = Main.GetAPI<IRCXWindowAPI>();

if (api != null)
{
    // Show "Epson Global Portal" site in a docking window
    var webVewInfo = new IRCXWindowAPI.WebViewInfo(
        (_, _, _) => new Uri("https://epson.com/"),
        Id,
        $"{Id}.External",
        new RCXCaption(CommonId, Caption.WindowTitle_External),
        Main.CommonIcon
    );

    await api.ShowDockingWebViewWindowAsync(webViewInfo).ConfigureAwait(true);
}