%module{Slic3r::XS};

%{
#include <xsinit.h>
#include "slic3r/GUI/ProgressStatusBar.hpp"
%}

%name{Slic3r::GUI::ProgressStatusBar} class ProgressStatusBar {
    ProgressStatusBar();
    ~ProgressStatusBar();

    int GetProgress() const
        %code%{ RETVAL=THIS->get_progress(); %};

    void SetProgress(int val)
        %code%{ THIS->set_progress(val); %};

    void SetRange(int val = 100)
        %code%{ THIS->set_range(val); %};

    void ShowProgress(bool show)
        %code%{ THIS->show_progress(show); %};

    void StartBusy(int val = 100)
        %code%{ THIS->start_busy(val); %};

    void StopBusy()
        %code%{ THIS->stop_busy(); %};

    bool IsBusy() const
        %code%{ RETVAL=THIS->is_busy(); %};
    
    void Run(int rate)
        %code%{ THIS->run(rate); %};

    void Embed()
        %code%{ THIS->embed(); %};

    void SetStatusText(std::string txt)
        %code%{ THIS->set_status_text(txt); %};

    void ShowCancelButton()
        %code%{ THIS->show_cancel_button(); %};

    void HideCancelButton()
        %code%{ THIS->hide_cancel_button(); %};

};