beremiz

make all dialog have non-fixed size

2017-06-19, Andrey Skvortsov
8043f32de7b8
make all dialog have non-fixed size

this fixes the problem, that some controls may be hidden in some cases, because
dialog size is too small. This can happen when system fonts are bigger
than expected, default system them controls are bigger or if localized
strings are bigger than in English.
include yslt.yml2
estylesheet xmlns:ppx="http://www.plcopen.org/xml/tc6_0201"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:ns="pou_vars_ns"
extension-element-prefixes="ns"
exclude-result-prefixes="ns" {
template "text()";
template "text()", mode="var_class";
template "text()", mode="var_type";
template "text()", mode="var_edit";
template "text()", mode="var_debug";
variable "project" {
copy "document('project')/project/*";
}
variable "stdlib" {
copy "document('stdlib')/stdlib/*";
}
variable "extensions" {
copy "document('extensions')/extensions/*";
}
function "add_root" {
param "class";
param "type";
param "edit" > true
param "debug" > true
value "ns:SetRoot($class, $type, $edit, $debug)";
}
template "ppx:pou" {
call "add_root" {
with "class" > «@pouType»
with "type" > «@name»
}
apply "ppx:interface";
apply "ppx:actions/ppx:action | ppx:transitions/ppx:transition", mode="variable_list";
}
template "ppx:action" {
call "add_root" {
with "class" > action
}
apply "ancestor::ppx:pou/child::ppx:interface";
}
template "ppx:transition" {
call "add_root" {
with "class" > transition
}
apply "ancestor::ppx:pou/child::ppx:interface";
}
template "ppx:configuration" {
call "add_root" {
with "class" > configuration
with "debug" > false
}
apply "ppx:resource", mode="variable_list";
apply "ppx:globalVars";
}
template "ppx:resource" {
call "add_root" {
with "class" > resource
with "debug" > false
}
apply "ppx:pouInstance | ppx:task/ppx:pouInstance", mode="variable_list";
apply "ppx:globalVars";
}
function "variables_infos" {
param "var_class";
foreach "ppx:variable" {
variable "class" {
apply "ppx:type", mode="var_class" {
with "default_class" > «$var_class»
}
}
variable "type" {
apply"ppx:type", mode="var_type";
}
variable "edit" {
apply "ppx:type", mode="var_edit";
}
variable "debug" {
apply "ppx:type", mode="var_debug";
}
value "ns:AddVariable(@name, $class, $type, $edit, $debug)";
}
}
template "ppx:localVars" {
call "variables_infos" {
with "var_class" > Local
}
}
template "ppx:globalVars" {
call "variables_infos" {
with "var_class" > Global
}
}
template "ppx:externalVars" {
call "variables_infos" {
with "var_class" > External
}
}
template "ppx:tempVars" {
call "variables_infos" {
with "var_class" > Temp
}
}
template "ppx:inputVars" {
call "variables_infos" {
with "var_class" > Input
}
}
template "ppx:outputVars" {
call "variables_infos" {
with "var_class" > Output
}
}
template "ppx:inOutVars" {
call "variables_infos" {
with "var_class" > InOut
}
}
function "add_variable" {
param "name";
param "class";
param "type";
param "edit" > true
param "debug" > true
value "ns:AddVariable($name, $class, $type, $edit, $debug)";
}
template "ppx:action", mode="variable_list" {
call "add_variable" {
with "name" > «@name»
with "class" > action
}
}
template "ppx:transition", mode="variable_list" {
call "add_variable" {
with "name" > «@name»
with "class" > transition
}
}
template "ppx:resource", mode="variable_list" {
call "add_variable" {
with "name" > «@name»
with "class" > resource
with "debug" > false
}
}
template "ppx:pouInstance", mode="variable_list" {
call "add_variable" {
with "name" > «@name»
with "class" > program
with "type" > «@typeName»
}
}
template "*[self::ppx:type or self::ppx:baseType]/ppx:derived", mode="var_class" {
param "default_class";
variable "type_name", "@name";
variable "pou_infos" {
copy """exsl:node-set($project)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] |
exsl:node-set($stdlib)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] |
exsl:node-set($extensions)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name]""";
}
choose {
when "$pou_infos != ''" {
apply "exsl:node-set($pou_infos)", mode="var_class";
}
otherwise {
value "$default_class"
}
}
}
template "ppx:pou", mode="var_class" {
value "@pouType";
}
template "*[self::ppx:type or self::ppx:baseType]/*" mode="var_class" {
param "default_class";
value "$default_class";
}
template "*[self::ppx:type or self::ppx:baseType]/ppx:derived", mode="var_type" {
> «@name»
}
template "*[self::ppx:type or self::ppx:baseType]/ppx:array", mode="var_type" {
> ARRAY [
foreach "ppx:dimension" {
> «@lower»..«@upper»
}
> ] OF
apply "ppx:baseType", mode="var_type";
}
template "*[self::ppx:type or self::ppx:baseType]/ppx:string", mode="var_type" {
> STRING
}
template "*[self::ppx:type or self::ppx:baseType]/ppx:wstring", mode="var_type" {
> WSTRING
}
template "*[self::ppx:type or self::ppx:baseType]/*", mode="var_type" {
> «local-name()»
}
template "*[self::ppx:type or self::ppx:baseType]/ppx:derived", mode="var_edit" {
variable "type_name", "@name";
variable "pou_infos" {
copy "exsl:node-set($project)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name]";
}
choose {
when "$pou_infos != ''" > true
otherwise > false
}
}
template "*[self::ppx:type or self::ppx:baseType]/ppx:array", mode="var_edit" {
apply "ppx:baseType", mode="var_edit";
}
template "*[self::ppx:type or self::ppx:baseType]/*", mode="var_edit" {
> false
}
template "*[self::ppx:type or self::ppx:baseType]/ppx:derived", mode="var_debug" {
variable "type_name", "@name";
variable "datatype_infos" {
copy """exsl:node-set($project)/ppx:project/ppx:types/ppx:pous/ppx:pou[@name=$type_name] |
exsl:node-set($project)/ppx:project/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name] |
exsl:node-set($stdlib)/ppx:project/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name] |
exsl:node-set($extensions)/ppx:project/ppx:types/ppx:dataTypes/ppx:dataType[@name=$type_name]""";
}
choose {
when "$datatype_infos != ''" {
apply "exsl:node-set($datatype_infos)", mode="var_debug";
}
otherwise > false
}
}
template "ppx:pou", mode="var_debug" {
> true
}
template "*[self::ppx:type or self::ppx:baseType]/ppx:array", mode="var_debug" {
> false
}
template "*[self::ppx:type or self::ppx:baseType]/ppx:struct", mode="var_debug" {
> false
}
template "*[self::ppx:type or self::ppx:baseType]/*", mode="var_debug" {
> true
}
}