1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Gtk3アプリ イベントハンドラー自動生成ツールの作成

Last updated at Posted at 2021-05-27

イベントハンドラー自動生成ツールの作成

C#でのイベントハンドラーを自動生成ツールがなかったので自分で作ることにした。

追記 GUIバージョンを中心に開発しています。

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

使い方
  1. グレードデザイナーでフォームをデザインする。
  2. コントロールにIDと名前を記入する。トップのWindowに名前を記入します。書き出しに必要なコントロールにも記入します。
  3. イベントを追加したい場合はコントロールにシグナルを記入する。名前は適当で良いです
  4. gladeGeneratorを実行する。
  5. イベントハンドラーファイルが同じプロジェクト内に自動生成されます
スクリーンショット 2020-03-29 12.53.22.png

Riderから実行 Riderのマクロを利用

引数はReadMeを参照ください
スクリーンショット 2020-03-29 12.53.22.png

RiderやVisual Studioは外部ツールを登録でき、いつでもショートカットで呼び出すことができます
「実行の後に同期」のチェックを外すしておくと、実行の後に自動実行されなくなります。

スクリーンショット 2020-03-29 12.53.22.png

Riderの外部ツールのショートカット

宣言文の自動生成

Gladeファイルにコントロールを追加していくごとに宣言文が追加される

using System;
using Gtk;
using UI = Gtk.Builder.ObjectAttribute;
namespace testGtkApplication
{
    partial class MainWindow
    {    
		//[UI] private readonly Gtk.Window MainWindow = null;
		[UI] private readonly Gtk.Box sdfsdfsd111 = null;
		[UI] private readonly Gtk.Button _button1 = null;		
    }
}
イベントハンドラーの自動生成

コントロールにシグナルを追加するごとにイベントハンドラー文が追加される

using System;
using Gtk;
using UI = Gtk.Builder.ObjectAttribute;
namespace testGtkApplication
{
    partial class MainWindow
    {
	    private void on__button1_Clicked(object sender , EventArgs e){
			
		}	    
    }
}
ファイル名 内容
ConfigSetting.xml 総合設定ファイル
NoImportGladeFileSetting.xml 読み込みたくないGladeファイルを設定
GladeFileClassMap.xml クラス名を指定して書き出す

不具合の報告はGitHubのissuesでお願いします。

Gtk3アプリ Sqliteを使うに続く

追記 機能を追加しました

Gtk3アプリ イベントハンドラー自動生成ツール 改良

Gtk3アプリ イベントハンドラー自動生成ツール GUI版

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?