Fix Scrollbar calculation
Add MenuDebugDataView
This commit is contained in:
parent
56fd24ed80
commit
d3a1dc40f5
@ -75,6 +75,7 @@ bool &IsDebugging();
|
|||||||
// Internal Function
|
// Internal Function
|
||||||
// Should not be used
|
// Should not be used
|
||||||
void Debug();
|
void Debug();
|
||||||
|
bool &DebugMenu();
|
||||||
|
|
||||||
bool Button(const std::string &label, R7Vec2 size = R7Vec2(0, 0));
|
bool Button(const std::string &label, R7Vec2 size = R7Vec2(0, 0));
|
||||||
void Checkbox(const std::string &label, bool &c);
|
void Checkbox(const std::string &label, bool &c);
|
||||||
|
@ -354,7 +354,6 @@ struct UI7Menu {
|
|||||||
UI7DrawList::Ref front;
|
UI7DrawList::Ref front;
|
||||||
|
|
||||||
R7Vec2 ms; // Max Size
|
R7Vec2 ms; // Max Size
|
||||||
R7Vec2 msr; // Max Size Real (Slider)
|
|
||||||
R7Vec2 mdp; // Mouse/Touch Initial pos
|
R7Vec2 mdp; // Mouse/Touch Initial pos
|
||||||
R7Vec2 bslp; // Before SameLine Pos
|
R7Vec2 bslp; // Before SameLine Pos
|
||||||
R7Vec2 lszs; // Last Size
|
R7Vec2 lszs; // Last Size
|
||||||
@ -370,6 +369,7 @@ struct UI7_Ctx {
|
|||||||
_last = 0;
|
_last = 0;
|
||||||
in_menu = false;
|
in_menu = false;
|
||||||
debugging = false;
|
debugging = false;
|
||||||
|
debug_menu = false;
|
||||||
}
|
}
|
||||||
float delta;
|
float delta;
|
||||||
float time;
|
float time;
|
||||||
@ -377,6 +377,7 @@ struct UI7_Ctx {
|
|||||||
float _last;
|
float _last;
|
||||||
bool in_menu;
|
bool in_menu;
|
||||||
bool debugging;
|
bool debugging;
|
||||||
|
bool debug_menu;
|
||||||
std::map<std::string, UI7Menu::Ref> menus;
|
std::map<std::string, UI7Menu::Ref> menus;
|
||||||
std::vector<UI7Menu::Ref> active_menus;
|
std::vector<UI7Menu::Ref> active_menus;
|
||||||
UI7DrawList::Ref debug_calls;
|
UI7DrawList::Ref debug_calls;
|
||||||
@ -442,7 +443,7 @@ void UI7CtxEndMenu() {
|
|||||||
int lszs = 20; // Lowest Slider size
|
int lszs = 20; // Lowest Slider size
|
||||||
// Calculate Slider Height
|
// Calculate Slider Height
|
||||||
float slider_h = (szs - 4) * (static_cast<float>(szs - 4) /
|
float slider_h = (szs - 4) * (static_cast<float>(szs - 4) /
|
||||||
static_cast<float>(ui7_ctx->cm->msr.y));
|
static_cast<float>(ui7_ctx->cm->ms.y));
|
||||||
// Create Real Slider Height
|
// Create Real Slider Height
|
||||||
int slider_rh = d7min(d7max(slider_h, (float)lszs), (float)(szs - 4));
|
int slider_rh = d7min(d7max(slider_h, (float)lszs), (float)(szs - 4));
|
||||||
// Calculate Slider Position
|
// Calculate Slider Position
|
||||||
@ -451,9 +452,9 @@ void UI7CtxEndMenu() {
|
|||||||
d7max(static_cast<float>(tsp),
|
d7max(static_cast<float>(tsp),
|
||||||
static_cast<float>(tsp) +
|
static_cast<float>(tsp) +
|
||||||
static_cast<float>(
|
static_cast<float>(
|
||||||
(szs) *
|
(szs - slider_rh) *
|
||||||
(static_cast<float>(ui7_ctx->cm->scrolling_offset) /
|
(static_cast<float>(ui7_ctx->cm->scrolling_offset) /
|
||||||
static_cast<float>(ui7_ctx->cm->msr.y)))));
|
static_cast<float>(ui7_ctx->cm->ms.y - 240.f)))));
|
||||||
// Render Slider
|
// Render Slider
|
||||||
ui7_ctx->cm->front->AddRectangle(
|
ui7_ctx->cm->front->AddRectangle(
|
||||||
R7Vec2(sw - 12, tsp), R7Vec2(slider_w * 2, szs), RD7Color_List0);
|
R7Vec2(sw - 12, tsp), R7Vec2(slider_w * 2, szs), RD7Color_List0);
|
||||||
@ -462,6 +463,42 @@ void UI7CtxEndMenu() {
|
|||||||
RD7Color_Selector);
|
RD7Color_Selector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Debug Print Menu Values
|
||||||
|
if (ui7_ctx->debug_menu) {
|
||||||
|
std::stringstream str;
|
||||||
|
str << "Menu: " << ui7_ctx->cm->menuid.ID() << std::endl;
|
||||||
|
str << "ui7_ctx->cm->cursor: (" << ui7_ctx->cm->cursor.x << ", "
|
||||||
|
<< ui7_ctx->cm->cursor.y << ")" << std::endl;
|
||||||
|
str << "ui7_ctx->cm->cb: (" << ui7_ctx->cm->cb.x << ", "
|
||||||
|
<< ui7_ctx->cm->cb.y << ")" << std::endl;
|
||||||
|
str << "ui7_ctx->cm->slc: (" << ui7_ctx->cm->slc.x << ", "
|
||||||
|
<< ui7_ctx->cm->slc.y << ")" << std::endl;
|
||||||
|
str << "ui7_ctx->cm->scrolling_offset: " << ui7_ctx->cm->scrolling_offset
|
||||||
|
<< std::endl;
|
||||||
|
str << "ui7_ctx->cm->enable_scrolling: " << ui7_ctx->cm->enable_scrolling
|
||||||
|
<< std::endl;
|
||||||
|
str << "ui7_ctx->cm->scrolling_mod: " << ui7_ctx->cm->scrolling_mod
|
||||||
|
<< std::endl;
|
||||||
|
str << "ui7_ctx->cm->tbh: " << ui7_ctx->cm->tbh << std::endl;
|
||||||
|
str << "ui7_ctx->cm->show_scroolbar: " << ui7_ctx->cm->show_scroolbar
|
||||||
|
<< std::endl;
|
||||||
|
str << "ui7_ctx->cm->has_touch: " << ui7_ctx->cm->has_touch << std::endl;
|
||||||
|
std::string submenu;
|
||||||
|
|
||||||
|
str << "ui7_ctx->cm->ms: (" << ui7_ctx->cm->ms.x << ", "
|
||||||
|
<< ui7_ctx->cm->ms.y << ")" << std::endl;
|
||||||
|
str << "ui7_ctx->cm->mdp: (" << ui7_ctx->cm->mdp.x << ", "
|
||||||
|
<< ui7_ctx->cm->mdp.y << ")" << std::endl;
|
||||||
|
str << "ui7_ctx->cm->bslp: (" << ui7_ctx->cm->bslp.x << ", "
|
||||||
|
<< ui7_ctx->cm->bslp.y << ")" << std::endl;
|
||||||
|
str << "ui7_ctx->cm->lszs: (" << ui7_ctx->cm->lszs.x << ", "
|
||||||
|
<< ui7_ctx->cm->lszs.y << ")" << std::endl;
|
||||||
|
UI7::GetForegroundList()->AddRectangle(
|
||||||
|
R7Vec2(), RenderD7::R2()->GetTextDimensions(str.str()),
|
||||||
|
(unsigned int)RGBA8(0, 0, 0, 110));
|
||||||
|
UI7::GetForegroundList()->AddText(R7Vec2(), str.str(),
|
||||||
|
(unsigned int)RGBA8(255, 255, 255, 110));
|
||||||
|
}
|
||||||
ui7_ctx->active_menus.push_back(ui7_ctx->cm);
|
ui7_ctx->active_menus.push_back(ui7_ctx->cm);
|
||||||
ui7_ctx->cm = nullptr;
|
ui7_ctx->cm = nullptr;
|
||||||
ui7_ctx->in_menu = false;
|
ui7_ctx->in_menu = false;
|
||||||
@ -480,8 +517,6 @@ void UI7CtxCursorMove(R7Vec2 size) {
|
|||||||
ui7_ctx->cm->cursor += R7Vec2(0, size.y + 5);
|
ui7_ctx->cm->cursor += R7Vec2(0, size.y + 5);
|
||||||
}
|
}
|
||||||
ui7_ctx->cm->ms = R7Vec2(ui7_ctx->cm->slc.x, ui7_ctx->cm->cursor.y);
|
ui7_ctx->cm->ms = R7Vec2(ui7_ctx->cm->slc.x, ui7_ctx->cm->cursor.y);
|
||||||
// TODO: Correct that calculation
|
|
||||||
ui7_ctx->cm->msr = R7Vec2(ui7_ctx->cm->slc.x, ui7_ctx->cm->slc.y - 10);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace UI7 {
|
namespace UI7 {
|
||||||
@ -1192,6 +1227,15 @@ bool &IsDebugging() {
|
|||||||
return ui7_ctx->debugging;
|
return ui7_ctx->debugging;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool &DebugMenu() {
|
||||||
|
if (!UI7CtxValidate()) {
|
||||||
|
// Return a Default Val
|
||||||
|
static bool t = false;
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
return ui7_ctx->debug_menu;
|
||||||
|
}
|
||||||
|
|
||||||
UI7DrawList::Ref GetForegroundList() {
|
UI7DrawList::Ref GetForegroundList() {
|
||||||
if (!UI7CtxValidate()) return nullptr;
|
if (!UI7CtxValidate()) return nullptr;
|
||||||
return ui7_ctx->fdl;
|
return ui7_ctx->fdl;
|
||||||
|
@ -683,10 +683,10 @@ void RenderD7::RSettings::Draw(void) const {
|
|||||||
// List Bg
|
// List Bg
|
||||||
for (int i = 0; i < 12; i++) {
|
for (int i = 0; i < 12; i++) {
|
||||||
if ((i % 2 == 0))
|
if ((i % 2 == 0))
|
||||||
UI7::GetBackgroundList()->AddRectangle(R7Vec2(0, 40 + (i)*15),
|
UI7::GetBackgroundList()->AddRectangle(R7Vec2(0, 40 + (i) * 15),
|
||||||
R7Vec2(400, 15), RD7Color_List0);
|
R7Vec2(400, 15), RD7Color_List0);
|
||||||
else
|
else
|
||||||
UI7::GetBackgroundList()->AddRectangle(R7Vec2(0, 40 + (i)*15),
|
UI7::GetBackgroundList()->AddRectangle(R7Vec2(0, 40 + (i) * 15),
|
||||||
R7Vec2(400, 15), RD7Color_List1);
|
R7Vec2(400, 15), RD7Color_List1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -763,16 +763,12 @@ void RenderD7::RSettings::Draw(void) const {
|
|||||||
RenderD7::R2()->OnScreen(R2Screen_Bottom);
|
RenderD7::R2()->OnScreen(R2Screen_Bottom);
|
||||||
if (UI7::BeginMenu("Press \uE001 to go back!", R7Vec2(),
|
if (UI7::BeginMenu("Press \uE001 to go back!", R7Vec2(),
|
||||||
UI7MenuFlags_Scrolling)) {
|
UI7MenuFlags_Scrolling)) {
|
||||||
for (int i = 0; i < 20; i++) {
|
|
||||||
UI7::Label("Line: " + std::to_string(i));
|
|
||||||
}
|
|
||||||
UI7::Label("Scrolling Offset: " +
|
|
||||||
std::to_string(UI7::GetScrollingOffset()));
|
|
||||||
if (UI7::Button("Go back")) {
|
if (UI7::Button("Go back")) {
|
||||||
/// Request a state switch to state RSETTINGS
|
/// Request a state switch to state RSETTINGS
|
||||||
shared_request[0x00000001] = RSETTINGS;
|
shared_request[0x00000001] = RSETTINGS;
|
||||||
}
|
}
|
||||||
UI7::Checkbox("Debug", UI7::IsDebugging());
|
UI7::Checkbox("Debug", UI7::IsDebugging());
|
||||||
|
UI7::Checkbox("ShowMenuInfo", UI7::DebugMenu());
|
||||||
UI7::EndMenu();
|
UI7::EndMenu();
|
||||||
}
|
}
|
||||||
} else if (m_state == ROVERLAYS) {
|
} else if (m_state == ROVERLAYS) {
|
||||||
|
Loading…
Reference in New Issue
Block a user