Jason,
There isn't a clean way of disabling the outline, but you can still do it, in a sort of roundabout way.
The outline only appears when the control does not have the focus (when it does have the focus, it shows a solid selection, same is it did in 5.5). The outline will not appear if the table is in edit mode (ATTR_TABLE_RUN_STATE = VAL_EDIT_STATE). Because the run state does not matter when the table does not have the focus, you can take advantage of this by toggling the run state whenever the table loses the focus.
Try adding the following code to the table's callback:
case EVENT_GOT_FOCUS:
SetCtrlAttribute (panel, control, ATTR_TABLE_RUN_STATE, VAL_SELECT_STATE);
break;
case EVENT_LOST_FOCUS:
SetCtrlAttribute (panel, control, ATTR_TABLE_RUN
_STATE, VAL_EDIT_STATE);
SetCtrlAttribute (panel, control, ATTR_DIMMED, 1);
SetCtrlAttribute (panel, control, ATTR_DIMMED, 0);
break;
You might be wondering why the code is dimming and undimming the table. That's just a little trick to force the table to redraw itself after the attribute change (which is sometimes needed when the attribute change coincides with the control losing focus).
By the way, this callback code only "fixes" the problem when the user changes the focus after the panel has been loaded. If you want to also take care of the problem when the panel is first displayed, because you know that the table does not start out as the active control, then you also need to add this line to your initialization code:
SetCtrlAttribute (panel, control, ATTR_TABLE_RUN_STATE, VAL_EDIT_STATE);
Let me know if this doesn't make sense.
Luis
NI