raygui icon indicating copy to clipboard operation
raygui copied to clipboard

Define a consistent convention on controls return values

Open raysan5 opened this issue 1 year ago • 0 comments

raygui was redesigned on v4.0 to always return an int as "control result value" while keeping the control required variables as function parameters, usually passed by reference.

Despite the redesign, there was no rule defining/unifying that "control result value" that should be returned by every control. Here some possible ideas (ref: #371):

typedef enum GuiControlResult {
    RESULT_NONE = 0,
    RESULT_FOCUSED = 1,
    RESULT_CLICKED = 2,
    RESULT_SCROLLED = 3,
    RESULT_CUSTOM01 = 4,
    RESULT_CUSTOM02 = 5,
} GuiControlResult;

Every control has to be carefully analized to see what are the possible internal states that could be returned. It would be nice to unify the possible return values but also allow per-control custom return values.

Note that some controls already return specific results, reviewing this functionality could be a breaking change:

  • GuiButton(): Returns 1 when clicked --> RESULT_CLICKED?
  • GuiTextBox(): Returns true when edited, used to change editMode
  • ...

raysan5 avatar May 07 '24 08:05 raysan5