[xgap] 10.3 Where code has to be changed

[Up] [Previous] [Index]

# 10.3 Where code has to be changed

All GAP objects corresponding to graphic sheets and graphic objects are no longer records but component objects. This means that the programmer can no longer mess around in the data structures. If you want to add new fields, then you have to use inheritance and define new categories. This means also that the (internal) data structures of sheets has changed massively. Programs that try to access record components of old XGAP structures will no longer work!

The operation `InstallGSMethod` is no longer present. It is replaced by the ``callback'' mechanism with the operations `InstallCallback`, `RemoveCallback` and `Callback` (see GraphicSheet for details). This means, that mouse events are handled differently. This was changed deliberately because there is a big difference: In XGAP4 you can install more than one function for one type of mouse event. All such callback functions are called one after the other. There was only one graphic sheet method for each event in XGAP3. So you can not just change the name of the operation to install the callback. You have to think about this difference!

See the section Operations for Graphic Objects for an overview which operations exist now for which graphic objects. The main difference is the introduction of `Revive`, `ViewObj` and `WindowId` together with the concept of the `IsAlive` filter.

There was a bug in XGAP3 in the creation of menus: If an entry starts with a minus sign, it will become a separating line instead of a real menu entry. This disturbed the numbering of the menu entries, such that `Enable` and `Check` did not work on the correct entry. This bug is fixed in XGAP4 so code which contained a workaround for this bug has to be changed. `Enable` and `Check` behave now like expected and documented in Enable and Check.

[Up] [Previous] [Index]