Skip to content
Snippets Groups Projects
Commit 606b7d88 authored by Iver Småge men bærbar's avatar Iver Småge men bærbar
Browse files

add example of method for callback function

parent cf511d4f
No related branches found
No related tags found
No related merge requests found
Pipeline #197933 failed
......@@ -94,6 +94,36 @@ Når vi kjører dette programmet og klikker på knappen ser vi at callback funks
<img src="../../images/callback.png" alt="Bilde som viser en kurve tegnet med draw_arc funksjonen og endret farge" style="max-width:800px; width:100%;"/>
### Objekt-orienterte callback funksjoner
Dersom man ønsker å sette callback-funksjonen til en klassemetode må man bruke `std::bind` for å gjøre funksjonen kompatibel.
```c++
class SuperManWindow : public AnimationWindow {
public:
SuperManWindow();
void superCallbackFunction();
void fly();
private:
Button flyButton();
}
void SuperManWindow::superCallbackFunction() {
std::cout << "Thanks for clicking, im going to fly\n";
this->fly();
// Do something else
}
SuperManWindow::SuperManWindow()
: AnimationWindow(100, 100, 100, 100, "Super man window"),
flyButton{{10, 10}, 5, 5, "fly"} {
// Here we convert the class method to a void function
// by binding this instance of the class to the function
flyButton.setCallback(std::bind(&SuperManWindow::superCallbackFunction, this));
}
```
## GUI Elementer
Hver GUI element som kan brukes i en AnimationWindow er definert i sin egen klasse. Det vil si at når du for eksempel ønsker å vise en knapp i vinduet, lager du en instans av `TDT4102::Button` klassen. I tillegg er det nødvendig å
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment