Browse visually
Turn FileMaker container records into a Photos-style grid with responsive thumbnails, list view, filters, and selection.
Features for Mac and Windows
RCCPhotoGrid gives FileMaker developers visual browsing, built-in photo editing, save-to-container workflows, drag and drop, selection, JSON loading, and script callbacks.
Mac and Windows
.fmplugin and .fmx64 builds.
Built-in photo editor
Crop, rotate, adjust, copy, paste.
Save to container
No export/import-back round trip.
RCCPhotoGrid






Feature pillars
Turn FileMaker container records into a Photos-style grid with responsive thumbnails, list view, filters, and selection.
Crop, rotate, flip, adjust, copy, paste, and save edited images back through your FileMaker save script.
No custom editor UI. No export, edit elsewhere, and import-back round trip. The workflow stays in your solution.
Clicks, drops, deletes, saves, drag exports, selection state, and full-asset loading all return to FileMaker callbacks.
Built-in editor
Users can crop, rotate, flip, adjust, copy, and paste in the RCCPhotoGrid photo view. Save Changes returns the edited image to FileMaker so your script can write it directly into the container field.
Built-in photo editor

No custom editor
The photo tools are already inside the plugin.
No export round trip
Users do not leave FileMaker to make edits.
Container save
Your script writes the edited image back to the container field.
Capabilities
The visual layer is polished, but the value is how it talks to layouts, found sets, scripts, container records, and the desktop.
Create and refresh a native overlay above a named FileMaker layout object using GetLayoutObjectAttribute geometry.
Load IDs, titles, subtitles, thumbnails, file hints, metadata, and initial selection state from a JSON array.
Switch between grid, list, photo view, and script-configured HorizontalView or single-photo widget presets.
Ask FileMaker for the full asset only when needed, then preview images, Quick Look files, copy/paste, and save edits back to containers.
Accept dropped files and folders, then drag selected items back out to Finder/Desktop through script callbacks.
Wire single-click, double-click, delete, save, drop import, drag export, and iPhone import events into FileMaker scripts.
Mac and Windows
.fmplugin build for FileMaker Pro on macOS.
.fmx64 build for FileMaker Pro on Windows.
Same FileMaker-facing API shape for found-set JSON, callbacks, selection, refresh, and cleanup.
Developer surface
Create the overlay, load found-set JSON, read selection state, register callbacks, configure display/context behavior, and close overlays cleanly.
RCCPhotoGrid API
Set Variable [ $gridID ;
RCC.PhotoGrid.CreateWithControl (
Get ( WindowName ) ;
"photoGridPlaceholder"
)
]
Set Variable [ $result ;
RCC.PhotoGrid.SetData ( $gridID ; $photoJSON )
]
Set Variable [ $selectedIDs ;
RCC.PhotoGrid.GetSelectedIDs ( $gridID )
]RCC.PhotoGrid.CreateWithControl ( windowName ; objectName )RCC.PhotoGrid.SetFrameWithControl ( gridID ; objectName )RCC.PhotoGrid.SetFrame ( gridID ; left ; top ; width ; height )RCC.PhotoGrid.Refresh ( gridID )RCC.PhotoGrid.Refresh ( windowName ; gridID )RCC.PhotoGrid.SetData ( gridID ; json )RCC.PhotoGrid.LoadDemoData ( gridID )Full checklist
Native overlay anchored to a named FileMaker layout object
CreateWithControl, SetFrameWithControl, manual SetFrame, and Refresh positioning paths
Browse-mode visibility sync through FileMaker idle callbacks
Multiple grids, each addressed by a stable gridID
Found-set loading from a JSON array of item objects
Item fields for id, title, subtitle, thumbnail data URL, MIME/type, extension/fileType, metadata, folder flag, photo flag, and initial selected state
Grid view with responsive thumbnail sizing
List view with thumbnail, title, subtitle, and metadata chips
Photo view/lazy viewer with previous/next navigation
Script-configured HorizontalView strip with thumbnail, compact, and verbose styles
Minimal widget presets for grid, list, HorizontalView, lazy viewer, and single-photo use
Filter controls for All, Images, Videos, PDFs, and Documents
Zoom controls plus script-set zoom levels and thumbnail sizes
Multi-selection: click, Shift-click range, Option/Alt-click toggle
Selected item count badge
Return-delimited selected IDs through RCC.PhotoGrid.GetSelectedIDs
Single-click and double-click FileMaker script callbacks
SetOpenScript retained as a deprecated alias for SetDoubleClickScript
Lazy full-resolution image display through ShowImage
Quick Look previews for non-image files through ShowQuickLook
Viewer controls for zoom, pan, export/download, Escape close, arrows, gestures, rotate/flip, crop, adjustments, filter presets, copy/paste, and save
Save Changes callback sends the adjusted image data URL, adjustment values, and crop data so FileMaker can write directly back to the container without exporting first
Right-click context menu actions for Save/Download, Copy, Share, and Delete
Context menu visibility/enabled state controlled by JSON
Delete callback with selected IDs payload
Drag-and-drop file/folder import into FileMaker via script callback
Native macOS iPhone/camera import with Image Capture and drop-compatible payloads
Drag selected items out to Finder/Desktop with destination path callback
Debug status JSON for script names, pending request, and last script state
macOS .fmplugin build and Windows x64 .fmx64 build share the external function surface
Windows build supports overlay positioning, selection, Grid/List/HorizontalView basics, context menu, file drop, drag export callback plumbing, and Browse-mode sync
macOS-only iPhone/camera import and Quick Look integration
Developer standards
The plugin does not add a new FileMaker layout object type. It uses named objects, work-area coordinates, and external functions.
Image libraries, field assets, job photos, inspection media, product catalogs, and archive systems need faster browsing than one portal row at a time.
Grid, list, HorizontalView, lazy viewer, edit controls, and drag workflows appear inside the layouts your users already know.
The public site now mirrors the actual function table, JSON options, callback payloads, and platform notes.