% Definition of the tuml language style for use with listings package

\lstdefinelanguage{tuml}[AlLaTeX]{TeX}{
	morekeywords={[2]% commands
		%t%
		tikzumlset, tikzstyle,
		%u%
		umlclass, umlsimpleclass, umlemptyclass, umlabstract, umlinterface, umlenum, umltypedef, umlstruct, umlsimpleinterface, umlobj, umlsimpleobj,
		umlactor, umlusecase, umlnote, umlNarynode, umlassocclass,
		umlrelation, umlHVrelation, umlVHrelation, umlHVHrelation, umlVHVrelation, umlCNrelation,
		umlinherit, umlHVinherit, umlVHinherit, umlHVHinherit, umlVHVinherit, umlCNinherit,
		umldep, umlHVdep, umlVHdep, umlHVHdep, umlVHVdep, umlCNdep,
		umlassoc, umlHVassoc, umlVHassoc, umlHVHassoc, umlVHVassoc, umlCNassoc,
		umluniassoc, umlHVuniassoc, umlVHuniassoc, umlHVHuniassoc, umlVHVuniassoc, umlCNuniassoc,
		umlaggreg, umlHVaggreg, umlVHaggreg, umlHVHaggreg, umlVHVaggreg, umlCNaggreg,
		umluniaggreg, umlHVuniaggreg, umlVHuniaggreg, umlHVHuniaggreg, umlVHVuniaggreg, umlCNuniaggreg,
		umlcompos, umlHVcompos, umlVHcompos, umlHVHcompos, umlVHVcompos, umlCNcompos,
		umlunicompos, umlHVunicompos, umlVHunicompos, umlHVHunicompos, umlVHVunicompos, umlCNunicompos,
		umlreal, umlHVreal, umlVHreal, umlHVHreal, umlVHVreal, umlCNreal,
		umlimport, umlHVimport, umlVHimport, umlHVHimport, umlVHVimport, umlCNimport,
		umlnest, umlHVnest, umlVHnest, umlHVHnest, umlVHVnest, umlCNnest,
		umlfriend, umlHVfriend, umlVHfriend, umlHVHfriend, umlVHVfriend, umlCNfriend,
		umlinclude, umlHVinclude, umlVHinclude, umlHVHinclude, umlVHVinclude, umlCNinclude,
		umlextend, umlHVextend, umlVHextend, umlHVHextend, umlVHVextend, umlCNextend,
		umlimpl, umlHVimpl, umlVHimpl, umlHVHimpl, umlVHVimpl, umlCNimpl,
		umltrans, umlHVtrans, umlVHtrans, umlHVHtrans, umlVHVtrans, umlCNtrans,
		umlassemblyconnector, umlHVassemblyconnector, umlVHassemblyconnector, umlHVHassemblyconnector, umlVHVassemblyconnector, umlCNassemblyconnector,
		umldelegateconnector, umlHVdelegateconnector, umlVHdelegateconnector, umlHVHdelegateconnector, umlVHVdelegateconnector, umlCNdelegateconnector,
		umlstateinitial, umlstatefinal, umlstatedecision, umlstateenter, umlstateexit, umlstateend, umlstatehistory, umlstatedeephistory, umlstatejoin, umlbasicstate,
		umlobject, umlmulti, umlentity, umlboundary, umlcontrol, umldatabase, umlcreatecall, umlfpart,
		umlbasiccomponent, umlprovidedinterface, umlrequiredinterface, umlport,
		umlcon, umlstatic, umlpvirt, umlvirt, umloverrd, umlquery,
		umlsdnode, umlpoint,
	},%
	morekeywords={[3]% environments
		umlpackage, umlstate, umlfragment, umlsystem, umlcomponent, umlseqdiag, umlobjdiag, umlcall, umlcallself,
	}
}

\lstdefinestyle{main}{
	basicstyle=\footnotesize\normalfont,%
	xleftmargin=0.5cm,%
	frame=shadowbox, framerule=0pt, rulesep=1pt,%
	backgroundcolor=\color{black!5!white},%
	rulesepcolor=\color{black!25!white},%
	escapechar=@,%
	breaklines=true,%
	breakatwhitespace=true,%
	breakautoindent=true,%
	resetmargins=true,%
	keywordstyle={[2]\color{tumlcolor!75!black}\bf},%
	keywordstyle={[3]\color{tumlcolor!25!black}\bf},%
	stringstyle=\color{red!50!black},%
	commentstyle=\color{green!50!black}\itshape,%
	moredelim=[s][\color{tumlcolor!50!black}]{\[}{\]},%
	showstringspaces=false,%
	aboveskip=\medskipamount,%
	belowskip=\medskipamount,%
}

\lstdefinestyle{mainnocolor}{
	basicstyle=\footnotesize\normalfont,%
	xleftmargin=0.5cm,%
	frame=shadowbox, framerule=0pt, rulesep=1pt,%
	backgroundcolor=\color{black!5!white},%
	rulesepcolor=\color{black!25!white},%
	escapechar=@,%
	breaklines=true,%
	breakatwhitespace=true,%
	breakautoindent=true,%
	resetmargins=true,%
	keywordstyle={[2]\bf},%
	keywordstyle={[3]\bf},%
	stringstyle=\color{red!50!black},%
	commentstyle=\color{green!50!black}\itshape,%
	moredelim=[s][\it]{\[}{\]},%
	showstringspaces=false,%
	aboveskip=\medskipamount,%
	belowskip=\medskipamount,%
}
