comparison Gui/mplayer/gtk/mb.c @ 6146:b9651eb9749e

fix some gtk bug...
author pontscho
date Mon, 20 May 2002 13:56:16 +0000
parents 153fc4ed86ad
children dcf195b784bf
comparison
equal deleted inserted replaced
6145:26cb8736927b 6146:b9651eb9749e
8 8
9 #include "../widgets.h" 9 #include "../widgets.h"
10 #include "mb.h" 10 #include "mb.h"
11 11
12 GtkWidget * gtkMessageBoxText; 12 GtkWidget * gtkMessageBoxText;
13 GtkWidget * MessageBox;
13 14
14 static void on_MessageBox_Ok_released( GtkButton * button,gpointer user_data ) 15 int gtkVMessageBox = 0;
15 { gtk_widget_destroy( MessageBox ); } 16
17 void ShowMessageBox( char * msg )
18 {
19 if ( gtkVMessageBox ) gtkActive( MessageBox );
20 else MessageBox=create_MessageBox( 0 );
21 if ( strlen( msg ) < 20 ) gtk_widget_set_usize( MessageBox,196,-1 );
22 }
23
24 static void on_Ok_released( GtkButton * button,gpointer user_data )
25 { gtkVMessageBox=0; gtk_widget_destroy( MessageBox ); }
26
27 static void on_MessageBox_show( GtkButton * button,gpointer user_data )
28 { gtkVMessageBox=(int)user_data; }
16 29
17 GtkWidget * create_MessageBox( int type ) 30 GtkWidget * create_MessageBox( int type )
18 { 31 {
19 GtkWidget * MessageBox; 32 GtkWidget * MessageBox;
20 GtkWidget * frame1; 33 GtkWidget * frame1;
43 gtk_window_set_policy( GTK_WINDOW( MessageBox ),TRUE,TRUE,FALSE ); 56 gtk_window_set_policy( GTK_WINDOW( MessageBox ),TRUE,TRUE,FALSE );
44 57
45 frame1=gtk_frame_new( NULL ); 58 frame1=gtk_frame_new( NULL );
46 gtk_widget_set_name( frame1,"frame1" ); 59 gtk_widget_set_name( frame1,"frame1" );
47 gtk_widget_ref( frame1 ); 60 gtk_widget_ref( frame1 );
48 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"frame1",frame1,(GtkDestroyNotify ) gtk_widget_unref ); 61 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"frame1",frame1,(GtkDestroyNotify)gtk_widget_unref );
49 gtk_widget_show( frame1 ); 62 gtk_widget_show( frame1 );
50 gtk_container_add( GTK_CONTAINER( MessageBox ),frame1 ); 63 gtk_container_add( GTK_CONTAINER( MessageBox ),frame1 );
51 gtk_container_set_border_width( GTK_CONTAINER( frame1 ),1 ); 64 gtk_container_set_border_width( GTK_CONTAINER( frame1 ),1 );
52 gtk_frame_set_shadow_type( GTK_FRAME( frame1 ),GTK_SHADOW_IN ); 65 gtk_frame_set_shadow_type( GTK_FRAME( frame1 ),GTK_SHADOW_IN );
53 66
54 frame2=gtk_frame_new( NULL ); 67 frame2=gtk_frame_new( NULL );
55 gtk_widget_set_name( frame2,"frame2" ); 68 gtk_widget_set_name( frame2,"frame2" );
56 gtk_widget_ref( frame2 ); 69 gtk_widget_ref( frame2 );
57 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"frame2",frame2,(GtkDestroyNotify ) gtk_widget_unref ); 70 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"frame2",frame2,(GtkDestroyNotify)gtk_widget_unref );
58 gtk_widget_show( frame2 ); 71 gtk_widget_show( frame2 );
59 gtk_container_add( GTK_CONTAINER( frame1 ),frame2 ); 72 gtk_container_add( GTK_CONTAINER( frame1 ),frame2 );
60 gtk_frame_set_shadow_type( GTK_FRAME( frame2 ),GTK_SHADOW_NONE ); 73 gtk_frame_set_shadow_type( GTK_FRAME( frame2 ),GTK_SHADOW_NONE );
61 74
62 frame3=gtk_frame_new( NULL ); 75 frame3=gtk_frame_new( NULL );
63 gtk_widget_set_name( frame3,"frame3" ); 76 gtk_widget_set_name( frame3,"frame3" );
64 gtk_widget_ref( frame3 ); 77 gtk_widget_ref( frame3 );
65 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"frame3",frame3,(GtkDestroyNotify ) gtk_widget_unref ); 78 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"frame3",frame3,(GtkDestroyNotify)gtk_widget_unref );
66 gtk_widget_show( frame3 ); 79 gtk_widget_show( frame3 );
67 gtk_container_add( GTK_CONTAINER( frame2 ),frame3 ); 80 gtk_container_add( GTK_CONTAINER( frame2 ),frame3 );
68 gtk_frame_set_shadow_type( GTK_FRAME( frame3 ),GTK_SHADOW_ETCHED_OUT ); 81 gtk_frame_set_shadow_type( GTK_FRAME( frame3 ),GTK_SHADOW_ETCHED_OUT );
69 82
70 frame4=gtk_frame_new( NULL ); 83 frame4=gtk_frame_new( NULL );
71 gtk_widget_set_name( frame4,"frame4" ); 84 gtk_widget_set_name( frame4,"frame4" );
72 gtk_widget_ref( frame4 ); 85 gtk_widget_ref( frame4 );
73 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"frame4",frame4,(GtkDestroyNotify ) gtk_widget_unref ); 86 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"frame4",frame4,(GtkDestroyNotify)gtk_widget_unref );
74 gtk_widget_show( frame4 ); 87 gtk_widget_show( frame4 );
75 gtk_container_add( GTK_CONTAINER( frame3 ),frame4 ); 88 gtk_container_add( GTK_CONTAINER( frame3 ),frame4 );
76 gtk_frame_set_shadow_type( GTK_FRAME( frame4 ),GTK_SHADOW_NONE ); 89 gtk_frame_set_shadow_type( GTK_FRAME( frame4 ),GTK_SHADOW_NONE );
77 90
78 vbox1=gtk_vbox_new( FALSE,0 ); 91 vbox1=gtk_vbox_new( FALSE,0 );
79 gtk_widget_set_name( vbox1,"vbox1" ); 92 gtk_widget_set_name( vbox1,"vbox1" );
80 gtk_widget_ref( vbox1 ); 93 gtk_widget_ref( vbox1 );
81 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"vbox1",vbox1,(GtkDestroyNotify ) gtk_widget_unref ); 94 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"vbox1",vbox1,(GtkDestroyNotify)gtk_widget_unref );
82 gtk_widget_show( vbox1 ); 95 gtk_widget_show( vbox1 );
83 gtk_container_add( GTK_CONTAINER( frame4 ),vbox1 ); 96 gtk_container_add( GTK_CONTAINER( frame4 ),vbox1 );
84 97
85 hbox1=gtk_hbox_new( FALSE,0 ); 98 hbox1=gtk_hbox_new( FALSE,0 );
86 gtk_widget_set_name( hbox1,"hbox1" ); 99 gtk_widget_set_name( hbox1,"hbox1" );
87 gtk_widget_ref( hbox1 ); 100 gtk_widget_ref( hbox1 );
88 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"hbox1",hbox1,(GtkDestroyNotify ) gtk_widget_unref ); 101 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"hbox1",hbox1,(GtkDestroyNotify)gtk_widget_unref );
89 gtk_widget_show( hbox1 ); 102 gtk_widget_show( hbox1 );
90 gtk_box_pack_start( GTK_BOX( vbox1 ),hbox1,TRUE,TRUE,0 ); 103 gtk_box_pack_start( GTK_BOX( vbox1 ),hbox1,TRUE,TRUE,0 );
91 104
92 pixmapstyle=gtk_widget_get_style( MessageBox ); 105 pixmapstyle=gtk_widget_get_style( MessageBox );
93 106
94 pixmapwid=gdk_pixmap_colormap_create_from_xpm_d( MessageBox->window,gdk_colormap_get_system( ),&mask,&pixmapstyle->bg[GTK_STATE_NORMAL],(gchar ** )warning_xpm ); 107 pixmapwid=gdk_pixmap_colormap_create_from_xpm_d( MessageBox->window,gdk_colormap_get_system(),&mask,&pixmapstyle->bg[GTK_STATE_NORMAL],(gchar ** )warning_xpm );
95 WarningPixmap=gtk_pixmap_new( pixmapwid,mask ); 108 WarningPixmap=gtk_pixmap_new( pixmapwid,mask );
96 pixmapwid=gdk_pixmap_colormap_create_from_xpm_d( MessageBox->window,gdk_colormap_get_system( ),&mask,&pixmapstyle->bg[GTK_STATE_NORMAL],(gchar ** )error_xpm ); 109 pixmapwid=gdk_pixmap_colormap_create_from_xpm_d( MessageBox->window,gdk_colormap_get_system(),&mask,&pixmapstyle->bg[GTK_STATE_NORMAL],(gchar ** )error_xpm );
97 ErrorPixmap=gtk_pixmap_new( pixmapwid,mask ); 110 ErrorPixmap=gtk_pixmap_new( pixmapwid,mask );
98 111
99 gtk_widget_set_name( WarningPixmap,"pixmap1" ); 112 gtk_widget_set_name( WarningPixmap,"pixmap1" );
100 gtk_widget_ref( WarningPixmap ); 113 gtk_widget_ref( WarningPixmap );
101 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"pixmap1",WarningPixmap,(GtkDestroyNotify )gtk_widget_unref ); 114 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"pixmap1",WarningPixmap,(GtkDestroyNotify )gtk_widget_unref );
111 gtk_widget_set_usize( ErrorPixmap,55,-2 ); 124 gtk_widget_set_usize( ErrorPixmap,55,-2 );
112 125
113 gtkMessageBoxText=gtk_label_new( "Text jol. Ha ezt megerted,akkor neked nagyon jo a magyar tudasod,te." ); 126 gtkMessageBoxText=gtk_label_new( "Text jol. Ha ezt megerted,akkor neked nagyon jo a magyar tudasod,te." );
114 gtk_widget_set_name( gtkMessageBoxText,"gtkMessageBoxText" ); 127 gtk_widget_set_name( gtkMessageBoxText,"gtkMessageBoxText" );
115 gtk_widget_ref( gtkMessageBoxText ); 128 gtk_widget_ref( gtkMessageBoxText );
116 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"gtkMessageBoxText",gtkMessageBoxText,(GtkDestroyNotify ) gtk_widget_unref ); 129 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"gtkMessageBoxText",gtkMessageBoxText,(GtkDestroyNotify)gtk_widget_unref );
117 gtk_widget_show( gtkMessageBoxText ); 130 gtk_widget_show( gtkMessageBoxText );
118 gtk_box_pack_start( GTK_BOX( hbox1 ),gtkMessageBoxText,TRUE,TRUE,0 ); 131 gtk_box_pack_start( GTK_BOX( hbox1 ),gtkMessageBoxText,TRUE,TRUE,0 );
119 gtk_label_set_justify( GTK_LABEL( gtkMessageBoxText ),GTK_JUSTIFY_FILL ); 132 gtk_label_set_justify( GTK_LABEL( gtkMessageBoxText ),GTK_JUSTIFY_FILL );
120 gtk_label_set_line_wrap( GTK_LABEL( gtkMessageBoxText ),TRUE ); 133 gtk_label_set_line_wrap( GTK_LABEL( gtkMessageBoxText ),FALSE );
121 134
122 hseparator1=gtk_hseparator_new( ); 135 hseparator1=gtk_hseparator_new();
123 gtk_widget_set_name( hseparator1,"hseparator1" ); 136 gtk_widget_set_name( hseparator1,"hseparator1" );
124 gtk_widget_ref( hseparator1 ); 137 gtk_widget_ref( hseparator1 );
125 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"hseparator1",hseparator1,(GtkDestroyNotify ) gtk_widget_unref ); 138 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"hseparator1",hseparator1,(GtkDestroyNotify)gtk_widget_unref );
126 gtk_widget_show( hseparator1 ); 139 gtk_widget_show( hseparator1 );
127 gtk_box_pack_start( GTK_BOX( vbox1 ),hseparator1,FALSE,FALSE,0 ); 140 gtk_box_pack_start( GTK_BOX( vbox1 ),hseparator1,FALSE,FALSE,0 );
128 gtk_widget_set_usize( hseparator1,-2,9 ); 141 gtk_widget_set_usize( hseparator1,-2,9 );
129 142
130 hbuttonbox1=gtk_hbutton_box_new( ); 143 hbuttonbox1=gtk_hbutton_box_new();
131 gtk_widget_set_name( hbuttonbox1,"hbuttonbox1" ); 144 gtk_widget_set_name( hbuttonbox1,"hbuttonbox1" );
132 gtk_widget_ref( hbuttonbox1 ); 145 gtk_widget_ref( hbuttonbox1 );
133 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"hbuttonbox1",hbuttonbox1,(GtkDestroyNotify ) gtk_widget_unref ); 146 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"hbuttonbox1",hbuttonbox1,(GtkDestroyNotify)gtk_widget_unref );
134 gtk_widget_show( hbuttonbox1 ); 147 gtk_widget_show( hbuttonbox1 );
135 gtk_widget_set_usize( hbuttonbox1,-2,25 ); 148 gtk_widget_set_usize( hbuttonbox1,-2,25 );
136 gtk_button_box_set_child_size( GTK_BUTTON_BOX( hbuttonbox1 ),75,0 ); 149 gtk_button_box_set_child_size( GTK_BUTTON_BOX( hbuttonbox1 ),75,0 );
137 gtk_box_pack_start( GTK_BOX( vbox1 ),hbuttonbox1,FALSE,FALSE,0 ); 150 gtk_box_pack_start( GTK_BOX( vbox1 ),hbuttonbox1,FALSE,FALSE,0 );
138 151
139 Ok=gtk_button_new_with_label( MSGTR_Ok ); 152 Ok=gtk_button_new_with_label( MSGTR_Ok );
140 gtk_widget_set_name( Ok,MSGTR_Ok ); 153 gtk_widget_set_name( Ok,MSGTR_Ok );
141 gtk_widget_ref( Ok ); 154 gtk_widget_ref( Ok );
142 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),MSGTR_Ok,Ok,(GtkDestroyNotify ) gtk_widget_unref ); 155 gtk_object_set_data_full( GTK_OBJECT( MessageBox ),MSGTR_Ok,Ok,(GtkDestroyNotify)gtk_widget_unref );
143 gtk_widget_show( Ok ); 156 gtk_widget_show( Ok );
144 gtk_container_add( GTK_CONTAINER( hbuttonbox1 ),Ok ); 157 gtk_container_add( GTK_CONTAINER( hbuttonbox1 ),Ok );
145 gtk_widget_add_accelerator( Ok,"released",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE ); 158 gtk_widget_add_accelerator( Ok,"released",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE );
146 gtk_widget_add_accelerator( Ok,"released",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE ); 159 gtk_widget_add_accelerator( Ok,"released",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE );
147 160
148 gtk_signal_connect( GTK_OBJECT( MessageBox ),"destroy_event",GTK_SIGNAL_FUNC( on_MessageBox_Ok_released ),NULL ); 161 gtk_signal_connect( GTK_OBJECT( MessageBox ),"destroy_event",GTK_SIGNAL_FUNC( on_Ok_released ),NULL );
149 gtk_signal_connect( GTK_OBJECT( Ok ),"released",GTK_SIGNAL_FUNC( on_MessageBox_Ok_released ),NULL ); 162 gtk_signal_connect( GTK_OBJECT( MessageBox ),"show",GTK_SIGNAL_FUNC( on_MessageBox_show ),1 );
163 gtk_signal_connect( GTK_OBJECT( MessageBox ),"hide",GTK_SIGNAL_FUNC( on_MessageBox_show ),0 );
164 gtk_signal_connect( GTK_OBJECT( Ok ),"released",GTK_SIGNAL_FUNC( on_Ok_released ),NULL );
150 165
151 gtk_window_add_accel_group( GTK_WINDOW( MessageBox ),accel_group ); 166 gtk_window_add_accel_group( GTK_WINDOW( MessageBox ),accel_group );
152 167
153 return MessageBox; 168 return MessageBox;
154 } 169 }