Binary classes are classes that are built into the specific version of Gamma that you are using. User classes are those classes defined by the programmer in the process of developing an application.
To test the number of built-in classes in the version of Gamma you are using, start a fresh instance and use the apropos function interactively to find all available classes:
andrew:/home/andrew > gamma Gamma;(TM) Advanced Programming Language Copyright (C) Cogent Real-Time Systems Inc., 1996. All rights reserved. Version 2.4 Build 139 at Jul 6 1999 10:48:51 Gamma> apropos("*",class_p); (Osinfo)
As we can see, gamma does not have built-in binary classes. Now let us try to run phgamma:
andrew:/home/andrew > phgamma Gamma(TM) Advanced Programming Language Copyright (C) Cogent Real-Time Systems Inc., 1996. All rights reserved. Version 2.4 Build 139 at July 6 1999 14:21:45 Gamma> apropos("*",class_p); (Osinfo PhArea PhBlitEvent PhBoundaryEvent PhDim PhDragEvent PhDrawEvent PhEvent PhEventRegion PhExtent PhImage PhKeyEvent PhLpoint PhPoint PhPointerEvent PhPrect PhRect PhRegion PhRgb PhWindowEvent PtArc PtBarGraph PtBasic PtBasicCallback PtBezier PtBitmap PtBkgd PtButton PtCallbackInfo PtComboBox PtComboBoxListCallback PtComboBoxTextCallback PtContainer PtDivider PtEllipse PtEventData PtFontSel PtGauge PtGenList PtGenTree PtGraphic PtGrid PtGroup PtHtml PtIcon PtLabel PtLine PtList PtListCallback PtMenu PtMenuBar PtMenuButton PtMenuLabel PtMessage PtMeter PtMultiText PtOnOffButton PtPane PtPixel PtPolygon PtRaw PtRect PtRegion PtScrollArea PtScrollbar PtScrollbarCallback PtSeparator PtSlider PtTerminal PtText PtTextCallback PtToggleButton PtTree PtTrend PtTty PtWidget PtWindow RtTrend)
There is a significant difference in supported classes between the gamma and phgamma executables. The reason is that Photon widgets are mapped into phgamma as classes. The standard Gamma executable does not have support for Photon graphics and does not have these built-in binary classes.
User classes are found in the same manner. After user classes are defined they will match the class_p predicate in the apropos function and be added to the list:
andrew:/home/andrew> gamma Gamma(TM) Advanced Programming Language Copyright (C) Cogent Real-Time Systems Inc., 1996. All rights reserved. Version 2.4 Build 139 at Jul 6 1999 10:48:51 Gamma> class test { a; b; c; } (defclass test nil [][a b c]) Gamma> apropos("*",class_p); (Osinfo test)
Copyright © 1995-2010 by Cogent Real-Time Systems, Inc. All rights reserved.