void gv_rotate_tool_set_layer(GvRotateTool *tool, GvShapeLayer *layer) { if (GV_TOOL(tool)->view == NULL) { g_warning("gv_rotate_tool_set_layer(): inactive tool"); return; } if( layer != NULL && gv_data_is_read_only( GV_DATA(layer) ) ) { g_warning( "gv_rotate_tool_set_layer(): layer is read-only" ); return; } gv_rotate_tool_terminate( tool ); tool->shape_id = -1; /* Disconnect from the previous layer (for draw) */ if (tool->layer) { tool->rrmode = RRMODE_DISPLAY; /** TODO: Not sure that we need to unselect ... try to remove later */ gv_shape_layer_clear_selection(GV_SHAPE_LAYER(tool->layer)); gtk_signal_disconnect_by_data(GTK_OBJECT(tool->layer), (gpointer)tool); gv_view_area_queue_draw(GV_TOOL(tool)->view); } if( layer == NULL ) tool->layer = NULL; else tool->layer = GV_SHAPES_LAYER(layer); if (layer) { gv_view_area_set_active_layer(GV_TOOL(tool)->view, GTK_OBJECT(layer)); /* Redraw when the layer draws */ gtk_signal_connect_object_after(GTK_OBJECT(layer), "draw", GTK_SIGNAL_FUNC(gv_rotate_tool_draw), GTK_OBJECT(tool)); /* Recover if layer destroyed */ gtk_signal_connect( GTK_OBJECT(layer), "destroy", GTK_SIGNAL_FUNC(gv_rotate_tool_layer_destroy), GTK_OBJECT(tool)); } }
void esd_gtk_option_dialog() { GtkWidget *window, *label, *accept, *cancel; GtkWidget *on, *off; char *option; window = gtk_dialog_new(); accept = gtk_button_new_with_label(" Accept "); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->action_area), accept, TRUE, TRUE, 0); cancel = gtk_button_new_with_label(" Cancel "); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->action_area), cancel, TRUE, TRUE, 0); label = gtk_label_new(" ESD Record Mode: "); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->vbox), label, TRUE, TRUE, 5); on = gtk_radio_button_new_with_label(NULL, "On"); off = gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(on)), "Off"); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->vbox), on, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->vbox), off, TRUE, TRUE, 0); option = datasrc->save_option(1); /* format will be "esdrecord=%d" */ if (option) temp_rec = option[10] - '0'; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(on), temp_rec == 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(off), temp_rec == 0); gtk_signal_connect(GTK_OBJECT(on), "clicked", GTK_SIGNAL_FUNC(esdrecord), (gpointer) 1); gtk_signal_connect(GTK_OBJECT(off), "clicked", GTK_SIGNAL_FUNC(esdrecord), (gpointer) 0); gtk_signal_connect_object(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(window)); gtk_signal_connect(GTK_OBJECT(accept), "clicked", GTK_SIGNAL_FUNC(esd_save_values), NULL); gtk_signal_connect_object_after(GTK_OBJECT(accept), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(window)); gtk_signal_connect_object(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(window)); GTK_WIDGET_SET_FLAGS(cancel, GTK_CAN_DEFAULT); GTK_WIDGET_SET_FLAGS(accept, GTK_CAN_DEFAULT); gtk_widget_grab_default(accept); gtk_widget_show(on); gtk_widget_show(off); gtk_widget_show(accept); gtk_widget_show(cancel); gtk_widget_show(label); gtk_widget_show(window); }