Skip to content

Latest commit

 

History

History
194 lines (143 loc) · 5.78 KB

File metadata and controls

194 lines (143 loc) · 5.78 KB

FROG logo

FROG Standard Frame Widget

Normative baseline for the standardized simple frame support widget
FROG - Free Open Graphical Language


Navigation


Overview

This document defines frog.widgets.frame, the standardized simple frame support widget.

A Frame is a front-panel support rectangle. It provides only a background and a border so a source can visually group, separate, or emphasize a region of the front panel.

The simple Frame is intentionally not a value control, not an indicator, not a subpanel, not a scrollable container, and not a method-bearing object. It does not load another .frog and it does not own the widgets visually placed inside its bounds.


Class Defined Here

  • frog.widgets.frame

Frame Part versus Frame Widget

FROG distinguishes:

frame
    - a public part inside another widget realization

frog.widgets.frame
    - standalone simple support rectangle placed on the front panel

A numeric widget may have a frame part. A button may have a frame part. That is not the same thing as the standalone frog.widgets.frame class.


Class Posture

  • class_id: frog.widgets.frame
  • family: support_widget
  • compatible role: support
  • primary business value: absent
  • natural widget_value participation: absent
  • standard behavior: visual background and border only

The Frame is source-owned front-panel decoration. Position and size live in the .frog instance layout. Default visual properties live in the Default realization manifest and may be overridden by the .frog instance.


Public Part Model

  • root
  • background
  • border

No caption, scrollbar, focus ring, value surface, child host, or content-region ownership is part of the simple Frame baseline. A title can be composed with a separate frog.widgets.label instance when needed.


Standard Property Surface

Layout

  • layout.x : length
  • layout.y : length
  • layout.width : length
  • layout.height : length

Background

  • style.background.visible : bool
  • style.background.fill_color : frog.color.rgba8

Border

  • style.border.visible : bool
  • style.border.color : frog.color.rgba8
  • style.border.width : length

Border width is a single global thickness value. It must remain visually uniform on all four sides regardless of Frame size or aspect ratio. The simple Frame baseline uses a continuous rectangular border only; dashed, dotted, textured, or side-specific border styles are not part of this widget.


Non-Goals

  • No caption.* surface. Use a separate Label widget for text.
  • No Frame-specific method-node surface.
  • No Frame-specific property-node behavior beyond ordinary source-owned visual style data.
  • No scrollbars. A scrollable region is a separate container concept, not this simple Frame.
  • No child .frog reference. Use Subpanel for embedded front panels.
  • No hidden ownership of widgets placed visually inside the rectangle.

Default Realization Posture

The Default realization exposes one rectangular SVG template with:

  • a background part,
  • a border part,
  • vector-effect="non-scaling-stroke" on the border to preserve uniform stroke thickness while resizing.

The SVG provides geometry and visual hooks only. It does not own grouping semantics, child layout, or execution behavior.


Validation Expectations

Validators SHOULD diagnose:

  • attempts to treat frog.widgets.frame as a scalar value-carrying widget,
  • attempts to use Frame as a Subpanel or child .frog host,
  • attempts to attach caption, scrollbar, method, or execution semantics to the simple Frame baseline,
  • use of a non-uniform border thickness after resizing,
  • attempts to expose dashed, dotted, textured, or side-specific borders on the simple Frame baseline,
  • runtime hardcoding of background color, border color, or border width instead of consuming source/default realization data.

Summary

frog.widgets.frame is the simplest visual grouping support object in the FROG baseline: a resizable rectangle with configurable background and border.