Skip to content

Pyramid is a Graphical User-Interface (GUI) builder and editor for Bloc and Toplo.

License

Notifications You must be signed in to change notification settings

OpenSmock/Pyramid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

License Pharo 11 CI Pharo 12 CI

Pyramid

Pyramid is an User-Interface (UI) editor.

image

Pyramid is a WYSIWYG application (What You See Is What You Get) in other terms it allows you to visually design the expected outcome.

Pyramid helps you to produce final UI in Bloc and Toplo libraries.

The designed UI persistence is based on the "-Serialization" projects below. Pyramid saves a designed UI into a method as a string. Refer to the "-Serialization" projects to learn more.

You can add plugins into Pyramid to extend the editor capacities or create your own plugin with your specific functions!

How to get Pyramid

You can load a release version of Pyramid or the latest development version. Beware that Pyramid is currently in alpha development. The API is subject to significant changes, and stability is not guaranteed. Projects created during the alpha version are not designed to be compatible with newer versions of Pyramid.

Pyramid is available with Bloc and Toplo as defaults. If you want to build UI without Toplo, you can choose to load Pyramid with only Bloc using the baseline option load: 'BlocUI'. Here's an example script below.

To install a version of Pyramid, use one of the following scripts inside a playground.

Latest development version

Metacello new
	baseline: 'Pyramid';
	repository: 'github://OpenSmock/Pyramid:main/src';
	load

Only with Bloc (without Toplo features):

Metacello new
	baseline: 'Pyramid';
	repository: 'github://OpenSmock/Pyramid:main/src';
  load: 'BlocUI';
	load

Release version

We advise you to use dependencies committed at the date of the Pyramid release (Bloc, Bloc-Serialization, etc.) to ensure compatibility with a release of Pyramid.

Metacello new
	baseline: 'Pyramid';
	repository: 'github://OpenSmock/Pyramid:alpha4';
	load

Add in your baseline

spec baseline: 'Pyramid' with: [ spec repository: 'github://OpenSmock/Pyramid:main/src' ].

How to use Pyramid

Create a new project

Open the Pyramid menu from the Library tab and click New Project.

image

Then the project view appears in a new window.

image

Add and setup graphical elements

Use the add button to add graphical elements in your project view and edit them with the properties panel.

Pharo_TpXypedxCJ.mp4

Test behavior in the editor

Use the test/edit button to switch between the edit mode and the test mode.

Enregistrement.2024-02-17.185800.mp4

Save and Edit a project

Setup the project to store your view into a Class.

When your project is saved into a method, you can see the preview on the Pyramid preview tab. By default the element will be saved as source code.

Use the Pyramid preview tab to edit an existing project. You can edit your project with Pyramid or use the code browser.

Pharo_KP3yNNHH4x.mp4

Test a project

Use the Pyramid preview tab to test an existing project.

Pyramid4.mp4

Tips

To edit a BlElement instance or a BlSpace instance into Pyramid :

element editWithPyramid.
space editWithPyramid.

You can edit in Pyramid all opened BlSpace with the F12 keyboard shortcut, this feature can be disabled in the settings.

When a window is open in Pyramid, an image is displayed on it to attract the user's attention:

Enregistrement.2023-12-23.165514.mp4

Plugins

image

Dependencies

image

  • Bloc-Serialization - serializer project for Bloc (this project define the Bloc version of Pyramid).
  • Bloc - low-level UI infrastructure & framework for Pharo.
  • Toplo-Serialization - serializer project for Toplo (this project define the Toplo version of Pyramid).
  • Toplo - a widget framework on top of Bloc.
  • STON - serializer for Pharo objects to Smalltalk Object Notation format.
  • Stash - serializer for Pharo objects to source code format.

License

This project is licensed under the MIT License - see the LICENSE file for details.