ACLCommonGraphicsNotes - GazeboHub/ghub-meta GitHub Wiki

Notes: Common Graphics (ACL)

At its current draft, this page focuses primarily about the CG:SYSTEM, CG:APP, and CG:CONFIGURATION classes, in the interest of studying how ACL's Common Graphics framework provides structures for application modeling and configuration, in an ACL image running within the typical desktop environment.

The CG System Class and Subclasses

See also (ACL 9.0 documentation)

SYSTEM [STANDARD-CLASS]

  • Direct Superclasses
    • STANDARD-OBJECT
  • Direct Subclasses
    • IDE.BASE:IDE-SYSTEM
    • CG.BASE::CG-SYSTEM
  • Direct Slots
    • (None)
  • Inherited Slots
    • (None)

CG.BASE::CG-SYSTEM [STANDARD-CLASS]

  • Direct Superclasses
    • SYSTEM
  • Direct Subclasses
    • (None)
  • Direct Slots
    • SCREEN
    • CONFIGURATION
    • CG.BASE:APPLICATION-WINDOWS
    • APP
    • CG.BASE:OPEN-WINDOWS-TABLE
    • CG.BASE::NAMED-COLORS
    • CG.BASE:IMMEDIATE-TOOLTIP-WINDOW
    • DEVELOPMENT-MAIN-WINDOW
    • CG.BASE:FONT-MAPPING-HASH-TABLE
    • CG.BASE:FONT-MAPPINGS
    • CG.BASE::OS-VERSION-INFO
    • CG.BASE::MOUSE-MOVE-WINDOW
    • CG.BASE::MOUSE-MOVE-X
    • CG.BASE::MOUSE-MOVE-Y
  • Inherited Slots
    • (None)

IDE.BASE:IDE-SYSTEM [STANDARD-CLASS]

  • Direct Superclasses
    • SYSTEM
  • Direct Subclasses
    • (None)
  • Direct Slots
    • CONFIGURATION
    • IDE.BASE:IDE-PROJECT-WINDOW
    • IDE.BASE:IDE-BACKGROUND-WINDOW
    • IDE.BASE:IDE-MENU-BAR
    • IDE.BASE::FILE-MENU
    • IDE.BASE::EDIT-MENU
    • IDE.BASE::SEARCH-MENU
    • IDE.BASE::VIEW-MENU
    • IDE.BASE::WINDOWS-MENU
    • IDE.BASE::FORM-MENU
    • IDE.BASE::RECENT-MENU
    • IDE.BASE:RECENT-MENU-CHANGED
    • IDE.BASE::TOOLS-MENU
    • IDE.BASE::RUN-MENU
    • IDE.BASE::HELP-MENU
    • IDE.BASE::INSTALL-MENU
    • IDE.BASE:EXIT-TESTS
    • IDE.BASE::ALL-TOOLBAR-BUTTONS
    • IDE.BASE:COMPONENT-TOOLBAR-BUTTONS
    • IDE.BASE:CG-TREE
    • IDE.BASE:UNSAVED-BUFFER-MAPPER
    • IDE.BASE:MOST-RECENT-TRACE-LIST
    • IDE.BASE:IDE-THREAD
    • IDE.BASE::INITIAL-LISTENER-THREAD
    • IDE.BASE:IDE-EVALUATOR-LISTENER
    • IDE.BASE::EVAL-PROCESS-WINDOWS
    • IDE.BASE::IDE-PROCESS-LOCK
    • IDE.BASE::IDE-PROXY-QUEUE
    • IDE.BASE::REPORTED-PACKAGE
    • IDE.BASE:REPORTED-MODIFICATION-STATE
    • IDE.BASE:DEFINERS
    • IDE.BASE:BREAKPOINTED-FUNCTIONS
  • Inherited Slots
    • (None)

The CG:APP Class

An instance of this class may be retrieved from a CG:CG-SYSTEM using the generic function, CG:APP. The class is denoted here, out of the interest of observing the semantics of the class' definition, as a possible extension point for Common Lisp programs in the desktop environment.

APP [STANDARD-CLASS]

  • Direct Superclasses
    • STANDARD-OBJECT
  • Direct Subclasses
    • (None)
  • Direct Slots
    • CG.BASE:INITIALIZATION-FUNCTION
    • DEFAULT-ERROR-HANDLER-FOR-DELIVERY
    • MAIN-WINDOW-MAKER
    • KILL-SPLASH-SCREEN-WHEN-READY
    • CG.BASE:SHARED-LIBRARIES
    • HINST
    • CG.BASE:LAST-USED-PATH
    • STANDALONE-APPLICATION
    • BUILD-NUMBER
    • RUN-WITH-CONSOLE
  • Inherited Slots
    • (None)

