I recently started messing around with the SFGUI library, its basically a gui library based in SFML. On its own, I was able to follow the tutorial here: http://sfgui.sfml-dev.de/p/docs/guide/hello_world Without a problem. When I went about adding it to my own program, though, I ran into an issue with this line:
button->GetSignal( sfg::Button::OnLeftClick ).Connect( &OnButtonClick );
Now, in my program I'm attempting to put all of this within a class called Gui_Manager. I have a class method called OnButtonClick(), however as I've learned I cannot use a function pointer like the one in the tutorial code with a bound member function. So I consulted the documentation and found that Connect has two declarations as follows:
unsigned int Connect (Delegate delegate)
unsigned int Connect (void(Class::*function)(), Class *object)
The tutorial uses the first constructor with the Delegate being a function pointer (&OnButtonClick). I'm guessing as I want to connect with a class method, I now want to use the second declaration, however, I'm not even sure how I would call that (I've randomly tried some things with no results). So I have two questions to anyone who would be so kind...
1) An example of how I would call Connect using the second definition... I feel like just having some code to point me in the right direction would be lovely...
2) I could fairly easily create the required function callbacks outside of my class, but doing so goes against most of the Object Oriented conditioning I've been through in my life. Would that be an acceptable solution? Or are there notably drawbacks to doing things that way when every other spec of code in my program is contained in a class?
Thanks for any help you can give! :)