News

4D Agenda: from 2003 Carbon-era code to a modern 2026 macOS plugin

We have completed a major modernization of 4D Agenda, bringing a classic 4D plugin from its early-2000s roots into a clean, stable, modern macOS codebase. The original 4D Agenda codebase dates back to around 2003. It had served faithfully for many years, but it also carried the usual archaeological layers: old drawing paths, legacy platform branches, classic Mac assumptions, and enough historical compatibility code to make a museum curator nod approvingly.

4D Agenda: from 2003 Carbon-era code to a modern 2026 macOS plugin

4D Agenda: from 2003 Carbon-era code to a modern 2026 macOS plugin

We have completed a major modernization of 4D Agenda, bringing a classic 4D plugin from its early-2000s roots into a clean, stable, modern macOS codebase.

The original 4D Agenda codebase dates back to around 2003. It had served faithfully for many years, but it also carried the usual archaeological layers: old drawing paths, legacy platform branches, classic Mac assumptions, and enough historical compatibility code to make a museum curator nod approvingly.

The goal of the rewrite was simple to state and not quite so simple to execute: make the macOS version pristine, stable, fast, maintainable, and ready for the next generation of 4D applications.

What changed

  • Removed obsolete Carbon, QuickDraw, ATSUI, and old OS 9 style rendering assumptions.
  • Rebuilt the graphics layer around modern macOS drawing with Core Graphics and Core Text.
  • Modernized font handling, font fallback, text measurement, and text drawing.
  • Reworked day, week, and month rendering for smoother redraws and predictable layout.
  • Fixed event dragging, resizing, selection, multiselect, callbacks, scrolling, and autoscroll behavior.
  • Improved multiday event drawing across day, week, and month views.
  • Added modern event styling with accent colors, translucent fills, improved spacing, and cleaner typography.
  • Audited the full 4D command surface and aligned the plugin commands with the demo database expectations.
  • Added native test coverage for date math, layout, strings, formatting, theme behavior, and command consistency.
  • Created a developer manual documenting commands, parameters, callbacks, and expected integration behavior.

Technical highlights

The codebase is now macOS-first and significantly cleaner. Legacy cross-platform branches have been removed from the active macOS tree. The Windows version will be approached separately later, using a clean renderer split rather than reintroducing a maze of platform conditionals.

Rendering now uses a modern graphics abstraction instead of relying on historical drawing APIs. Text is handled through modern font selection and Core Text drawing, which fixes a long list of crashes and layout problems caused by old font identifiers and unsafe string conversions.

The interaction model was also heavily rebuilt. Event dragging now updates visually in real time, database updates are deferred until mouse-up, and expensive callback work no longer blocks smooth UI feedback. In practical terms: the calendar now feels like a calendar again, not like a time machine with a mouse pointer attached.

Stability work

A large part of the rewrite focused on crash elimination. Several crash paths were traced through font conversion, text drawing, 4D callbacks, drag/drop handling, graphics context usage, cursor updates, and redraw timing. These paths have been rewritten or guarded so the plugin behaves predictably inside the 4D host environment.

The result is a much safer plugin architecture: fewer raw legacy assumptions, clearer ownership boundaries, cleaner C++ modules, and better verification before changes are accepted.

Built for 2026, with respect for 2003

4D Agenda has been around long enough to earn some respect. The rewrite does not throw away what made it useful. Instead, it keeps the familiar 4D-facing command model while replacing the fragile internals underneath.

So yes, the plugin still feels like 4D Agenda. It just no longer behaves as if it expects a beige Power Mac to be waiting nearby.

Current status: the macOS modernization is now in late beta / release-candidate territory. The code builds cleanly through the modern CMake/CLion workflow, the native test suite passes, and the plugin is ready for broader real-world testing in 4D applications.

Back to news
Share:

More

Related Articles

2 May 2026

A Ten-Hour Debugging Session Inside AccountView

Sometimes software maintenance is a clean, predictable job. And sometimes it is ten hours of staring into Visual FoxPro, legacy ActiveX controls, temporary DBF files, scrambled compiled code, hidden viewers, crashing PDF components, and one very stubborn transport management system that refuses to explain itself.

Read more

Want to work with us?

Get in touch and let's discuss your project.