Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * greeting.c
- *
- * apt-get install libgtk2.0-dev gcc
- * gcc greeting.c -o greeting `pkg-config --cflags --libs gtk+-2.0`
- *
- * >v< hiro1357 / @eserver_dip_jp
- *
- */
- #define DEBUG
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- #include <gtk/gtk.h>
- static void cb_button1_clicked (GtkWidget *button, gpointer user_data);
- GtkWidget *window;
- GtkWidget *fixed;
- GtkWidget *button1;
- GtkWidget *textbox1;
- GtkWidget *label1;
- int main (int argc , char** argv) {
- /* Initialize GTK+ */
- gtk_init (&argc , &argv);
- /* Create widgets */
- window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title (GTK_WINDOW (window) , "greeting");
- fixed = gtk_fixed_new ();
- button1 = gtk_button_new_with_label ("greeting");
- textbox1 = gtk_entry_new ();
- label1 = gtk_label_new ("input your name");
- //gtk_entry_set_editable (GTK_TEXT(text1), TRUE);
- /* Widget sizes */
- gtk_widget_set_size_request (window , 300 , 220);
- gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
- gtk_widget_set_size_request (textbox1 ,180 ,20);
- /* add widgets to container */
- gtk_container_add (GTK_CONTAINER (window), fixed);
- //gtk_container_add (GTK_CONTAINER (window), button);
- gtk_fixed_put (GTK_FIXED (fixed), label1, 20, 30);
- gtk_fixed_put (GTK_FIXED (fixed), textbox1, 20, 50);
- gtk_fixed_put (GTK_FIXED (fixed), button1, 220, 50);
- /* add callback functions */
- //exit this program when window closed
- g_signal_connect (window,"destroy",gtk_main_quit,NULL);
- g_signal_connect (G_OBJECT (button1), "clicked",G_CALLBACK (cb_button1_clicked), NULL);
- /* Show widgets */
- gtk_widget_show_all (window);
- //gtk_widget_show (window);
- /* main loop */
- gtk_main ();
- return 0;
- }
- GtkResponseType msgbox (GtkMessageType mt,GtkButtonsType bt, char *message) {
- /*
- typedef enum {
- GTK_MESSAGE_INFO,
- GTK_MESSAGE_WARNING,
- GTK_MESSAGE_QUESTION,
- GTK_MESSAGE_ERROR,
- GTK_MESSAGE_OTHER
- } GtkMessageType;
- typedef enum {
- GTK_BUTTONS_NONE,
- GTK_BUTTONS_OK,
- GTK_BUTTONS_CLOSE,
- GTK_BUTTONS_CANCEL,
- GTK_BUTTONS_YES_NO,
- GTK_BUTTONS_OK_CANCEL
- } GtkButtonsType;
- typedef enum {
- GTK_RESPONSE_NONE = -1,
- GTK_RESPONSE_REJECT = -2,
- GTK_RESPONSE_ACCEPT = -3,
- GTK_RESPONSE_DELETE_EVENT = -4,
- GTK_RESPONSE_OK = -5,
- GTK_RESPONSE_CANCEL = -6,
- GTK_RESPONSE_CLOSE = -7,
- GTK_RESPONSE_YES = -8,
- GTK_RESPONSE_NO = -9,message
- GTK_RESPONSE_APPLY = -10,
- GTK_RESPONSE_HELP = -11
- } GtkResponseType;
- */
- GtkResponseType result;
- GtkWidget *dialog;
- dialog = gtk_message_dialog_new ((GtkWindow *)window, GTK_DIALOG_DESTROY_WITH_PARENT, mt, bt, "%s", message);
- result = gtk_dialog_run (GTK_DIALOG (dialog));
- gtk_widget_destroy (dialog);
- return result;
- }
- static void cb_button1_clicked (GtkWidget *button, gpointer user_data) {
- char *message;
- const char *input_name;
- time_t now_time;
- struct tm *st_now_time;
- int hour;
- time(&now_time);
- st_now_time = localtime(&now_time);
- hour = st_now_time->tm_hour;
- input_name = gtk_entry_get_text (GTK_ENTRY (textbox1));
- if(strlen(input_name) == 0){
- msgbox(GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "input your name, please.");
- return;
- }
- message = calloc(strlen(input_name)+20, sizeof(char));
- if (hour < 12) {
- strcat(message, "Good Morning, ");
- } else if (hour < 18) {
- strcat(message, "Good Afternoon, ");
- } else {
- strcat(message, "Good Evening, ");
- }
- strcat(message, input_name);
- msgbox(GTK_MESSAGE_INFO, GTK_BUTTONS_OK, message);
- free(message);
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement