diff --git a/examples/example.jl b/examples/example.jl index 575f19b..552e789 100644 --- a/examples/example.jl +++ b/examples/example.jl @@ -6,7 +6,7 @@ import SimpleWidgets as SW include("opengl_utils.jl") -mutable struct UIState <: SW.AbstractUIState +mutable struct UserInteractionState <: SW.AbstractUIState hot_widget::SW.WidgetID active_widget::SW.WidgetID null_widget::SW.WidgetID @@ -70,7 +70,7 @@ function start() drawing_time_buffer = DS.CircularBuffer{typeof(time_ns())}(sliding_window_size) push!(drawing_time_buffer, zero(UInt)) - ui_state = UIState(SW.NULL_WIDGET_ID, SW.NULL_WIDGET_ID, SW.NULL_WIDGET_ID) + user_interaction_state = UserInteractionState(SW.NULL_WIDGET_ID, SW.NULL_WIDGET_ID, SW.NULL_WIDGET_ID) user_input_state = UserInputState( SW.Cursor(1, 1), @@ -160,7 +160,7 @@ function start() button1_bounding_box = SW.BoundingBox(577, 1, 608, 200) button1_id = SW.WidgetID(@__LINE__, @__FILE__) - button1_value = SW.widget!(ui_state, button1_id, SW.BUTTON, button1_bounding_box, user_input_state.cursor, user_input_state.mouse_left) + button1_value = SW.do_widget!(user_interaction_state, button1_id, SW.BUTTON, button1_bounding_box, user_input_state.cursor, user_input_state.mouse_left) if button1_value text_color = 0x00aa0000 end @@ -170,7 +170,7 @@ function start() button2_bounding_box = SW.BoundingBox(609, 1, 640, 200) button2_id = SW.WidgetID(@__LINE__, @__FILE__) - button2_value = SW.widget!(ui_state, button2_id, SW.BUTTON, button2_bounding_box, user_input_state.cursor, user_input_state.mouse_left) + button2_value = SW.do_widget!(user_interaction_state, button2_id, SW.BUTTON, button2_bounding_box, user_input_state.cursor, user_input_state.mouse_left) if button2_value text_color = 0x00000000 end @@ -180,7 +180,7 @@ function start() slider_bounding_box = SW.BoundingBox(641, 1, 672, 200) slider_id = SW.WidgetID(@__LINE__, @__FILE__) - slider_value = SW.widget!(ui_state, slider_id, SW.SLIDER, slider_bounding_box, user_input_state.cursor, user_input_state.mouse_left, slider_value) + slider_value = SW.do_widget!(user_interaction_state, slider_id, SW.SLIDER, slider_bounding_box, user_input_state.cursor, user_input_state.mouse_left, slider_value) slider_shape = convert(SD.Rectangle{Int}, slider_bounding_box) SD.draw!(image, slider_shape, text_color) slider_value_shape = SD.FilledRectangle(SD.Point(641, 1), 32, slider_value) @@ -189,7 +189,7 @@ function start() text_input_bounding_box = SW.BoundingBox(673, 1, 704, 200) text_input_id = SW.WidgetID(@__LINE__, @__FILE__) - SW.widget!(ui_state, text_input_id, SW.TEXT_INPUT, text_input_bounding_box, user_input_state.cursor, user_input_state.mouse_left, text_line, user_input_state.characters) + SW.do_widget!(user_interaction_state, text_input_id, SW.TEXT_INPUT, text_input_bounding_box, user_input_state.cursor, user_input_state.mouse_left, text_line, user_input_state.characters) text_input_shape = convert(SD.Rectangle{Int}, text_input_bounding_box) SD.draw!(image, text_input_shape, text_color) text_input_value_shape = SD.TextLine(SD.Point(673, 1), String(text_line), SD.TERMINUS_32_16) @@ -212,8 +212,8 @@ function start() push!(lines, "button2_value: $(button2_value)") push!(lines, "text_color: $(repr(text_color))") push!(lines, "slider_value: $(slider_value)") - push!(lines, "ui_state.hot_widget: $(ui_state.hot_widget)") - push!(lines, "ui_state.active_widget: $(ui_state.active_widget)") + push!(lines, "user_interaction_state.hot_widget: $(user_interaction_state.hot_widget)") + push!(lines, "user_interaction_state.active_widget: $(user_interaction_state.active_widget)") draw_lines!(image, lines, text_color) diff --git a/src/ui_state.jl b/src/ui_state.jl index b3a6f80..dbdad09 100644 --- a/src/ui_state.jl +++ b/src/ui_state.jl @@ -9,12 +9,12 @@ abstract type AbstractUIState end const NULL_WIDGET_ID = WidgetID(0, "") -function widget!(ui_state::AbstractUIState, args...; kwargs...) - hot_widget, active_widget, null_widget, values = widget!!(ui_state.hot_widget, ui_state.active_widget, ui_state.null_widget, args...; kwargs...) +function do_widget!(user_interaction_state::AbstractUIState, args...; kwargs...) + hot_widget, active_widget, null_widget, values = do_widget!!(user_interaction_state.hot_widget, user_interaction_state.active_widget, user_interaction_state.null_widget, args...; kwargs...) - ui_state.hot_widget = hot_widget - ui_state.active_widget = active_widget - ui_state.null_widget = null_widget + user_interaction_state.hot_widget = hot_widget + user_interaction_state.active_widget = active_widget + user_interaction_state.null_widget = null_widget return values end diff --git a/src/widgets.jl b/src/widgets.jl index 6b3c63a..ab9ca50 100644 --- a/src/widgets.jl +++ b/src/widgets.jl @@ -21,7 +21,7 @@ function get_widget_value(hot_widget, active_widget, widget, ::Button, condition end end -function widget(hot_widget, active_widget, null_widget, widget, widget_type::Button, i_min, j_min, i_max, j_max, i_mouse, j_mouse, ended_down, half_transition_count) +function do_widget(hot_widget, active_widget, null_widget, widget, widget_type::Button, i_min, j_min, i_max, j_max, i_mouse, j_mouse, ended_down, half_transition_count) mouse_over_button = (i_min <= i_mouse <= i_max) && (j_min <= j_mouse <= j_max) mouse_went_down = went_down(ended_down, half_transition_count) mouse_went_up = went_up(ended_down, half_transition_count) @@ -39,9 +39,9 @@ function widget(hot_widget, active_widget, null_widget, widget, widget_type::But return hot_widget, active_widget, null_widget, value end -widget(hot_widget, active_widget, null_widget, widg, widget_type::Button, bounding_box::BoundingBox, cursor::Cursor, input_button::InputButton) = widget(hot_widget, active_widget, null_widget, widg, widget_type::Button, bounding_box.i_min, bounding_box.j_min, bounding_box.i_max, bounding_box.j_max, cursor.i, cursor.j, input_button.ended_down, input_button.half_transition_count) +do_widget(hot_widget, active_widget, null_widget, widget, widget_type::Button, bounding_box::BoundingBox, cursor::Cursor, input_button::InputButton) = do_widget(hot_widget, active_widget, null_widget, widget, widget_type::Button, bounding_box.i_min, bounding_box.j_min, bounding_box.i_max, bounding_box.j_max, cursor.i, cursor.j, input_button.ended_down, input_button.half_transition_count) -widget!!(hot_widget, active_widget, null_widget, widg, widget_type::Button, args...; kwargs...) = widget(hot_widget, active_widget, null_widget, widg, widget_type, args...; kwargs...) +do_widget!!(hot_widget, active_widget, null_widget, widget, widget_type::Button, args...; kwargs...) = do_widget(hot_widget, active_widget, null_widget, widget, widget_type, args...; kwargs...) ##### ##### Slider @@ -55,7 +55,7 @@ function get_widget_value(hot_widget, active_widget, widget, ::Slider, active_va end end -function widget(hot_widget, active_widget, null_widget, widget, widget_type::Slider, i_min, j_min, i_max, j_max, i_mouse, j_mouse, ended_down, half_transition_count, last_value) +function do_widget(hot_widget, active_widget, null_widget, widget, widget_type::Slider, i_min, j_min, i_max, j_max, i_mouse, j_mouse, ended_down, half_transition_count, last_value) mouse_over_slider = (i_min <= i_mouse <= i_max) && (j_min <= j_mouse <= j_max) mouse_went_down = went_down(ended_down, half_transition_count) mouse_went_up = went_up(ended_down, half_transition_count) @@ -73,9 +73,9 @@ function widget(hot_widget, active_widget, null_widget, widget, widget_type::Sli return hot_widget, active_widget, null_widget, value end -widget(hot_widget, active_widget, null_widget, widg, widget_type::Slider, bounding_box::BoundingBox, cursor::Cursor, input_button::InputButton, last_value) = widget(hot_widget, active_widget, null_widget, widg, widget_type::Slider, bounding_box.i_min, bounding_box.j_min, bounding_box.i_max, bounding_box.j_max, cursor.i, cursor.j, input_button.ended_down, input_button.half_transition_count, last_value) +do_widget(hot_widget, active_widget, null_widget, widget, widget_type::Slider, bounding_box::BoundingBox, cursor::Cursor, input_button::InputButton, last_value) = do_widget(hot_widget, active_widget, null_widget, widget, widget_type::Slider, bounding_box.i_min, bounding_box.j_min, bounding_box.i_max, bounding_box.j_max, cursor.i, cursor.j, input_button.ended_down, input_button.half_transition_count, last_value) -widget!!(hot_widget, active_widget, null_widget, widg, widget_type::Slider, args...; kwargs...) = widget(hot_widget, active_widget, null_widget, widg, widget_type, args...; kwargs...) +do_widget!!(hot_widget, active_widget, null_widget, widget, widget_type::Slider, args...; kwargs...) = do_widget(hot_widget, active_widget, null_widget, widget, widget_type, args...; kwargs...) ##### ##### TextInput @@ -99,7 +99,7 @@ function update_widget_value!(hot_widget, active_widget, widget, ::TextInput, te return nothing end -function widget!(hot_widget, active_widget, null_widget, widget, widget_type::TextInput, i_min, j_min, i_max, j_max, i_mouse, j_mouse, ended_down, half_transition_count, text_line, characters) +function do_widget!(hot_widget, active_widget, null_widget, widget, widget_type::TextInput, i_min, j_min, i_max, j_max, i_mouse, j_mouse, ended_down, half_transition_count, text_line, characters) mouse_over_widget = (i_min <= i_mouse <= i_max) && (j_min <= j_mouse <= j_max) mouse_went_down = went_down(ended_down, half_transition_count) mouse_went_up = went_up(ended_down, half_transition_count) @@ -117,6 +117,6 @@ function widget!(hot_widget, active_widget, null_widget, widget, widget_type::Te return hot_widget, active_widget, null_widget end -widget!(hot_widget, active_widget, null_widget, widg, widget_type::TextInput, bounding_box::BoundingBox, cursor::Cursor, input_button::InputButton, text_line, characters) = widget!(hot_widget, active_widget, null_widget, widg, widget_type::TextInput, bounding_box.i_min, bounding_box.j_min, bounding_box.i_max, bounding_box.j_max, cursor.i, cursor.j, input_button.ended_down, input_button.half_transition_count, text_line, characters) +do_widget!(hot_widget, active_widget, null_widget, widget, widget_type::TextInput, bounding_box::BoundingBox, cursor::Cursor, input_button::InputButton, text_line, characters) = do_widget!(hot_widget, active_widget, null_widget, widget, widget_type::TextInput, bounding_box.i_min, bounding_box.j_min, bounding_box.i_max, bounding_box.j_max, cursor.i, cursor.j, input_button.ended_down, input_button.half_transition_count, text_line, characters) -widget!!(hot_widget, active_widget, null_widget, widg, widget_type::TextInput, args...; kwargs...) = (widget!(hot_widget, active_widget, null_widget, widg, widget_type, args...; kwargs...)..., nothing) +do_widget!!(hot_widget, active_widget, null_widget, widget, widget_type::TextInput, args...; kwargs...) = (do_widget!(hot_widget, active_widget, null_widget, widget, widget_type, args...; kwargs...)..., nothing)