Add an lambda expression callback example to the first steps document
This commit is contained in:
parent
e3fb0c4a56
commit
93f464f30e
|
@ -1,3 +1,6 @@
|
||||||
|
2019-02-28 Markus Gans <guru.mail@muenster.de>
|
||||||
|
* Add an lambda expression callback example to the first steps document
|
||||||
|
|
||||||
2019-02-24 Markus Gans <guru.mail@muenster.de>
|
2019-02-24 Markus Gans <guru.mail@muenster.de>
|
||||||
* FLineEdit now has the ability to define a character input filter
|
* FLineEdit now has the ability to define a character input filter
|
||||||
via regular expression (regex)
|
via regular expression (regex)
|
||||||
|
|
|
@ -13,6 +13,7 @@ Table of Contents
|
||||||
- [Signals and Callbacks](#signals-and-callbacks)
|
- [Signals and Callbacks](#signals-and-callbacks)
|
||||||
- [Default signals](#the-final-cut-widgets-emit-the-following-default-signals)
|
- [Default signals](#the-final-cut-widgets-emit-the-following-default-signals)
|
||||||
- [Callback function](#example-of-a-callback-function)
|
- [Callback function](#example-of-a-callback-function)
|
||||||
|
- [Callback lambda expression](#example-of-an-lambda-expression-callback)
|
||||||
- [Callback method](#example-of-a-callback-function)
|
- [Callback method](#example-of-a-callback-function)
|
||||||
- [Custom signals](#send-custom-signals)
|
- [Custom signals](#send-custom-signals)
|
||||||
- [Dynamic layout](#dynamic-layout)
|
- [Dynamic layout](#dynamic-layout)
|
||||||
|
@ -479,6 +480,64 @@ g++ -O2 -lfinal callback-function.cpp -o callback-function
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Example of an lambda expression callback: ###
|
||||||
|
|
||||||
|
**File:** *callback-lambda.cpp*
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
#include <final/final.h>
|
||||||
|
|
||||||
|
using namespace finalcut;
|
||||||
|
|
||||||
|
int main (int argc, char* argv[])
|
||||||
|
{
|
||||||
|
FApplication app(argc, argv);
|
||||||
|
FDialog dialog(&app);
|
||||||
|
dialog.setText ("Lambda expression as callback");
|
||||||
|
dialog.setGeometry (FRect(25, 5, 45, 9));
|
||||||
|
FButton button ("&bottom", &dialog);
|
||||||
|
button.setGeometry (FPoint(15, 5), FSize(14, 1));
|
||||||
|
|
||||||
|
// Connect the button signal "clicked" with the lambda expression
|
||||||
|
button.addCallback
|
||||||
|
(
|
||||||
|
"clicked",
|
||||||
|
[] (FWidget* w, FDataPtr d)
|
||||||
|
{
|
||||||
|
FButton& button = *(static_cast<FButton*>(w));
|
||||||
|
|
||||||
|
if ( button.getY() != 2 )
|
||||||
|
{
|
||||||
|
button.setPos (FPoint(15, 2));
|
||||||
|
button.setText("&top");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
button.setPos (FPoint(15, 5));
|
||||||
|
button.setText("&bottom");
|
||||||
|
}
|
||||||
|
|
||||||
|
static_cast<FDialog*>(d)->redraw();
|
||||||
|
},
|
||||||
|
&dialog
|
||||||
|
);
|
||||||
|
|
||||||
|
app.setMainWidget(&dialog);
|
||||||
|
dialog.show();
|
||||||
|
return app.exec();
|
||||||
|
}
|
||||||
|
```
|
||||||
|
*(Note: You can close the dialog with the mouse,
|
||||||
|
<kbd>Shift</kbd>+<kbd>F10</kbd> or <kbd>Ctrl</kbd>+<kbd>^</kbd>)*
|
||||||
|
|
||||||
|
|
||||||
|
After entering the source code in *callback-lambda.cpp* you can compile
|
||||||
|
the above program with gcc:
|
||||||
|
```cpp
|
||||||
|
g++ -O2 -lfinal callback-lambda.cpp -o callback-lambda
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
### Example of a callback method: ###
|
### Example of a callback method: ###
|
||||||
|
|
||||||
**File:** *callback-method.cpp*
|
**File:** *callback-method.cpp*
|
||||||
|
@ -786,4 +845,3 @@ the above program with gcc:
|
||||||
```cpp
|
```cpp
|
||||||
g++ -O2 -lfinal -std=c++11 size-adjustment.cpp -o size-adjustment
|
g++ -O2 -lfinal -std=c++11 size-adjustment.cpp -o size-adjustment
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue