Appendix: Providing Icons for UI Objects

If you are writing user interface objects for Max, it is recommended that you provide an icon for your object.

Providing an icon will allow users to create an instance of your class from the object palette, and improve the user's experience in other interactions with Max including the Object Defaults inspector.

Object SVG Icon

To see the icons provided by Cycling '74 for objects included in Max, look in the Cycling '74/object-palettes folder installed by Max. You will find a variety of SVG (scalable vector graphics) files for the objects. The files are named with the same name of the class (as it is defined in your main() function) with which they are associated.

SVG files can be edited in a variety of software applications such as InkScape or Adobe Illustrator. You can also export SVG files from OmniGraffle on the Mac, which is how the Max's object icons were created.

It is recommended that you distribute your object as a Max Package (see Appendix: Distributing Packages). Within this package you shoulo place your svg in the 'interfaces' folder.

Quick Lookup Definition

Adding the svg file will make the icon available to Max for use in some ways. To make your icon appear in Max's Object Explorer, however, you must create a quick-lookup (or qlookup) entry for your object. If you look in the Cycling '74/interfaces folder, you should notice some files with names like "obj-qlookup.json" and "doc-qlookup.json". For your object, you should create a similar qlookup file.

For the following example we will assume you have created an object called 'littleuifoo'. For this object we will create a qlookup called 'littleuifoo-obj-qlookup.json'. The contents of this file will look like this:

  "littleuifoo": {
    "digest": "Little UI Object that does Foo",
    "module": "max",
    "category": [
    "palette": {
      "category": [
      "action": "littleuifoo",
      "pic": "littleuifoo.svg"