4D Agenda: van 2003 Carbon-era code tot een moderne 2026 macOS plugin
Wij hebben een grote modernisering van de 4D Agenda, het brengen van een klassieke 4D plugin van de vroege 2000s wortels in een schone, stabiele, moderne macOS codebase.
De oorspronkelijke 4D Agenda codebase dateert uit ongeveer 2003. Het had jarenlang getrouw gediend, maar bevatte ook de gebruikelijke archeologische lagen: oude tekenpaden, oude platformtaken, klassieke Mac-aanvattingen en voldoende historische compatibiliteitscode om een museum curator goed te keuren.
Het doel van de herschrijving was eenvoudig te vermelden en niet zo eenvoudig om uit te voeren: de macOS versie ongerepte, stabiele, snelle, onderhoudbare en klaar te maken voor de volgende generatie 4D toepassingen.
Wat is veranderd ?
- Verwijderde verouderde Carbon, QuickDraw, ATSUI, en oude OS 9-stijl rendering veronderstellingen.
- Herbouwd de grafische laag rond de moderne macOS tekening met Core Graphics en Core Text.
- Moderniseerde handhaving van lettertypen, achteruitgang van lettertypen, tekstmeting en teksttekening.
- Verwerkte dag, week en maand weergave voor een gladde weergave en voorspelbare lay-out.
- Fixed event drag, resizing, selectie, multiselect, callbacks, scrolling en autoscroll gedrag.
- Verbeterde multi-daagse evenementen met dag-, week- en maandbeelden.
- Er werd een moderne evenementstyling toegevoegd met accentkleuren, doorzichtige invullen, verbeterde afstand en schoonere typografie.
- De volledige 4D commando-oppervlakte gecontroleerd en de plugincommando's afgestemd op de verwachtingen van de demo-database.
- Voegde native test dekking voor datum wiskunde, lay-out, stringen, opmaak, thema gedrag en commando consistentie.
- Creëerde een ontwikkelaarshandleiding die commando's, parameters, callbacks en verwachte integratiegedrag documenteert.
Technische hoogtepunten
De codebase is nu macOS-eerste en aanzienlijk schooner. Legacy cross-platform takken zijn verwijderd van de actieve macOS boom. De Windows versie zal later apart worden benaderd, met behulp van een clean renderer split in plaats van een labyrinth van platform conditionaliteiten opnieuw in te voeren.
Rendering maakt nu gebruik van een moderne grafische abstractie in plaats van te vertrouwen op historische tekening API's. Tekst wordt behandeld door middel van moderne lettertypen selectie en Core Text tekening, die een lange lijst van crashes en layout problemen veroorzaakt door oude lettertypen identificatoren en onveilige string conversies.
Het interactiemodel werd ook sterk herbouwd. Event drag now updates visually in real time, database updates worden uitgesteld tot muis-up, en duur callback werk blokkeert niet langer glad UI feedback.
Stabiliteitswerk
Een groot deel van de herschrijving richtte zich op crash eliminatie. Verschillende crashpaden werden opgespoord door middel van lettertypeconversie, teksttekening, 4D-callbacks, drag/drop-handhaving, grafische contextgebruik, cursor-updates en overschrijving. Deze paden zijn opnieuw geschreven of bewaakt zodat de plugin zich voorspelbaar gedraagt binnen de 4D-hostomgeving.
Het resultaat is een veel veiliger plugin-architectuur: minder ruwe legacy-aanvattingen, duidelijker eigendomsgrenzen, schoonere C++-modules en betere verificatie voordat wijzigingen worden aanvaard.
Gebouwd voor 2026, met inachtneming van 2003
4D Agenda bestaat al lang genoeg om wat respect te verdienen. De herschrijving gooit niet weg wat het nuttig maakte. In plaats daarvan houdt het het vertrouwde 4D-geconfronteerde commando-model, terwijl het de kwetsbare internes eronder vervangt.
Dus ja, de plugin voelt nog steeds als 4D Agenda. Het gedraagt zich gewoon niet meer alsof het verwacht dat een beige Power Mac in de buurt wacht.
Huidige status: De macOS modernisering is nu in late beta / release-candidate-gebied. De code bouwt schoon door middel van de moderne CMake / Lion workflow, de native test suite slaagt, en de plugin is klaar voor bredere real-world testen in 4D-applicaties.