CHAPTER 7 PROGRAMMING IN HWIF This document is a beta version and may be subject to change. This chapter describes the changes and additions that have been made to the HWIF library as a result of the introduction of the Siena and Series 3c machines into the SIBO range. Grey lines in menus The introduction of small fonts for dialogs on the Workabout and Siena resulted in a change to the data structures in the property of the GATE class. This caused an inconsistency in the Hwif library between the Series 3a and later machines in the way that it stores the positions of grey lines in menus. For reasons of future consistency, the change has been incorporated in all SIBO machines with ROM version numbers of Ox356F and above. It is therefore present in Workabout, Siena and Series 3c machines, although Series 3c dialogs do not need to make use of the small font. A suitably written Hwif application that makes no use of grey lines in menus will run on any SIBO machine, regardless of the version of the Hwif library that was used to build it. However, any Hwif application that uses grey lines in its menus and was built with the version of Hwif supplied with version 2.10 of the SIBO C SDK will not run on Series 3a machines. Such applications that were built with earlier versions of Hwif will run on the Series 3a, but not on the Workabout, Siena or Series 3c. All Hwif programs that are linked with the modified Hwif library that is described below can run on the Series 3, Series 3a, Series 3c, Workabout and Siena - provided, of course, that their displays are tailored to the various screen sizes and graphics capabilities of these machines. Hwif library modification The Building the Hwif library section in the Advanced use of Hwif chapter of the Programming in Hwif manual explains how to build a customised version of the Hwif library, using the Hwif source files provided with the SIBO C SDK. Before making the modification that is described in this section, you should verify that you can build the existing Hwif library. The required modification is to the hMenuRun function, which can be found in the hhwif-c source file. The published source for this function is: GLDEF_C INT hMenuRun () /* Display and use the menu bar */ { if (_GreyLines) p_bcpy (&DatGate->gate.g.ulines[0], GreyLines,16*sizeof (UWORD) ) ; return (p_send3 (DatGate,O GT MENU RUN, MenuPositions) ); } This needs to be modified as shown below, to take into account the changed data structure that was introduced with ROM version 3.56F: SIENA/SERIES 3C UPGRADE GLDEF_C INT hMenuRun () /* Display and use the menu bar af { if (_GreyLines) { p_bcpy( (BYTE *) &DatGate->gate.g.ulines [0] -((p_version()>0x355f) ? 0 : sizeof (DLG _X CONSTANTS) ), _GreyLines,16*sizeof (UWORD) ); } return (p_send3(DatGate,O GT MENU RUN, MenuPositions) ); } Once the source file has been modified in this way, you should rebuild the Hwif library and use the rebuilt version when developing Hwif applications for any target SIBO machine.