TOPに戻る(D言語だぜ)
ホームに戻る(Kyoroの部屋)

PC用眼鏡【管理人も使ってますがマジで疲れません】 解約手数料0円【あしたでんき】 Yahoo 楽天 NTT-X Store

無料ホームページ 無料のクレジットカード 海外格安航空券 ふるさと納税 海外旅行保険が無料! 海外ホテル

ボタンを配置するのら

絵をかけるようになったし、ダブルブッファもできるし。「もう私は GUIプログラムを組めるようにようになったのら。」 「そして、つぎ はボタンも配置できるようになってやるのら。」

ボタン

ボタンやLabelやTreeやListやファイルエクスプローラ などの便利な部品をお手軽に利用できるのが GTKや.NetFrameWorkやJAVAなどの優れた点です。 これらの優れたライブラリーを使うことで、 「プログラムの書き方」 なんてものがわかってくるかも知れませんね
それでは、ボタンの使って見ることにしましょう。 DUIの中でボタンに該当するものは "DUI.Widget.Container.Bin"の中にあります。 そして、ボタンが押されたりはなされたりしたとき のイベント処理は おなじみの Dispatcherが行ってくれます。 今回はDispatcherの "void addButtonClickedListener (ButtonClickedListener listener, Button button, char[] action) " を利用することにしましょう。
となると、ButtonClickedListenerがきになりますね。ButtonClickedListenerは ButtonListenerの中で以下のようになっています。

interface ButtonClickedListener
{
	void buttonClickedCallback (Button button, char [] action);
};

interface ButtonListener : ButtonClickedListener
{
	void buttonPressedCallback (Button button, char [] action);
	void buttonReleasedCallback (Button button, char [] action);
	void buttonEnterCallback (Button button, char [] action);
	void buttonLeaveCallback (Button button, char [] action);
	void buttonActivateCallback (Button button, char [] action);
};
詳しくは Listenerであーーる。 を参考にしてください。とりあえずは これだけわかればもうボタンを作れちゃいますよね。 「では では、早速 プログラムを書いてみることにしましょう」

import dui.All;
public:
class HelloWorld : MainWindow ,ButtonClickedListener
{
	public :
	this()
	{
		super("mosskite");
		setSizeRequest(200,200);

		Button button;
		button = new Button();
		button.setLabel("Kyoro");
		add(button);
		show();

		Dispatcher dis = new Dispatcher();
		dis.addButtonClickedListener(this, button,"Kyoro");
	}
	void buttonClickedCallback (Button button, char [] action)
		{
		printf("Clicked\n"); 
		}
}
void main(char [][]args)
{	
	DUI dui = DUI.dui(args);
	new HelloWorld();
	dui.go();						
}


実行結果


絵つきのボタンを作ろう

ボタンはcontainerを継承しているのでラベルを貼ったり Imageを張ったりすることができます。
はい、ボタンを私ごのみのデザインに変えることができるのです。 ではボタンにImageを貼り付けて見ましょう。
import dui.All;
public:
class HelloWorld : MainWindow ,ButtonClickedListener
{
	public :
	this()
	{
		super("Kyoro");
		setSizeRequest(200,200);

		Button button;
		Image  image;
		button = new Button();
		image = new Image("d3.gif");
		button.add(image);
		add(button);
		show();

		Dispatcher dis = new Dispatcher();
		dis.addButtonClickedListener(this, button,"Kyoro");
	}
	void buttonClickedCallback (Button button, char [] action)
		{
		printf("Clicked\n"); 
		}
}
void main(char [][]args)
{	
	DUI dui = DUI.dui(args);
	new HelloWorld();
	dui.go();						
}

イメージつきボタン