Multiple fullscreen displays, almost there

I’ve been able to open all available secondary displays in fullscreen with this code, but now I wanted to display a different content based on displayID.

Any ideas of how to achieve that? maybe extending ofEventArgs ?

#include "ofMain.h"
#include "ofApp.h"

// teste
#include "ofAppGLFWWindow.h"

shared_ptr<ofAppBaseWindow> secondWindow;
vector <shared_ptr<ofAppBaseWindow> > allWindows;

//========================================================================
int main( ){
    
    // WINDOW GUI
    float offset = 80;
    int w = 320;
    int h = 600;
    ofGLFWWindowSettings settings;
    settings.setSize(w, h);
    settings.setPosition(ofVec2f(offset,offset));
    settings.windowMode = OF_WINDOW;
    auto guiWindow = ofCreateWindow(settings);
    //auto guiApp = make_shared<ofGuiApp>();
    auto mainApp = make_shared<ofApp>();
    
	CGDisplayCount displayCount;
	CGDirectDisplayID displays[32];
	CGGetActiveDisplayList(32, displays, &displayCount);
	int numDisplays = displayCount;
    
    for (int a=1; a<numDisplays; a++) {
        int whichDisplay = a;
        int displayHeight = CGDisplayPixelsHigh (displays[whichDisplay]);
        int displayWidth = CGDisplayPixelsWide (displays[whichDisplay]);
        CGRect displayBounds = CGDisplayBounds (displays[whichDisplay]);
        
        ofVec2f pos = ofVec2f(displayBounds.origin.x, displayBounds.origin.y);
//        cout << "whichdisplay: " << a << endl;
//        cout << displayWidth << "x" << displayHeight << endl;
//        cout << pos << endl;

        settings.setSize(displayWidth, displayHeight);
        settings.setPosition(pos);
        settings.windowMode = OF_FULLSCREEN;
        settings.shareContextWith = guiWindow;
        
        secondWindow = ofCreateWindow(settings);
        ofAddListener(secondWindow->events().draw, mainApp.get(), &ofApp::drawSecondWindow);
        allWindows.push_back(move(secondWindow));
    }
    
	ofRunApp(guiWindow, mainApp);
	ofRunMainLoop();
}