| 658 | |
| 659 | } |
| 660 | LfClickableItemState div_container(vec2s pos, vec2s size, LfUIElementProps props, LfColor color, float border_width, bool click_color, bool hover_color) { |
| 661 | if(item_should_cull((LfAABB){.pos = pos, .size = size})) { |
| 662 | return LF_IDLE; |
| 663 | } |
| 664 | |
| 665 | LfColor hover_color_rgb = hover_color ? (props.hover_color.a == 0.0f ? lf_color_brightness(color, 1.5) : props.hover_color) : color; |
| 666 | LfColor held_color_rgb = click_color ? lf_color_brightness(color, 1.8) : color; |
| 667 | |
| 668 | bool is_hovered = lf_hovered(pos, size); |
| 669 | if(is_hovered && lf_mouse_button_is_released(GLFW_MOUSE_BUTTON_LEFT)) { |
| 670 | lf_rect_render(pos, size, hover_color_rgb, props.border_color, border_width, props.corner_radius); |
| 671 | return LF_CLICKED; |
| 672 | } |
| 673 | if(is_hovered && lf_mouse_button_is_down(GLFW_MOUSE_BUTTON_LEFT)) { |
| 674 | lf_rect_render(pos, size, held_color_rgb, props.border_color, border_width, props.corner_radius); |
| 675 | return LF_HELD; |
| 676 | } |
| 677 | if(is_hovered && (!lf_mouse_button_went_down(GLFW_MOUSE_BUTTON_LEFT) && !lf_mouse_button_is_down(GLFW_MOUSE_BUTTON_LEFT))) { |
| 678 | lf_rect_render(pos, size, hover_color ? hover_color_rgb : color, props.border_color, border_width, props.corner_radius); |
| 679 | return LF_HOVERED; |
| 680 | } |
| 681 | lf_rect_render(pos, size, color, props.border_color, border_width, props.corner_radius); |
| 682 | return LF_IDLE; |
| 683 | |
| 684 | } |
| 685 | |
| 686 | void next_line_on_overflow(vec2s size, float xoffset) { |
| 687 | if(!state.line_overflow) return; |
no test coverage detected