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

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!

ボタンを配置するのら

絵をかけるようになったし、ダブルブッファもできるし。「もう私は 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();						
}

イメージつきボタン