Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
#include
/* キー入力等のイベントが発生した場合に呼び出されるコールバック関数の定義です。
* このコールバック関数は、下のほうにあるgtk_signal_connect()により、ボタンを
* クリックすると呼び出されます。 */
void hello (GtkWidget *widget, gpointer data)
{
g_print ("Hello World\n");
}
gint delete_event(GtkWidget *widget, gpointer data)
{
g_print ("delete event occured\n");
/* この関数は、"delete_event"シグナルが発生した場合に呼び出されます。
* "delete_event"シグナルは、Xボタンをクリックすることによって発生
* します。
* "delete_event"シグナルハンドラの戻り値がFALSEの場合、"destroy"
* シグナルが発行され、プログラムが終了します。戻り値がTRUEの場合、
* プログラムは終了しません。これは、「本当に終了しますか?」と
* いったようなポップアップダイアログを出す場合に便利です。 */
return (TRUE);
}
/* destroyシグナルが発生した場合のコールバック関数です。
* プログラムの終了処理を行います。 */
void destroy (GtkWidget *widget, gpointer data)
{
gtk_main_quit ();
}
int main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *button;
gtk_init (&argc, &argv);
/* ウィンドウウィジェットの生成 */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
/* "delete_event"シグナルが発生した場合、delete_event()関数を
* 呼び出します。(delete_event()関数は上の方で定義しています) */
gtk_signal_connect (GTK_OBJECT (window), "delete_event",
GTK_SIGNAL_FUNC (delete_event), NULL);
/* "destroy"シグナルが発生した場合、destroy()関数を呼び出します。
* "destroy"シグナルは、gtk_widget_destroy()関数を呼び出した場合や、
* "delete_event"コールバックの戻り値がFALSEだった場合に発行されます。 */
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (destroy), NULL);
/* ウィンドウのボーダーの幅をセットします */
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
/* "Hello World"というラベルを持つボタンを作成します。 */
button = gtk_button_new_with_label ("Hello World");
/* ボタンが"clicked"シグナルを受け取った場合、関数hello()を呼び出します。
* 関数hello()は上のほうで定義されています。 */
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (hello), NULL);
/* ボタンが"clicked"シグナルを受け取った場合、関数gtk_widget_destroy(window)
* を呼び出し、 "destroy"シグナルを発行します。 */
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (gtk_widget_destroy),
GTK_OBJECT (window));
/* ボタンをウィンドウに貼り付けます。 */
gtk_container_add (GTK_CONTAINER (window), button);
/* ボタンを表示します。 */
gtk_widget_show (button);
/* ウィンドウを表示します。 */
gtk_widget_show (window);
gtk_main ();
return 0;
}