Index: trunk/src/tool.h =================================================================== --- trunk/src/tool.h (revision 26057) +++ trunk/src/tool.h (revision 26058) @@ -70,6 +70,7 @@ typedef struct pcb_tool_s { const char *name; /* textual name of the tool */ + const char *help; /* help/tooltip that explains the feature */ const char *cookie; /* plugin cookie _pointer_ of the registrar (comparision is pointer based, not strcmp) */ unsigned int priority; /* lower values are higher priorities; escaping mode will try to select the highest prio tool */ const char **icon; /* XPM for the tool buttons */ Index: trunk/src/tool_arc.c =================================================================== --- trunk/src/tool_arc.c (revision 26057) +++ trunk/src/tool_arc.c (revision 26058) @@ -221,7 +221,7 @@ }; pcb_tool_t pcb_tool_arc = { - "arc", NULL, 100, arc_icon, PCB_TOOL_CURSOR_NAMED("question_arrow"), 0, + "arc", NULL, NULL, 100, arc_icon, PCB_TOOL_CURSOR_NAMED("question_arrow"), 0, pcb_tool_arc_init, pcb_tool_arc_uninit, pcb_tool_arc_notify_mode, Index: trunk/src/tool_arrow.c =================================================================== --- trunk/src/tool_arrow.c (revision 26057) +++ trunk/src/tool_arrow.c (revision 26058) @@ -248,7 +248,7 @@ }; pcb_tool_t pcb_tool_arrow = { - "arrow", NULL, 10, arrow_icon, PCB_TOOL_CURSOR_NAMED("left_ptr"), 0, + "arrow", NULL, NULL, 10, arrow_icon, PCB_TOOL_CURSOR_NAMED("left_ptr"), 0, NULL, pcb_tool_arrow_uninit, pcb_tool_arrow_notify_mode, Index: trunk/src/tool_buffer.c =================================================================== --- trunk/src/tool_buffer.c (revision 26057) +++ trunk/src/tool_buffer.c (revision 26058) @@ -123,7 +123,7 @@ }; pcb_tool_t pcb_tool_buffer = { - "buffer", NULL, 100, buf_icon, PCB_TOOL_CURSOR_NAMED("hand"), 0, + "buffer", NULL, NULL, 100, buf_icon, PCB_TOOL_CURSOR_NAMED("hand"), 0, pcb_tool_buffer_init, pcb_tool_buffer_uninit, pcb_tool_buffer_notify_mode, Index: trunk/src/tool_copy.c =================================================================== --- trunk/src/tool_copy.c (revision 26057) +++ trunk/src/tool_copy.c (revision 26058) @@ -115,7 +115,7 @@ } pcb_tool_t pcb_tool_copy = { - "copy", NULL, 100, NULL, PCB_TOOL_CURSOR_NAMED("crosshair"), 0, + "copy", NULL, NULL, 100, NULL, PCB_TOOL_CURSOR_NAMED("crosshair"), 0, NULL, pcb_tool_copy_uninit, pcb_tool_copy_notify_mode, Index: trunk/src/tool_insert.c =================================================================== --- trunk/src/tool_insert.c (revision 26057) +++ trunk/src/tool_insert.c (revision 26058) @@ -163,7 +163,7 @@ }; pcb_tool_t pcb_tool_insert = { - "insert", NULL, 100, ins_icon, PCB_TOOL_CURSOR_NAMED("dotbox"), 0, + "insert", NULL, NULL, 100, ins_icon, PCB_TOOL_CURSOR_NAMED("dotbox"), 0, NULL, pcb_tool_insert_uninit, pcb_tool_insert_notify_mode, Index: trunk/src/tool_line.c =================================================================== --- trunk/src/tool_line.c (revision 26057) +++ trunk/src/tool_line.c (revision 26058) @@ -496,7 +496,7 @@ pcb_tool_t pcb_tool_line = { - "line", NULL, 100, line_icon, PCB_TOOL_CURSOR_NAMED("pencil"), 0, + "line", NULL, NULL, 100, line_icon, PCB_TOOL_CURSOR_NAMED("pencil"), 0, pcb_tool_line_init, pcb_tool_line_uninit, pcb_tool_line_notify_mode, Index: trunk/src/tool_lock.c =================================================================== --- trunk/src/tool_lock.c (revision 26057) +++ trunk/src/tool_lock.c (revision 26058) @@ -118,7 +118,7 @@ 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f}; pcb_tool_t pcb_tool_lock = { - "lock", NULL, 100, lock_icon, PCB_TOOL_CURSOR_XBM(lockIcon_bits, lockMask_bits), 0, + "lock", NULL, NULL, 100, lock_icon, PCB_TOOL_CURSOR_XBM(lockIcon_bits, lockMask_bits), 0, NULL, NULL, pcb_tool_lock_notify_mode, Index: trunk/src/tool_move.c =================================================================== --- trunk/src/tool_move.c (revision 26057) +++ trunk/src/tool_move.c (revision 26058) @@ -121,7 +121,7 @@ } pcb_tool_t pcb_tool_move = { - "move", NULL, 100, NULL, PCB_TOOL_CURSOR_NAMED("crosshair"), 0, + "move", NULL, NULL, 100, NULL, PCB_TOOL_CURSOR_NAMED("crosshair"), 0, NULL, pcb_tool_move_uninit, pcb_tool_move_notify_mode, Index: trunk/src/tool_poly.c =================================================================== --- trunk/src/tool_poly.c (revision 26057) +++ trunk/src/tool_poly.c (revision 26058) @@ -177,7 +177,7 @@ }; pcb_tool_t pcb_tool_poly = { - "poly", NULL, 100, poly_icon, PCB_TOOL_CURSOR_NAMED("up_arrow"), 0, + "poly", NULL, NULL, 100, poly_icon, PCB_TOOL_CURSOR_NAMED("up_arrow"), 0, NULL, pcb_tool_poly_uninit, pcb_tool_poly_notify_mode, Index: trunk/src/tool_polyhole.c =================================================================== --- trunk/src/tool_polyhole.c (revision 26057) +++ trunk/src/tool_polyhole.c (revision 26058) @@ -205,7 +205,7 @@ pcb_tool_t pcb_tool_polyhole = { - "polyhole", NULL, 100, polyhole_icon, PCB_TOOL_CURSOR_NAMED("up_arrow"), 0, + "polyhole", NULL, NULL, 100, polyhole_icon, PCB_TOOL_CURSOR_NAMED("up_arrow"), 0, NULL, pcb_tool_polyhole_uninit, pcb_tool_polyhole_notify_mode, Index: trunk/src/tool_rectangle.c =================================================================== --- trunk/src/tool_rectangle.c (revision 26057) +++ trunk/src/tool_rectangle.c (revision 26058) @@ -145,7 +145,7 @@ pcb_tool_t pcb_tool_rectangle = { - "rectangle", NULL, 100, rect_icon, PCB_TOOL_CURSOR_NAMED("ul_angle"), 0, + "rectangle", NULL, NULL, 100, rect_icon, PCB_TOOL_CURSOR_NAMED("ul_angle"), 0, NULL, pcb_tool_rectangle_uninit, pcb_tool_rectangle_notify_mode, Index: trunk/src/tool_remove.c =================================================================== --- trunk/src/tool_remove.c (revision 26057) +++ trunk/src/tool_remove.c (revision 26058) @@ -114,7 +114,7 @@ }; pcb_tool_t pcb_tool_remove = { - "remove", NULL, 100, del_icon, PCB_TOOL_CURSOR_NAMED("pirate"), 0, + "remove", NULL, NULL, 100, del_icon, PCB_TOOL_CURSOR_NAMED("pirate"), 0, NULL, NULL, pcb_tool_remove_notify_mode, Index: trunk/src/tool_rotate.c =================================================================== --- trunk/src/tool_rotate.c (revision 26057) +++ trunk/src/tool_rotate.c (revision 26058) @@ -95,7 +95,7 @@ 0x1f, 0x60, 0x3b, 0x30, 0xe1, 0x3f, 0xc0, 0x0f}; pcb_tool_t pcb_tool_rotate = { - "rotate", NULL, 100, rot_icon, PCB_TOOL_CURSOR_XBM(rotateIcon_bits, rotateMask_bits), 0, + "rotate", NULL, NULL, 100, rot_icon, PCB_TOOL_CURSOR_XBM(rotateIcon_bits, rotateMask_bits), 0, NULL, NULL, pcb_tool_rotate_notify_mode, Index: trunk/src/tool_text.c =================================================================== --- trunk/src/tool_text.c (revision 26057) +++ trunk/src/tool_text.c (revision 26058) @@ -123,7 +123,7 @@ }; pcb_tool_t pcb_tool_text = { - "text", NULL, 100, text_icon, PCB_TOOL_CURSOR_NAMED("xterm"), 0, + "text", NULL, NULL, 100, text_icon, PCB_TOOL_CURSOR_NAMED("xterm"), 0, NULL, NULL, pcb_tool_text_notify_mode, Index: trunk/src/tool_thermal.c =================================================================== --- trunk/src/tool_thermal.c (revision 26057) +++ trunk/src/tool_thermal.c (revision 26058) @@ -133,7 +133,7 @@ }; pcb_tool_t pcb_tool_thermal = { - "thermal", NULL, 100, thrm_icon, PCB_TOOL_CURSOR_NAMED("iron_cross"), 0, + "thermal", NULL, NULL, 100, thrm_icon, PCB_TOOL_CURSOR_NAMED("iron_cross"), 0, NULL, NULL, pcb_tool_thermal_notify_mode, Index: trunk/src/tool_via.c =================================================================== --- trunk/src/tool_via.c (revision 26057) +++ trunk/src/tool_via.c (revision 26058) @@ -135,7 +135,7 @@ }; pcb_tool_t pcb_tool_via = { - "via", NULL, 100, via_icon, PCB_TOOL_CURSOR_NAMED(NULL), 0, + "via", NULL, NULL, 100, via_icon, PCB_TOOL_CURSOR_NAMED(NULL), 0, NULL, NULL, pcb_tool_via_notify_mode, Index: trunk/src_plugins/ddraft/ddraft.c =================================================================== --- trunk/src_plugins/ddraft/ddraft.c (revision 26057) +++ trunk/src_plugins/ddraft/ddraft.c (revision 26058) @@ -435,7 +435,8 @@ " "}; static pcb_tool_t tool_ddraft = { - "ddraft", NULL, 1000, ddraft_xpm, PCB_TOOL_CURSOR_NAMED(NULL), 1, + "ddraft", "2 dimensional drafting", + NULL, 1000, ddraft_xpm, PCB_TOOL_CURSOR_NAMED(NULL), 1, NULL, NULL, NULL, Index: trunk/src_plugins/serpentine/serpentine.c =================================================================== --- trunk/src_plugins/serpentine/serpentine.c (revision 26057) +++ trunk/src_plugins/serpentine/serpentine.c (revision 26058) @@ -408,7 +408,8 @@ } static pcb_tool_t tool_serpentine = { - "serpentine", NULL, 100, NULL, PCB_TOOL_CURSOR_NAMED(NULL), 0, + "serpentine", "experimental", + NULL, 100, NULL, PCB_TOOL_CURSOR_NAMED(NULL), 0, tool_serpentine_init, tool_serpentine_uninit, tool_serpentine_notify_mode, Index: trunk/src_plugins/sketch_route/sketch_route.c =================================================================== --- trunk/src_plugins/sketch_route/sketch_route.c (revision 26057) +++ trunk/src_plugins/sketch_route/sketch_route.c (revision 26058) @@ -1123,7 +1123,8 @@ " "}; static pcb_tool_t tool_skline = { - "skline", NULL, 100, skroute_xpm, PCB_TOOL_CURSOR_NAMED(NULL), PCB_TLF_AUTO_TOOLBAR, + "skline", "convert a free-hand sketch of a route to traces", + NULL, 100, skroute_xpm, PCB_TOOL_CURSOR_NAMED(NULL), PCB_TLF_AUTO_TOOLBAR, tool_skline_init, tool_skline_uninit, tool_skline_notify_mode,