CSS style.
.
Panelx.SetWebStyle USING "background-color":
"Red"
- Added a new method named 'GetWebStyle' that can be used to get a
specific CSS style for a PWS object which is implemented as a visible
HTML object. This method can be used to dynamically obtain the CSS
styles as described at the W3Schools web site.
...............................................................
. GetWebStyle Method for PWS Objects that are visible
.
The GetWebStyle method can be used to get a specific CSS style for a
PWS object which is implemented as a visible HTML object. This method
can be used to dynamically obtain the CSS styles as described at this
link:
http://www.w3schools.com/css/default.asp
The method uses the following format:
[label] {pwsobject}.GetWebStyle GIVING {return}:
USING [CssName=]{cssname}[:
[[Flags=]{flags}]
Where:
{label} is an optional Program Execution Label.
{object} is a required and can be any PWS object type
that is being accessed.
{return} is a Character variable that returns the CSS
style value as a string.
{cssname} is required and specifies the CSS style name that
is to be obtained from the HTML object used
for the {pwsobject}.
{flags} is optional and can be used to invoke special
behaviors for the GetWebStyle method.
Flags Affected: EOS, OVER, ZERO
Note the following:
1. The EOS flag is set if the returned CSS style value string
must be truncated before being stored into the {return}
Character variable.
2. The ZERO flag is always cleared.
3. The OVER flag is always cleared.
4. Go to this W3School link to get detailed CSS style
information that can be used in the 'CssName' used to
retrieve style values in a string format.
http://www.w3schools.com/css/default.asp
5. The optional {flags} bit mask values can be used to changed
the execution behavior of the GetWebStyle method as follows:
Value Description
0x00000001 This bit value causes the CSS style to be
obtained from the HTML
enclosing the
{pwsobject} HTML object.
Example:
LabelText2.GetWebStyle GIVING StrValue Using "background-color"
- Added a new method named 'GetWebId' that can be used to get the HTML
object id attribute for a PL/B Web Server object. The HTML id attribute
is dynamically assigned by the PL/B Web Server for HTML objects that
are created\rendered at the client browser. This id attribute can be
used by custom application JavaScript functions to reference the
HTML objects created for the GUI objects.
...............................................................
. GetWebId Method for PWS Objects
.
The GetWebId method can be used to get the HTML id attribute for a
PWS object which is implemented as a visible HTML object.
The method uses the following format:
[label] {pwsobject}.GetWebId GIVING {return}:
USING [[Flags=]{flags}]
Where:
{label} is an optional Program Execution Label.
{object} is a required and can be any PWS object type
that is being accessed.
{return} is a Character variable that returns the
HTML id attribute.
{Flags} is optional and can be used to invoke special
behaviors for the GetWebId method.
Flags Affected: EOS, OVER, ZERO
Note the following:
1. The EOS flag is set if the returned HTML id value string
must be truncated before being stored into the {return}
Character variable.
2. The ZERO flag is always cleared.
3. The OVER flag is always cleared.
4. Go to this W3School link to get detailed information related
to the HTML id attribute.
http://www.w3schools.com/tags/att_global_id.asp
5. The optional {flags} bit mask values can be used to changed
the execution behavior of the GetWebId method as follows:
Value Description
0x00000001 This bit value causes the CSS style to be
obtained from the HTML
enclosing the
{pwsobject} HTML object.
Example:
LabelText1.GetWebId GIVING StrValue
- Added a new method named 'GetWinInfo' for the CLIENT object that can be
used to retrieve current browser window information relating to position
and size.
...............................................................
. GetWinInfo Method for Client Object
.
The GetWinInfo method can be used to obtain the current position
and size of the browser window.
The method uses the following format:
[label] {object}.GetWinInfo GIVING {return}:
USING [[Options=]{options}][:
[Delimiter=]{delim}]
Where:
{label} is an optional Program Execution Label.
{object} is a CLIENT object that has been defined.
{return} is a Character String Variable that receives
the browser window position and size data
in delimited fields.
{options} is optional and is a Numeric Variable or decimal
that specifies data fields to be returned. This
parameter is optional.
{delim} is optional and is a Character String Variable
or string literal defining the character that
delimits the fields within the returned string.
Flags Affected: EOS, OVER, ZERO
Note the following:
1. The EOS flag is set if the returned field data string
must be truncated before being stored into the {return}
Character variable.
2. The ZERO flag is always cleared.
3. The OVER flag is always cleared.
4. This method returns the browser window position\size data as
a string of ASCII fields separated using a delimiter
character.
5. The default delimiter character is the 0x7F character. The
DELIMITER keyword can be used to change this character.
6. The following position\size fields are expected for a browser
window as follows based on the {option} bit mask value. If
the {option} parameter is not specified the default action is
to return all fields described as follows:
Option Description
0x0000 Returns all fields defined as follows:
0x0001 innerHeight
Returns the inner height of a window's
content area.
0x0002 innerWidth
Returns the inner width of a window's
content area.
0x0004 outerHeight
Returns the outer height of a window,
including toolbars/scrollbars.
0x0008 outerWidth
Returns the outer width of a window,
including toolbars/scrollbars.
0x0010 pageXOffset
Returns the pixels the current document
has been scrolled (horizontally) from
the upper left corner of the window.
0x0020 pageYOffset
Returns the pixels the current document
has been scrolled (vertically) from the
upper left corner of the window.
0x0040 screenX
Returns the horizontal coordinate of the
window relative to the screen.
0x0080 screenY
Returns the vertical coordinate of the
window relative to the screen.
Example:
Client CLIENT
Client.GetWinInfo Giving FullData Using 0,","
This example returns all data files using a
comma delimiter character.
- Added a new method named 'SetUTF8Convert' for the CLIENT object that can
be used to control whether data transferred to\from the client browser is
to be converted into a UTF8 stream.
...............................................................
. SetUTF8Convert Method for Client Object
.
The SetUTF8Convert method can be used to control the UTF8 byte
conversion modes used by the PWS server when communicating with the
client browser. This method affects the data streams that are received
and sent for the HTML objects on client browser. This method can be
used to turn off the PWS automatic UTF8 byte conversion or set the
type of UTF8 byte conversion to be used when a PLB application
application is needing to generate\receive custom\specialized data.
The method uses the following format:
[label] {object}.SetUTF8Convert GIVING {return}:
USING [State=]{state}
Where:
{label} is an optional Program Execution Label.
{object} is a CLIENT object that has been defined.
{return} is a Numeric variable that returns the old
conversion state value before the new state
is applied.
{state} is a Numeric variable or decimal number that
indicates the new UTF8 conversion mode to
be used when communicating between the PWS
server and a client browser.
Flags Affected: EOS, OVER, ZERO
Note the following:
1. The EOS flag is set off.
2. The ZERO flag is set if the returned value is zero and
cleared if the returned value is non-zero.
3. The OVER flag is set if the {return} numeric variables is
to small to receive the returned numeric value.
4. By the default, the PWS UTF8 byte conversion is turned on
which is the same as a state value of 1. Any {state} values
other than the following definitions are use the PWS UTF8
default {state} value of 1. The allowed {state} values
are defined as follows:
State Value Description
0 The PWS server UTF8 byte conversion is
turned OFF.
1 The PWS server UTF8 byte conversion is
turned ON. This is the default state
used by the PWS server.
2 The PWS server uses the character map
table set by the SetUTF16Table method
to translate character values 0x80 to
0xFF. Any unknown characters which do
not have a translation character
become a '?' character. This mode ONLY
translates the character values 0x80
to 0xFF.
400 to These {state} values are ONLY used for
65536 a Windows PWS server. The PWS server
uses the {state} value as a Windows
code page to translate the PLB data
stream when performing the UTF8 byte
conversion. A list of Code Page
Identifiers values can be found at the
following Microsoft link:
"msdn.microsoft.com/en-us/library/windows/desktop/dd317756%28v=vs.85%29.aspx"
- Added a new method named 'SetUTF16Table' for the CLIENT object that can
be used to specify a UNICODE translation table that is used by the PWS
server when performing UTF8 conversions for data communicated to\from a
client browser.
...............................................................
. SetUTF16Table Method for Client Object
.
The 'SetUTF16Table' method for the CLIENT object is used to specify
a UNICODE translation table that is used by the PWS server when
performing UTF8 conversions for data communicated to\from a client
browser. This UNICODE translation table MUST be provided in
low-byte/high-byte order (i.e. Little Endian byte order) that is used
to translate character values > 0x7F up to and including character
value 0xFF. The first UNICODE translation value at position 0 is for
the character value of 0x80.
The method uses the following format:
[label] {object}.SetUTF16Table GIVING {return}:
USING [Table=]{table}
Where:
{label} is an optional Program Execution Label.
{object} is a CLIENT object that has been defined.
{return} is a Numeric variable that is always zero.
{table} is a Character String Variable or string
literal that contains the Unicode translate
character string.
Flags Affected: EOS, OVER, ZERO
Note the following:
1. The EOS flag is set off.
2. The ZERO flag is set on.
3. The OVER flag is set off.
4. The Unicode translation data specified in the {table} as
16 bit values that MUST be provided in Little Endian format.
The translation character table is layout as follows:
Table byte
Positions Translation Char Unicode Table Value
1-2 0x80 0xLL, 0xHH
3-4 0x81 0xLL, 0xHH
...
127-128 0xFF 0xLL, 0xHH
Example:
.....
. This translation table only contains 5 Unicode
. translation values
.
. Unicode 8-bit character value
.
UnicodeTable INIT 0xD0, 0x05: //0x80 char value
0xD4, 0x05: //0x81 char value
0xE5, 0x05: //0x82 char value
0xE6, 0x05: //0x83 char value
0xD7, 0x05 //0x84 char value
//...
//0xFF char value
.
Client CLIENT
....
. Define a Unicode translation table and set the PWS
. to use the Unicode translation table when performing
. UTF8 data communications conversions.
.
Client.SetUTF16Table USING UnicodeTable
Client.SetUTF8Convert USING 2
...
- Modified the MODAL and MODELESS WINDOW objects to minimize the padding
that is being applied by the jQuery Modal classes. This change is being
done to allow a better MODAL\MODELESS WINDOW presentation.
- Modified the MODAL and MODELESS WINDOW objects so they can not be sized
by an end-user. We may revisit this change in future if the PLB
applications require sizing of MODAL\MODELESS WINDOWs.
- Modified the ALERT instruction to support the dialog types of CAUTION,
NOTE, PLAIN, and STOP with the appropriate result values.
- Modified the LISTVIEW object to support the 'EnsureVisible' method.
- Modified TABCONTROL css classes to allow the client browser to render
tabcontrol tabs with less overlaying by tab panel objects.
- Added SCROLLBAR support for the PANEL.
Note:
1. The HTML scrollbar implementation does not support the property
values of $SCRHORZ and $SCRVERT where a single scrollbar
orientation is forced. These property values execute that same
the $SCRBOTH property value. The PWS runtime can not force a
single scrollbar with a given orientation.
2. The HTML scrollbar support is implemented using a class style
for automatic rendering by the client browser. The use of the
auto mode style gives the most flexibility so the client
browser only shows the required scrollbars for any orientation.
The scrollbar classes can be found in the 'plbwebbasic.css'
HTTP_ROOT file as 'sb1', 'sb2', 'sb3', and 'sdb4'.
- Modified the PICT SCROLLBAR property support has been changed to use
scrollbar classes named 'sb1', 'sb2', 'sb3', and 'sb4' in the
'plbwebbasic.css' HTTP_ROOT file.
- Modified the PWS miniserver to detect a client browser FILE request
identifier that causes the 'Content-Disposition' type to be used
when downloading a file. See the 'Client.Open' method for more details.
- Added a new keyword named 'PLBWEB_SAVETOCLIENT={directory}'. This keyword
can be used to specify a {directory} name that exists as a sub-directory
under the PWS 'http_root' directory. The {directory} is used when the
'Client.Open' *OPTIONS value of 1 is used to invoke a download of a
file from the PWS server to the client browser. See the 'Client.Open'
for addition information. The {directory} can contain file(s) and
sub-directories that contain files that can be downloaded to a client
browser.
Example:
PLBWEB_SAVETOCLIENT=mydownload
In this case, the directory named 'mydownload' must exist
as a sub-directory under the PWS 'http_root' directory. The
'mydownload' can contain addition sub-directories and file(s)
that can be downloaded to a client browser using the
'Client.Open USING *OPTIONS=1' instruction.
Client.Open USING *URL="mycompany\myreport.pdf":
*OPTIONS=1 //Invoke Save-As-Dialog
- Modified the GETPROP of the PICTSIZEH and PICTSIZEV properties to wait
up to 10 seconds when a return value of zero is detected. This change
helps to work around a problem where the client browser returns a value
of zero while the PICT image is being downloaded and rendered by the
client browser.
- Modified the PWS SLIDER to support the BORDER property.
- Removed support of the SHIFT property for a PWS Slider object. The
SHIFT property behaviors for a Windows Slider can not be simulated
using a jQuery Slider object.
- Modified the GETITEM and SETITEM of a PWS Slider to support an {item}
number of 4 which causes the 'step' option for a jQuery Slider object
to be changed. The jQuery Slider 'step' option is described as follows:
"Determines the size or amount of each interval or step the slider
takes between the min and max. The full specified value range of
the slider (max - min) should be evenly divisible by the step."
Note:
The behaviors for the jQuery Slider 'step' prevents simulation
of a Windows Slider object SHIFT property behaviors.
- Modified the CLIENT object 'AddCss' method to support an *OPTIONS
value of '0x0001' which causes the method to allow\force the same CSS
file update to be occur after the first update. Otherwise, a second
update of the same CSS file is ignored.
- Modified the LISTVIEW SetItemText method operations to all an instant
update of the client table object fields for text and color attributes
without having to reload all of the LISTVIEW data. This changes helps
to work around a problem where a modified LISTVIEW row was no longer
in the visible viewing area after changing the color attribute of a
single field in a LISTVIEW row.
- Added a new keyword named 'PLBWEB_USER_CSS={filename.css}' which can be
used to define PWS CSS classes for a user. The user classes in the CSS
files specified in the {filename.css} can be used to override the default
CSS classes declared in the 'plbwebbasic.css' or declared by the
'WEBCLASS' property of an object. If a {filename.css} user class overrides
a class in the 'plbwebbasic.css' file, then the user class behavior
affects all HTML objects using the changed class. If a {filename.css}
user class overrides a class specified by the WEBCLASS property for a PWS
object, then class only affects objects using WEBCLASS class.
- Modified the 'WEBCLASS' property to support a behavior control where the
first character of {class-name} string can be a '=', '+', or a '-'
character. If none of these characters is specified as the first character
in the {class-name}, the PWS runtime applies the user Web Class where
default PLB styles (like TOP, LEFT, HEIGHT, WIDTH, BGCOLOR,...etc)
override the WebClass styles. If one of behavior control characters is
specified as the first character of {class-name) string when the PWS
object is created, the PWS object is generated where the PWS runtime
default styles are limited as follows:
Leading
Behavior
Character Description
'=' - No HTML object CSS styles are applied except for the
ZORDER and VISIBLE properties. In this case, the
WEBCLASS user class(s) controls all of the HTML
object styles except for the ZORDER and VISIBLE
PL/B properties in a CREATE instruction.
'+' - No HTML object CSS styles are applied except for the
ZORDER, VISIBLE, TOP, and LEFT properties. In this
case, the WEBCLASS user class(s) controls all of the
HTML object styles except for the ZORDER, VISIBLE,
TOP, and LEFT PL/B properties in a CREATE
instruction.
'-' - No HTML object CSS styles are applied except for the
ZORDER, VISIBLE, TOP, LEFT, HEIGHT, and WIDTH
properties. In this case, the WEBCLASS user class(s)
controls all of the HTML object styles except for the
ZORDER, VISIBLE, TOP, LEFT, HEIGHT, and WIDTH PL/B
properties in a CREATE instruction.
Example use of WEBCLASS behavior characters:
LT LABELTEXT
UserCss INIT "=ltp"
.
CREATE LT=50:90:10:100, "Test Label", WEBCLASS=UserCss
. In this case, the LABELTEXT is created with a user
. Web class named 'ltp' being used. The leading '='
. character indicates that all of the CSS styles for
. the HTML object are defined in the 'ltp' CSS class
. with the exception of ZORDER (i.e. CSS style z-index).
.
- Modified the APPEARANCE property for the PWS LABELTEXT to support
extended style values as $LISTLBL, $H1, and $PROG used to give default
styles as described by Apple guidelines targeting IPhone, IPad, and
Android devices. See the documentation section descriptions for more
details.
- Modified the LABELTEXT click and double click events to return the
a one based value indicating the $LISTLBL item being clicked. See
the documentation section descriptions for more details.
- Modified to support the $LOWERCASE and $UPPERCASE types for the EDITTYPE
property of a PWS EDITTEXT object.
- Modified the SCROLLBAR property for the EDITTEXT, PANEL, and PICT objects
to allow a $SCRVERT (vertical only) scrollbar.
- Modified the SETPROP of a SCROLLBAR property to change the scrollbar
types and work as expected for support PWS objects.
- Modified the PWS LABELTEXT and EDITTEXT objects to use the CSS classes
named 'ww0' and 'ww1' defined in the 'plbwebbasic.css' file. By using
these classes, the end-user application behaviors for the HTML wrap
attribute affecting the HTML objects used for the PLB objects can be
changed using user-custom classes. See the keyword named
'PLBWEB_USER_CSS={filename.css}' for more information on user defined
classes. The default 'plbwebbasic.css' class setting for the 'ww0'
class is set to 'no wrap' and the 'ww1' class is set to 'wrap'.
- The PWS EDITDATETIME object has been modified to support the 'MaximumDate'
and 'MinimumDate' properties.
- Modified the PWS EDITDATETIME to present the month and year menus
that are supported by the jQuery DataPicker object. This change allows
more flexible manipulation\selection of dates.
- Modified the GETPROP\SETPROP instructions to allow the TOP and LEFT
properties to work properly for a MODAL\MODELESS WINDOW object.
- Modified the Admin data for the $ADMITEMSHAREDMEM bit mask values
available in the ADMGETINFO instruction to include the PWS 'idle'
and 'suspended' state flags for a server child task. The ADMGETINFO
instruction using $ADMINTEMSHAREDMEM bit mask value can be used
to determine the current running state of a server child task.
The ADM_FLAG_IDLE and ADM_FLAG_SUSPENDED state flags have been added
to the $ADMITEMSHAREDMEM bit mask state values defined as follows:
ADM_FLAG_RUNNING 0x00010000
The child task is running.
ADM_FLAG_SHUTDOWN 0x00020000
The child tasks should gracefully shutdown.
ADM_FLAG_HAS_MSG_ERR 0x00040000
The child task got an error during a message.
ADM_FLAG_PUT_MSG 0x00080000
A message was posted to the child task queue.
ADM_FLAG_NO_LOGGING 0x00100000
Logging is not being performed for the child task.
ADM_FLAG_IDLE 0x00200000
The child task is in the 'idle' state using the PWS server.
ADM_FLAG_SUSPENDED 0x00400000
The child task is in the 'suspended' state using the
PWS server.
ADM_LOG_LEVEL1 0x01000000
The child task is using log level 1 logging.
ADM_LOG_LEVEL2 0x02000000
The child task is using log level 2 logging.
- Modified the PWS server to support the RESOURCE property for the PICT and
ICON objects. In this case, the resources are limited to the '.jpg' and
'.ico' image types using the PL/B Web Server. With this change, a
CREATE of a PICT\ICON object with a RESOURCE property causes the
'.jpg' or '.ico' image to be extracted from a '.pwf' and written as an
image file into the PWS 'http_root\images' directory by default. The new
PWS keywords named 'PLBWEB_IMAGES={directory}' and
'PLBWEB_EXTRACT_IMAGES={on|off}' can be used to control the automatic
image extraction by the PWS server.
Note:
1. If both the RESOURCE and the URLSOURCE properties are used in
a '.pwf', the URLSOURCE image reference is downloaded\loaded
by the client browser.
2. If both the RESOURCE and the URLSOURCE properties are used in
a '.plf', the URLSOURCE is ignored by a PLBWIN\PLBNET runtime.
- Added two new keywords for the PWS server named
'PLBWEB_IMAGES={directory}' and 'PLBWEB_EXTRACT_IMAGES={on|off}' that can
be used to control the checking and extraction of resource '.jpg' and
'.ico' images referenced by the RESOURCE property for a PICT and ICON
object. These are described as follows:
PLBWEB_IMAGES={dir}
The {dir} specifies the directory under the PWS 'http_root'
directory that contains the images. If this keyword is not used,
the default PWS directory used is named 'images' under the PWS
'http_root' directory.
Example:
PLBWEB_IMAGE=myimages
The 'myimages' directory MUST be defined as a directory under
the PWS 'http_root' directory like:
"c:\sunbelt\plbwebsrv.97C\http_root\myimages"
PLBWEB_EXTRACT_IMAGES={on|off}
This keyword can be used to turn the automatic RESOURCE image
extraction ON or OFF for the PWS server. If this keyword is not
used, the default PWS runtime behavior is 'ON' where the RESOURCE
property images are extracted.
- The 'GetInfo' method for the CLIENT object has been modified to provide
two new fields. The new fields are described as follows:
Field Meaning
PeerIP This field is the peer IP address of the client
browser which is associated\connected to the
current PWS child task running the current PLB
program.
HttpHost This field is the Http Host request-header field
that specifies the Internet host and port number
found in the Http header as obtained from the
original URL given at the client browser.
- Corrected a problem after the COLUMN 0 of a LISTVIEW was set with a column
width of 0. A column width of 0 for the LISTVIEW column 0 would cause an
unexpected JavaScript error as the LISTVIEW row focus was changed such
that the program would hang. When the JavaScript error occurred, the
resulting symptom was that the program objects would become non-responsive
at the client browser.
- Corrected a problem where the change event was not occurring when a
keypress action was used to change the selected LISTVIEW row.
- Corrected a problem where all '&' characters could be removed from the
string data being sent from the PWS server to the client browser for a
STATTEXT or LABELTEXT object. When a single '&' character is to appear in
the PL/B object, the data string must use the two character sequence of
'&&' in the output string. The '&&' usage forces a single '&' output
similar to a Windows control.
- Correct two problems for the COMBOBOX method named 'FindString' as
follows:
1. Fixed a problem where the 'FindString' method was performing a
case sensitive string comparison.
2. Fixed a problem where the 'FindString' method was performing an
exact string comparison with the same string lengths. This
correction allows this method to now perform the string comparison
as documented\expected in the PL/B Language Reference manual.
- Corrected problems for RADIO buttons as follows:
1. Registering the click event no longer prevents the auto selection
of radio buttons.
2. The GROUPID property now executes as expected and documented.
- Corrected a problem where the PWS EDITDATETIME calendar was not being
shown because of ZORDER conflicts for overlapping HTML objects.
- Corrected a problem where a GETPROP TEXT instruction for an EDITDATETIME
was only returning the preset\current date when the 'mm/yyyy' custom
format was being used.
Note:
1. When using the PWS EDITDATETIME, the HTML object is created
using the jQuery DatePicker object. A 'day' MUST be selected
in the 'Calendar' popup to cause the selected date to be rendered
and presented in the HTML object presentation. If the 'day' is
NOT selected, the HTML object maintains the current date
setting and no date information appears in the HTML object
presentation.
- Corrected sizing and padding issues where the client browser rendering
for the HTML object to be larger than declared for a PLB EDITTEXT object.
With this change the PWS runtime now adjusts that PLB EDITTEXT object
WIDTH and HEIGHT to compensate for the client browser rendering
behaviors.
- Corrected a problem where the client browser was rendering the HTML
object to be larger than the PLB GROUPBOX object expected size.
- Corrected presentation problems for PLB objects that have negative
positioning coordinates. Prior to this change these objects with
negative positioning coordinates were being displayed outside of the
client browser view port.
- Corrected a problem where the default event was not being registered
by executing the 'ACTIVATE PICT, mypictroutine, NVAR' instruction. This
problem was preventing the generation of PICT default events.
- Corrected a problem where a keypress action for the ENTER key was causing
an unexpected tabbing behavior on PLB objects. This ENTER key action
tabbing behavior should ONLY occur on the EDITTEXT and EDITNUMBER
objects. The unexpected tabbing symptom on an ENTER key action was
reported when an ENTER key on a BUTTON object caused the focus to be
changed to the next object in the TABID list. This tabbing behavior
should NEVER occur on a BUTTON object.
- Corrected a problem where a SETITEM to select a specific TABCONTROL tab
was not working.
- Corrected a problem where a SETPROP of the TABLABEL property was not
creating TABCONTROL tabs as expected.
- Corrected a problem where a keyboard spacebar action was not selecting a
LISTVIEW row with checkbox being used.
- Corrected a problem where a keypress arrow action event was being
dispatched to the user keypress routine before he LISTVIEW row
selection change occurred. The symptom for this problem was that the
PLB program keypress routine would retrieve old data because the
row selection was delayed.
- Corrected a problem where a SETPROP of a TITLE property for the CHECKBOX
and RADIO objects did not work.
- Corrected a problem to cleanup events on the PLB user queue that were
left over from an old program after a CHAIN.
- Corrected a GPF error for WINAPI execution on the server for the process
based PL/B Web Server ( plbwebsrv.exe ). The WINAPI execution using the
threaded PL/B Web Server ( plbwebsrvt.exe ) did not cause a GPF.
- Corrected a GPF error a problem where a SETPROP of the X1, X2, Y1, and
Y2 properties for a LINE object did not work.
- Corrected a problem where a SETPROP of the WIDTH or HEIGHT property for
a MODAL or MODELESS WINDOW was causing scrollbars to appear using a
CHROME browser.
- Corrected a problem where the CHANGE event for a PWS COMBOBOX object was
not working.
- Corrected a problem where a LOSTFOCUS event was not being generated after
a key action invoking a DEFAULT BUTTON click occurred.
- Corrected a GETPROP WIDTH and HEIGHT property problem where these
properties were invalid after a MODAL\MODELESS move event.
- Corrected a problem where the font defaults applied to a primary WINDOW
type was different than the font defaults used for a MODAL\MODELESS
WINDOW type. This change was implemented by setting the font-family
in the '.md0' class defined in the 'plbwebbasic.css' file and used for
the MODAL\MODELESS WINDOW objects. The 'PLBWEB_USER_CSS={filename.css}'
keyword can be used to redefine the '.md0' class to override the default
'.md0' class defined in the 'plbwebbasic.css' file.
- Corrected a problem where the HTML object types for EDITTEXT, EDITNUMBER,
were NOT using the default font as specified in a '.pwf' PLF form. The
'plbwebbasic.css' classes were changed to set the default fonts for the
appropriate HTML objects used to represent the PLB GUI objects that
allow user inputs.
- Corrected a problem where the LISTVIEW MULTISELECT state was being
turned off by sorting the LISTVIEW data.
- A click action of on a LISTVIEW item will now select and un-select the
item when the MULTISELECT property is turned on.
- The selection of LISTVIEW items via a mouse drag is disabled. Otherwise,
indeterminate item selections could occur.
- Correct a problem where the LISTVIEW 'SetItemState' method did not clear
old item states.
- Corrected random GPF errors that could occur when a FORMLOAD of an object
only form into a PANEL object.
- Corrected a problem where the FindString\FindStringExact methods for a
DATALIST were NOT returning a '-1' result when a PLB NULL search string
was used. This change is being made to cause to execute with behaviors
like a Windows PLBWIN DATALIST object.
- Corrected a problem where the FindString\FindStringExact methods for a
COMBOBOX were NOT returning a '-1' result when a PLB NULL search string
was used. This change is being made to cause to execute with behaviors
like a Windows PLBWIN COMBOBOX object.
- Corrected a problem where the COMBOBOX and DATALIST object item data
was being returned to the PLB program as UTF8 data. Before, this
correction was applied, the COMBOBOX and DATALIST object 'GetText'
methods would return UTF8 data to the PLB DIM variable when the item
data contained character values larger than 127.
-------------------------------------------------------------------------------
PLBCLIENT, PLBCLICON, PLBCLINET
- Added 'quiet' command line option to the 'plbclient' help screen.
-------------------------------------------------------------------------------
PLBWIN, PLBNET, PLBSERVE, PLB(UNIX), PLBWEBSRV
- Modified the HTTP instruction to support a new FLAGS bit mask value as
follows:
0x00000080 - $HTTP_FLAG_FIRST_RAW_RESULT
The first received unedited response for a HTTP request is returned
in the result. In this case, the PL/B runtime does not process nor
interpret any of the Server response. Note, this bit mask value
should ONLY be used if the user application knows that that the
response contains all of the raw data in one receive operation with
a size less than 1024 bytes.
- Modified the HTTP instruction to detect server HTTP '204 No Content'
response or the '304 Not Modified' responses when the
$HTTP_FLAG_RAW_RESULT and\or $HTTP_FLAG_FIRST_RAW_RESULT FLAG settings
are NOT being used. This change helps to resolve an issue where the
HTTP instruction could causing a timeout error when these HTTP header
responses were received.
- Modified the HTTP instruction to log the *FLAGS keyword setting
descriptions when using the *TRACE\*TRACEAPPEND tracing.
- The HTTP\MAILSEND instructions have been modified to retrieve and log the
SSL error description in the TRACE log file if it is available. In
addition, the SSL error identifier is included in the *ERROR output when
it is available. Also, any SSL error description from the last HTTP or
MAILSEND instruction is saved so it can be retrieved by a
'GETMODE *LASTSSLERROR' instruction after the HTTP\MAILSEND instruction
has completed.
- Modified the GETMODE instruction to support the new keyword named
'*LASTSSLERROR={svar}'. This keyword retrieves any SSL error description
that occurred in the last HTTP or MAILSEND instruction. Execution of
the 'GETMODE *LASTSSLERROR' instruction automatically clears any SSL
detail description that was saved from the last HTTP or MAILSEND
instruction. If the 'GETMODE *LASTSSLERROR' instruction is executed
a second time, the returned DIM data is NULL.
- Modified the MAILSEND to send the current SMTP Date field. This change
has been implemented to resolve unexpected errors where an Email Server
may give an error without the Date header field.
- Modified the HTTP instruction to eliminate an unexpected error
( Error: 19 sslError: 19 ) that would occur under the following
conditions:
1. The *OPENSSL keyword is being used.
2. The Web Server HTTP header response DOES NOT have the
content length specified for the response data.
3. The Web Server unexpectedly closes the socket connection causing
an unexpected 'ssl_read' error.
- Changed the C15 subcode 9 to be subcode 39 when a memory allocation error
occurs while setting the Global data memory size when loading a PLB
program. This change helps give more information about the specific
cause for a C15 error.
- Modified the DBEXECUTE instruction to support up to 99 parameters. Prior
to this change the support parameters was limited to 20.
- Corrected a problem where the HTTP instruction that did not used a
'*FILENAME' option could try to use an old *FILENAME setting used in a
previous HTTP instruction. This could give an unexpected result.
- Corrected a problem where the TYPE instruction using the second syntax
format was not returning the expected {type} value when the {var}
variable was an INTEGER data variable. This change affects the Sunbelt
data type values for INTEGER(1), INTEGER(2), INTEGER(3), and INTEGER(4)
as documented in Note (2.). With this change the data type variables
are now returned as documented.
-------------------------------------------------------------------------------
PLBWIN, PLBNET, PLBSERVE, PLBWEBSRV, ALL GUI CLIENTS
- The PL/B advanced printing has been changed to support Unicode strings.
With this change, support for Sunbelt PDF font subsets has been
implemented to allow Unicode string output into Sunbelt PDF files.
1. The PRTOPEN *FLAGS bit map has been changed to include the
following:
PDF_FLAGS_USE_SUBFONTS EQU 2048 ( 0x0800 )
When this bit is turned on, fonts are rendered as font
subsets into the Sunbelt PDF output. This bit ONLY affects
the Sunbelt PDF output and is not used for any other
advanced printer devices. When this bit is turned on,
the font subsets are always embedded for the Sunbelt
PDF output.
PRT_FLAGS_UNICODE EQU 4096 ( 0x1000 )
When this bit is turned on, the Unicode support is
enabled and used for advanced printing output. In this
case, the printer output device can be a Windows print
device or the Sunbelt PDF output device (pdf:). Also,
the Unicode support applies to the print preview output.
If this bit is turned on and the Sunbelt PDF output
device is used, the font subsets are automatically
used for the PDF output.
2. The Unicode strings must start with a two byte Unicode identifier
of 0xFF\0xFE or 0xFE\0xFF. When the PL/B runtime detects the
two byte Unicode identifier, the runtime automatically processes
the PL/B data string as a Unicode string to render the output
to the current print device.
Example:
PF PFILE
F3 FONT
F4 FONT
F5 FONT
.
PDFlags INTEGER 2,"0x1861" //Subfonts, Unicode
.
UniStr1 INIT 0xFE,0xFF, 0xD0,0x5,0xD4,0x5,0xE5,0x5:
0xE6,0x5,0xD7,0x5
FStr1 INIT "12.345"
UniStr2 INIT 0xFF,0xFE, 0x32,0x0,0x33,0x0,0x2E,0x0:
0x34,0x0,0x35,0x0
UniStr21 INIT 0xFE, 0xFF, 0xD0,0x5,0x32,0x0
.
CREATE F3,"Tahoma",SIZE=12,BOLD
CREATE F4,"David",SIZE=12
CREATE F5,"Courier New", SIZE=12
.
PRTOPEN PF,"pdf:","x.pdf", FLAGS=PDFlags
.
PRTPAGE PF;*FONT=F4,UniStr2
PRTPAGE PF;*FONT=F5,UniStr2
PRTPAGE PF;*FONT=F3,UniStr1
PRTPAGE PF;*FONT=F3,"A"
PRTPAGE PF;*FONT=F3,UniStr1, UniStr2
PRTPAGE PF;" X"
PRTPAGE PF;*FONT=F3,*ALIGN=*DECIMAL,*P10:10, FStr1:
*P10:11,UniStr2
PRTCLOSE PF
.
- Corrected a font subset translation problem.
- Corrected a problem generating PDF output using Sunbelt 'pdf:' where
the PRTPAGE *RNDRECT and *OVAL controls were not positioning the output
correctly. This problem was causing a difference between the direct
printed output and the 'pdf:' PDF printed output.
-------------------------------------------------------------------------------
PLBWIN, PLBNET, PLBSERVE, PLB(UNIX), PLBWEBSRV, ALL GUI CLIENTS
- Upgraded runtimes and clients to use the latest SQLite3 release
identified as version 3.8.8.2.
- Corrected a problem where a TrueType font with a zero 'descender' was
causing the wrong vertical position of characters generated for Sunbelt
PDF output.
- Corrected an intermittent problem where an invalid font table value
could be generated if a font had less than 220 glyphs when generating
Sunbelt PDF output. A symptom of this problem is that an 'Adobe Reader'
gives the following error when loading a PDF with the bad font value.
"A number is out of range."
- Modified to allow the best font available for a font family type to be
used when creating a PDF using the Sunbelt 'pdf:' device type. The
best font usage occurs when an exact font type match can not be found
in the Windows registry. Prior to this change a S17 error would occur
if the exact font matching the attributes of Bold, Italic, or Regular
could NOT be found when generating the 'pdf:' output.
-------------------------------------------------------------------------------
PLBWIN, PLBNET, ALL GUI CLIENTS
- If a Windows 8 or newer OS version is being used, the 'GETINFO SYSTEM'
has been modified to return the 'kernel32.dll' product version that is
loaded and mapped into the runtime process. The affected 'GETINFO
SYSTEM' fields affected by this change are the Major Version (column 647),
Minor Version (column657), and Build number (column 667). This change
is being made to work around a problem where the Windows OS versions
newer than Windows 8 have depreciated the Windows 'GetVersionEx' API
such that it gives unexpected results.
- Modified the TREEVIEW object 'LoadXmlFile' and 'SaveXmlFile' methods to
allow node data sizes larger than 254 bytes to be saved and restored for
the TREEVIEW object. The Microsoft TREEVIEW control only displays 260
characters for a node. However, TREEVIEW node data can actually be
larger than the displayed data by the control.
- Made a change to prevent a GPF when showing a Print Preview page using
a print device driver that returned the physical page width for the
printer as zero. In this scenario, if a print device driver returns
a physical page width of zero, the print preview defaults to a 300 dpi
printer resolution setting using an 8.5 in by 11.0 in page. Under
normal circumstances a Windows Print Device Driver DOES NOT return
a value of zero for a print page width.
-------------------------------------------------------------------------------
PLBCMP
- Corrected a compiler F02 error that could occur when the RECORD LIKEPTR
record referenced was undefined.
- Corrected a problem where a 'RECORD LIKEPTR' instruction could give an
'Invalid RECORD LIKEPTR member type!' error when the LIKEPTR source
record contained multiple nested record members.
-------------------------------------------------------------------------------
PLBDBUG
- Added 'R' command to repeat the last command like F9.
- Modified to display the prior execution label found from the current IP
(Instruction Pointer) address to be executed.
-------------------------------------------------------------------------------
ADMEQU.INC
- Reviewed for 9.7C patch release.
-------------------------------------------------------------------------------
PLBEQU.INC
- Updated for 9.7C patch release.
-------------------------------------------------------------------------------
PLBMETH.INC
- Updated for 9.7C patch release.
-------------------------------------------------------------------------------
DESIGNER.PLC
- Corrected an error that occurred when creating a PrintPage in individual
windows layout mode.
- Corrected an issue in the loading of ActiveX controls.
- Added logic to deal with out of scope values returned by GetWindowRect.
- Corrected a cosmetic issue on the Options Behavior page.
- Corrected a issue that occurred when the code editor was in single event
mode and the create default code option was disabled.
- Corrected an issue that would allow only one empty code block from being
automatically removed during a form save.
- Added an additional error tracking file.
- Added support for the MaximumDate and MinimumDate EditDateTime properties
for web forms.
- Corrected an XML Read Error that occurred when the Designer was loaded by
the IDE.
- Corrected an issue with BUTTON ICON and PICTURE properties.
- Added support for new LABELTEXT web-only APPEARANCE properties.
- Corrected an issue in object array creation.
-------------------------------------------------------------------------------
EDITOR.PLC
- Added exception handling to catch the cancellation of the dialog
when an attempt to position to a line fails.
- Corrected logic when the editor control cannot be created.
- Modified to not allow modifications to a read-only file.
-------------------------------------------------------------------------------
SUNIDE.PLC
- Corrected an issue in the data and execution label lookup function.
- Corrected an issue in the positioning to error lines.
-------------------------------------------------------------------------------
SUNCS21.OCX
- Corrected an error that would cause a GPF based on certain content.
- Restricted scanning of literals to a single line.
-------------------------------------------------------------------------------
DBGIFACE.PLC (Graphical Debugger)
- Added a -m option to minimize the connection window shown when the -listen
option is specified.
- Added support for the F9 (repeat last command) key.
-------------------------------------------------------------------------------
DBEXPLORER.PLC
- Redesigned the copy and paste routines for data rows.
-------------------------------------------------------------------------------