-- SPDX-License-Identifier: Apache-2.0 -- -- Copyright (c) 2021 The progress_indicators authors -- -- Licensed under the Apache License, Version 2.0 (the "License"); -- you may not use this file except in compliance with the License. -- You may obtain a copy of the License at -- -- http://www.apache.org/licenses/LICENSE-2.0 -- -- Unless required by applicable law or agreed to in writing, software -- distributed under the License is distributed on an "AS IS" BASIS, -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -- See the License for the specific language governing permissions and -- limitations under the License. with ANSI; with Ada.Strings.Fixed; package body Progress_Indicators.Bars is function Get_Bar (Value : Percentage; Width : Natural := 100) return String is use Ada.Strings.Fixed; use ANSI; Used : constant Natural := Natural (Float (Width) / 100.0 * Float (Value)); Remaining : constant Natural := Width - Used; Text : constant String := Tail (Value'Image & "%", 5); begin return Foreground (Light_Green) & Used * "█" & Foreground (Default) & Remaining * "░" & Text & ANSI.Back (Cells => Width + Text'Length); end Get_Bar; end Progress_Indicators.Bars;