📄 dialog.c
字号:
#include <gtk/gtk.h>gchar sFilename[256]; gint yesnoreturn;void CloseDialog (GtkWidget *widget, gpointer data){ gtk_widget_destroy (GTK_WIDGET (data)); }void ClosingDialog (GtkWidget *widget, gpointer data){ gtk_grab_remove (GTK_WIDGET (widget)); gtk_main_quit ();}void Popup(gchar *szMessage){ static GtkWidget *label; GtkWidget *button; GtkWidget *dialog_window; dialog_window = gtk_dialog_new (); gtk_signal_connect (GTK_OBJECT (dialog_window), "destroy", GTK_SIGNAL_FUNC (ClosingDialog), NULL); gtk_window_set_title (GTK_WINDOW (dialog_window), "yq"); gtk_container_border_width (GTK_CONTAINER (dialog_window), 5); label = gtk_label_new (szMessage); gtk_misc_set_padding (GTK_MISC (label), 10, 10); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->vbox), label, TRUE, TRUE, 0); gtk_widget_show (label); button = gtk_button_new_with_label ("确定"); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (CloseDialog), dialog_window); GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->action_area), button, TRUE, TRUE, 0); gtk_widget_grab_default (button); gtk_widget_show (button); gtk_widget_show (dialog_window); gtk_grab_add (dialog_window); gtk_main ();}void YesFunc (GtkWidget *widget, gpointer data){ yesnoreturn=1; gtk_widget_destroy (GTK_WIDGET (data));}void Areyousure (gchar *szMessage){ GtkWidget *label; GtkWidget *button; GtkWidget *dialog_window; yesnoreturn=0; dialog_window = gtk_dialog_new (); gtk_signal_connect (GTK_OBJECT (dialog_window), "destroy", GTK_SIGNAL_FUNC (ClosingDialog), NULL); gtk_window_set_title (GTK_WINDOW (dialog_window), "YQ"); gtk_container_border_width (GTK_CONTAINER (dialog_window), 5); label = gtk_label_new (szMessage); gtk_misc_set_padding (GTK_MISC (label), 10, 10); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->vbox), label, TRUE, TRUE, 0); gtk_widget_show (label); button = gtk_button_new_with_label ("确定"); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (YesFunc), dialog_window); GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->action_area), button, TRUE, TRUE, 0); gtk_widget_show (button); button = gtk_button_new_with_label ("取消"); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (CloseDialog), dialog_window); GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->action_area), button, TRUE, TRUE, 0); gtk_widget_grab_default (button); gtk_widget_show (button); gtk_widget_show (dialog_window); gtk_grab_add (dialog_window); gtk_main ();}void NoFunc (GtkWidget *widget, gpointer data){ yesnoreturn=0; gtk_widget_destroy (GTK_WIDGET (data));}void YesNo (gchar *szMessage){ GtkWidget *label; GtkWidget *button; GtkWidget *dialog_window; yesnoreturn=2; dialog_window = gtk_dialog_new (); gtk_signal_connect (GTK_OBJECT (dialog_window), "destroy", GTK_SIGNAL_FUNC (ClosingDialog), NULL); gtk_window_set_title (GTK_WINDOW (dialog_window), "YQ"); gtk_container_border_width (GTK_CONTAINER (dialog_window), 5); label = gtk_label_new (szMessage); gtk_misc_set_padding (GTK_MISC (label), 10, 10); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->vbox), label, TRUE, TRUE, 0); gtk_widget_show (label); button = gtk_button_new_with_label ("是"); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (YesFunc), dialog_window); GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->action_area), button, TRUE, TRUE, 0); gtk_widget_show (button); button = gtk_button_new_with_label ("否"); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (NoFunc), dialog_window); GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->action_area), button, TRUE, TRUE, 0); gtk_widget_show (button); button = gtk_button_new_with_label ("取消"); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (CloseDialog), dialog_window); GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->action_area), button, TRUE, TRUE, 0); gtk_widget_grab_default (button); gtk_widget_show (button); gtk_widget_show (dialog_window); gtk_grab_add (dialog_window); gtk_main ();}void InputNameYesFunc (GtkWidget *widget, gpointer data){yesnoreturn=1; strcpy(sFilename,gtk_entry_get_text(GTK_ENTRY(gtk_container_children(GTK_CONTAINER(GTK_DIALOG(data)->vbox))->next->data))); gtk_widget_destroy (GTK_WIDGET(data));}void InputName (gchar *szMessage,gchar *entryvalue){ GtkWidget *label; GtkWidget *entry; GtkWidget *button; GtkWidget *dialog_window; yesnoreturn=0; dialog_window = gtk_dialog_new (); gtk_signal_connect (GTK_OBJECT (dialog_window), "destroy", GTK_SIGNAL_FUNC (ClosingDialog), NULL); gtk_window_set_title (GTK_WINDOW (dialog_window), "YQ"); gtk_container_border_width (GTK_CONTAINER (dialog_window), 5); label = gtk_label_new (szMessage); gtk_misc_set_padding (GTK_MISC (label), 10, 10); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->vbox), label, TRUE, TRUE, 0); gtk_widget_show (label); entry=gtk_entry_new(); gtk_entry_set_text(GTK_ENTRY(entry),entryvalue); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->vbox), entry, TRUE, TRUE, 0); gtk_widget_show (entry); button = gtk_button_new_with_label ("确定"); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (InputNameYesFunc), dialog_window); GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->action_area), button, TRUE, TRUE, 0); gtk_widget_show (button); gtk_widget_grab_default (button); button = gtk_button_new_with_label ("取消"); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (CloseDialog), dialog_window); GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->action_area), button, TRUE, TRUE, 0); gtk_widget_show (button); gtk_widget_show (dialog_window); gtk_grab_add (dialog_window); gtk_main ();}void file_ok_sel (GtkWidget *widget, gpointer data){ strcpy(sFilename,gtk_file_selection_get_filename (GTK_FILE_SELECTION (data))); if (sFilename[strlen(sFilename)-1]=='/') sFilename[0]='\0'; gtk_widget_destroy (GTK_WIDGET (data));}voidGetFilename (char *sTitle){ GtkWidget *filew; sFilename[0]='\0'; filew = gtk_file_selection_new (sTitle); gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(filew)); gtk_signal_connect (GTK_OBJECT (filew), "destroy", (GtkSignalFunc) ClosingDialog , NULL); gtk_signal_connect ( GTK_OBJECT (GTK_FILE_SELECTION (filew)->ok_button), "clicked", (GtkSignalFunc) file_ok_sel, filew ); gtk_signal_connect ( GTK_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button), "clicked", (GtkSignalFunc) CloseDialog, filew); gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew), ""); gtk_widget_show (filew); gtk_grab_add (filew); gtk_main ();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -