Difference between revisions of "Fresnel"

From Free Pascal wiki
Jump to navigationJump to search
Line 9: Line 9:
 
=Roadmap=
 
=Roadmap=
  
 +
* Rename TFresnelButton to TButton, this requires Lazarus to support duplicate component classnames
 +
** Extend TReader to search component classes using Field names
 +
** Extend RTL format to optionally write unitnames: <s>TWriter</s>, <s>ObjectBinaryToText</s>, <s>GetClass(anUnitName,aClassName)</s>
 +
** Extend RTL format to automatically detect the new format with unitnames: <s>TReader</s>, <s>ObjectTextToBinary</s>
 +
** Extend codetools lfm parser
 +
** Extend Lazarus lfm repair wizard
 +
** Extend Lazarus TReader.OnFindComponentClassEx to load lfms without unitnames even if fresnel TButton is registered
 +
** Extend all Lazarus GetClass places to query with unitname
 
* Layouter:
 
* Layouter:
 
** Testsuite
 
** Testsuite

Revision as of 19:50, 9 January 2023

Overview

Fresnel is a visual component library based on CSS and custom drawn components. It is in an early stage of development.

git repo: https://gitlab.com/freepascal.org/lazarus/fresnel

Requirements: fpc 3.3.1

Roadmap

  • Rename TFresnelButton to TButton, this requires Lazarus to support duplicate component classnames
    • Extend TReader to search component classes using Field names
    • Extend RTL format to optionally write unitnames: TWriter, ObjectBinaryToText, GetClass(anUnitName,aClassName)
    • Extend RTL format to automatically detect the new format with unitnames: TReader, ObjectTextToBinary
    • Extend codetools lfm parser
    • Extend Lazarus lfm repair wizard
    • Extend Lazarus TReader.OnFindComponentClassEx to load lfms without unitnames even if fresnel TButton is registered
    • Extend all Lazarus GetClass places to query with unitname
  • Layouter:
    • Testsuite
    • Flow layouter:
      • fragments for elements, needed for wordwrap and toolbars,
      • floats (left, right),
      • direction,
      • position relative+sticky,
      • line-height
    • Flex layouter
    • Grid layouter
    • Overflow: scrolling, clipping
  • Fresnel lcl form
    • property editor: viewport stylesheet
    • property editor: inline style
    • view for exploring computed CSS attributes and errors
  • Renderer-LCL:
    • Testsuite
    • colors: rgb, rgba, hsl, hsla
    • borders: color, style
    • invalidate changed containers, paint only parts
  • Events
    • mouse
    • keyboard
    • pseudo attribute :hover
  • Skiafor LCL custom drawn widgetset,
    • Testsuite
    • opacity
    • colors: rgb, rgba, hsl, hsla
    • borders: width, color, style
    • background: color
    • font
    • invalidate changed containers, paint only parts
  • Fresnel backend
    • window
    • drawing
    • mouse events
    • keyboard events
    • idle
    • timer
  • Animation
  • Fresnel components:
    • Testsuite
    • div and span: already tested in Layouter and Renderer
    • label
    • link (CSS a), pseudo elements: :active, :link, :visited
    • image (CSS img)
    • edit aka input type=text
    • textarea
  • Other:
    • CSS attribute "all"
    • CSS variables
    • background gradient
    • background image
    • stylesheets for windows, linux, macos
    • lists
    • special funding page on foundation site.
    • HTML importer