Mouse input handler which exposes read-only mouse state data
You could represent the mouse state using a struct:

struct MouseSettings
{
    Signal btnLeft_, btnMiddle_, btnRight_, btnX1_, btnX2_;
    int32_t absX_, absY_, relX_, relY_, scrollX_, scrollY_;
}

class MouseInputHandler : public InputHandler
{
public:
    MouseInputHandler(ResourceContext &amp;context)
        : mouseSettings(mouseSettings_)
    {}
    void handleEvent(SDL_Event &amp;mouseEvent);
    void refresh();

    const MouseSettings&amp; mouseSettings;

protected:
    MouseSettings mouseSettings_;
};


Or a property-like get-accessor method like:

const MouseSettings&amp; getMouseSettings() { return mouseSettings_; }