int parse_state(const char *str, t_state *state)
{
- if(!ft_strcmp(str, "on"))
- *state = on;
- else if (!ft_strcmp(str, "off"))
+ if (!ft_strcmp(str, "off"))
*state = off;
+ else if (!ft_strcmp(str, "on"))
+ *state = on;
else if (!ft_strcmp(str, "pd") || !ft_strcmp(str, "pull_down"))
*state = pull_down;
else if (!ft_strcmp(str, "pu") || !ft_strcmp(str, "pull_up"))
return ;
}
+void schema_switch_mode(WINDOW *schematics_win, t_vec *nodes, t_vec *mosfets, t_position pos)
+{
+ t_node *chosen_node;
+
+ chosen_node = find_node_at_pos(nodes, pos);
+ if (!chosen_node)
+ return ;
+ if (chosen_node->set_state == unknown)
+ chosen_node->set_state = off;
+ else
+ ++chosen_node->set_state;
+ update_nodes(nodes, mosfets);
+ refresh_schema_win(schematics_win, nodes, mosfets);
+ wmove(schematics_win, pos.y, pos.x);
+ return ;
+}
+
int handle_key_press(int ch, WINDOW *schematics_win, t_vec *nodes, t_vec *mosfets)
{
t_position pos;
schema_add_mosfet(schematics_win, nodes, mosfets, pos);
else if (ch == 'c')
schema_user_draw_node(schematics_win, nodes, mosfets, pos);
+ else if (ch == 's')
+ schema_switch_mode(schematics_win, nodes, mosfets, pos);
return (0);
}