summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty')
-rw-r--r--macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty546
1 files changed, 437 insertions, 109 deletions
diff --git a/macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty b/macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty
index 2271b338d0..01da065abb 100644
--- a/macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty
+++ b/macros/latex/contrib/sim-os-menus/tex/sim-os-menus.sty
@@ -2,8 +2,9 @@
% licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{sim-os-menus}[2023/11/13 0.1.0 Present 'context menu'/'terminal'/'windows', with TikZ or tcolorbox]
-%0.1.0 Initial version
+\ProvidesPackage{sim-os-menus}[2023/11/14 0.1.1 Present 'context menu'/'terminal'/'windows', with TikZ or tcolorbox (en of fr commands)]
+% 0.1.1 French version of the commands
+% 0.1.0 Initial version
%====PACKAGES
\RequirePackage{tikz,pgf,pgffor}
@@ -19,10 +20,12 @@
\RequirePackage{tcolorbox}
\tcbuselibrary{breakable,fitting,skins,listings,listingsutf8,hooks}
-%****CONTEXTMENU****
-%====USEFULL
+%====USEFULL DATA
+%****CONTEXTMENU
\definecolor{ColBackContextMenu}{HTML}{f0f0f0}%
\definecolor{ColHLContextMenu}{HTML}{90c8f6}%
+\definecolor{CoulFondMenuContext}{HTML}{f0f0f0}%
+\definecolor{CoulSurligMenuContext}{HTML}{90c8f6}%
\newlength{\ContMenOffsetIcon}\setlength{\ContMenOffsetIcon}{0pt}
\newlength{\ContMenOffsetArrow}\setlength{\ContMenOffsetArrow}{1em}
\newlength{\ContMenOffsetV}\setlength{\ContMenOffsetV}{6pt}
@@ -31,7 +34,100 @@
\newlength{\ContMenHgth}\newlength{\ContMenHgthTmp}
\newsavebox{\maboitemenucontext}
\newsavebox{\maboitelogomenucontext}
+%****TERMINAL
+\definecolor{Termmpurple}{RGB}{48,10,36}
+\definecolor{Termmgray}{RGB}{70,72,67}
+\definecolor{Termogray}{RGB}{148,147,141}
+\definecolor{Termoorange}{RGB}{233,101,56}
+\definecolor{Termterminal}{RGB}{80,78,70}
+\definecolor{Termlinux}{RGB}{0,39,51}
+\definecolor{Termwinblue}{HTML}{1883D7}
+\definecolor{Termosxgray}{HTML}{D8D6D9}
+\definecolor{Termosxgreen}{HTML}{1F8B36}
+\tcbset{StyleTermWindows/.style={%
+ enhanced,boxrule=1pt,arc=1pt,before skip=\baselineskip,after skip=\baselineskip,%
+ colframe=Termwinblue,colback=black,colbacktitle=white,colupper=white,coltitle=black,%
+ titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
+ fonttitle=\bfseries\small\sffamily
+ }
+}
+\newcommand\TermWinComm{%
+ \begin{tikzpicture}[thick,scale=0.66]
+ \draw (0,0.5em)--++(1em,0) ; \draw[rounded corners=0.05em] (2em,0) rectangle++ (0.8em,0.8em) ; \draw[rounded corners=0.05em] (2.2em,0.2em) rectangle++ (0.8em,0.8em) ; \draw (4em,1em)--(5em,0) (4em,0)--(5em,1em) ;
+ \end{tikzpicture}%
+}
+\newcommand{\TermUbuntuWhite}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[Termmgray] (0,0.25em) circle[radius=0.5em] ;
+ \end{tikzpicture}%
+}
+\newcommand{\TermUbuntuMin}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[color=Termogray!50!white] (0,0.25em) circle[radius=0.5em];
+ \draw[Termterminal](-0.35em,0.25em)--(0.35em,0.25em);
+ \end{tikzpicture}%
+}
+\newcommand{\TermUbuntuClose}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[color=Termoorange!70!white] (0,0.25em) circle[radius=0.5em];
+ \draw[Termterminal] (-0.32em,-0.07em)--(0.32em,0.57em);
+ \draw[Termterminal] (-0.32em,0.57em)--(0.32em,-0.07em);
+ \end{tikzpicture}%
+}
+\newcommand{\TermUbuntuMax}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[color=Termogray!50!white] (0,0.25em) circle[radius=0.5em];
+ \draw[Termterminal] (-0.32em,0.5em) rectangle (0.32em,0);
+ \end{tikzpicture}%
+}
+\tcbset{StyleTermUniX/.style={%
+ enhanced,boxrule=1pt,arc=4pt,before skip=\baselineskip,after skip=\baselineskip,%
+ colframe=Termmgray,colback=Termmpurple,colbacktitle=Termmgray,colupper=white,coltitle=white,%
+ titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
+ fonttitle=\bfseries\small\sffamily
+ }
+}
+\tcbset{StyleTermOSX/.style={%
+ enhanced,boxrule=1pt,arc=6pt,before skip=\baselineskip,after skip=\baselineskip,%
+ colframe=Termosxgray,colback=lightgray!15,colbacktitle=Termosxgray,colupper=black,coltitle=black,%
+ titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
+ fonttitle=\bfseries\small\sffamily
+ }
+}
+\newcommand{\TermOSXRed}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[red] (0,0.25em) circle[radius=0.45em] ;
+ \end{tikzpicture}%
+}
+\newcommand{\TermOSXOrange}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[orange] (0,0.25em) circle[radius=0.45em] ;
+ \end{tikzpicture}%
+}
+\newcommand{\TermOSXgreen}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[Termosxgreen] (0,0.25em) circle[radius=0.45em] ;
+ \end{tikzpicture}%
+}
+\newcommand{\TermOSXLG}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[Termosxgray] (0,0.25em) circle[radius=0.45em] ;
+ \end{tikzpicture}%
+}
+%****VIEWERS
+\tcbset{StylePDFViewer/.style={%
+ enhanced,boxrule=1pt,arc=6pt,before skip=\baselineskip,after skip=\baselineskip,%
+ colframe=gray,colback=lightgray!5,colbacktitle=lightgray!15,colupper=black,coltitle=black,titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=0pt,fonttitle=\bfseries\small\sffamily
+ }
+}
+\tcbset{StyleIMGViewer/.style={%
+ enhanced,boxrule=1pt,arc=6pt,before skip=\baselineskip,after skip=\baselineskip,%
+ colframe=gray,colback=lightgray!5,colbacktitle=lightgray!15,colupper=black,coltitle=black,titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=0pt,fonttitle=\bfseries\small\sffamily
+ }
+}
+%----[ENGLISH COMMANDS]
+%****CONTEXTMENU****
%====KEYS
\defKV[ContextMenu]{%
ColBack=\def\ContMenColBack{#1},%
@@ -252,34 +348,9 @@
}
%****TERMINAL****
-%====COLORS
-\definecolor{Termmpurple}{RGB}{48,10,36}
-\definecolor{Termmgray}{RGB}{70,72,67}
-\definecolor{Termogray}{RGB}{148,147,141}
-\definecolor{Termoorange}{RGB}{233,101,56}
-\definecolor{Termterminal}{RGB}{80,78,70}
-\definecolor{Termlinux}{RGB}{0,39,51}
-\definecolor{Termwinblue}{HTML}{1883D7}
-\definecolor{Termosxgray}{HTML}{D8D6D9}
-\definecolor{Termosxgreen}{HTML}{1F8B36}
-
%====WINDOWS (OK)
-\tcbset{StyleTermWindows/.style={%
- enhanced,boxrule=1pt,arc=1pt,before skip=\baselineskip,after skip=\baselineskip,%
- colframe=Termwinblue,colback=black,colbacktitle=white,colupper=white,coltitle=black,%
- titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
- fonttitle=\bfseries\small\sffamily
- }
-}
-
\setKVdefault[TERMwin]{Title={Terminal Win},Align={center},Width={\linewidth}}
-\newcommand\TermWinComm{%
- \begin{tikzpicture}[thick,scale=0.66]
- \draw (0,0.5em)--++(1em,0) ; \draw[rounded corners=0.05em] (2em,0) rectangle++ (0.8em,0.8em) ; \draw[rounded corners=0.05em] (2.2em,0.2em) rectangle++ (0.8em,0.8em) ; \draw (4em,1em)--(5em,0) (4em,0)--(5em,1em) ;
- \end{tikzpicture}%
-}
-
\newcommand\TermWinTitle{%
\begin{tblr}{colsep=0pt,rowsep=0pt,width=\linewidth,colspec={X[l]r}}
{\footnotesize\faTerminal}~~\useKV[TERMwin]{Title} & \TermWinComm \\ %
@@ -297,39 +368,6 @@
}
%====LINUX (OK)
-\newcommand{\TermUbuntuWhite}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[Termmgray] (0,0.25em) circle[radius=0.5em] ;
- \end{tikzpicture}%
-}
-\newcommand{\TermUbuntuMin}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[color=Termogray!50!white] (0,0.25em) circle[radius=0.5em];
- \draw[Termterminal](-0.35em,0.25em)--(0.35em,0.25em);
- \end{tikzpicture}%
-}
-\newcommand{\TermUbuntuClose}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[color=Termoorange!70!white] (0,0.25em) circle[radius=0.5em];
- \draw[Termterminal] (-0.32em,-0.07em)--(0.32em,0.57em);
- \draw[Termterminal] (-0.32em,0.57em)--(0.32em,-0.07em);
- \end{tikzpicture}%
-}
-\newcommand{\TermUbuntuMax}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[color=Termogray!50!white] (0,0.25em) circle[radius=0.5em];
- \draw[Termterminal] (-0.32em,0.5em) rectangle (0.32em,0);
- \end{tikzpicture}%
-}
-
-\tcbset{StyleTermUniX/.style={%
- enhanced,boxrule=1pt,arc=4pt,before skip=\baselineskip,after skip=\baselineskip,%
- colframe=Termmgray,colback=Termmpurple,colbacktitle=Termmgray,colupper=white,coltitle=white,%
- titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
- fonttitle=\bfseries\small\sffamily
- }
-}
-
\setKVdefault[TERMnux]{Title={Terminal UNiX},Align={center},Width={\linewidth}}
\newcommand\TermNuxTitle{%
@@ -348,39 +386,7 @@
\endtcblisting%
}
-%OSX (OK)
-\tcbset{StyleTermOSX/.style={%
- enhanced,boxrule=1pt,arc=6pt,before skip=\baselineskip,after skip=\baselineskip,%
- colframe=Termosxgray,colback=lightgray!15,colbacktitle=Termosxgray,colupper=black,coltitle=black,%
- titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
- fonttitle=\bfseries\small\sffamily
- }
-}
-
-\newcommand{\TermOSXRed}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[red] (0,0.25em) circle[radius=0.45em] ;
- \end{tikzpicture}%
-}
-
-\newcommand{\TermOSXOrange}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[orange] (0,0.25em) circle[radius=0.45em] ;
- \end{tikzpicture}%
-}
-
-\newcommand{\TermOSXgreen}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[Termosxgreen] (0,0.25em) circle[radius=0.45em] ;
- \end{tikzpicture}%
-}
-
-\newcommand{\TermOSXLG}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[Termosxgray] (0,0.25em) circle[radius=0.45em] ;
- \end{tikzpicture}%
-}
-
+%====OSX (OK)
\setKVdefault[TERMosx]{Title={Terminal Mac},Align={center},Width={\linewidth}}
\newcommand\TermOSXTitle{%
@@ -400,13 +406,7 @@
}
%****VIEWERS****
-%PDFVIEWER (OK)
-\tcbset{StylePDFViewer/.style={%
- enhanced,boxrule=1pt,arc=6pt,before skip=\baselineskip,after skip=\baselineskip,%
- colframe=gray,colback=lightgray!5,colbacktitle=lightgray!15,colupper=black,coltitle=black,titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=0pt,fonttitle=\bfseries\small\sffamily
- }
-}
-
+%====PDFVIEWER (OK)
\setKVdefault[PDFViewer]{Title={PDF Viewer},Align={center},Width={\linewidth},Halign={center},Icons=true}
\NewDocumentCommand\PDFVIewerTitle{ s }{%
@@ -433,13 +433,7 @@
\endtcolorbox%
}
-%IMGVIEWER (OK)
-\tcbset{StyleIMGViewer/.style={%
- enhanced,boxrule=1pt,arc=6pt,before skip=\baselineskip,after skip=\baselineskip,%
- colframe=gray,colback=lightgray!5,colbacktitle=lightgray!15,colupper=black,coltitle=black,titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=0pt,fonttitle=\bfseries\small\sffamily
- }
-}
-
+%====IMGVIEWER (OK)
\setKVdefault[IMGViewer]{Title={Image Viewer},Align={center},Width={\linewidth},Halign={center},Icons=true}
\NewDocumentCommand\IMGVIewerTitle{ s }{%
@@ -466,4 +460,338 @@
\endtcolorbox%
}
+%----[FRENCH COMMANDS]
+%****MENUCONTEXTUEL****
+%====KEYS
+\defKV[MenuContext]{%
+ CoulFond=\def\ContMenColBack{#1},%
+ CoulSurlig=\def\ContMenColHL{#1},%
+ Police=\def\ContMenuFonte{#1},%
+ MargeV=\setlength{\ContMenOffsetV}{#1},%
+ MargeH=\setlength{\ContMenOffset}{#1},
+ Fleche=\def\ContMenArrow{#1},%
+ ListeSeps=\xdef\ContMenSep{#1},%
+ ListeIcones=\xdef\ContMenIcons{#1},%
+ Espacement=\def\ContMenSpace{#1},%
+ CoulItems=\def\ContMenuColItems{#1},%
+ ListeDecals=\xdef\ContMenOffsets{#1}
+}
+
+\setKVdefault[MenuContext]{%
+ CoulFond=CoulFondMenuContext,%
+ CoulSurlig=CoulSurligMenuContext,%
+ Arrondi=true,%
+ Police=\normalsize\normalfont,%
+ MargeV=6pt,%
+ MargeH=12pt,%
+ Fleche=\faCaretRight,%
+ ListeSeps={},%
+ ListeIcones={},%
+ Icones=false,%
+ Barre=true,%
+ Espacement=-0.125,%
+ CoulItems=black,%
+ ListeDecals={}
+}
+
+%====MACRO
+\NewDocumentCommand\MenuContextuel{ O{} m D<>{} }{%
+ %clés
+ \useKVdefault[MenuContext]%
+ \setKV[MenuContext]{#1}%
+ \setsepchar{§/,}%
+ \readlist*\DonnesContMenu{#2}%
+ \IfEq{\ContMenSep}{}%
+ {}%
+ {
+ \setsepchar[.]{/.,}%
+ \readlist*\LstSepContMenu{\ContMenSep}%
+ }%
+ \IfEq{\ContMenIcons}{}%
+ {}%
+ {
+ \setsepchar[.]{/.,}%
+ \readlist*\LstIconsContMenu{\ContMenIcons}%
+ }%
+ \IfEq{\ContMenOffsets}{}%
+ {}%
+ {
+ \setsepchar{,}%
+ \readlist*\LstOffsetsContMenu{\ContMenOffsets}%
+ }%
+ %colors of items
+ \IfSubStr{\ContMenuColItems}{/}%
+ {%
+ \StrCut{\ContMenuColItems}{/}{\ContMenuColItemsE}{\ContMenuColItemsH}%
+ }%
+ {%
+ \xdef\ContMenuColItemsE{\ContMenuColItems}\xdef\ContMenuColItemsH{\ContMenuColItems}
+ }%
+ %height of lines
+ \sbox{\maboitemenucontext}{\ContMenuFonte qSÉ}%
+ \settoboxtotalheight{\ContMenHgthTmp}{\maboitemenucontext}%
+ \ifboolKV[MenuContext]{Icones}%
+ {%
+ \sbox{\maboitelogomenucontext}{\ContMenuFonte\faCreditCard}%
+ \settoboxwidth{\ContMenOffsetIcon}{\maboitelogomenucontext}%
+ }%
+ {%
+ \setlength{\ContMenOffsetIcon}{0pt}%
+ }%
+ \setlength{\ContMenHgth}{\ContMenHgthTmp+2\ContMenOffsetV}%
+ %environment
+ \begin{tikzpicture}[#3]
+ \ifboolKV[MenuContext]{Arrondi}%
+ {\tikzset{contextborder/.style={rounded corners=4pt}}}%
+ {\tikzset{contextborder/.style={}}}%
+ %--first node
+ \coordinate (I-1-1) at (0,0) ;%
+ %--levels one by one--
+ \foreach \niv in {1,...,\DonnesContMenulen}{%
+ \def\nivmun{\inteval{\niv-1}}%
+ \def\nivpun{\inteval{\niv+1}}%
+ \itemtomacro\DonnesContMenu[\niv]{\ContMenNivTmp}%
+ \setsepchar{,}\readlist*\ContMenLstItem{\ContMenNivTmp}%
+ %left nodes
+ \coordinate (I-\niv-2) at ($(I-\niv-1)+(0,{-\ContMenHgth})$) ;%
+ \xintifboolexpr{\ContMenLstItemlen >= 2}%
+ {%
+ \foreach \i in {2,...,\ContMenLstItemlen}{%
+ \xdef\j{\inteval{\i+1}}%
+ \coordinate (I-\niv-\j) at ($(I-\niv-\i)+(0,{-\ContMenHgth})$) ;%
+ }
+ }%
+ {}%
+ %width calculus
+ \itemtomacro\ContMenLstItem[1]{\itemtmp}%
+ \IfEndWith{\itemtmp}{(*)}{\StrGobbleRight{\itemtmp}{3}[\itemtmp]}{}%
+ \IfEndWith{\itemtmp}{(>)}{\StrGobbleRight{\itemtmp}{3}[\itemtmp]}{}%
+ \sbox{\maboitemenucontext}{\pgfinterruptpicture\ContMenuFonte\itemtmp\endpgfinterruptpicture}%
+ \settoboxwidth{\ContMenWdthTmp}{\maboitemenucontext}%
+ \xdef\tmplistwidth{\the\ContMenWdthTmp}%
+ \xintifboolexpr{\ContMenLstItemlen >= 2}%calul des autres si besoin
+ {%
+ \foreach \i in {2,...,\ContMenLstItemlen}{%
+ \itemtomacro\ContMenLstItem[\i]{\itemtmp}%
+ \IfEndWith{\itemtmp}{(*)}{\StrGobbleRight{\itemtmp}{3}[\itemtmp]}{}%
+ \IfEndWith{\itemtmp}{(>)}{\StrGobbleRight{\itemtmp}{3}[\itemtmp]}{}%
+ \sbox{\maboitemenucontext}{\pgfinterruptpicture\ContMenuFonte\itemtmp\endpgfinterruptpicture}%
+ \settoboxwidth{\ContMenWdthTmp}{\maboitemenucontext}%
+ \xdef\tmplistwidth{\tmplistwidth,\the\ContMenWdthTmp}%
+ }%
+ }%
+ {}%
+ \pgfmathsetlength{\ContMenWdth}{max(\tmplistwidth)}%
+ \setlength{\ContMenWdth}{\ContMenWdth+\ContMenOffsetIcon+2\ContMenOffset+\ContMenOffsetArrow}%calcul de la 1ère largeur
+ %boxes
+ \draw[contextborder,draw=none,fill=\ContMenColBack] (I-\niv-1) rectangle++ ({\ContMenWdth},{-\ContMenLstItemlen*\ContMenHgth}) ;
+ \ifboolKV[MenuContext]{Icones}%
+ {%
+ \ifboolKV[MenuContext]{Barre}{\draw[thick,white] ($(I-\niv-1)+({\ContMenOffset+\ContMenOffsetIcon-3pt},{-0.5\ContMenOffsetV})$) --++ (0,{-\ContMenLstItemlen*\ContMenHgth+\ContMenOffsetV}) ;}{}%
+ }%
+ {}%
+ %labels
+ \foreach \i in {1,...,\ContMenLstItemlen}{%
+ \itemtomacro\ContMenLstItem[\i]{\itemtmp}%
+ \IfEndWith{\itemtmp}{(*)}%
+ {%
+ \StrGobbleRight{\itemtmp}{3}[\itemtmp]%
+ %offset si delared ?
+
+ \IfEq{\ContMenOffsets}{}%
+ {%
+ \coordinate (I-\nivpun-1) at ($(I-\niv-\i)+({\ContMenWdth+\ContMenSpace\ContMenOffset},{0})$) ;
+ }%
+ {%
+ \xintifboolexpr{\niv < \DonnesContMenulen}%
+ {%
+ \itemtomacro\LstOffsetsContMenu[\niv]{\offsettmp}%
+ \coordinate (I-\nivpun-1) at ($(I-\niv-\i)+({\ContMenWdth+\ContMenSpace\ContMenOffset},{\offsettmp*\ContMenHgth})$) ;
+ }%
+ {}%
+ }%
+
+ \draw[contextborder,draw=none,fill=\ContMenColHL,fill opacity=0.65] ($(I-\niv-\i)+({0.25\ContMenOffset},{-0.5\ContMenOffsetV})$) rectangle++ ({\ContMenWdth-0.5\ContMenOffset},{-\ContMenHgth+\ContMenOffsetV}) ;
+ %test if char at the end
+ \IfEndWith{\itemtmp}{(>)}%
+ {%
+ \StrGobbleRight{\itemtmp}{3}[\itemtmp]%
+ \draw ($(I-\niv-\i)+(0,{-0.5*\ContMenHgth})$) node[inner sep=0pt,right={\ContMenOffset+\ContMenOffsetIcon},font=\ContMenuFonte,text=\ContMenuColItemsH] {\itemtmp} ;
+ \draw ($(I-\niv-\i)+({\ContMenWdth-0.5\ContMenOffset},{-0.5*\ContMenHgth})$) node[inner sep=0pt,left=0.25\ContMenOffset,font=\ContMenuFonte,text=\ContMenuColItemsH] {$\vcenter{\hbox{\ContMenArrow}}$} ;
+ }%
+ {%
+ \draw ($(I-\niv-\i)+(0,{-0.5*\ContMenHgth})$) node[inner sep=0pt,right={\ContMenOffset+\ContMenOffsetIcon},font=\ContMenuFonte,text=\ContMenuColItemsH] {\itemtmp} ;
+ }%
+ }%
+ {%
+ \IfEndWith{\itemtmp}{(>)}%
+ {%
+ \StrGobbleRight{\itemtmp}{3}[\itemtmp]%
+ \draw ($(I-\niv-\i)+(0,{-0.5*\ContMenHgth})$) node[inner sep=0pt,right={\ContMenOffset+\ContMenOffsetIcon},font=\ContMenuFonte] {\itemtmp} ;
+ \draw ($(I-\niv-\i)+({\ContMenWdth-0.5\ContMenOffset},{-0.5*\ContMenHgth})$) node[inner sep=0pt,left=0.25\ContMenOffset,font=\ContMenuFonte,text=\ContMenuColItemsE] {$\vcenter{\hbox{\ContMenArrow}}$} ;
+ }%
+ {%
+ \draw ($(I-\niv-\i)+(0,{-0.5*\ContMenHgth})$) node[inner sep=0pt,right={\ContMenOffset+\ContMenOffsetIcon},font=\ContMenuFonte,text=\ContMenuColItemsE] {\itemtmp} ;
+ }%
+ }%
+ }%
+ %border
+ \draw[contextborder,thick,\ContMenColBack!75!black] (I-\niv-1) rectangle++ ({\ContMenWdth},{-\ContMenLstItemlen*\ContMenHgth}) ;
+ %separators
+ \IfEq{\ContMenSep}{}%
+ {}%
+ {%
+ \itemtomacro\LstSepContMenu[\niv]{\lstsepniv}%
+ \IfEq{\lstsepniv}{}%
+ {}%
+ {%
+ \setsepchar{,}%
+ \readlist*\lstsepnivpos{\lstsepniv}
+ \foreachitem\sep\in\lstsepnivpos{\def\seppun{\inteval{\sep+1}}\draw[thick,\ContMenColBack!75!black] ($(I-\niv-\seppun)+({0.25\ContMenOffset},0)$) --++ ({\ContMenWdth-0.5\ContMenOffset},0) ;}%
+ }%
+ }%
+ %icons
+ \ifboolKV[MenuContext]{Icones}%
+ {%
+ \IfEq{\ContMenIcons}{}%
+ {}%
+ {%
+ \itemtomacro\LstIconsContMenu[\niv]{\lsticonsniv}%
+ \IfEq{\lsticonsniv}{}%
+ {}%
+ {%
+ \setsepchar{,}%
+ \readlist*\lsticonsnivpos{\lsticonsniv}%
+ \foreach \i in {1,...,\lsticonsnivposlen}{%
+ \itemtomacro\lsticonsnivpos[\i]{\icontmp}%
+ \itemtomacro\DonnesContMenu[\niv,\i]{\itemtmp}%
+ \IfEndWith{\itemtmp}{(*)}%
+ {%
+ \draw ($(I-\niv-\i)+({0.25\ContMenOffset+0.75\ContMenOffsetIcon},{-0.5*\ContMenHgth})$) node[scale=0.9,inner sep=0pt,font=\ContMenuFonte,text=\ContMenuColItemsH] {$\vcenter{\hbox{\icontmp}}$} ;
+ }%
+ {%
+ \draw ($(I-\niv-\i)+({0.25\ContMenOffset+0.75\ContMenOffsetIcon},{-0.5*\ContMenHgth})$) node[scale=0.9,inner sep=0pt,font=\ContMenuFonte,text=\ContMenuColItemsE] {$\vcenter{\hbox{\icontmp}}$} ;
+ }%
+ }%
+ }%
+ }%
+ }%
+ {}%
+ }%
+ \end{tikzpicture}
+}
+
+%****TERMINAL****
+%====WINDOWS (OK)
+\setKVdefault[TERMINALwin]{Titre={Terminal Win},Align={center},Largeur={\linewidth}}
+
+\newcommand\TerminalWinTitle{%
+ \begin{tblr}{colsep=0pt,rowsep=0pt,width=\linewidth,colspec={X[l]r}}
+ {\footnotesize\faTerminal}~~\useKV[TERMINALwin]{Titre} & \TermWinComm \\ %
+ \end{tblr}
+}
+
+\NewDocumentEnvironment{TerminalWin}{ O{} m }
+{%
+ \restoreKV[TERMINALwin]%
+ \setKV[TERMINALwin]{#1}%
+ \tcblisting{StyleTermWindows,{\useKV[TERMINALwin]{Align}},title={\TerminalWinTitle},listing only,listing engine=listings,listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},width={\useKV[TERMINALwin]{Largeur}},#2}
+}%
+{%
+ \endtcblisting%
+}
+
+%====LINUX (OK)
+\setKVdefault[TERMINALnux]{Titre={Terminal UNiX},Align={center},Largeur={\linewidth}}
+
+\newcommand\TerminalNuxTitle{%
+ \begin{tblr}{colsep=0pt,rowsep=0pt,width=\linewidth,colspec={lX[c]r}}
+ \TermUbuntuWhite~~\TermUbuntuWhite~~\TermUbuntuWhite & \vphantom{p}\useKV[TERMINALnux]{Titre} & \TermUbuntuMin~~\TermUbuntuMax~~\TermUbuntuClose \\
+ \end{tblr}
+}
+
+\NewDocumentEnvironment{TerminalUnix}{ O{} m }
+{%
+ \restoreKV[TERMINALnux]%
+ \setKV[TERMINALnux]{#1}%
+ \tcblisting{StyleTermUniX,{\useKV[TERMINALnux]{Align}},title={\TerminalNuxTitle},listing only,listing engine=listings,listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},width={\useKV[TERMINALnux]{Largeur}},#2}
+}%
+{%
+ \endtcblisting%
+}
+
+%====OSX (OK)
+\setKVdefault[TERMINALosx]{Titre={Terminal Mac},Align={center},Largeur={\linewidth}}
+
+\newcommand\TerminalOSXTitle{%
+ \begin{tblr}{colsep=0pt,rowsep=0pt,width=\linewidth,colspec={lX[c]r}}
+ \TermOSXRed~\TermOSXOrange~\TermOSXgreen & \vphantom{p}\useKV[TERMINALosx]{Titre} & \TermOSXLG~\TermOSXLG~\TermOSXLG \\
+ \end{tblr}
+}
+
+\NewDocumentEnvironment{TerminalMac}{ O{} m }
+{%
+ \restoreKV[TERMINALosx]%
+ \setKV[TERMINALosx]{#1}%
+ \tcblisting{StyleTermOSX,{\useKV[TERMINALosx]{Align}},title={\TerminalOSXTitle},listing only,listing engine=listings,listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},width={\useKV[TERMINALosx]{Largeur}},#2}
+}%
+{%
+ \endtcblisting%
+}
+
+%****VISIONNEUSES****
+%====PDFVIEWER (OK)
+\setKVdefault[PDFVisionn]{Titre={Visionneuse PDF},Align={center},Largeur={\linewidth},AlignH={center},Icones=true}
+
+\NewDocumentCommand\PDFVIewerTitre{ s }{%
+ \IfBooleanTF{#1}%
+ {%
+ \begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+ \vphantom{p}\useKV[PDFVisionn]{Titre} && \faIcon[regular]{file-pdf} \\
+ \end{tblr}
+ }%
+ {%
+ \begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]l|[1pt]l|[1pt]l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+ \vphantom{p}\useKV[PDFVisionn]{Titre} & \faIcon[regular]{folder}~~\faPrint~~\faIcon{pencil-alt} & \faArrowLeft~~\faArrowRight & \faExpand~~\faIcon{expand-alt}~~\faIcon{expand-arrows-alt}&&\faIcon[regular]{file-pdf} \\
+ \end{tblr}
+ }%
+}
+
+\NewDocumentEnvironment{VisionnPDF}{ O{} m }
+{%
+ \restoreKV[PDFVisionn]%
+ \setKV[PDFVisionn]{#1}%
+ \tcolorbox[StylePDFViewer,{\useKV[PDFVisionn]{Align}},title={\ifboolKV[PDFVisionn]{Icones}{\PDFVIewerTitre}{\PDFVIewerTitre*}},width={\useKV[PDFVisionn]{Largeur}},halign={\useKV[PDFVisionn]{AlignH}},#2]
+}%
+{%
+ \endtcolorbox%
+}
+
+%====IMGVIEWER (OK)
+\setKVdefault[IMGVisionn]{Titre={Visionneuse d'images},Align={center},Largeur={\linewidth},AlignH={center},Icones=true}
+
+\NewDocumentCommand\IMGVIewerTitre{ s }{%
+ \IfBooleanTF{#1}%
+ {%
+ \begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+ \vphantom{p}\useKV[IMGVisionn]{Titre} && \faIcon[regular]{file-image} \\
+ \end{tblr}
+ }%
+ {%
+ \begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]l|[1pt]l|[1pt]l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+ \vphantom{p}\useKV[IMGVisionn]{Titre} & \faIcon[regular]{folder}~~\faPrint~~\faPen~~\faFillDrip~~\faBorderNone& \faArrowLeft~~\faArrowRight & \faExpand~~\faIcon{expand-alt}~~\faIcon{expand-arrows-alt}&&\faIcon[regular]{file-image} \\
+ \end{tblr}
+ }%
+}
+
+\NewDocumentEnvironment{VisionnIMG}{ O{} m }
+{%
+ \restoreKV[IMGVisionn]%
+ \setKV[IMGVisionn]{#1}%
+ \tcolorbox[StyleIMGViewer,{\useKV[IMGVisionn]{Align}},title={\ifboolKV[IMGVisionn]{Icones}{\IMGVIewerTitre}{\IMGVIewerTitre*}},width={\useKV[IMGVisionn]{Largeur}},halign={\useKV[IMGVisionn]{AlignH}},#2]
+}%
+{%
+ \endtcolorbox%
+}
+
\endinput \ No newline at end of file