mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-05 05:56:53 +03:00
GVariant: Add to_bool(), to_int() and to_color().
This commit is contained in:
parent
4df360be8c
commit
0f4050903d
Notes:
sideshowbarker
2024-07-19 14:44:05 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/0f4050903d4
@ -60,12 +60,40 @@ public:
|
||||
return m_value.as_bool;
|
||||
}
|
||||
|
||||
bool to_bool() const
|
||||
{
|
||||
if (type() == Type::Bool)
|
||||
return as_bool();
|
||||
if (type() == Type::String)
|
||||
return !!m_value.as_string;
|
||||
if (type() == Type::Int)
|
||||
return m_value.as_int != 0;
|
||||
if (type() == Type::Rect)
|
||||
return !as_rect().is_null();
|
||||
if (type() == Type::Size)
|
||||
return !as_size().is_null();
|
||||
if (type() == Type::Point)
|
||||
return !as_point().is_null();
|
||||
return is_valid();
|
||||
}
|
||||
|
||||
int as_int() const
|
||||
{
|
||||
ASSERT(type() == Type::Int);
|
||||
return m_value.as_int;
|
||||
}
|
||||
|
||||
int to_int() const
|
||||
{
|
||||
if (is_int())
|
||||
return as_int();
|
||||
if (is_bool())
|
||||
return as_bool() ? 1 : 0;
|
||||
if (is_float())
|
||||
return (int)as_float();
|
||||
return 0;
|
||||
}
|
||||
|
||||
float as_float() const
|
||||
{
|
||||
ASSERT(type() == Type::Float);
|
||||
@ -111,6 +139,13 @@ public:
|
||||
return Color::from_rgba(m_value.as_color);
|
||||
}
|
||||
|
||||
Color to_color() const
|
||||
{
|
||||
if (is_color())
|
||||
return as_color();
|
||||
return Color();
|
||||
}
|
||||
|
||||
Color to_color(Color default_value) const
|
||||
{
|
||||
if (type() == Type::Color)
|
||||
|
@ -61,6 +61,8 @@ public:
|
||||
operator WSAPI_Point() const;
|
||||
String to_string() const { return String::format("[%d,%d]", x(), y()); }
|
||||
|
||||
bool is_null() const { return !m_x && !m_y; }
|
||||
|
||||
private:
|
||||
int m_x { 0 };
|
||||
int m_y { 0 };
|
||||
|
Loading…
Reference in New Issue
Block a user