設定

設定の種類とその書き方

settingsにおいてUserConfigのキーを引数に持つ項目は、 そのキーを使って設定値を取り出すことができる
例えばキーを :sample_key とした場合は UserConfig[:sample_key] と書けばよい
UserConfigの詳細についてはWriting mikutter pluginを参考にすること

settings

  • 概要

    枠で囲む

  • 書式

    settings(入力欄の説明)
  • サンプルコード

    • 基本系

      # Slackプラグインの場合
      settings('sample_settings') do
        # ここに各種設定項目
      end
    • 入れ子

      settingsは入れ子にもできる

      # Slackプラグインの場合
      settings('sample_settings') do
        # ここに各種設定項目
        settings('sample_notification_settings') do
          # ここに各種設定項目
        end
      end

input

  • 概要

    一行テキストを追加する

  • 書式

    input(入力欄の説明, :UserConfigのキー)
  • サンプルコード

    settings('sample_settings') do
      input('ログイン名', :sample_user_id)
    end

inputpass

  • 概要

    パスワードの入力欄を追加する
    入力欄では文字が * になる

  • 書式

    inputpass(入力欄の説明, :UserConfigのキー)
  • サンプルコード

    settings('sample_settings') do
      inputpass('パスワード', :sample_user_password)
    end

multi

  • 概要

    複数テキスト。ユーザはテキストボックスを追加ボタンで増やすことができ、各ボックスの値が配列に格納される

  • 書式

    multi(入力欄の説明, :UserConfigのキー)
  • サンプルコード

    settings('sample_settings') do
      multi('複数テキスト', :sample_settings_multi)
    end

multitext

  • 概要

    複数行のテキスト

  • 書式

    multitext(入力欄の説明, :UserConfigのキー)
  • サンプルコード

    settings('sample_settings') do
      multitext('複数行のテキスト', :sample_settings_multitext)
    end

select

  • 概要

    ハッシュの値から一つの要素を選択する
    表示されるのはHashの値だが、格納されるのはキーの方
    普通はコンボボックスだが、bodyにウィジェットを入れたらラジオボタンになる

  • 書式

    select(入力欄の説明, :UserConfigのキー, ハッシュ) do
      # body
    end
  • サンプルコード

    • コンボボックス

      settings('sample_settings') do
        hash = { 0 => '', 1 => '', 2 => '', 3 => '' }
        select('セレクト', :sample_settings_select, hash)
      end
    • ラジオボタン

      settings('sample_settings') do
        hash = { 0 => '', 1 => '', 2 => '', 3 => '' }
        select('セレクト', :sample_settings_select) do
          option(:sample_option, 'ラジオボタンオプション') do
            input('ラジオボタン内オプション', :opt1)
          end
        end
      end

multiselect

  • 概要

    select ウィジェットの複数選択奴
    選ばれた値がすべて配列で格納される
    bodyにウィジェットがあればチェックボックスになる

  • 書式

    multiselect(入力欄の説明, :UserConfigのキー) do
      # body
    end
  • サンプルコード

    settings('sample_settings') do
      multiselect('複数セレクト', :sample_settings_multiselect) do
        option(:opt1, 'オプション1') do
          hash = {0 => 'opt1', 1 => 'opt2'}
          select('複数セレクト内オプション', :opt1_select, hash)
        end
        option(:opt2, 'オプション2')
        option(:opt3, 'オプション3')
      end
    end

fileselect

  • 概要

    ファイル選択
    設定にはファイルの絶対パスが文字列で入る
    dirはダイアログが最初に開くディレクトリで省略可

  • 書式

    fileselect(入力欄の説明, :UserConfigのキー, 最初のディレクトリ名)
  • サンプルコード

    settings('sample_settings') do
      fileselect('ファイルの取得', :sample_settings_fileselect)
      fileselect('ファイルの取得(パス指定あり)', :sample_settings_fileselect, '/')
    end

adjustment

  • 概要

    minからmaxまでの数値の設定

  • 書式

    adjustment(入力欄の説明, :UserConfigのキー, min, max)
  • サンプルコード

    settings('sample_settings') do
      adjustment('取得件数', :sample_adjustment, 0, 200)
    end

boolean

  • 概要

    チェックボックス

  • 書式

    boolean(入力欄の説明, :UserConfigのキー)
  • サンプルコード

    settings('sample_settings') do
      boolean('お知らせを表示する', :sample_show_notification)
    end

color

  • 概要

    色選択ダイアログ
    [RRRR,GGGG,BBBB]のような配列で値を保持する
    各要素の最大値は0xFFFF

  • 書式

    color(入力欄の説明, :UserConfigのキー)
  • サンプルコード

    settings('sample_settings') do
      color('色を設定', :sample_color)
    end

fontcolor

  • 概要

    フォントとその色を設定する
    フォントキーの値にフォントの情報が文字列で、 カラーキーの値には colorウィジェット の値が格納される

  • 書式

    fontcolor(入力欄の説明, :UserConfigのキー(フォント), :UserConfigのキー(色))
  • サンプルコード

    settings('sample_settings') do
      fontcolor('フォント設定', :sample_fontcolor_font, :sample_fontcolor_color)
    end

about

  • 概要

    プラグインのクレジット表記

  • 書式

    about(入力欄の説明, options)
  • オプション一覧

    program_name

    ソフトウェア名

    version

    バージョン

    copyright

    コピーライト

    comments

    コメント

    license

    ライセンス

    website

    Webページ

    logo

    ロゴ画像のフルパス

    authors

    作者の名前(文字列配列)

    artists

    デザイナとかの名前(文字列配列)

    documenters

    ドキュメントかいた人とかの名前(文字列配列)

  • サンプルコード

    settings('sample_settings') do
      about('%s について' % "sample app",
            program_name: "sample app",
            copyright: '2016-2018 ahiru',
            version: "0.0.1",
            comments: "mikutter pluginのサンプル",
            license: (file_get_contents('./LICENSE') rescue nil),
            website: 'https://...',
            logo: 'path/to/logo',
            authors: %w[ahiru3net],
            artists: %w[foo],
            documenters: %w[ahiru3net hoge foo])
    end

ツールチップ

各設定コンポーネントに .tooltip() をチェーンすることで、 その設定にツールチップを追加できる

  • サンプルコード

    settings('sample_settings') do
      input('ツールチップ用input', :sample_settings_input)
        .tooltip('inputにホバーしてると表示される')
    end

サンプルプラグイン

以下のプラグインをインストール・実行することで設定画面に全ての設定項目を確認できます。