Skip to content

Commit

Permalink
* WIP: [xrGame/xrUICore] MultiTrackBar #6
Browse files Browse the repository at this point in the history
  • Loading branch information
yohjimane committed Apr 17, 2024
1 parent 01632f3 commit dbe5af4
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 89 deletions.
7 changes: 1 addition & 6 deletions src/xrUICore/Buttons/UIButton_script.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,6 @@ SCRIPT_EXPORT(CUIButton, (CUIStatic, CUIWindow),

class_<CUIMultiTrackBar, CUIWindow>("CUIMultiTrackBar")
.def(constructor<>())
.def("GetCheck", &CUIMultiTrackBar::GetCheck)
.def("SetCheck", &CUIMultiTrackBar::SetCheck)
.def("GetIValue", &CUIMultiTrackBar::GetIValue)
.def("GetFValue", &CUIMultiTrackBar::GetFValue)
.def("SetOptIBounds", &CUIMultiTrackBar::SetOptIBounds)
.def("SetOptFBounds", &CUIMultiTrackBar::SetOptFBounds)
.def("GetValue", &CUIMultiTrackBar::GetValue)
.def("SetCurrentValue", &CUIMultiTrackBar::SetCurrentOptValue)];
});
45 changes: 0 additions & 45 deletions src/xrUICore/MultiTrackBar/UIMultiTrackBar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,6 @@ void CUIMultiTrackBar::SetCurrentOptValue()
auto slider = GetTrackBarAtIdx(i);
m_f_val[i] = slider->GetFValue();
}

UpdatePos();
}

void CUIMultiTrackBar::SaveOptValue()
Expand Down Expand Up @@ -169,15 +167,9 @@ void CUIMultiTrackBar::SaveBackUpOptValue()
void CUIMultiTrackBar::UndoOptValue()
{
m_f_val = m_f_opt_backup_value;

UpdatePos();
CUIOptionsItem::UndoOptValue();
}

void CUIMultiTrackBar::SetStep(float step)
{
}

void CUIMultiTrackBar::Enable(bool status)
{
m_bIsEnabled = status;
Expand All @@ -189,22 +181,6 @@ void CUIMultiTrackBar::Enable(bool status)
}
}

void CUIMultiTrackBar::UpdatePosRelativeToMouse()
{
if (m_pSliders->empty())
return;

UpdatePos();
OnChangedOptValue();
}

void CUIMultiTrackBar::UpdatePos()
{
if (m_pSliders->empty())
return;

}

void CUIMultiTrackBar::OnMessage(LPCSTR message)
{
if (0 == xr_strcmp(message, "set_default_value"))
Expand All @@ -215,26 +191,5 @@ void CUIMultiTrackBar::OnMessage(LPCSTR message)
slider->SetFValue(m_f_val[i]);
slider->UpdatePos();
}
UpdatePos();
}
}

bool CUIMultiTrackBar::GetCheck()
{
VERIFY(!m_b_is_float);
return !!m_i_val;
}

void CUIMultiTrackBar::SetCheck(bool b)
{
VERIFY(!m_b_is_float);
m_i_val = (b) ? m_i_max : m_i_min;
}

void CUIMultiTrackBar::SetOptIBounds(int imin, int imax)
{
}

void CUIMultiTrackBar::SetOptFBounds(float fmin, float fmax)
{
}
48 changes: 20 additions & 28 deletions src/xrUICore/MultiTrackBar/UIMultiTrackBar.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,18 +38,24 @@ class XRUICORE_API CUIMultiTrackBar final : public CUI_IB_FrameLineWnd, public C
// CUIWindow
void InitTrackBars(Fvector2 pos, Fvector2 size, xr_vector<ChildTrackBarData>& trackBarData);
virtual void Enable(bool status);
void SetInvert(bool v) { m_b_invert = v; }
bool GetInvert() const { return m_b_invert; };
void SetStep(float step);

void SetDefaultInvert(bool v) { m_b_invert = v; }
bool GetDefaultInvert() const { return m_b_invert; };

void SetDefaultMin(float v) { m_default_min = v; }
float GetDefaultMin() const { return m_default_min; };
void SetDefaultMax(float v) { m_default_max = v; }
float GetDefaultMax() const { return m_default_max; };

void SetDefaultStep(float step) { m_default_step = step; }
float GetDefaultStep() { return m_default_step; }

