Mercurial > mplayer.hg
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 } |