drag and drop multiple widgets in Fixed container



hello,

I need to be able to drag and drop multiple boxes with text on the 
canvas (like a UML class diagram) .I am trying to use the Fixed 
container and Gtk::Button as a box - I have the code to add  
buttons to the canvas, however whenever I try to drag any of the 
buttons it moves all of the buttons into the place where I drop it. 
probably the problem is the Fixed container's signal_drag_drop() , 
I don't know if i get it right but buttons should have each one a 
handler for this, no ?


that is how the buttons are added (once clicked some other button) :

void UmlModellerWindow::class_button_clicked(UmlModellerButton *temp)
{
	/* Create a new button. */
	UmlModellerButton* t = new UmlModellerButton();

	/* Add signal handler to button. */

	canvas_fixed->signal_drag_drop().connect(sigc::bind<UmlModellerButton*>(sigc::mem_fun(*this,&UmlModellerWindow::on_drag_drop),t));



	canvas_fixed->put(*user_classes.back(), x, y);	

	x+=10;
	y+=10;
	
	show_all();	
}

and that is the handler of th drag drop : 

bool UmlModellerWindow::on_drag_drop(const Glib::RefPtr<Gdk::DragContext>& context, int x, int y, guint time,UmlModellerButton *button)
{
	cout << "x=" << x << ", y=" << y << endl;
	canvas_fixed->move(*button,x,y);
}
Do you know where could be the problem ?

If this is not the easiest/best approach , please propose something else ?
jakub


-- 
_______________________________________________
Surf the Web in a faster, safer and easier way:
Download Opera 8 at http://www.opera.com

Powered by Outblaze



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]