View on GitHub

4DPop

4DPop, the main component of the 4DPop familly, manage the tool bar integrated into the 4D development environment.

language language-top code-size license release build notarized

Overview

4DPop is a series of productivity components grouped into a toolbar that integrates perfectly with the 4D development environment.

4D TN Spotlight

4DPop.4dbase is the container component that handles loading and provides an interface to compatible components.

Filled with clever tools and immediately useful for developers, 4DPop has many advantages:

A Mind for Productivity

Every 4DPop component is a handy little nugget you’ll wonder how you ever did without. Created by 4D developers for 4D developers, they’ll help you save precious time on repetitive operations, be the little helpers you always dreamt of having, and put an even friendlier face on your development environment.

Easy to Use

Installing a new component is easy: Just drag and drop on to the 4DPop toolbar! Each comes with its own online help.

Modular

You can compose your 4DPop palette à la carte with the tools you prefer, without overloading your screen.

Free

4DPop and its components are free to use and distribute in all 4D development environments.

Source Code Provided

Like all 4D components, 4DPop tools are miniature 4D projects delivered to you compiled for your immediate use, but also in interpreted mode, so that you can explore the source code. You may wonder how rules are created in 4DPop Rulers, for example, or how 4DPop Commands manages predictive typing, or how to manage a palette, a help file or to create a component. It’s all there in the code. 4DPop’s code is also a very good example of the art of programming efficiently in 4D… even if we do say so ourselves!

Open

You can enhance 4DPop with your own components, and you are also able to share them, and find others in the 4D developer community.

📥 Get the latest version of the all-in-one family or explore the family and add only the components you want from the list below.

Repository Last release Build status macOS
4DPop release build notarized
AppMaker release Build notarized
Bookmarks release Build notarized
ColorChart release Build notarized
Commands release Build notarized
Constants-Editor release Build notarized
Git release Build notarized
Image-Buddy release Build notarized
KeepIt release Build notarized
Macros release Build notarized
Pasteboard release Build notarized
QuickOpen release Build notarized
Rulers release Build notarized
sqlSchemas release Build notarized
Window release Build notarized
XLIFF-Pro release Build notarized

📌 Click on a component name in the “Repository” column above to access its repository, where the source code is available.

📌 Click on the Release tag of each component above to access its latest revision.

And when you’re ready to deploy, you can eliminate all the 4DPop elements from your app to ensure its light weight.

Installation

  1. Create a Components folder next to the Project folder of your database *.
  2. Place the 4DPop.4dbase component ** in the Components folder.
  3. Place one or more 4DPop components you want to use in the same folder.
  4. Open your database.
  5. Open the structure settings dialog and go to the Security page to activate, if any, the option Execute "On Host Database Event" Method of the component
  6. Reopen the database, the palette is displayed in the lower left corner of the screen in Design mode.

    * For a binary database, the Components folder must be located next to the structure file of your database (“.4db”).
    ** On macOS, the component is a package whose “.4dbase” extension is not necessarily visible depending on your display preference settings.

📍It is always preferable to use an alias file (macOS) or shortcut file (Windows) instead of the component and thus store the originals in a single copy. Updates will be simplified especially if you maintain several projects.

Compatible Components

Some developers provide tools that are displayed in the 4DPop palette. You can access the list of compatible components referenced on Github (with the 4dpop topic).

Here are the ones I know:

         
4D SVG* 4D JSON Validator chromo4D RegexLab Math4D
ogResources Buddy QS_Toolbox      

*Included into the 4D application

How to make a component compatible with 4DPop?

The compatibility of a component with the 4DPop palette is based on the presence of a “4DPop.xml” file in its “Resources” folder.

This XMLfile describes the elements of the component that will be available with keys and their attributes.

Something like:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

<tools name=":xliff:Ruler" picture="Ruler.png" helptip=":xliff:ToolHelpTip" initProc="Init">

` `

</tools>

Keys

<tools>

Start and end of file. Mandatory

Attributes

<tool>

Start and end of definition of a tool.

~~This key can be repeated: ~~

In case of the default attribute above is defined, a simple clic launches the method referenced and a long click or an on arrow click display the tools’ menu.

Attributes

~~① These attributes accept the syntax “:xliff :resname”, so the strings must be located in the xliff files of the components and the displayed string will be localized.

② The called methods must have been declared as shared in the component database. All the methods receive a pointer as parameter (on the button of the palette. this pointer can be used to test the state of the button or to correctly display a popup). If you plan to compile the component, this parameter must be declared explicitly [var $1 : Pointer] in all the methods of the component called by 4DPop (initproc, ondrop, default, and method) if not, an error will be generated each time the method is called (-20008 - incorrect Parameters in a command EXECUTER).

📍The component method can be responsible for building and displaying the menu. In this case, a single tag calls the component method whose code displays the menu and processes the choice of the user. In order for the related menu arrow to be displayed on the button of your tool, you must pass "True" in the popup attribute of the key.

It will be very appreciated if you publish your component on Github and don’t forget to link your project with the 4DPop topic.

Topic 4DPop

If you develop a component compatible with 4DPop, it is strongly recommended to add the “4DPop” topic to be referenced in the list of 4DPop compatible components.

Note

If you encountered a bug or have a feature request, feel free to create an issue. However, it is highly appreciated if you browse and search current issues first. Found the issue? Go on and join its discussion thread. Not found? Go on and create one.