void SetType(bool b_float) { m_b_is_float = b_float; };
void SetBoundReady(bool b_ready) { m_b_bound_already_set = b_ready; };
bool GetCheck();
void SetCheck(bool b);
int GetIValue() { return m_i_val; }
Fvector4 GetFValue() { return m_f_val; }
void SetOptIBounds(int imin, int imax);
void SetOptFBounds(float fmin, float fmax);

Fvector4 GetValue() { return m_f_val; }
void SetChildCount(int count) { childCount = count; }

SaveDataTypes GetSaveDataType() { return saveDataType; }
void SetSaveDataType(SaveDataTypes type)
{
Expand All @@ -68,9 +74,6 @@ class XRUICORE_API CUIMultiTrackBar final : public CUI_IB_FrameLineWnd, public C
}

protected:
void UpdatePos();
void UpdatePosRelativeToMouse();

xr_vector<CUITrackBar*>* m_pSliders{};
bool m_b_invert;
bool m_b_is_float;
Expand All @@ -80,20 +83,9 @@ class XRUICORE_API CUIMultiTrackBar final : public CUI_IB_FrameLineWnd, public C
int childCount;
SaveDataTypes saveDataType{ SDT_INVALID_DATA_TYPE };

union
{
struct
{
Fvector4 m_f_val;
Fvector4 m_f_opt_backup_value;
};
struct
{
int m_i_val;
int m_i_max;
int m_i_min;
int m_i_step;
int m_i_opt_backup_value;
};
};
float m_default_step;
float m_default_min;
float m_default_max;
Fvector4 m_f_val;
Fvector4 m_f_opt_backup_value;
};
27 changes: 17 additions & 10 deletions src/xrUICore/XML/UIXmlInitBase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1291,13 +1291,20 @@ bool CUIXmlInitBase::InitMultiTrackBar(CUIXml& xml_doc, pcstr path, int index, C
if (!InitWindow(xml_doc, path, 0, pWnd, fatal))
return false;

const int is_integer = xml_doc.ReadAttribInt(path, index, "is_integer", 0);
pWnd->SetType(!is_integer);
const int def_is_integer = xml_doc.ReadAttribInt(path, index, "is_integer", 0);
pWnd->SetType(!def_is_integer);

const int invert = xml_doc.ReadAttribInt(path, index, "invert", 0);
pWnd->SetInvert(!!invert);
const float step = xml_doc.ReadAttribFlt(path, index, "step", 0.1f);
pWnd->SetStep(step);
const int def_invert = xml_doc.ReadAttribInt(path, index, "invert", 0);
pWnd->SetDefaultInvert(!!def_invert);

const float def_step = xml_doc.ReadAttribFlt(path, index, "step", 0.1f);
pWnd->SetDefaultStep(def_step);

const float def_min = xml_doc.ReadAttribFlt(path, index, "min", 0.1f);
pWnd->SetDefaultMin(def_min);

const float def_max = xml_doc.ReadAttribFlt(path, index, "max", 0.1f);
pWnd->SetDefaultMax(def_max);

const int childCount = xml_doc.ReadAttribInt(path, index, "child_count", 0);
pWnd->SetChildCount(childCount);
Expand Down Expand Up @@ -1330,10 +1337,10 @@ bool CUIXmlInitBase::InitMultiTrackBar(CUIXml& xml_doc, pcstr path, int index, C
xr_sprintf(max, "%s_%s", mapping[i], "max");
xr_sprintf(step, "%s_%s", mapping[i], "step");
xr_sprintf(invert, "%s_%s", mapping[i], "invert");
const int is_invert = xml_doc.ReadAttribInt(path, index, invert, 0);
const float fmin = xml_doc.ReadAttribFlt(path, index, min, 0.0f);
const float fmax = xml_doc.ReadAttribFlt(path, index, max, 0.0f);
const float fstep = xml_doc.ReadAttribFlt(path, index, step, 0.0f);
const int is_invert = xml_doc.ReadAttribInt(path, index, invert, def_invert);
const float fmin = xml_doc.ReadAttribFlt(path, index, min, def_min);
const float fmax = xml_doc.ReadAttribFlt(path, index, max, def_max);
const float fstep = xml_doc.ReadAttribFlt(path, index, step, def_step);

trackBarData[i] = { is_invert, fmin, fmax, fstep };
}
Expand Down

0 comments on commit dbe5af4

Please sign in to comment.