{{page>index}} ----- ===== Group Block ===== group { name: "nameusedbytheapplication"; alias: "anothername"; min: width height; max: width height; parts { } script { } limits { vertical: "limit_name" height_barrier; horizontal: "limit_name" width_barrier; } data { items: "key" "value"; file: "key" "file"; } programs {} } === Table of Contents === * [[#Group|Group]] * [[#Group.parts]] * [[#Group.script]] * [[#Group.limits]] * [[#Group.data]] ==== 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|Part Block guide]]. === Group.script === group { script { } program { 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|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|Program guide]]. ----- {{page>index}}