%%%==============================================================================
%% Copyright 2022-present by Alceu Frigeri
%%
%% This work may be distributed and/or modified under the conditions of
%%
%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
%%   version 1.3c (or later), and/or
%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
%%   version 3 (or later)
%%
%% This work has the LPPL maintenance status *maintained*.
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
%% This is version {2.13a} {2026/07/04}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
%%
%%%==============================================================================
%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
%% EE    stands for "Engineering School"
%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
%%%==============================================================================
\NeedsTeXFormat{LaTeX2e}[2026/06/01]

%%%%%%%
%%%
%%% Just an attempt at having my package's info in a regular way
%%%   \pkginfograb_set:nn { <pkg-name>} { props } sets package info
%%%
%%%   \pkginfograbProvidesExplPackage { <pkg-name>} { props } sets package info
%%%     and calls \ProvidesExplPackage
%%%
%%%%%%%
\RequirePackage{pkginfograb}
\pkginfograbProvidesExplPackage {ufrgscca-lists}
  { 
     name        = {ufrgscca-lists} ,
     prefix      = {ufrgscca} ,
     date        = {2026/07/04} ,
     version     = {2.13a} ,
     description = {UFRGS/CCA Auxiliary lists commands}
 }
%%%%%%%
%%% End of cut-n-paste
%%%%%%%



%==============================================================================
% Declaração de opções
%==============================================================================
\keys_define:nn { ufrgscca  / lists }
  { 
    relnum      .usage:n        = load ,
	relnum      .bool_set:N     = \l__ufrgscca_relnum_bool ,
  }

\ProcessKeyOptions[ufrgscca / lists]\relax


%%%%%%%%%%%%%%%%%%%%%
%%% Packages Loading
%%%%%%%%%%%%%%%%%%%%%

\RequirePackage{ newfloat }
\RequirePackage{ listings }
\RequirePackage{ xcolor }

%%%
%%% command to declare a new 'list of ...' things { package newfloat }
%%%
\NewDocumentCommand{ \DeclareNewFloat }{ mmmm }{ 
 \DeclareFloatingEnvironment[
  fileext={ #2 },
	listname={ #4 },
	name={ #3 },
	placement=htb,
	chapterlistsgaps=off]{ #1 } 
    \bool_if:NTF \l__ufrgscca_relnum_bool
        { \SetupFloatingEnvironment{ #1 }{ within=chapter } }
        { \SetupFloatingEnvironment{ #1 }{ within=none } }
}


%
%%%%\def\listoflistings{ \lstlistoflistings }%
\definecolor{ lstgray }{ rgb }{ 0.965,0.965,0.965 }
\lstset{ basicstyle=\ttfamily\small,
  columns=fullflexible,
  keepspaces=true,
  frame=tb,
  inputencoding=latin1,
%  inputencoding=utf8,
  extendedchars=true,
  backgroundcolor=\color{ lstgray },
	breaklines=true,
%	xleftmargin=7pt,
%	xrightmargin=7pt
}


\def\listingname{ Listing }
\def\listlistingname{ List~ of~ Listings }
\DeclareNewFloat{ codelist }{ lox }{ \listingname }{ \listlistingname }