Initial REPL Session

CG-USER(4): (describe *system*)
#<CG.BASE::CG-SYSTEM @ #x2117628a> is an instance of
    #<STANDARD-CLASS CG.BASE::CG-SYSTEM>:
 The following slots have :INSTANCE allocation:
  SCREEN                        #<screen @ #x211761e2>
  CONFIGURATION                 #<CG-CONFIGURATION @ #x21185cfa>
  CG.BASE:APPLICATION-WINDOWS   #<EQ hash-table with 2 entries @ #x21185d0a>
  APP                           #<APP @ #x21185d3a>
  CG.BASE:OPEN-WINDOWS-TABLE    #<EQL hash-table with 185 entries @ #x21185d4a>
  CG.BASE::NAMED-COLORS
     (WHITE BLACK GRAY LIGHT-GRAY DARK-GRAY RED GREEN BLUE YELLOW CYAN MAGENTA DARK-RED
      DARK-GREEN DARK-BLUE DARK-YELLOW DARK-CYAN DARK-MAGENTA)
  CG.BASE:IMMEDIATE-TOOLTIP-WINDOW NIL
  DEVELOPMENT-MAIN-WINDOW
     #<IDE-CHILD-WINDOW :IDE-CHILD-WINDOW in IDE GUI @ #x211bf3d2>
  CG.BASE:FONT-MAPPING-HASH-TABLE #<EQ hash-table with 6 entries @ #x21185d7a>
  CG.BASE:FONT-MAPPINGS
     (#<Font-mapping 146254240 for #.(MAKE-FONT-EX NIL "Courier New" 14) @ #x21366b22>
      #<Font-mapping 145446432 for #.(MAKE-FONT-EX NIL "Courier New" 16) @ #x211df9da>
      #<Font-mapping 144428480 for #.(MAKE-FONT-EX NIL "Sans" 10 '(:BOLD)) @ #x211c0ee2>
      #<Font-mapping 144428416 for #.(MAKE-FONT-EX NIL "Sans" 12 '(:BOLD)) @ #x211c0f32>
      #<Font-mapping 144089088 for #.(MAKE-FONT-EX NIL "Courier New" 24) @ #x21185ce2>)
  CG.BASE::OS-VERSION-INFO      NIL
  CG.BASE::MOUSE-MOVE-WINDOW
     #<LISTENER-WINDOW :LISTENER-WINDOW-1 in IDE GUI @ #x212b6c9a>
  CG.BASE::MOUSE-MOVE-X         496
  CG.BASE::MOUSE-MOVE-Y         299
CG-USER(5): (describe '*system*)
*SYSTEM* is a TENURED SYMBOL.
  Its value is #<CG.BASE::CG-SYSTEM @ #x2117628a>
  It is globally declared to be a special variable.
  It is EXTERNAL in the CG.BASE package and exported from the CG package and accessible
in the CG.BITMAP-PANE, CG.BITMAP-PANE.CLIPBOARD, {{sic}}
CG-USER(6): (describe (find-class 'cg:system))
#<STANDARD-CLASS SYSTEM> is an instance of #<STANDARD-CLASS STANDARD-CLASS>:
 The following slots have :INSTANCE allocation:
  EXCL::LOCK-CONTROL           #(NIL NIL)
  EXCL::PLIST                  NIL
  EXCL::FLAGS                  0
  EXCL::DIRECT-METHODS         ((#<STANDARD-METHOD IDE.EDITOR:FIND-FILE (SYSTEM T)>))
  EXCL::NAME                   SYSTEM
  EXCL::DIRECT-SUPERCLASSES    (#<STANDARD-CLASS STANDARD-OBJECT>)
  EXCL::DIRECT-SUBCLASSES
     (#<STANDARD-CLASS IDE.BASE:IDE-SYSTEM> #<STANDARD-CLASS CG.BASE::CG-SYSTEM>)
  EXCL::WRAPPER                NIL
  ACLMOP:CLASS-PRECEDENCE-LIST NIL
  EXCL::DIRECT-SLOTS           NIL
  EXCL::SLOTS                  NIL
  EXCL::PROTOTYPE              NIL
{{sic}}
CG-USER(20): (cg:app *system*)
#<APP @ #x21185d3a>
CG-USER(21): (describe *)
#<APP @ #x21185d3a> is an instance of #<STANDARD-CLASS APP>:
 The following slots have :INSTANCE allocation:
  CG.BASE:INITIALIZATION-FUNCTION NIL
  DEFAULT-ERROR-HANDLER-FOR-DELIVERY REPORT-UNEXPECTED-ERROR-AND-EXIT
  MAIN-WINDOW-MAKER             NIL
  KILL-SPLASH-SCREEN-WHEN-READY NIL
  CG.BASE:SHARED-LIBRARIES      NIL
  HINST                         0
  CG.BASE:LAST-USED-PATH        #P"/usr/local/stow/"
  STANDALONE-APPLICATION        NIL
  BUILD-NUMBER                  NIL
  RUN-WITH-CONSOLE              NIL
{{sic}}
CG-USER(25):(configuration *system*)
#<CG-CONFIGURATION @ #x21185cfa>
CG-USER(26): (describe *)
#<CG-CONFIGURATION @ #x21185cfa> is an instance of
    #<STANDARD-CLASS CG-CONFIGURATION>:
 The following slots have :INSTANCE allocation:
  PROPORTIONAL-FONT             NIL
  FIXED-FONT                    NIL
  DEFAULT-WIDTH-FACTOR          0.75
  DEFAULT-HEIGHT-FACTOR         0.5
  DEFAULT-WIDTH                 NIL
  DEFAULT-HEIGHT                NIL
  SHOW-TOOLTIPS                 T
  USE-CG-TIMER                  NIL
  CG-TIMER-INTERVAL             500
  MULTI-PICTURE-BUTTON-SCROLL-INTERVAL 200
  DEFAULT-TAB-WIDTH             96
  DEFAULT-TAB-HEIGHT            24
  TOOLTIP-DELAY                 1000
  TOOLTIP-VERTICAL-OFFSET       16
  MENU-TOOLTIP-DELAY            1500
  USE-PIXMAP-HANDLES            T
  CLIPBOARD-HISTORY-LIMIT       40
  OFFSET-FROM-SELECTED-WINDOW   T
  MODAL-DIALOG-MARGIN           12
  CENTER-ALL-MODAL-DIALOGS-ON-SCREEN :ON-OWNER
  DRAG-IMAGES                   NIL
  PPRINT-PLIST-PAIRS-ON-SEPARATE-LINES NIL
  PPRINT-PLIST-DEFINERS
     ((MAKE-TEXTURE-INFO 1) (OPEN-MENU 4) (MAKE-INSTANCE 2) (MAKE-WINDOW 2))
  FILE-SELECTION-BUFFER-SIZE    500000
  CUSTOM-STATUS-BAR-FONT        NIL
  CUSTOM-TOOLTIP-FONT           NIL
  PARENTHESIS-MATCHING-STYLE    :COLOR-BLOCK
  PARENTHESIS-MATCHING-COLOR    #S(RGB :RED 0 :GREEN 255 :BLUE 0)
  CONSERVE-INDENTATION          NIL
  COLORIZE-ON-LOAD-FILE         NIL
  COLORIZE-ON-TYPING            T
  COLOR-FOR-COMMENTS            #S(RGB :RED 0 :GREEN 128 :BLUE 0)
  COLOR-FOR-STRINGS             #S(RGB :RED 190 :GREEN 0 :BLUE 0)
  COLOR-FOR-CHARACTERS          #S(RGB :RED 190 :GREEN 0 :BLUE 0)
  COLOR-FOR-GLOBAL-VARIABLES    #S(RGB :RED 240 :GREEN 0 :BLUE 0)
  COLOR-FOR-EXTERNAL-CL-SYMBOLS #S(RGB :RED 0 :GREEN 0 :BLUE 180)
  COLOR-FOR-EXTERNAL-ALLEGRO-SYMBOLS #S(RGB :RED 128 :GREEN 0 :BLUE 128)
  COLOR-FOR-EXTERNAL-CG-SYMBOLS #S(RGB :RED 200 :GREEN 100 :BLUE 0)
  COLOR-FOR-USER-FUNCTIONS      NIL
  PRIVATE-HTML-BROWSER-HANDLE   NIL
  INVOKE-WEB-BROWSERS-WITH-KEYSTROKES (:EXPLORER)
  RESERVE-RIGHTHAND-ALT-KEY     T
  IGNORE-REDUNDANT-MOUSE-MOVES  T
  MAP-CONTROL-LEFT-CLICK-TO-RIGHT-CLICK NIL
  EXTERNAL-FORMAT-FOR-SAVED-FILES :DEFAULT
  LOAD-UTF8-IF-NO-BOM           NIL
  WRITE-BOM-TO-UTF8-FILES       T
  DELAY-POP-UP-MENUS-UNTIL-MOUSE-BUTTONS-UP T