Nieuws

4D Agenda: van Carbon-code uit 2003 naar een moderne macOS-plug-in voor 2026

We hebben 4D Agenda ingrijpend gemoderniseerd: een klassieke 4D-plug-in uit het begin van deze eeuw kreeg een heldere, stabiele en moderne macOS-codebase. De oorspronkelijke code stamt uit ongeveer 2003 en had jarenlang trouw dienstgedaan, maar bevatte ook oude tekenroutines, platformvertakkingen, aannames uit het klassieke Mac-tijdperk en genoeg historische compatibiliteitscode om een museumconservator tevreden te stellen.

4D Agenda: van Carbon-code uit 2003 naar een moderne macOS-plug-in voor 2026

4D Agenda: van Carbon-code uit 2003 naar een moderne macOS-plug-in voor 2026

We hebben een ingrijpende modernisering afgerond van 4D Agenda: de klassieke 4D-plug-in uit het begin van deze eeuw heeft nu een heldere, stabiele en moderne macOS-codebase.

De oorspronkelijke code van 4D Agenda stamt uit ongeveer 2003. Ze had jarenlang trouw dienstgedaan, maar bevatte ook de gebruikelijke historische lagen: oude tekenroutines, verouderde platformvertakkingen, aannames uit het klassieke Mac-tijdperk en genoeg compatibiliteitscode om een museumconservator tevreden te stellen.

Het doel van de herbouw was eenvoudig te formuleren, maar lastiger uit te voeren: de macOS-versie volledig opschonen en stabiel, snel, onderhoudbaar en geschikt maken voor de volgende generatie 4D-applicaties.

Wat is veranderd

  • Verouderde aannames rond Carbon, QuickDraw, ATSUI en tekenen in OS 9-stijl zijn verwijderd.
  • De grafische laag is opnieuw opgebouwd rond moderne macOS-weergave met Core Graphics en Core Text.
  • Lettertypeselectie, terugvallettertypen, tekstmeting en tekstweergave zijn gemoderniseerd.
  • De dag-, week- en maandweergave zijn herzien voor vloeiender hertekenen en een voorspelbare lay-out.
  • Slepen, formaat wijzigen, selecteren, meervoudige selectie, callbacks, scrollen en automatisch scrollen van afspraken zijn hersteld.
  • Meerdaagse afspraken worden beter weergegeven in dag-, week- en maandweergaven.
  • Afspraken hebben moderne vormgeving met accentkleuren, halftransparante vlakken, betere afstanden en helderdere typografie.
  • Alle 4D-commando’s zijn gecontroleerd en afgestemd op de verwachtingen van de demonstratiedatabase.
  • Native tests zijn toegevoegd voor datumberekeningen, lay-out, tekenreeksen, opmaak, themagedrag en consistente commando’s.
  • Er is een ontwikkelaarshandleiding gemaakt met commando’s, parameters, callbacks en verwacht integratiegedrag.

Technische kenmerken

De codebase is nu in de eerste plaats op macOS gericht en aanzienlijk overzichtelijker. Oude vertakkingen voor andere platforms zijn uit de actieve macOS-code verwijderd. De Windows-versie wordt later afzonderlijk aangepakt, met een duidelijke scheiding van renderers in plaats van een nieuw doolhof aan platformvoorwaarden.

De weergave gebruikt nu een moderne grafische abstractielaag in plaats van historische teken-API’s. Moderne lettertypeselectie en Core Text verzorgen de tekst. Daarmee is een lange reeks crashes en lay-outproblemen opgelost die ontstonden door oude lettertype-identificatoren en onveilige tekstconversies.

Ook het interactiemodel is grondig herbouwd. Tijdens het slepen worden afspraken direct visueel bijgewerkt, databasewijzigingen wachten tot de muisknop wordt losgelaten en zwaar callbackwerk blokkeert de vloeiende terugkoppeling niet meer. De agenda voelt daardoor weer als een agenda, in plaats van als een tijdmachine met een muisaanwijzer eraan.

Stabiliteit

Een groot deel van de herbouw draaide om het wegnemen van crashes. We vonden oorzaken in lettertypeconversie, tekstweergave, 4D-callbacks, slepen en neerzetten, grafische contexten, cursorwijzigingen en de timing van hertekenen. Die verwerkingspaden zijn herschreven of beveiligd, zodat de plug-in zich voorspelbaar binnen 4D gedraagt.

Het resultaat is een veel veiligere architectuur: minder ongecontroleerde oude aannames, duidelijkere verantwoordelijkheden, overzichtelijke C++-modules en betere controles voordat wijzigingen worden geaccepteerd.

Gebouwd voor 2026, met respect voor 2003

4D Agenda bestaat lang genoeg om respect te verdienen. De herbouw gooit niet weg wat de plug-in bruikbaar maakte. Het vertrouwde commandomodel voor 4D blijft, terwijl de kwetsbare binnenkant wordt vervangen.

De plug-in voelt dus nog steeds als 4D Agenda. Hij gedraagt zich alleen niet meer alsof er ergens een beige Power Mac op hem wacht.

Huidige status: de modernisering voor macOS bevindt zich nu in de late bèta- en releasecandidatefase. De code bouwt probleemloos via de moderne CMake/CLion-werkwijze, de native tests slagen en de plug-in is klaar voor bredere praktijktests in 4D-applicaties.

Terug naar nieuws

Meer

Gerelateerde artikelen

2 mei 2026

Tien uur foutzoeken in AccountView

Soms is softwareonderhoud overzichtelijk en voorspelbaar. En soms bestaat het uit tien uur zoeken in Visual FoxPro, oude ActiveX-componenten, tijdelijke DBF-bestanden, onleesbare gecompileerde code, verborgen viewers en crashende PDF-componenten, in een koppig transportmanagementsysteem dat zijn geheimen niet zomaar prijsgeeft.

27 apr 2026

FoxPro Document Display

Een snelle documentviewer voor bestaande FoxPro-applicaties, zonder dat de omringende applicatie eerst gemoderniseerd hoeft te worden.

14 apr 2026

We bouwden een nieuwe website. Dit hebben we gedaan.

Rose Development heeft een nieuwe website. In plaats van een algemene aankondiging leggen we de technische keuzes erachter uit, want de site laat in de praktijk zien hoe we ieder project aanpakken.

Wilt u met ons samenwerken?

Neem contact op, dan bespreken we uw project.