As a general rule, all palettes need to reside inside of one of the existing top-level palette categories. The Addons category is now reserved for LabVIEW Tools Network products, but any other top-level category is also acceptable except for User Libraries (user.lib) as this location is reserved for customer code. Instructions for creating a palette using VI Package Manager can be found here: Creating a LabVIEW Palette with VI Package Manager
Consider localization when creating icons and ensure control palette icons are consistent with the block diagram icons for the same item. Refer to the following document for more guidelines on icon development:
By default, changes made in the LabVIEW palette editor save to copies in the LabVIEW Data directory. If you want to instead save these files to the LabVIEW folder structure, put the following token in your INI file:
Tip: Always check the "Preview Palette Changes" checkbox on the palette editor dialog to ensure you are not overwriting any menu files shipped with LabVIEW.
The paths between a parent palette and a child palette may either be a relative path or a pseudopath, depending on where the palette files exist on your disk:
Note: If the config token "InternalPaletteEdit=True" is specified in the LabVIEW.INI file, then editing palette menus under the Menus directory will edit them in place. If the config token is set to False or not specified, then editing th epalette menus under the Menus directory will result in copies being placed in the LabVIEW Data Directory. In most cases, the copies of the Menu files will save relative paths to the child items.
Why is this important to know? If you ship a product that supports multiple versions of LabVIEW, it is possible that your installed palette directory for LabVIEW 7.1 is different than your installed palette directory for LabVIEW 8.x+. If the install directory is different, but all the relative paths between the palette files are the same, then ensuring the parent/child links between the palettes is a relative path will alow you to maintain one set of palette files.
The trick to ensuring all the paths are relative is to NOT use InternalPaletteEdit=True and instead rely on the copies saved to the LabVIEW Data Directory. To get relative paths, you need to ensure both the parent file and the child files are saved in the LabVIEW Data Directory.
When objects referenced by a palette are missing, the palette will display question mark icons for the missing objects.
For example, on the "File I/O" palette, the item "Write to Spreadsheeet File.vi" is pointing to \vi.lib\utility\file.llb\Write to Spreadsheet File.vi. If this VI doesn't exist in this file location, the palette would display a "?" at its position to indicate it is missing.
A question mark in a palette is a convenient and fast way of detecting if something is wrong in the configuration of the palette, but sometimes question marks are unavoidable. For example, the "Vision and Motion" palette is shipped with nothing in it by default. One the Vision and Motion toolkits are installed this palette will be populated with these toolkits. In order to force a layout of the Vision and Motion palette, reservations have been made on the palette and their reserved locations are displayed as "?" until the toolkits are installed. If you browse the Vision and Motion palette, you don't see any question marks because a file "readonly.txt" is used to hide the question marks in this case.
The purpose of "readonly.txt" is to hide question marks on a palette. It can be an empty file and should be placed next to the mnu file that has references to missing objects. Let's use the Vision and Motion palette as an example. \menus\categories\VisionMotion\dir.mnu is the file that references missing objects and "readonly.txt" is placed next to it in order to hide question marks.
Note: Question marks will show up in palette editing mode, even when "readonly.txt" exists, to show reserved palette locations
Also Note: If a readonly.txt file exists in the directory of a palette you are modifying, you must first move or rename the file temporarily or you will be unable to edit the palette views for this palette.