Group Block

group
{
   name: "nameusedbytheapplication";
   alias: "anothername";
   min: width height;
   max: width height;
   parts
   {
      <definitions of parts>
   }
   script
   {
      <embryo script>
   }
   limits
   {
      vertical: "limit_name" height_barrier;
      horizontal: "limit_name" width_barrier;
   }
   data
   {
      items: "key" "value";
      file: "key" "file";
   }
   programs {}
}

Table of Contents

Group

A group block contains the list of parts and programs that compose a given Edje Object.

  • name [group name]
    The name that is used by the application to load the resulting Edje object and to identify the group to swallow in a GROUP part. If a group with the same name exists already it will be completely overridden by the new group.
  • inherit_only [1 or 0]
    This flags the group as being used only for inheriting, which will inhibit edje_cc resolving of programs and parts that may not exist in this group, but are located in the group which is inheriting this group.
  • inherit [parent group name]
    Parent group name for inheritance. Group inherit is used to inherit any predefined group and change some property which belongs to part, description, items or program. The child group has the same properties as its parent group. If you specify the type again in an inherited part, it causes an error.
When inheriting any parts, descriptions without state names are not allowed.
  • script_recursion [1/0]
    This flag (1 or 0) determines whether to error on unsafe calls when recursively running Embryo programs. For example, running an Embryo script which calls EDC that has a script{} block is unsafe, and the outer-most (first) Embryo stack is corrupted. It is strongly unadvisable to use this flag.
  • alias [additional group name]
    Additional name to be used as an identifier. Defining multiple aliases is supported.
  • min [width] [height]
    The minimum size for the container defined by the composition of the parts. It is not enforced.
  • max [width] [height]
    The maximum size for the container defined by the totality of the parts. It is not enforced.
  • broadcast_signal [on/off]
    Signal gets automatically broadcasted to all sub group parts. Default is “true”.
  • orientation [AUTO/LTR/RTL]
    This defines GROUP orientation. It is useful if you want match interface orientation with language.
    • AUTO: Follow system defaults
    • LTR: Used in Left To Right Languages (Latin)
    • RTL: Used in Right To Left Languages (Hebrew, Arabic interface)
  • mouse_events [1 or 0]
    Changes the default value of mouse_events for every part in this group. Default is “1”, to maintain compatibility.
  • program_source [source name]
    Change the default value of source for every program in the current group which is declared after this value is set. Defaults to an unset value to maintain compatibility. The name of source can be set on every program, but if the name can be defined in the group level, it reduces the effort to indicate it in every program.

Group.parts

parts
{
   part {}
   part {}
   part {}
}

The parts group contain one or more part. Each part describes a visual element and has a type: text, image, table, etc.

For complete documentation, see the Part Block guide.

Group.script

group
{
   script
   {
      <embryo script>
   }
   program
   {
      script
      {
         <embryo script>
      }
   }
}

This block is used to inject embryo scripts to a given Edje theme and it functions in two modalities. When it is included inside a program block, the script is executed every time the program is run, on the other hand, when included directly into a group, part, or description block, it is executed once at the load time, in the load order.

For more information, see the Program guide.

Group.limits

limits
{
   vertical: "limit_name" height_barrier;
   horizontal: "limit_name" width_barrier;
}

This block is used to trigger signals when the Edje object is resized.

  • vertical [name] [height barrier]
    This sends a signal limit,name,over when the object is resized and passes the limit by growing over it. When the object's size is reduced below the limit, signal limit,name,below is sent. This limit is applied on the y axis and is given in pixels.
  • horizontal [name] [width barrier]
    This sends a signal limit,name,over when the object is resized and passes the limit by growing over it. When the object's size is reduced below the limit, signal limit,name,below is sent. This limit is applied on the x axis and is given in pixels.

Group.data

data
{
   item: "key" "value";
   file: "key2" "somefile";
}

The data block is used to pass arbitrary parameters from the theme to the application. Unlike the images and fonts blocks, additional data blocks can only be included inside the group block.

  • items: “key” “value”;
    Defines a new parameter, the value is the string specified next to it.
  • file: “key” “file”;
    Defines a new parameter, the value is the contents of the specified file formatted as a single string of text. This property only works with plain text files.
For genlist item styles, keys must be texts and icons, respectively for text parts and swallow parts; values must the names of the parts, separated with spaces.

Group.programs

programs
{
   program {}
   program {}
   program {}
}

The programs group contain one or more program.

For more information about the program structure, see the Program guide.