mirror of
https://github.com/whoahq/whoa.git
synced 2026-03-18 13:41:06 +03:00
127 lines
3.7 KiB
C++
127 lines
3.7 KiB
C++
#include "ui/simple/CSimpleStatusBarScript.hpp"
|
|
#include "ui/simple/CSimpleStatusBar.hpp"
|
|
#include "ui/FrameScript.hpp"
|
|
#include "util/Lua.hpp"
|
|
#include "util/Unimplemented.hpp"
|
|
|
|
namespace {
|
|
|
|
int32_t CSimpleStatusBar_GetOrientation(lua_State* L) {
|
|
WHOA_UNIMPLEMENTED(0);
|
|
}
|
|
|
|
int32_t CSimpleStatusBar_SetOrientation(lua_State* L) {
|
|
WHOA_UNIMPLEMENTED(0);
|
|
}
|
|
|
|
int32_t CSimpleStatusBar_GetMinMaxValues(lua_State* L) {
|
|
auto type = CSimpleStatusBar::GetObjectType();
|
|
auto statusBar = static_cast<CSimpleStatusBar*>(FrameScript_GetObjectThis(L, type));
|
|
|
|
lua_pushnumber(L, statusBar->GetMinValue());
|
|
lua_pushnumber(L, statusBar->GetMaxValue());
|
|
|
|
return 2;
|
|
}
|
|
|
|
int32_t CSimpleStatusBar_SetMinMaxValues(lua_State* L) {
|
|
auto type = CSimpleStatusBar::GetObjectType();
|
|
auto statusBar = static_cast<CSimpleStatusBar*>(FrameScript_GetObjectThis(L, type));
|
|
|
|
if (!lua_isnumber(L, 2) || !lua_isnumber(L, 3)) {
|
|
luaL_error(L, "Usage: %s:SetMinMaxValues(min, max)", statusBar->GetDisplayName());
|
|
return 0;
|
|
}
|
|
|
|
auto min = lua_tonumber(L, 2);
|
|
auto max = lua_tonumber(L, 3);
|
|
|
|
if (min < -1.0e12 || min > 1.0e12 || max < -1.0e12 || max > 1.0e12) {
|
|
luaL_error(L, "Min or Max out of range");
|
|
return 0;
|
|
}
|
|
|
|
if (max - min > 1.0e12) {
|
|
luaL_error(L, "Min and Max too far apart");
|
|
return 0;
|
|
}
|
|
|
|
statusBar->SetMinMaxValues(static_cast<float>(min), static_cast<float>(max));
|
|
|
|
return 0;
|
|
}
|
|
|
|
int32_t CSimpleStatusBar_GetValue(lua_State* L) {
|
|
auto type = CSimpleStatusBar::GetObjectType();
|
|
auto statusBar = static_cast<CSimpleStatusBar*>(FrameScript_GetObjectThis(L, type));
|
|
|
|
lua_pushnumber(L, statusBar->GetValue());
|
|
|
|
return 1;
|
|
}
|
|
|
|
int32_t CSimpleStatusBar_SetValue(lua_State* L) {
|
|
auto type = CSimpleStatusBar::GetObjectType();
|
|
auto statusBar = static_cast<CSimpleStatusBar*>(FrameScript_GetObjectThis(L, type));
|
|
|
|
if (!lua_isnumber(L, 2)) {
|
|
luaL_error(L, "Usage: %s:SetValue(value)", statusBar->GetDisplayName());
|
|
return 0;
|
|
}
|
|
|
|
auto value = static_cast<float>(lua_tonumber(L, 2));
|
|
|
|
statusBar->SetValue(value);
|
|
|
|
return 0;
|
|
}
|
|
|
|
int32_t CSimpleStatusBar_GetStatusBarTexture(lua_State* L) {
|
|
WHOA_UNIMPLEMENTED(0);
|
|
}
|
|
|
|
int32_t CSimpleStatusBar_SetStatusBarTexture(lua_State* L) {
|
|
WHOA_UNIMPLEMENTED(0);
|
|
}
|
|
|
|
int32_t CSimpleStatusBar_GetStatusBarColor(lua_State* L) {
|
|
WHOA_UNIMPLEMENTED(0);
|
|
}
|
|
|
|
int32_t CSimpleStatusBar_SetStatusBarColor(lua_State* L) {
|
|
auto type = CSimpleStatusBar::GetObjectType();
|
|
auto statusBar = static_cast<CSimpleStatusBar*>(FrameScript_GetObjectThis(L, type));
|
|
|
|
CImVector color = {};
|
|
FrameScript_GetColor(L, 2, color);
|
|
|
|
statusBar->SetStatusBarColor(color);
|
|
|
|
return 0;
|
|
}
|
|
|
|
int32_t CSimpleStatusBar_GetRotatesTexture(lua_State* L) {
|
|
WHOA_UNIMPLEMENTED(0);
|
|
}
|
|
|
|
int32_t CSimpleStatusBar_SetRotatesTexture(lua_State* L) {
|
|
WHOA_UNIMPLEMENTED(0);
|
|
}
|
|
|
|
}
|
|
|
|
FrameScript_Method SimpleStatusBarMethods[] = {
|
|
{ "GetOrientation", &CSimpleStatusBar_GetOrientation },
|
|
{ "SetOrientation", &CSimpleStatusBar_SetOrientation },
|
|
{ "GetMinMaxValues", &CSimpleStatusBar_GetMinMaxValues },
|
|
{ "SetMinMaxValues", &CSimpleStatusBar_SetMinMaxValues },
|
|
{ "GetValue", &CSimpleStatusBar_GetValue },
|
|
{ "SetValue", &CSimpleStatusBar_SetValue },
|
|
{ "GetStatusBarTexture", &CSimpleStatusBar_GetStatusBarTexture },
|
|
{ "SetStatusBarTexture", &CSimpleStatusBar_SetStatusBarTexture },
|
|
{ "GetStatusBarColor", &CSimpleStatusBar_GetStatusBarColor },
|
|
{ "SetStatusBarColor", &CSimpleStatusBar_SetStatusBarColor },
|
|
{ "GetRotatesTexture", &CSimpleStatusBar_GetRotatesTexture },
|
|
{ "SetRotatesTexture", &CSimpleStatusBar_SetRotatesTexture },
|
|
};
|