#include <x/w/label.H> x::w::label s=factory->create_label("Hello world");
    create_label() creates a simple widget, a
    x::w::label,
    that displays text. The first parameter to
    create_label() is actually a
    x::w::text_param
    object. An explicitly-constructed x::w::text_param
    gives the ability of using custom fonts and colors for the new label.
    Labels use a default font and color, if not specified in the
    x::w::text_param.
  
    “\n” characters in the text string
    create labels with multiple lines.
    create_label() takes an optional second parameter
    which is a
    x::w::label_config
    that configures the label widget's appearance.
    x::w::label_config's
    alignment value specifies formatting of labels
    with have multiple lines of text:
  
x::w::halign::leftAlign all lines in the label on the left margin.
x::w::halign::centerCenter all the lines.
x::w::halign::rightAlign all lines against their right margin.
Sometimes it's desirable to explicitly set the alignment even for labels with just a single line of text. Normally widgets get automatically sized for their content, but it's possible that a container adjusts the label to a wider size that it needs, due to other elements in the container. The alignment setting ends up governing where the text gets padded.
    The alignment value is
    std::optional. An unspecified value defaults
    to the label's text direction (x::w::halign::left
    if the label contains left-to-right text and
    x::w::halign::right if the label contains
    right-to-left text).
  
      The label's text rendering direction comes from
      x::w::label_config's
      direction setting:
    
x::w::bidi::left_to_rightDraw this label as left-to-right text.
x::w::bidi::right_to_leftDraw this label as right-to-left text.
x::w::bidi::automatic (default)Draw this label according to the default direction of its text according to the Unicode bi-directional algorithm.
      x::w::label_config's
      default settings have the following results:
    
The label direction gets set based on its text. This uses the Unicode bi-directional algorithm to pick the first character in the label that has a strong left-to-right or right-to-left rendering indication.
The label's alignment gets set based on its direction.
Labels without any strong left-to-right or right-to-left characters default their direction that's heuristically derived from the locale.
Executables that link with LibCXXW automatically load the default environment locale, i.e.:
setlocale(LC_ALL, "");
It is not necessary to do this explicitly, this is done by automatically, by default.