Mit FLTK schreibe ich eine Desktop-Anwendung, die mehrere Fenster verwendet. Die Anwendung verwaltet eine Liste der offenen Fenster und zeigt sie im Menü mit diesen Zeilen:FLTK: Ereignis, wenn ein Fenster auf MacOS fokussiert wird
for(int i = 0; i < windows.size(); ++i) {
menu->add(("&Windows/"+windows[i].name).c_str(), 0, MyMenuCallback);
}
Jetzt möchte ich ein Häkchen vor dem Namen des obersten Fensters setzen:
flags = FL_MENU_TOGGLE|FL_MENU_VALUE;
menu->add(("&Windows/"+windows[i].name).c_str(), 0, MyMenuCallback, 0, flags);
Ich bin bei der Installation eines Event-Handlers fest, der immer dann aufgerufen wird, wenn sich das oberste Fenster ändert. Ich hatte gehofft, Fl::add_handler(&genericEventHandler);
würde aufgerufen werden, wenn sich der Fokus ändert, aber das ist nicht der Fall. Meine Frage ist also: Wie werde ich benachrichtigt, wenn sich der Fokus meiner Fenster ändert?
Große Antwort, funktioniert perfekt. – z80crew