did a few more tweaks to teh list
This commit is contained in:
parent
118b734d6c
commit
91b2b822f9
|
@ -152,14 +152,11 @@ Editor_DrawWidget(app_state* State, context* Context, render_command_buffer* Ren
|
||||||
if (ui_WidgetIsFlagSet(Widget, UIWidgetFlag_DrawHorizontalFill) ||
|
if (ui_WidgetIsFlagSet(Widget, UIWidgetFlag_DrawHorizontalFill) ||
|
||||||
ui_WidgetIsFlagSet(Widget, UIWidgetFlag_DrawVerticalFill))
|
ui_WidgetIsFlagSet(Widget, UIWidgetFlag_DrawVerticalFill))
|
||||||
{
|
{
|
||||||
v4 Color = State->Interface.Style.ButtonColor_Active;
|
v4 Color = State->Interface.Style.ButtonColor_Selected;
|
||||||
if (ui_WidgetIdsEqual(Widget.Id, State->Interface.HotWidget))
|
if (ui_WidgetIdsEqual(Widget.Id, State->Interface.HotWidget) ||
|
||||||
|
ui_WidgetIdsEqual(Widget.Id, State->Interface.ActiveWidget))
|
||||||
{
|
{
|
||||||
Color = State->Interface.Style.ButtonColor_Selected;
|
Color = WhiteV4;
|
||||||
}
|
|
||||||
if (ui_WidgetIdsEqual(Widget.Id, State->Interface.ActiveWidget))
|
|
||||||
{
|
|
||||||
Color = State->Interface.Style.ButtonColor_Selected;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rect2 FillBounds = {};
|
rect2 FillBounds = {};
|
||||||
|
@ -205,7 +202,7 @@ Editor_DrawWidget(app_state* State, context* Context, render_command_buffer* Ren
|
||||||
FillBounds.Max.y = FillToPoint;
|
FillBounds.Max.y = FillToPoint;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
PushRenderQuad2D(RenderBuffer, FillBounds.Min, FillBounds.Max, Color);
|
PushRenderQuad2DClipped(RenderBuffer, FillBounds, WidgetParentUnion, Color);
|
||||||
|
|
||||||
if (ui_WidgetIsFlagSet(Widget, UIWidgetFlag_DrawString) && Widget.String.Length > 0)
|
if (ui_WidgetIsFlagSet(Widget, UIWidgetFlag_DrawString) && Widget.String.Length > 0)
|
||||||
{
|
{
|
||||||
|
@ -260,18 +257,12 @@ TestRender(app_state* State, context* Context, render_command_buffer* RenderBuff
|
||||||
ui_Label(&State->Interface, MakeString("Spacer"));
|
ui_Label(&State->Interface, MakeString("Spacer"));
|
||||||
ui_Label(&State->Interface, MakeString("Spacer"));
|
ui_Label(&State->Interface, MakeString("Spacer"));
|
||||||
|
|
||||||
ui_BeginList(&State->Interface, MakeString("TestList"), 5, 9);
|
ui_BeginList(&State->Interface, MakeString("TestList"), 5, 4);
|
||||||
{
|
{
|
||||||
ui_Button(&State->Interface, MakeString("B"));
|
ui_Button(&State->Interface, MakeString("B"));
|
||||||
ui_Button(&State->Interface, MakeString("B"));
|
ui_Button(&State->Interface, MakeString("B"));
|
||||||
ui_Button(&State->Interface, MakeString("B"));
|
ui_Button(&State->Interface, MakeString("B"));
|
||||||
ui_Button(&State->Interface, MakeString("B"));
|
ui_Button(&State->Interface, MakeString("B"));
|
||||||
ui_Button(&State->Interface, MakeString("B"));
|
|
||||||
ui_Button(&State->Interface, MakeString("B"));
|
|
||||||
ui_Button(&State->Interface, MakeString("B"));
|
|
||||||
ui_Button(&State->Interface, MakeString("B"));
|
|
||||||
ui_Button(&State->Interface, MakeString("B"));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
ui_EndList(&State->Interface);
|
ui_EndList(&State->Interface);
|
||||||
//ui_Button(&State->Interface, MakeString("B"));
|
//ui_Button(&State->Interface, MakeString("B"));
|
||||||
|
|
|
@ -58,19 +58,11 @@ DrawCharacter_ (render_quad_batch_constructor* BatchConstructor, r32 MinX, r32 M
|
||||||
s32 AlignedMaxX = AlignedMinX + (CodepointInfo.Width);
|
s32 AlignedMaxX = AlignedMinX + (CodepointInfo.Width);
|
||||||
s32 AlignedMaxY = AlignedMinY + (CodepointInfo.Height);
|
s32 AlignedMaxY = AlignedMinY + (CodepointInfo.Height);
|
||||||
|
|
||||||
#if 1
|
|
||||||
PushQuad2DOnBatch(BatchConstructor,
|
PushQuad2DOnBatch(BatchConstructor,
|
||||||
Rect2BottomLeft(Bounds), Rect2BottomRight(Bounds),
|
Rect2BottomLeft(Bounds), Rect2BottomRight(Bounds),
|
||||||
Rect2TopRight(Bounds), Rect2TopLeft(Bounds),
|
Rect2TopRight(Bounds), Rect2TopLeft(Bounds),
|
||||||
UVBounds.Min, UVBounds.Max,
|
UVBounds.Min, UVBounds.Max,
|
||||||
Color);
|
Color);
|
||||||
#else
|
|
||||||
PushQuad2DOnBatch(BatchConstructor,
|
|
||||||
v2{(r32)AlignedMinX, (r32)AlignedMinY}, v2{(r32)AlignedMaxX, (r32)AlignedMinY},
|
|
||||||
v2{(r32)AlignedMaxX, (r32)AlignedMaxY}, v2{(r32)AlignedMinX, (r32)AlignedMaxY},
|
|
||||||
CodepointInfo.UVMin, CodepointInfo.UVMax,
|
|
||||||
Color);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal v2
|
internal v2
|
||||||
|
@ -1170,6 +1162,11 @@ ui_Toggle(ui_interface* Interface, gs_string Text, bool Value)
|
||||||
internal void
|
internal void
|
||||||
ui_BeginList(ui_interface* Interface, gs_string Text, u32 ViewportRows, u32 ElementCount)
|
ui_BeginList(ui_interface* Interface, gs_string Text, u32 ViewportRows, u32 ElementCount)
|
||||||
{
|
{
|
||||||
|
if (ElementCount < ViewportRows)
|
||||||
|
{
|
||||||
|
ViewportRows = ElementCount;
|
||||||
|
}
|
||||||
|
|
||||||
ui_column_spec ColumnRules[] = {
|
ui_column_spec ColumnRules[] = {
|
||||||
{ UIColumnSize_Fixed, 32 },
|
{ UIColumnSize_Fixed, 32 },
|
||||||
{ UIColumnSize_Fill, 0 },
|
{ UIColumnSize_Fill, 0 },
|
||||||
|
@ -1202,6 +1199,7 @@ ui_BeginList(ui_interface* Interface, gs_string Text, u32 ViewportRows, u32 Elem
|
||||||
|
|
||||||
// Create the scroll bar
|
// Create the scroll bar
|
||||||
//
|
//
|
||||||
|
// TODO(pjs): Maybe make this a vertical slider widget?
|
||||||
|
|
||||||
ui_widget* SliderRegion = ui_CreateWidget(Interface, MakeString("Slider"));
|
ui_widget* SliderRegion = ui_CreateWidget(Interface, MakeString("Slider"));
|
||||||
ui_WidgetSetFlag(SliderRegion, UIWidgetFlag_DrawOutline);
|
ui_WidgetSetFlag(SliderRegion, UIWidgetFlag_DrawOutline);
|
||||||
|
@ -1230,9 +1228,10 @@ ui_BeginList(ui_interface* Interface, gs_string Text, u32 ViewportRows, u32 Elem
|
||||||
ViewportLayout->Bounds.Min.y = SliderBounds.Min.y;
|
ViewportLayout->Bounds.Min.y = SliderBounds.Min.y;
|
||||||
ViewportLayout->Bounds.Max.y = SliderBounds.Max.y;
|
ViewportLayout->Bounds.Max.y = SliderBounds.Max.y;
|
||||||
|
|
||||||
|
s32 ScrollableElements = Max(0, ElementCount - ViewportRows);
|
||||||
ui_widget_retained_state* ViewportState = ui_GetOrCreateRetainedState(Interface, ViewportLayout);
|
ui_widget_retained_state* ViewportState = ui_GetOrCreateRetainedState(Interface, ViewportLayout);
|
||||||
ViewportState->ChildrenDrawOffset.x = 0;
|
ViewportState->ChildrenDrawOffset.x = 0;
|
||||||
ViewportState->ChildrenDrawOffset.y = ((1.0f - State->InitialValueR32) * (r32)(ElementCount - ViewportRows)) * ViewportLayout->RowHeight;
|
ViewportState->ChildrenDrawOffset.y = ((1.0f - State->InitialValueR32) * (r32)(ScrollableElements)) * ViewportLayout->RowHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void
|
internal void
|
||||||
|
@ -1246,50 +1245,5 @@ ui_EndList(ui_interface* Interface)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// OLD
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
internal r32
|
|
||||||
EvaluateColorChannelSlider (render_command_buffer* RenderBuffer, v4 ChannelMask, v2 Min, v2 Max, r32 Current, mouse_state Mouse)
|
|
||||||
{
|
|
||||||
r32 Result = Current;
|
|
||||||
|
|
||||||
// TODO(Peter): Can this come from outside the function? Would rather pass rect around than min/max
|
|
||||||
rect2 Rect = rect2{ Min, Max };
|
|
||||||
|
|
||||||
render_quad_batch_constructor Batch = PushRenderQuad2DBatch(RenderBuffer, 2);
|
|
||||||
|
|
||||||
v4 LeftColor = ChannelMask * 0;
|
|
||||||
LeftColor.a = 1.f;
|
|
||||||
v4 RightColor = ChannelMask;
|
|
||||||
PushQuad2DOnBatch(&Batch,
|
|
||||||
RectBottomLeft(Rect), RectBottomRight(Rect),
|
|
||||||
RectTopRight(Rect), RectTopLeft(Rect),
|
|
||||||
v2{0, 0}, v2{1, 0}, v2{1, 1}, v2{0, 1},
|
|
||||||
LeftColor, RightColor, RightColor, LeftColor);
|
|
||||||
|
|
||||||
if (MouseButtonTransitionedDown(Mouse.LeftButtonState))
|
|
||||||
{
|
|
||||||
if (PointIsInRect(Rect, Mouse.DownPos))
|
|
||||||
{
|
|
||||||
Result = ((r32)Mouse.Pos.x - Min.x) / (Max.x - Min.x);
|
|
||||||
Result = Clamp01(Result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
r32 DragBarWidth = 8;
|
|
||||||
v2 DragBarMin = v2{
|
|
||||||
LerpR32(Result, Min.x, Max.x) - (DragBarWidth / 2),
|
|
||||||
Min.y - 2
|
|
||||||
};
|
|
||||||
v2 DragBarMax = DragBarMin + v2{DragBarWidth, (Max.y - Min.y) + 4};
|
|
||||||
|
|
||||||
PushQuad2DOnBatch(&Batch, DragBarMin, DragBarMax, v4{.3f, .3f, .3f, 1.f});
|
|
||||||
|
|
||||||
return Result;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define INTERFACE_H
|
#define INTERFACE_H
|
||||||
#endif // INTERFACE_H
|
#endif // INTERFACE_H
|
Loading…
Reference in New Issue