RE: problems with gtk pointers
- From: "Vallone, Anthony" <anthony vallone lmco com>
- To: z pekar gmail com
- Cc: gtk-list gnome org
- Subject: RE: problems with gtk pointers
- Date: Thu, 27 Dec 2007 14:26:07 -0500
I think your best bet is to isolate the problem down to a small amount
of stand-alone code. You will most likely discover the problem in the
process of isolation. If you don't, re-post the isolated code (the
smaller the better), and I'll take a look again.
-Anthony Vallone
> Hi Anthony,
>
> thank you for your help, but I really do not see where the
> pointers are changed and I also didn't experienced any memory
> problems, here the complete simulation_page.cpp (the third
> file, where the boxes are attached to the buttons, and where
> only the first box maintain its proper pointer value):
>
>
> #include <simulation_page.h>
> #include <gtk/gtk.h>
>
> void start_button_callback (GtkWidget *widget, gpointer data) {
> if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
> {
>
> // gtk_widget_ref(( ( Surgery* )data
> )->getGui()->getStartButtonBox());
> gtk_container_remove(GTK_CONTAINER (widget), (
> ( Surgery* )data )->getGui()->getStartButtonBox());
> // gtk_container_add(GTK_CONTAINER (widget), ( (
> Surgery* )data
> )->getGui()->getStopButtonBox());
> // gtk_widget_unref(( ( Surgery* )data
> )->getGui()->getStartButtonBox());
>
> gtk_widget_show (( ( Surgery* )data
> )->getGui()->getStopButtonBox());
> gtk_container_add (GTK_CONTAINER (widget), ( (
> Surgery* )data )->getGui()->getStopButtonBox());
> gtk_widget_show (widget);
>
> // ( ( Surgery* )data )->startSimulation();
> } else {
>
> gtk_container_remove(GTK_CONTAINER (widget), (
> ( Surgery* )data )->getGui()->getStopButtonBox());
> gtk_widget_show (( ( Surgery* )data
> )->getGui()->getStartButtonBox());
> gtk_container_add (GTK_CONTAINER (widget), ( (
> Surgery* )data )->getGui()->getStartButtonBox());
> gtk_widget_show (widget);
>
> // ( ( Surgery* )data )->stopSimulation();
> }
> }
>
> void record_button_callback (GtkWidget *widget, gpointer data) {
> if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
> {
> ( ( Surgery* )data )->startRecording();
> } else {
> ( ( Surgery* )data )->stopRecording();
> }
> }
>
> void createSimulationPage(GtkWidget *notebook, Surgery *s) {
>
> GtkWidget *boxH;
> GtkWidget *boxV;
> GtkWidget *box;
> GtkWidget *button;
> GtkWidget *toggle_button;
> GtkWidget *frame;
> GtkWidget *label;
>
> boxH = gtk_hbox_new (FALSE, 10);
> boxV = gtk_vbox_new (FALSE, 10);
>
> toggle_button = gtk_toggle_button_new();
> // box = png_label_box ("gui/icons/player_play.png", "Start");
> gtk_widget_show (s->getGui()->getStartButtonBox());
> gtk_container_add (GTK_CONTAINER (toggle_button),
> s->getGui()->getStartButtonBox());
> gtk_widget_show (toggle_button);
> gtk_box_pack_start (GTK_BOX (boxV), toggle_button,
> TRUE, FALSE, 20);
> g_signal_connect (G_OBJECT (toggle_button), "clicked",
> G_CALLBACK (start_button_callback), (gpointer) s);
> g_print("record: %d\n", s->getGui()->getStartButtonBox());
>
> toggle_button = gtk_toggle_button_new();
> // box = png_label_box ("gui/icons/player_record.png", "Record");
> gtk_widget_show (s->getGui()->getRecordButtonBox());
> gtk_container_add (GTK_CONTAINER (toggle_button),
> s->getGui()->getRecordButtonBox());
> gtk_widget_show (toggle_button);
> gtk_box_pack_start (GTK_BOX (boxV), toggle_button,
> TRUE, FALSE, 0);
> g_signal_connect (G_OBJECT (toggle_button), "clicked",
> G_CALLBACK (record_button_callback), (gpointer) s);
> g_print("record: %d\n", s->getGui()->getRecordButtonBox());
>
> button = gtk_button_new();
> // box =
> png_label_box("gui/icons/applets-screenshooter.png", "Screenshot");
> gtk_widget_show(s->getGui()->getScreenshotButtonBox());
> gtk_container_add(GTK_CONTAINER (button),
> s->getGui()->getScreenshotButtonBox());
> gtk_widget_show(button);
> gtk_box_pack_start(GTK_BOX (boxV), button, TRUE, FALSE, 0);
> g_print("record: %d\n", s->getGui()->getScreenshotButtonBox());
>
> frame = gtk_frame_new ("Cryoprobes");
> gtk_container_set_border_width (GTK_CONTAINER (frame), 10);
> gtk_widget_set_size_request (frame, 150, 75);
> gtk_widget_show (frame);
> gtk_box_pack_start (GTK_BOX (boxV), frame, FALSE, TRUE, 5);
>
> frame = gtk_frame_new ("Isotherms");
> gtk_container_set_border_width (GTK_CONTAINER (frame), 10);
> gtk_widget_set_size_request (frame, 150, 75);
> gtk_widget_show (frame);
> gtk_box_pack_start (GTK_BOX (boxV), frame, FALSE, TRUE, 5);
>
> gtk_widget_show (boxV);
> gtk_box_pack_start (GTK_BOX (boxH), boxV, FALSE, TRUE, 5);
> gtk_widget_show (boxH);
>
> // including Drawing Area
> GtkWidget *vtk_area;
> vtk_area = s->getDrawingArea();
> gtk_box_pack_start (GTK_BOX (boxH), vtk_area, 1,1,0);
> gtk_widget_set_size_request(vtk_area, 400,400);
> gtk_widget_show (vtk_area);
>
> label = gtk_label_new ("Simulation");
> gtk_notebook_append_page (GTK_NOTEBOOK (notebook), boxH, label);
>
> }
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]