gui_showmsg.c
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:3k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.  * The contents of this file are subject to the Mozilla Public
  3.  * License Version 1.1 (the "License"); you may not use this file
  4.  * except in compliance with the License. You may obtain a copy of
  5.  * the License at http://www.mozilla.org/MPL/
  6.  * 
  7.  * Software distributed under the License is distributed on an "AS
  8.  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  9.  * implied. See the License for the specific language governing
  10.  * rights and limitations under the License.
  11.  * 
  12.  * The Original Code is MPEG4IP.
  13.  * 
  14.  * The Initial Developer of the Original Code is Cisco Systems Inc.
  15.  * Portions created by Cisco Systems Inc. are
  16.  * Copyright (C) Cisco Systems Inc. 2000, 2001.  All Rights Reserved.
  17.  * 
  18.  * Contributor(s): 
  19.  *              Bill May        wmay@cisco.com
  20.  */
  21. /*
  22.  * Showmessage.c  from Developing Linux Applications
  23.  */
  24. #include <gtk/gtk.h>
  25. #include "gui_utils.h"
  26. /*
  27.  * CloseShowMessage
  28.  *
  29.  * Routine to close the about dialog window.
  30.  */
  31. static void CloseShowMessage (GtkWidget *widget, gpointer data)
  32. {
  33.     GtkWidget *dialog_widget = (GtkWidget *) data;
  34.     gtk_grab_remove (dialog_widget);
  35.     /* --- Close the widget --- */
  36.     gtk_widget_destroy (dialog_widget);
  37. }
  38. /*
  39.  * ClearShowMessage
  40.  *
  41.  * Release the window "grab" 
  42.  * Clear out the global dialog_window since that
  43.  * is checked when the dialog is brought up.
  44.  */
  45. static void ClearShowMessage (GtkWidget *widget, gpointer data)
  46. {
  47.     gtk_grab_remove (widget);
  48. }
  49. /*
  50.  * ShowMessage
  51.  *
  52.  * Show a popup message to the user.
  53.  */
  54. void ShowMessage (const char *szTitle, const char *szMessage)
  55. {
  56.     GtkWidget *label;
  57.     GtkWidget *button;
  58.     GtkWidget *dialog_window;
  59.     /* --- Create a dialog window --- */
  60.     dialog_window = gtk_dialog_new ();
  61.     gtk_signal_connect (GTK_OBJECT (dialog_window), "destroy",
  62.               GTK_SIGNAL_FUNC (ClearShowMessage),
  63.               NULL);
  64.     /* --- Set the title and add a border --- */
  65.     gtk_window_set_title (GTK_WINDOW (dialog_window), szTitle);
  66.     gtk_container_border_width (GTK_CONTAINER (dialog_window), 0);
  67.     /* --- Create an "Ok" button with the focus --- */
  68.     button = gtk_button_new_with_label ("OK");
  69.     gtk_signal_connect (GTK_OBJECT (button), "clicked",
  70.               GTK_SIGNAL_FUNC (CloseShowMessage),
  71.               dialog_window);
  72.     /* --- Default the "Ok" button --- */
  73.     GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
  74.     gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->action_area), 
  75.               button, TRUE, TRUE, 0);
  76.     gtk_widget_grab_default (button);
  77.     gtk_widget_show (button);
  78.     /* --- Create a descriptive label --- */
  79.     label = gtk_label_new (szMessage);
  80.     /* --- Put some room around the label text --- */
  81.     gtk_misc_set_padding (GTK_MISC (label), 10, 10);
  82.     /* --- Add label to designated area on dialog --- */
  83.     gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->vbox), 
  84.               label, TRUE, TRUE, 0);
  85.     /* --- Show the label --- */
  86.     gtk_widget_show (label);
  87.     /* --- Show the dialog --- */
  88.     gtk_widget_show (dialog_window);
  89.     /* --- Only this window can have actions done. --- */
  90.     gtk_grab_add (dialog_window);
  91. }