Ok, zero you got most it right. However, what code determines what icon it uses in the files are determined is found in the brushes files
for example for the tech orbital frigate factory the code in the brushes file: HUDIcon-Module.brushes
brush
name "HUDICON_PLANETMODULE_TECHORBITALFRIGATEFACTORY"
content "States"
Disabled
fileName "Unit_Hud_Disabled" -> file name, would be in the Unit_Hud_Disable.tga
pixelBox [ 153 , 119 , 47 , 33 ] -> location of the icon in pixels (remember the program draws a box based on your starting and ending location), I believe the first two is the starting location of the box, and then next two is the (x,y) size of the box
Pressed
fileName "Unit_Hud_Pressed"
pixelBox [ 153 , 119 , 47 , 33 ]
CursorOver
fileName "Unit_Hud_CursorOver"
pixelBox [ 153 , 119 , 47 , 33 ]
Focused
fileName "Unit_Hud_Normal"
pixelBox [ 153 , 119 , 47 , 33 ]
Normal
fileName "Unit_Hud_Normal"
pixelBox [ 153 , 119 , 47 , 33 ]