4D Agenda: von 2003 CO2-Zeitalter-Code zu einem modernen 2026 macOS Plugin
Wir haben eine große Modernisierung der 4D Agenda, bringt ein klassisches 4D-Plugin von seinen Wurzeln der frühen 2000er Jahre in eine saubere, stabile, moderne macOS-Code-Basis.
Die ursprüngliche 4D Agenda-Codebase stammt aus dem Jahr 2003. Sie hatte viele Jahre lang treu gedient, trug aber auch die üblichen archäologischen Schichten: alte Zeichnungswege, verlassene Plattformzweige, klassische Mac-Annahmen und genügend historischer Kompatibilitätscode, um einen Museumskurator genehmigen zu lassen.
Das Ziel des Umschreibens war einfach zu erklären und nicht ganz so einfach auszuführen: die macOS-Version unberührt, stabil, schnell, wartbar und bereit für die nächste Generation von 4D-Anwendungen zu machen.
Was hat sich verändert?
- Entfernt veraltete Carbon, QuickDraw, ATSUI und alte OS 9-Stil-Rendering-Annahmen.
- Die Grafikschicht um modernes macOS-Zeichnen mit Core Graphics und Core Text neu aufgebaut.
- Modernisierte Schriftverarbeitung, Schriftrückfall, Textmessung und Textzeichnungen.
- Überarbeitete Tages-, Wochen- und Monatsversion für reibungslose Überzeichnungen und vorhersehbare Layout.
- Fixed Event Dragging, Umgrößerung, Auswahl, Multiselect, Callbacks, Scrolling und Autoscroll-Verhalten.
- Verbesserte mehrtägige Veranstaltung mit Tages-, Wochen- und Monatsansichten.
- Es wurde ein modernes Event-Styling mit Akzentfarben, durchsichtigem Füll, verbesserter Abstand und sauberer Typografie hinzugefügt.
- Die vollständige 4D Befehlsoberfläche wurde geprüft und die Pluginbefehle mit den Erwartungen der Demo-Datenbank ausgerichtet.
- Hinzugefügt Native-Test-Abdeckung für Datum-Mathematik, Layout, Strings, Formatierung, Thema-Verhalten und Befehlskonsistenz.
- Erstellt wurde ein Entwicklerhandbuch, das Befehle, Parameter, Callbacks und erwartetes Integrationsverhalten dokumentiert.
Technische Highlights
Die Codebase ist jetzt macOS-erster und deutlich sauberer. Vermächtliche plattformübergreifende Zweige wurden vom aktiven macOS-Baum entfernt. Die Windows-Version wird später separat angegangen werden, indem ein sauberer Renderer-Split verwendet wird, anstatt ein Labyrinth von Plattformkonditionen wieder einzuführen.
Das Rendering verwendet nun eine moderne Grafikabstraktion anstatt sich auf historische Zeichnungs-APIs zu verlassen. Text wird durch moderne Schriftwahl und Core Text-Zeichnung gehandhabt, die eine lange Liste von Abstürzen und Layoutproblemen beheben, die durch alte Schriftzeichen und unsichere Zeichenkettenkonversionen verursacht werden.
Das Interaktionsmodell wurde ebenfalls stark umgebaut. Das Event-Tragging aktualisiert sich nun visuell in Echtzeit, die Datenbank-Updates werden bis zur Maus-Up verschoben, und teure Callback-Arbeit blockiert kein reibungsloses UI-Feedback mehr. Im praktischen Sinne: Der Kalender fühlt sich jetzt wieder wie ein Kalender an, nicht wie eine Zeitmaschine mit einem Maus-Pointer angeschlossen.
Stabilitätsarbeit
Ein großer Teil des Umschreibens konzentrierte sich auf die Crash-Elimination. Mehrere Crash-Wege wurden durch Schriftartkonvertierung, Textzeichnungen, 4D-Callbacks, Drag/Drop-Handling, Grafikkontextnutzung, Cursor-Updates und Umzeichnungszeit zurückverfolgt. Diese Wege wurden umgeschrieben oder bewacht, so dass sich das Plugin vorhersehbar in der 4D-Host-Umgebung verhält.
Das Ergebnis ist eine viel sicherere Plugin-Architektur: weniger Roh-Legacy-Annahmen, klarere Eigentumsgrenzen, saubere C++-Module und eine bessere Verifizierung, bevor Änderungen akzeptiert werden.
Für 2026 gebaut, wobei 2003 zu berücksichtigen ist
4D Agenda gibt es schon lange genug, um sich etwas Respekt zu erwerben. Das Umschreiben wirft nicht weg, was es nützlich machte. Stattdessen hält es das bekannte 4D-basierte Befehlsmodell bei und ersetzt die zerbrechlichen Interne darunter.
Also ja, das Plugin fühlt sich immer noch wie 4D Agenda an. Es verhält sich einfach nicht mehr so, als würde es erwarten, dass ein beige Power Mac in der Nähe wartet.
Aktueller Status: Die macOS-Modernisierung befindet sich jetzt in einem späten Beta-/Release-Candidate-Territorium. Der Code baut durch den modernen CMake/CLion-Workflow sauber auf, die native Test-Suite besteht und das Plugin ist bereit für breitere reale Tests in 4D-Anwendungen.