Index: trunk/src/buffer.c =================================================================== --- trunk/src/buffer.c (revision 29310) +++ trunk/src/buffer.c (revision 29311) @@ -1088,7 +1088,7 @@ PCB_ACT_IRES(-1); } else - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_PASTE_BUFFER); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "buffer"); break; case F_Save: Index: trunk/src/file_act.c =================================================================== --- trunk/src/file_act.c (revision 29310) +++ trunk/src/file_act.c (revision 29311) @@ -78,7 +78,7 @@ case F_Footprint: pcb_notify_crosshair_change(pcb_false); if (pcb_buffer_load_footprint(PCB_PASTEBUFFER, name, format)) - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_PASTE_BUFFER); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "buffer"); pcb_notify_crosshair_change(pcb_true); break; @@ -85,7 +85,7 @@ case F_LayoutToBuffer: pcb_notify_crosshair_change(pcb_false); if (pcb_buffer_load_layout(PCB, PCB_PASTEBUFFER, name, format)) - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_PASTE_BUFFER); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "buffer"); pcb_notify_crosshair_change(pcb_true); break; Index: trunk/src/gui_act.c =================================================================== --- trunk/src/gui_act.c (revision 29310) +++ trunk/src/gui_act.c (revision 29311) @@ -399,26 +399,26 @@ pcb_notify_crosshair_change(pcb_false); switch(fgw_keyword(&argv[1])) { case F_Arc: - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_ARC); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "arc"); break; case F_Arrow: case F_None: - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_ARROW); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "arrow"); break; case F_Copy: - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_COPY); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "copy"); break; case F_InsertPoint: - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_INSERT_POINT); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "insert"); break; case F_Line: - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_LINE); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "line"); break; case F_Lock: - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_LOCK); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "lock"); break; case F_Move: - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_MOVE); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "move"); break; case F_Cancel: { @@ -498,13 +498,13 @@ pcb_notify_mode(PCB_ACT_HIDLIB); break; case F_PasteBuffer: - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_PASTE_BUFFER); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "buffer"); break; case F_Polygon: - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_POLYGON); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "poly"); break; case F_PolygonHole: - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_POLYGON_HOLE); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "polyhole"); break; case F_Release: if ((pcb_mid_stroke) && (conf_core.editor.enable_stroke) && (pcb_stub_stroke_finish(PCB_ACT_HIDLIB) == 0)) { @@ -518,13 +518,13 @@ pcb_release_mode(PCB_ACT_HIDLIB); break; case F_Remove: - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_REMOVE); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "remove"); break; case F_Rectangle: - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_RECTANGLE); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "rectangle"); break; case F_Rotate: - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_ROTATE); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "rotate"); break; case F_Stroke: if (conf_core.editor.enable_stroke) { @@ -534,28 +534,28 @@ /* Handle middle mouse button restarts of drawing mode. If not in a drawing mode, middle mouse button will select objects. */ if (pcbhl_conf.editor.mode == PCB_MODE_LINE && pcb_crosshair.AttachedLine.State != PCB_CH_STATE_FIRST) - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_LINE); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "line"); else if (pcbhl_conf.editor.mode == PCB_MODE_ARC && pcb_crosshair.AttachedBox.State != PCB_CH_STATE_FIRST) - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_ARC); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "arc"); else if (pcbhl_conf.editor.mode == PCB_MODE_RECTANGLE && pcb_crosshair.AttachedBox.State != PCB_CH_STATE_FIRST) - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_RECTANGLE); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "rectangle"); else if (pcbhl_conf.editor.mode == PCB_MODE_POLYGON && pcb_crosshair.AttachedLine.State != PCB_CH_STATE_FIRST) - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_POLYGON); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "polygon"); else { pcb_tool_save(PCB_ACT_HIDLIB); pcb_tool_is_saved = pcb_true; - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_ARROW); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "arrow"); pcb_notify_mode(PCB_ACT_HIDLIB); } break; case F_Text: - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_TEXT); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "text"); break; case F_Thermal: - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_THERMAL); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "thermal"); break; case F_Via: - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_VIA); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "via"); break; case F_Restore: /* restore the last saved tool */ @@ -873,7 +873,7 @@ set_same_(((pcb_line_t *) ptr2)->Thickness, -1, -1, ((pcb_line_t *) ptr2)->Clearance / 2, NULL); layer = (pcb_layer_t *) ptr1; if (pcbhl_conf.editor.mode != PCB_MODE_LINE) - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_LINE); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "line"); pcb_notify_crosshair_change(pcb_true); pcb_event(PCB_ACT_HIDLIB, PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); break; @@ -883,7 +883,7 @@ set_same_(((pcb_arc_t *) ptr2)->Thickness, -1, -1, ((pcb_arc_t *) ptr2)->Clearance / 2, NULL); layer = (pcb_layer_t *) ptr1; if (pcbhl_conf.editor.mode != PCB_MODE_ARC) - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_ARC); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "arc"); pcb_notify_crosshair_change(pcb_true); pcb_event(PCB_ACT_HIDLIB, PCB_EVENT_ROUTE_STYLES_CHANGED, NULL); break; Index: trunk/src/main.c =================================================================== --- trunk/src/main.c (revision 29310) +++ trunk/src/main.c (revision 29311) @@ -461,7 +461,7 @@ main_sighand_init(); pcb_init_buffers(PCB); - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_ARROW); + pcb_tool_select_by_name(&PCB->hidlib, "arrow"); if (ga.hid_argc > 0) command_line_pcb = ga.hid_argv[0]; @@ -511,7 +511,7 @@ pcb_message(PCB_MSG_ERROR, "%s\n", EXPERIMENTAL); pcb_message(PCB_MSG_ERROR, "******************************** IMPORTANT ********************************\n"); } - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_ARROW); + pcb_tool_select_by_name(&PCB->hidlib, "arrow"); pcb_event(&PCB->hidlib, PCB_EVENT_LIBRARY_CHANGED, NULL); pcb_crosshair_init(); pcbhl_mainloop_interactive(&ga, &PCB->hidlib); Index: trunk/src/remove_act.c =================================================================== --- trunk/src/remove_act.c (revision 29310) +++ trunk/src/remove_act.c (revision 29311) @@ -74,7 +74,7 @@ else { /* interactive remove */ pcb_hid_get_coords("Click on object to delete", &pcb_tool_note.X, &pcb_tool_note.Y, 0); pcb_tool_save(PCB_ACT_HIDLIB); - pcb_tool_select_by_id(PCB_ACT_HIDLIB, PCB_MODE_REMOVE); + pcb_tool_select_by_name(PCB_ACT_HIDLIB, "remove"); pcb_notify_mode(PCB_ACT_HIDLIB); pcb_tool_restore(PCB_ACT_HIDLIB); } Index: trunk/src_plugins/dialogs/dlg_library.c =================================================================== --- trunk/src_plugins/dialogs/dlg_library.c (revision 29310) +++ trunk/src_plugins/dialogs/dlg_library.c (revision 29311) @@ -183,7 +183,7 @@ static void timed_update_preview_(library_ctx_t *ctx, const char *otext) { if (pcb_buffer_load_footprint(PCB_PASTEBUFFER, otext, NULL)) { - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_PASTE_BUFFER); + pcb_tool_select_by_name(&PCB->hidlib, "buffer"); if (pcb_subclist_length(&PCB_PASTEBUFFER->Data->subc) != 0) library_update_preview(ctx, pcb_subclist_first(&PCB_PASTEBUFFER->Data->subc), NULL); pcb_gui->invalidate_all(pcb_gui); @@ -354,7 +354,7 @@ } else { if (pcb_buffer_load_footprint(PCB_PASTEBUFFER, l->data.fp.loc_info, NULL)) { - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_PASTE_BUFFER); + pcb_tool_select_by_name(&PCB->hidlib, "buffer"); if (pcb_subclist_length(&PCB_PASTEBUFFER->Data->subc) != 0) library_update_preview(ctx, pcb_subclist_first(&PCB_PASTEBUFFER->Data->subc), l); update_edit_button(ctx); Index: trunk/src_plugins/hid_lesstif/library.c =================================================================== --- trunk/src_plugins/hid_lesstif/library.c (revision 29310) +++ trunk/src_plugins/hid_lesstif/library.c (revision 29311) @@ -69,7 +69,7 @@ pcb_fplibrary_t *e = picks.array[last_pick]; e = &e->data.dir.children.array[cbs->item_position - 1]; if (pcb_buffer_load_footprint(PCB_PASTEBUFFER, e->data.fp.loc_info, NULL)) - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_PASTE_BUFFER); + pcb_tool_select_by_name(&PCB->hidlib, "buffer"); } static int build_library_dialog() Index: trunk/src_plugins/shand_cmd/command.c =================================================================== --- trunk/src_plugins/shand_cmd/command.c (revision 29310) +++ trunk/src_plugins/shand_cmd/command.c (revision 29311) @@ -94,7 +94,7 @@ PCB_ACT_CONVARG(1, FGW_STR, LoadElementToBuffer, filename = argv[1].val.str); if (pcb_buffer_load_footprint(PCB_PASTEBUFFER, filename, NULL)) - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_PASTE_BUFFER); + pcb_tool_select_by_name(&PCB->hidlib, "buffer"); PCB_ACT_IRES(0); return 0; @@ -111,7 +111,7 @@ PCB_ACT_MAY_CONVARG(2, FGW_STR, LoadLayoutToBuffer, format = argv[2].val.str); if (pcb_buffer_load_layout(PCB, PCB_PASTEBUFFER, filename, format)) - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_PASTE_BUFFER); + pcb_tool_select_by_name(&PCB->hidlib, "buffer"); PCB_ACT_IRES(0); return 0; Index: trunk/src_plugins/shape/shape.c =================================================================== --- trunk/src_plugins/shape/shape.c (revision 29310) +++ trunk/src_plugins/shape/shape.c (revision 29311) @@ -255,7 +255,7 @@ pcb_r_delete_entry(PCB_CURRLAYER(PCB)->polygon_tree, (pcb_box_t *)p); pcb_poly_free_fields(p); pcb_poly_free(p); - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_PASTE_BUFFER); + pcb_tool_select_by_name(&PCB->hidlib, "buffer"); } return p; } @@ -303,7 +303,7 @@ pcb_copy_obj_to_buffer(PCB, data, PCB->Data, PCB_OBJ_LINE, PCB_CURRLAYER(PCB), l, l); pcb_r_delete_entry(PCB_CURRLAYER(PCB)->line_tree, (pcb_box_t *)l); pcb_line_free(l); - pcb_tool_select_by_id(&PCB->hidlib, PCB_MODE_PASTE_BUFFER); + pcb_tool_select_by_name(&PCB->hidlib, "buffer"); } } return l;