problem with gtk_widget_destroy
- From: "Yun Jae Sig" <JSIGYUN chollian net>
- To: <gtk-app-devel-list gnome org>
- Subject: problem with gtk_widget_destroy
- Date: Tue, 26 Feb 2002 11:38:20 +0900 (KST)
I'm developing software by gtk+-1.2.10.
I have problem in using gtk.
I created container widget and then packed several widgets in it.
When I destroy container widget by gtk_widget_destroy, memory was
not freed.
Widget disappeared in screen, but memory was never freed.
Source code is following....
GtkWidget* Create_MainMenu_Interface ( GtkWidget *MainWindow )
{
GtkWidget *MainVertical_Box;
GtkWidget *Sound_Led;
GtkWidget *Button_Widget;
GtkWidget *FixedWidget;
GtkWidget *Mute_EventBox;
GtkWidget *Mute_HBox;
GtkWidget *Time_Display;
GtkWidget *Money_Display;
GtkWidget *Balance_Display;
GtkWidget *Mileage_Display;
GdkPixbufAnimation *MainMenu_Widget_Ani_Gif;
GList *MainMenu_Widget_Ani_Frame_List;
GList *MainMenu_Widget_Ani_Frame_First;
GdkPixbufFrame *MainMenu_Widget_Ani_Frame;
GdkPixbuf *MainMenu_Widget_Ani_Pixbuf;
static gint MainMenu_Widget_THdl;
gint *pMainMenu_Widget_THdl;
GtkWidget *MainMenu_Widget_Back;
GtkWidget *MainMenu_Widget_Event;
static gint MainMenu_Bottom_1_THdl;
gint *pMainMenu_Bottom_1_THdl;
GtkWidget *MainMenu_Banner1_Back;
GtkWidget *MainMenu_Banner1_Event;
static gint MainMenu_Bottom_2_THdl;
gint *pMainMenu_Bottom_2_THdl;
GtkWidget *MainMenu_Banner2_Back;
GtkWidget *MainMenu_Banner2_Event;
static gint MainMenu_Bottom_3_THdl;
gint *pMainMenu_Bottom_3_THdl;
GtkWidget *MainMenu_Banner3_Back;
GtkWidget *MainMenu_Banner3_Event;
gchar szFileName[255];
GdkColor clr_fg;
GtkStyle* pStyle;
MainVertical_Box = gtk_vbox_new (FALSE, 0);
////////////////////// 메인메뉴 상단 이미지 픽스드 생성 및 패킹 ////////////////////////////////////
ImageFixed_Create_And_Packing(MainVertical_Box,"002010601", "/002/002010601",MainWindow);
ImageButton_Create_And_Packing( "002010601", "002030501", "/002/002030501",
"/002/002030502", 493, 16, MainWindow );
ImageButton_Create_And_Packing( "002010601", "002040501", "/002/002040501",
"/002/002040502", 599, 16, MainWindow );
ImageButton_Create_And_Packing( "002010601", "002050501", "/002/002050501",
"/002/002050502", 706, 16, MainWindow );
ImageButton_Create_And_Packing( "002010601", "002060501", "/002/002060501",
"/002/002060502", 812, 16, MainWindow );
ImageButton_Create_And_Packing( "002010601", "002070501", "/002/002070501",
"/002/002070502", 918, 16, MainWindow );
Button_Widget = get_widget ( MainWindow, "002030501" );
gtk_signal_connect (GTK_OBJECT (Button_Widget), "button_release_event",
GTK_SIGNAL_FUNC (On_MainMenu_Login_Button_clicked), MainWindow);
Button_Widget = get_widget ( MainWindow, "002040501" );
gtk_signal_connect (GTK_OBJECT (Button_Widget), "button_release_event",
GTK_SIGNAL_FUNC (On_MainMenu_LangChange_Button_clicked), MainWindow);
Button_Widget = get_widget ( MainWindow, "002050501" );
gtk_signal_connect (GTK_OBJECT (Button_Widget), "button_release_event",
GTK_SIGNAL_FUNC (On_MainMenu_PublicPhone_Button_clicked), MainWindow);
Button_Widget = get_widget ( MainWindow, "002060501" );
gtk_signal_connect (GTK_OBJECT (Button_Widget), "button_release_event",
GTK_SIGNAL_FUNC (On_MainMenu_Help_Button_clicked), MainWindow);
Button_Widget = get_widget ( MainWindow, "002070501" );
gtk_signal_connect (GTK_OBJECT (Button_Widget), "button_release_event",
GTK_SIGNAL_FUNC (On_MainMenu_Exit_Button_clicked), MainWindow);
/////////////////// 메인메뉴 클라이언트 사운드 볼륨 조정 버튼 생성 및 패킹 /////////////////////////
ImageFixed_Create_And_Packing_ImageFixed( "002010601", "002090601", "/002/002090601",
259, 530, MainWindow );
Image_Create_And_Packing_Fixed( "002090601", "Sound_Led_1", "/002/002100601",
6, 13, MainWindow );
Image_Create_And_Packing_Fixed( "002090601", "Sound_Led_2", "/002/002100602",
41, 13, MainWindow );
Image_Create_And_Packing_Fixed( "002090601", "Sound_Led_3", "/002/002100603",
76, 13, MainWindow );
Image_Create_And_Packing_Fixed( "002090601", "Sound_Led_4", "/002/002100604",
111, 13, MainWindow );
Image_Create_And_Packing_Fixed( "002090601", "Sound_Led_5", "/002/002100605",
146, 13, MainWindow );
if ( Sound_Vol >= 60 )
{
Sound_Led = get_widget ( MainWindow, "Sound_Led_1" );
gtk_widget_show( Sound_Led );
}
else
{
Sound_Led = get_widget ( MainWindow, "Sound_Led_1" );
gtk_widget_hide( Sound_Led );
}
if ( Sound_Vol >= 70 )
{
Sound_Led = get_widget ( MainWindow, "Sound_Led_2" );
gtk_widget_show( Sound_Led );
}
else
{
Sound_Led = get_widget ( MainWindow, "Sound_Led_2" );
gtk_widget_hide( Sound_Led );
}
if ( Sound_Vol >= 80 )
{
Sound_Led = get_widget ( MainWindow, "Sound_Led_3" );
gtk_widget_show( Sound_Led );
}
else
{
Sound_Led = get_widget ( MainWindow, "Sound_Led_3" );
gtk_widget_hide( Sound_Led );
}
if ( Sound_Vol >= 90 )
{
Sound_Led = get_widget ( MainWindow, "Sound_Led_4" );
gtk_widget_show( Sound_Led );
}
else
{
Sound_Led = get_widget ( MainWindow, "Sound_Led_4" );
gtk_widget_hide( Sound_Led );
}
if ( Sound_Vol >= 100 )
{
Sound_Led = get_widget ( MainWindow, "Sound_Led_5" );
gtk_widget_show( Sound_Led );
}
else
{
Sound_Led = get_widget ( MainWindow, "Sound_Led_5" );
gtk_widget_hide( Sound_Led );
}
ImageButton_Create_And_Packing( "002010601", "002110501", "/002/002110501",
"/002/002110502", 259, 565, MainWindow );
FixedWidget = get_widget( MainWindow, "002010601" );
MpegPlay_GtkSocket = gtk_socket_new();
gtk_widget_show( MpegPlay_GtkSocket );
gtk_image_fixed_put( GTK_IMAGE_FIXED( FixedWidget ), MpegPlay_GtkSocket, 94, 211 );
gtk_widget_set_uposition( MpegPlay_GtkSocket, 94, 211 );
gtk_widget_set_usize( MpegPlay_GtkSocket, 320, 240 );
Mute_EventBox = gtk_event_box_new();
gtk_widget_ref( Mute_EventBox );
gtk_object_set_data_full( GTK_OBJECT( MainWindow ), "Mute_EventBox", Mute_EventBox,
(GtkDestroyNotify) gtk_widget_unref );
gtk_widget_show( Mute_EventBox );
gtk_image_fixed_put( GTK_IMAGE_FIXED( FixedWidget ), Mute_EventBox, 326, 565 );
gtk_widget_set_uposition( Mute_EventBox, 326, 565 );
gtk_widget_set_usize( Mute_EventBox, 50, 45 );
Mute_HBox = gtk_hbox_new (FALSE, 0);
gtk_widget_ref (Mute_HBox);
gtk_object_set_data_full (GTK_OBJECT (MainWindow), "Mute_HBox", Mute_HBox,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (Mute_HBox);
gtk_container_add (GTK_CONTAINER (Mute_EventBox), Mute_HBox);
ImageFixed_Create_And_Packing_End( Mute_HBox, "Sound_Mute_R_Btn", "/002/002120501", MainWindow);
ImageFixed_Create_And_Packing_End( Mute_HBox, "Sound_Mute_P_Btn", "/002/002120502", MainWindow);
if ( Sound_Mute )
{
FixedWidget = get_widget( MainWindow, "Sound_Mute_P_Btn" );
gtk_widget_show( FixedWidget );
FixedWidget = get_widget( MainWindow, "Sound_Mute_R_Btn" );
gtk_widget_hide( FixedWidget );
}
else
{
FixedWidget = get_widget( MainWindow, "Sound_Mute_R_Btn" );
gtk_widget_show( FixedWidget );
FixedWidget = get_widget( MainWindow, "Sound_Mute_P_Btn" );
gtk_widget_hide( FixedWidget );
}
ImageButton_Create_And_Packing( "002010601", "002130501", "/002/002130501",
"/002/002130502", 376, 565, MainWindow );
//////////////////// 메인메뉴 클라이언트 부분 생성 및 패킹( 메인메뉴 버튼들 ) //////////////////////
ImageButton_Create_And_Packing( "002010601", "002140501", "/002/002140501",
"/002/002140502", 562, 176, MainWindow );
ImageButton_Create_And_Packing( "002010601", "002150501", "/002/002150501",
"/002/002150502", 793, 176, MainWindow );
ImageButton_Create_And_Packing( "002010601", "002160501", "/002/002160501",
"/002/002160502", 562, 268, MainWindow );
ImageButton_Create_And_Packing( "002010601", "002170501", "/002/002170501",
"/002/002170502", 793, 268, MainWindow );
ImageButton_Create_And_Packing( "002010601", "002180501", "/002/002180501",
"/002/002180502", 562, 360, MainWindow );
ImageButton_Create_And_Packing( "002010601", "002190501", "/002/002190501",
"/002/002190502", 793, 360, MainWindow );
ImageButton_Create_And_Packing( "002010601", "002200501", "/002/002200501",
"/002/002200502", 562, 452, MainWindow );
ImageButton_Create_And_Packing( "002010601", "002210501", "/002/002210501",
"/002/002210502", 793, 452, MainWindow );
ImageButton_Create_And_Packing( "002010601", "002220501", "/002/002220501",
"/002/002220502", 562, 544, MainWindow );
ImageButton_Create_And_Packing( "002010601", "002230501", "/002/002230501",
"/002/002230502", 793, 544, MainWindow );
Button_Widget = get_widget ( MainWindow, "002140501" ); // 음성통화버튼.
gtk_signal_connect (GTK_OBJECT (Button_Widget), "button_release_event",
GTK_SIGNAL_FUNC (On_MainMenu_PublicPhone_Button_clicked), MainWindow);
Button_Widget = get_widget ( MainWindow, "002150501" ); // 정보마당버튼.
gtk_signal_connect (GTK_OBJECT (Button_Widget), "button_release_event",
GTK_SIGNAL_FUNC (On_MainMenu_InfoMain_Button_clicked), MainWindow);
Button_Widget = get_widget ( MainWindow, "002160501" ); // 화상서비스버튼.
gtk_signal_connect (GTK_OBJECT (Button_Widget), "button_release_event",
GTK_SIGNAL_FUNC (On_MainMenu_PictureMain_Button_clicked), MainWindow);
Button_Widget = get_widget ( MainWindow, "002170501" ); // 인터넷버튼.
gtk_signal_connect (GTK_OBJECT (Button_Widget), "button_release_event",
GTK_SIGNAL_FUNC (On_MainMenu_Internet_Button_clicked), MainWindow);
Button_Widget = get_widget ( MainWindow, "002180501" ); // OberseasCall버튼.
gtk_signal_connect (GTK_OBJECT (Button_Widget), "button_release_event",
GTK_SIGNAL_FUNC (On_MainMenu_OberseasCall_Button_clicked), MainWindow);
Button_Widget = get_widget ( MainWindow, "002190501" ); // 티켓몌매버튼.
gtk_signal_connect (GTK_OBJECT (Button_Widget), "button_release_event",
GTK_SIGNAL_FUNC (On_MainMenu_Ticket_Button_clicked), MainWindow);
Button_Widget = get_widget ( MainWindow, "002200501" ); // 전자화폐버튼.
gtk_signal_connect (GTK_OBJECT (Button_Widget), "button_release_event",
GTK_SIGNAL_FUNC (On_MainMenu_EMoney_Button_clicked), MainWindow);
Button_Widget = get_widget ( MainWindow, "002210501" ); // 모바일서비스버튼.
gtk_signal_connect (GTK_OBJECT (Button_Widget), "button_release_event",
GTK_SIGNAL_FUNC (On_MainMenu_Mobile_Button_clicked), MainWindow);
Button_Widget = get_widget ( MainWindow, "002220501" ); // 노트북연결버튼.
gtk_signal_connect (GTK_OBJECT (Button_Widget), "button_release_event",
GTK_SIGNAL_FUNC (On_MainMenu_NoteBook_Button_clicked), MainWindow);
Button_Widget = get_widget ( MainWindow, "002230501" ); // 외국인정보버튼.
gtk_signal_connect (GTK_OBJECT (Button_Widget), "button_release_event",
GTK_SIGNAL_FUNC (On_MainMenu_Foreigner_Button_clicked), MainWindow);
///////////////////////////////// 각각의 버튼들에 대한 시그널 등록 /////////////////////////////////
Button_Widget = get_widget( MainWindow, "002110501");
gtk_signal_connect (GTK_OBJECT (Button_Widget), "button_release_event",
GTK_SIGNAL_FUNC (On_Sound_Vol_Minus_Button_clicked), MainWindow);
Button_Widget = get_widget( MainWindow, "Mute_EventBox");
gtk_signal_connect (GTK_OBJECT (Button_Widget), "button_release_event",
GTK_SIGNAL_FUNC (On_Sound_Vol_Mute_Button_clicked), MainWindow);
Button_Widget = get_widget( MainWindow, "002130501");
gtk_signal_connect (GTK_OBJECT (Button_Widget), "button_release_event",
GTK_SIGNAL_FUNC (On_Sound_Vol_Plus_Button_clicked), MainWindow);
////////////////////////////////////////////////////////////////////////////////////////////////////
FixedWidget = get_widget( MainWindow, "002010601");
MainMenu_Widget_Event = gtk_event_box_new();
gtk_widget_ref (MainMenu_Widget_Event);
gtk_object_set_data_full (GTK_OBJECT (MainWindow), "Top_Widget_Event", MainMenu_Widget_Event,
(GtkDestroyNotify) gtk_widget_unref );
gtk_widget_show (MainMenu_Widget_Event);
gtk_image_fixed_put( GTK_IMAGE_FIXED( FixedWidget ), MainMenu_Widget_Event, 7, 7 );
gtk_widget_set_uposition( MainMenu_Widget_Event, 7, 7 );
gtk_widget_set_usize( MainMenu_Widget_Event, 468, 60 );
// 배너 클릭 이벤트에 대한 시그널 등록 하는 곳.
MainMenu_Widget_Back = gtk_frame_new( NULL );
gtk_widget_ref (MainMenu_Widget_Back);
gtk_object_set_data_full (GTK_OBJECT (MainWindow), "Top_Widget_Back", MainMenu_Widget_Back,
(GtkDestroyNotify) gtk_widget_unref );
gtk_widget_show (MainMenu_Widget_Back);
gtk_container_add( GTK_CONTAINER( MainMenu_Widget_Event ), MainMenu_Widget_Back );
ExpandResourceFilePath( "/002/002020101", szFileName, sizeof szFileName );
MainMenu_Widget_Ani_Gif = gdk_pixbuf_animation_new_from_file( szFileName );
MainMenu_Widget_Ani_Frame_List = gdk_pixbuf_animation_get_frames( MainMenu_Widget_Ani_Gif );
MainMenu_Widget_Ani_Frame_First = gdk_pixbuf_animation_get_frames( MainMenu_Widget_Ani_Gif );
MainMenu_Widget_Ani_Frame = MainMenu_Widget_Ani_Frame_List->data;
MainMenu_Widget_Ani_Pixbuf = gdk_pixbuf_frame_get_pixbuf( MainMenu_Widget_Ani_Frame );
Top_Ani_Frame_Back = gdk_pixbuf_new( GDK_COLORSPACE_RGB, FALSE, 8,
gdk_pixbuf_get_width( MainMenu_Widget_Ani_Pixbuf ),
gdk_pixbuf_get_height( MainMenu_Widget_Ani_Pixbuf ));
gtk_object_set_data(GTK_OBJECT (MainWindow), "Top_Widget_Ani_Frame_List",
MainMenu_Widget_Ani_Frame_List );
gtk_object_set_data(GTK_OBJECT (MainWindow), "Top_Widget_Ani_Frame_First",
MainMenu_Widget_Ani_Frame_First );
if(!strcmp(Country_Code, "kor" ) )
{
MainMenu_Widget_THdl = gtk_timeout_add( 10, On_Global_Top_kor_Banner_Animation_Gif_Image,
"2");
}
else
{
MainMenu_Widget_THdl = gtk_timeout_add( 10, On_Global_Top_eng_Banner_Animation_Gif_Image,
"2");
}
pMainMenu_Widget_THdl = &MainMenu_Widget_THdl;
gtk_object_set_data(GTK_OBJECT (MainWindow), "Top_Widget_THdl", pMainMenu_Widget_THdl);
////////////////////////////////////////// 하단 상랑의 클릭 ///////////////////////////////////////////////
MainMenu_Banner1_Event = gtk_event_box_new();
gtk_widget_ref (MainMenu_Banner1_Event);
gtk_object_set_data_full (GTK_OBJECT (MainWindow), "Bottom_1_Ani_Event", MainMenu_Banner1_Event,
(GtkDestroyNotify) gtk_widget_unref );
gtk_widget_show (MainMenu_Banner1_Event);
gtk_image_fixed_put( GTK_IMAGE_FIXED( FixedWidget ), MainMenu_Banner1_Event, 7, 700 );
gtk_widget_set_uposition( MainMenu_Banner1_Event, 7, 700 );
gtk_widget_set_usize( MainMenu_Banner1_Event, 100, 60 );
// 배너 클릭 이벤트에 대한 시그널 등록 하는 곳.
gtk_signal_connect (GTK_OBJECT (MainMenu_Banner1_Event), "button_release_event",
GTK_SIGNAL_FUNC (On_LoveClick_Image_clicked), &g_nServicePageNum);
MainMenu_Banner1_Back = gtk_frame_new( NULL );
gtk_widget_ref (MainMenu_Banner1_Back);
gtk_object_set_data_full (GTK_OBJECT (MainWindow), "Bottom_1_Ani_Back", MainMenu_Banner1_Back,
(GtkDestroyNotify) gtk_widget_unref );
gtk_widget_show (MainMenu_Banner1_Back);
gtk_container_add( GTK_CONTAINER( MainMenu_Banner1_Event ), MainMenu_Banner1_Back );
ExpandResourceFilePath( "/002/002240601", szFileName, sizeof szFileName );
MainMenu_Widget_Ani_Gif = gdk_pixbuf_animation_new_from_file( szFileName );
MainMenu_Widget_Ani_Frame_List = gdk_pixbuf_animation_get_frames( MainMenu_Widget_Ani_Gif );
MainMenu_Widget_Ani_Frame_First = gdk_pixbuf_animation_get_frames( MainMenu_Widget_Ani_Gif );
MainMenu_Widget_Ani_Frame = MainMenu_Widget_Ani_Frame_List->data;
MainMenu_Widget_Ani_Pixbuf = gdk_pixbuf_frame_get_pixbuf( MainMenu_Widget_Ani_Frame );
Bottom_1_Ani_Frame_Back = gdk_pixbuf_new( GDK_COLORSPACE_RGB, FALSE, 8,
gdk_pixbuf_get_width( MainMenu_Widget_Ani_Pixbuf ),
gdk_pixbuf_get_height( MainMenu_Widget_Ani_Pixbuf ));
gtk_object_set_data(GTK_OBJECT (MainWindow), "Bottom_1_Ani_Frame_List",
MainMenu_Widget_Ani_Frame_List );
gtk_object_set_data(GTK_OBJECT (MainWindow), "Bottom_1_Ani_Frame_First",
MainMenu_Widget_Ani_Frame_First );
if(!strcmp(Country_Code, "kor" ) )
{
MainMenu_Bottom_1_THdl = gtk_timeout_add( 10,
On_Global_Bottom_kor_1_Banner_Animation_Gif_Image, "2");
}
else
{
MainMenu_Bottom_1_THdl = gtk_timeout_add( 10,
On_Global_Bottom_eng_1_Banner_Animation_Gif_Image, "2");
}
pMainMenu_Bottom_1_THdl = &MainMenu_Bottom_1_THdl;
gtk_object_set_data(GTK_OBJECT (MainWindow), "Bottom_1_Ani_THdl", pMainMenu_Bottom_1_THdl);
///////////////////////////////////////////// 하단 이벤트 배너 ///////////////////////////////////////
MainMenu_Banner2_Event = gtk_event_box_new();
gtk_widget_ref (MainMenu_Banner2_Event);
gtk_object_set_data_full (GTK_OBJECT (MainWindow), "Bottom_2_Ani_Event", MainMenu_Banner2_Event,
(GtkDestroyNotify) gtk_widget_unref );
gtk_widget_show (MainMenu_Banner2_Event);
gtk_image_fixed_put( GTK_IMAGE_FIXED( FixedWidget ), MainMenu_Banner2_Event, 119, 700 );
gtk_widget_set_uposition( MainMenu_Banner2_Event, 119, 700 );
gtk_widget_set_usize( MainMenu_Banner2_Event, 468, 60 );
// 배너 클릭 이벤트에 대한 시그널 등록 하는 곳.
MainMenu_Banner2_Back = gtk_frame_new( NULL );
gtk_widget_ref (MainMenu_Banner2_Back);
gtk_object_set_data_full (GTK_OBJECT (MainWindow), "Bottom_2_Ani_Back", MainMenu_Banner2_Back,
(GtkDestroyNotify) gtk_widget_unref );
gtk_widget_show (MainMenu_Banner2_Back);
gtk_container_add( GTK_CONTAINER( MainMenu_Banner2_Event ), MainMenu_Banner2_Back );
ExpandResourceFilePath( "/002/002250201", szFileName, sizeof szFileName );
MainMenu_Widget_Ani_Gif = gdk_pixbuf_animation_new_from_file( szFileName );
MainMenu_Widget_Ani_Frame_List = gdk_pixbuf_animation_get_frames( MainMenu_Widget_Ani_Gif );
MainMenu_Widget_Ani_Frame_First = gdk_pixbuf_animation_get_frames( MainMenu_Widget_Ani_Gif );
MainMenu_Widget_Ani_Frame = MainMenu_Widget_Ani_Frame_List->data;
MainMenu_Widget_Ani_Pixbuf = gdk_pixbuf_frame_get_pixbuf( MainMenu_Widget_Ani_Frame );
Bottom_2_Ani_Frame_Back = gdk_pixbuf_new( GDK_COLORSPACE_RGB, FALSE, 8,
gdk_pixbuf_get_width( MainMenu_Widget_Ani_Pixbuf ),
gdk_pixbuf_get_height( MainMenu_Widget_Ani_Pixbuf ));
gtk_object_set_data(GTK_OBJECT (MainWindow), "Bottom_2_Ani_Frame_List",
MainMenu_Widget_Ani_Frame_List );
gtk_object_set_data(GTK_OBJECT (MainWindow), "Bottom_2_Ani_Frame_First",
MainMenu_Widget_Ani_Frame_First );
if(!strcmp(Country_Code, "kor" ) )
{
MainMenu_Bottom_2_THdl = gtk_timeout_add( 10,
On_Global_Bottom_kor_2_Banner_Animation_Gif_Image, "2");
}
else
{
MainMenu_Bottom_2_THdl = gtk_timeout_add( 10,
On_Global_Bottom_eng_2_Banner_Animation_Gif_Image, "2");
}
pMainMenu_Bottom_2_THdl = &MainMenu_Bottom_2_THdl;
gtk_object_set_data(GTK_OBJECT (MainWindow), "Bottom_2_Ani_THdl", pMainMenu_Bottom_2_THdl);
//////////////////////////////////////// 하단 도움 말 /////////////////////////////////////////////
MainMenu_Banner3_Event = gtk_event_box_new();
gtk_widget_ref (MainMenu_Banner3_Event);
gtk_object_set_data_full (GTK_OBJECT (MainWindow), "Bottom_3_Ani_Event", MainMenu_Banner3_Event,
(GtkDestroyNotify) gtk_widget_unref );
gtk_widget_show (MainMenu_Banner3_Event);
gtk_image_fixed_put( GTK_IMAGE_FIXED( FixedWidget ), MainMenu_Banner3_Event, 600, 705 );
gtk_widget_set_uposition( MainMenu_Banner3_Event, 600, 705 );
gtk_widget_set_usize( MainMenu_Banner3_Event, 409, 49 );
// 배너 클릭 이벤트에 대한 시그널 등록 하는 곳.
MainMenu_Banner3_Back = gtk_frame_new( NULL );
gtk_widget_ref (MainMenu_Banner3_Back);
gtk_object_set_data_full (GTK_OBJECT (MainWindow), "Bottom_3_Ani_Back", MainMenu_Banner3_Back,
(GtkDestroyNotify) gtk_widget_unref );
gtk_widget_show (MainMenu_Banner3_Back);
gtk_container_add( GTK_CONTAINER( MainMenu_Banner3_Event ), MainMenu_Banner3_Back );
ExpandResourceFilePath( "/002/002260601", szFileName, sizeof szFileName );
MainMenu_Widget_Ani_Gif = gdk_pixbuf_animation_new_from_file( szFileName );
MainMenu_Widget_Ani_Frame_List = gdk_pixbuf_animation_get_frames( MainMenu_Widget_Ani_Gif );
MainMenu_Widget_Ani_Frame_First = gdk_pixbuf_animation_get_frames( MainMenu_Widget_Ani_Gif );
MainMenu_Widget_Ani_Frame = MainMenu_Widget_Ani_Frame_List->data;
MainMenu_Widget_Ani_Pixbuf = gdk_pixbuf_frame_get_pixbuf( MainMenu_Widget_Ani_Frame );
Bottom_3_Ani_Frame_Back = gdk_pixbuf_new( GDK_COLORSPACE_RGB, FALSE, 8,
gdk_pixbuf_get_width( MainMenu_Widget_Ani_Pixbuf ),
gdk_pixbuf_get_height( MainMenu_Widget_Ani_Pixbuf ));
gtk_object_set_data(GTK_OBJECT (MainWindow), "Bottom_3_Ani_Frame_List",
MainMenu_Widget_Ani_Frame_List );
gtk_object_set_data(GTK_OBJECT (MainWindow), "Bottom_3_Ani_Frame_First",
MainMenu_Widget_Ani_Frame_First );
if(!strcmp(Country_Code, "kor" ) )
{
MainMenu_Bottom_3_THdl = gtk_timeout_add( 10,
On_Global_Bottom_kor_3_Banner_Animation_Gif_Image, "2");
}
else
{
MainMenu_Bottom_3_THdl = gtk_timeout_add( 10,
On_Global_Bottom_eng_3_Banner_Animation_Gif_Image, "2");
}
pMainMenu_Bottom_3_THdl = &MainMenu_Bottom_3_THdl;
gtk_object_set_data(GTK_OBJECT (MainWindow), "Bottom_3_Ani_THdl", pMainMenu_Bottom_3_THdl);
////////////////////////////////////////////////////////////////////////////////////////////////////
Rgb2Color( 0xffff, 0xffff, 0xffff, &clr_fg );
pStyle = MakeStyle(&clr_fg, (GdkColor*) 0, FALSE);
pStyle->font = gdk_font_load("-Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-KOI8-R");
FixedWidget = get_widget( MainWindow, "002010601");
Time_Display = gtk_label_new("00:00:00");
gtk_widget_ref (Time_Display);
gtk_object_set_data_full (GTK_OBJECT (MainWindow), "Time_Display", Time_Display,
(GtkDestroyNotify) gtk_widget_unref );
gtk_widget_set_usize(Time_Display, 80, 11 );
gtk_misc_set_alignment( GTK_MISC( Time_Display ), 1.0, .5 );
gtk_image_fixed_put( GTK_IMAGE_FIXED( FixedWidget ), Time_Display, 162, 538 );
gtk_widget_set_uposition( Time_Display, 162, 538 );
SetStyle(Time_Display, pStyle, FALSE );
gtk_widget_show( Time_Display );
Money_Display = gtk_label_new("0");
gtk_widget_ref (Money_Display);
gtk_object_set_data_full (GTK_OBJECT (MainWindow), "Money_Display", Money_Display,
(GtkDestroyNotify) gtk_widget_unref );
gtk_widget_set_usize(Money_Display, 80, 11 );
gtk_misc_set_alignment( GTK_MISC( Money_Display ), 1.0, .5 );
gtk_image_fixed_put( GTK_IMAGE_FIXED( FixedWidget ), Money_Display, 162, 556 );
gtk_widget_set_uposition( Money_Display, 162, 556 );
SetStyle(Money_Display, pStyle, FALSE );
gtk_widget_show( Money_Display );
Balance_Display = gtk_label_new("0");
gtk_widget_ref (Balance_Display);
gtk_object_set_data_full (GTK_OBJECT (MainWindow), "Balance_Display", Balance_Display,
(GtkDestroyNotify) gtk_widget_unref );
gtk_widget_set_usize(Balance_Display, 80, 11 );
gtk_misc_set_alignment( GTK_MISC( Balance_Display ), 1.0, .5 );
gtk_image_fixed_put( GTK_IMAGE_FIXED( FixedWidget ), Balance_Display, 162, 574 );
gtk_widget_set_uposition( Balance_Display, 162, 574 );
SetStyle(Balance_Display, pStyle, FALSE );
gtk_widget_show( Balance_Display );
Mileage_Display = gtk_label_new("0");
gtk_widget_ref (Mileage_Display);
gtk_object_set_data_full (GTK_OBJECT (MainWindow), "Mileage_Display", Mileage_Display,
(GtkDestroyNotify) gtk_widget_unref );
gtk_widget_set_usize(Mileage_Display, 80, 11 );
gtk_misc_set_alignment( GTK_MISC( Mileage_Display ), 1.0, .5 );
gtk_image_fixed_put( GTK_IMAGE_FIXED( FixedWidget ), Mileage_Display, 162, 592 );
gtk_widget_set_uposition( Mileage_Display, 162, 592 );
SetStyle(Mileage_Display, pStyle, FALSE );
gtk_widget_show( Mileage_Display );
On_Money_Display( MainWindow );
return MainVertical_Box;
}
void Destory_MainMenu_Interface ( GtkWidget *MainWindow )
{
GtkWidget *MainVertical_Box;
MainVertical_Box = get_widget( MainWindow, "MainVertical_Box");
gtk_widget_destroy( MainVertical_Box );
MainVertical_Box = NULL;
}
Create_MainMenu_Interface create MainVertical_Box and pack serveral image widgets in it
and then register MainVertical_Box in top widget to "MainVertical_Box".
Destory_MainMenu_Interface destroy MainVertical_Box by gtk_widget_destroy.
Widget disappeared in screen but memory was never freed.
Please help me....
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]