Gtk3アプリ TreeViewプログラム自動生成ツール


Gtk3アプリ TreeViewプログラム自動生成ツール

Release

treeview-tutorialで書かれているサンプルを自動生成するツールを作りました。
RiderのエクスプローラーからDbを右クリックしてツールを起動させます。
Sqliteのテーブルからカラムを解析し、TreeView生成プログラムを生成します。ComboViewも生成できます。

Riderの設定画面で外部ツールを登録する

引数を登録する
引数はReadMeを参照してください

エクスプローラーからDbを右クリックしてツールを起動


Table名をクリックするとプログラムが自動生成されます。
書き出したいColum名を制御できます。

TreeViewかComboBoxを選択できます。
書き出されるModelの変数名、ListStoreの変数名、サブ名前空間をなどをTableごとに変更できます。

テーブルから生成されるプログラム

TreeViewの他にComobViewも書き出せます。

namespace TreeViewGenerator.SubNameSpace1 {
[UI] private readonly Gtk.TreeView TreeView1 = null;
private void _mkTreeView()
{
    Gtk.ListStore ListStore1 = new Gtk.ListStore (typeof (Model1));


    Gtk.TreeViewColumn typeColumn = new Gtk.TreeViewColumn ();
    typeColumn.Title = "type";
    Gtk.CellRendererToggle typeCell = new Gtk.CellRendererToggle();
    typeColumn.PackStart(typeCell, true);
    typeCell.Toggled += delegate(object o, ToggledArgs args)
    {
        TreeIter iter;
        if ( ListStore1.GetIterFromString(out iter, args.Path))
        {
            Model1 Model11 = (Model1) ListStore1.GetValue(iter, 0);
            Model11.type = Model11.type == true ? false : true;
        }
    };


    List<Model1> Model1Array = new List<Model1>();

    foreach (Model1 Model11 in Model1Array) {
        ListStore1.AppendValues (Model11);
    }

    TreeView1.Model = ListStore1;

    TreeView1.AppendColumn(typeColumn);

    typeColumn.SetCellDataFunc (typeCell, new Gtk.TreeCellDataFunc (Rendertype));

}


    private void Rendertype(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.ITreeModel model, Gtk.TreeIter iter)
    {
        Model1 Model11 = (Model1) model.GetValue (iter, 0);
    }
}

書き出すプログラムのテンプレートの編集が可能

ツールのTemplateボタンからテンプレートフォルダが開きます。
T4ファイル形式でテンプレートを編集できます。

T4テンプレートについて

カスタムテンプレートに設定されているUIライブラリについてはここを使っています

Gtk3アプリ ファイルダイアログを利用するへ続く