From 510a171090cc4525a57fdcc5ac66866003426efc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Math=C3=A9o=20Hersan?= Date: Mon, 6 Nov 2023 22:13:13 +0100 Subject: [PATCH] better name in client MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mathéo Hersan --- app | Bin 57328 -> 57328 bytes docs/html/bc_s.png | Bin 676 -> 0 bytes docs/html/bc_sd.png | Bin 635 -> 0 bytes docs/html/client_8h.html | 405 --- docs/html/client_8h_source.html | 114 - docs/html/closed.png | Bin 132 -> 0 bytes .../dir_5194e5fea318fda12687127c23f8aba1.html | 93 - .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 92 - .../dir_9a14f97cc8a04806f17ae0e592fed671.html | 95 - .../dir_b5c97184117f1879a3567c3d06daf03f.html | 98 - docs/html/doc.svg | 12 - docs/html/docd.svg | 12 - docs/html/doxygen.css | 2045 ------------- docs/html/doxygen.svg | 28 - docs/html/dynsections.js | 192 -- docs/html/files.html | 95 - docs/html/folderclosed.svg | 11 - docs/html/folderclosedd.svg | 11 - docs/html/folderopen.svg | 17 - docs/html/folderopend.svg | 12 - docs/html/globals.html | 159 - docs/html/globals_func.html | 159 - docs/html/index.html | 81 - docs/html/interface__client_8h.html | 932 ------ docs/html/interface__client_8h_source.html | 140 - docs/html/interface__resp_8h.html | 703 ----- docs/html/interface__resp_8h_source.html | 133 - docs/html/jquery.js | 34 - docs/html/main_8c.html | 151 - docs/html/menu.js | 136 - docs/html/menudata.js | 51 - docs/html/minus.svg | 8 - docs/html/minusd.svg | 8 - docs/html/nav_f.png | Bin 153 -> 0 bytes docs/html/nav_fd.png | Bin 169 -> 0 bytes docs/html/nav_g.png | Bin 95 -> 0 bytes docs/html/nav_h.png | Bin 98 -> 0 bytes docs/html/nav_hd.png | Bin 114 -> 0 bytes docs/html/open.png | Bin 123 -> 0 bytes docs/html/plus.svg | 9 - docs/html/plusd.svg | 9 - docs/html/responsable_8c.html | 660 ----- docs/html/responsable_8h.html | 650 ----- docs/html/responsable_8h_source.html | 121 - docs/html/search/all_0.js | 19 - docs/html/search/all_1.js | 8 - docs/html/search/all_2.js | 6 - docs/html/search/all_3.js | 5 - docs/html/search/all_4.js | 5 - docs/html/search/all_5.js | 9 - docs/html/search/all_6.js | 4 - docs/html/search/all_7.js | 4 - docs/html/search/all_8.js | 7 - docs/html/search/all_9.js | 8 - docs/html/search/all_a.js | 5 - docs/html/search/close.svg | 18 - docs/html/search/files_0.js | 4 - docs/html/search/files_1.js | 5 - docs/html/search/files_2.js | 4 - docs/html/search/files_3.js | 5 - docs/html/search/functions_0.js | 19 - docs/html/search/functions_1.js | 7 - docs/html/search/functions_2.js | 6 - docs/html/search/functions_3.js | 5 - docs/html/search/functions_4.js | 8 - docs/html/search/functions_5.js | 4 - docs/html/search/functions_6.js | 4 - docs/html/search/functions_7.js | 5 - docs/html/search/functions_8.js | 8 - docs/html/search/functions_9.js | 5 - docs/html/search/mag.svg | 24 - docs/html/search/mag_d.svg | 24 - docs/html/search/mag_sel.svg | 31 - docs/html/search/mag_seld.svg | 31 - docs/html/search/search.css | 291 -- docs/html/search/search.js | 840 ------ docs/html/search/searchdata.js | 21 - docs/html/splitbar.png | Bin 314 -> 0 bytes docs/html/splitbard.png | Bin 282 -> 0 bytes docs/html/sync_off.png | Bin 853 -> 0 bytes docs/html/sync_on.png | Bin 845 -> 0 bytes docs/html/tab_a.png | Bin 142 -> 0 bytes docs/html/tab_ad.png | Bin 135 -> 0 bytes docs/html/tab_b.png | Bin 169 -> 0 bytes docs/html/tab_bd.png | Bin 173 -> 0 bytes docs/html/tab_h.png | Bin 177 -> 0 bytes docs/html/tab_hd.png | Bin 180 -> 0 bytes docs/html/tab_s.png | Bin 184 -> 0 bytes docs/html/tab_sd.png | Bin 188 -> 0 bytes docs/html/tabs.css | 1 - docs/latex/Makefile | 27 - docs/latex/client_8h.tex | 158 - docs/latex/client_8h_source.tex | 25 - docs/latex/doxygen.sty | 694 ----- docs/latex/etoc_doxygen.sty | 2178 -------------- docs/latex/files.tex | 9 - docs/latex/interface__client_8h.tex | 337 --- docs/latex/interface__client_8h_source.tex | 45 - docs/latex/interface__resp_8h.tex | 321 --- docs/latex/interface__resp_8h_source.tex | 35 - docs/latex/longtable_doxygen.sty | 456 --- docs/latex/main_8c.tex | 56 - docs/latex/refman.tex | 231 -- docs/latex/responsable_8c.tex | 304 -- docs/latex/responsable_8h.tex | 293 -- docs/latex/responsable_8h_source.tex | 28 - docs/latex/tabu_doxygen.sty | 2557 ----------------- donnee/client.txt | 2 +- src/app/core_logic/client.c | 51 +- src/app/core_logic/client.h | 65 +- src/app/interface/interface_client.c | 190 +- src/app/interface/interface_client.h | 185 +- 112 files changed, 247 insertions(+), 16926 deletions(-) delete mode 100644 docs/html/bc_s.png delete mode 100644 docs/html/bc_sd.png delete mode 100644 docs/html/client_8h.html delete mode 100644 docs/html/client_8h_source.html delete mode 100644 docs/html/closed.png delete mode 100644 docs/html/dir_5194e5fea318fda12687127c23f8aba1.html delete mode 100644 docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html delete mode 100644 docs/html/dir_9a14f97cc8a04806f17ae0e592fed671.html delete mode 100644 docs/html/dir_b5c97184117f1879a3567c3d06daf03f.html delete mode 100644 docs/html/doc.svg delete mode 100644 docs/html/docd.svg delete mode 100644 docs/html/doxygen.css delete mode 100644 docs/html/doxygen.svg delete mode 100644 docs/html/dynsections.js delete mode 100644 docs/html/files.html delete mode 100644 docs/html/folderclosed.svg delete mode 100644 docs/html/folderclosedd.svg delete mode 100644 docs/html/folderopen.svg delete mode 100644 docs/html/folderopend.svg delete mode 100644 docs/html/globals.html delete mode 100644 docs/html/globals_func.html delete mode 100644 docs/html/index.html delete mode 100644 docs/html/interface__client_8h.html delete mode 100644 docs/html/interface__client_8h_source.html delete mode 100644 docs/html/interface__resp_8h.html delete mode 100644 docs/html/interface__resp_8h_source.html delete mode 100644 docs/html/jquery.js delete mode 100644 docs/html/main_8c.html delete mode 100644 docs/html/menu.js delete mode 100644 docs/html/menudata.js delete mode 100644 docs/html/minus.svg delete mode 100644 docs/html/minusd.svg delete mode 100644 docs/html/nav_f.png delete mode 100644 docs/html/nav_fd.png delete mode 100644 docs/html/nav_g.png delete mode 100644 docs/html/nav_h.png delete mode 100644 docs/html/nav_hd.png delete mode 100644 docs/html/open.png delete mode 100644 docs/html/plus.svg delete mode 100644 docs/html/plusd.svg delete mode 100644 docs/html/responsable_8c.html delete mode 100644 docs/html/responsable_8h.html delete mode 100644 docs/html/responsable_8h_source.html delete mode 100644 docs/html/search/all_0.js delete mode 100644 docs/html/search/all_1.js delete mode 100644 docs/html/search/all_2.js delete mode 100644 docs/html/search/all_3.js delete mode 100644 docs/html/search/all_4.js delete mode 100644 docs/html/search/all_5.js delete mode 100644 docs/html/search/all_6.js delete mode 100644 docs/html/search/all_7.js delete mode 100644 docs/html/search/all_8.js delete mode 100644 docs/html/search/all_9.js delete mode 100644 docs/html/search/all_a.js delete mode 100644 docs/html/search/close.svg delete mode 100644 docs/html/search/files_0.js delete mode 100644 docs/html/search/files_1.js delete mode 100644 docs/html/search/files_2.js delete mode 100644 docs/html/search/files_3.js delete mode 100644 docs/html/search/functions_0.js delete mode 100644 docs/html/search/functions_1.js delete mode 100644 docs/html/search/functions_2.js delete mode 100644 docs/html/search/functions_3.js delete mode 100644 docs/html/search/functions_4.js delete mode 100644 docs/html/search/functions_5.js delete mode 100644 docs/html/search/functions_6.js delete mode 100644 docs/html/search/functions_7.js delete mode 100644 docs/html/search/functions_8.js delete mode 100644 docs/html/search/functions_9.js delete mode 100644 docs/html/search/mag.svg delete mode 100644 docs/html/search/mag_d.svg delete mode 100644 docs/html/search/mag_sel.svg delete mode 100644 docs/html/search/mag_seld.svg delete mode 100644 docs/html/search/search.css delete mode 100644 docs/html/search/search.js delete mode 100644 docs/html/search/searchdata.js delete mode 100644 docs/html/splitbar.png delete mode 100644 docs/html/splitbard.png delete mode 100644 docs/html/sync_off.png delete mode 100644 docs/html/sync_on.png delete mode 100644 docs/html/tab_a.png delete mode 100644 docs/html/tab_ad.png delete mode 100644 docs/html/tab_b.png delete mode 100644 docs/html/tab_bd.png delete mode 100644 docs/html/tab_h.png delete mode 100644 docs/html/tab_hd.png delete mode 100644 docs/html/tab_s.png delete mode 100644 docs/html/tab_sd.png delete mode 100644 docs/html/tabs.css delete mode 100644 docs/latex/Makefile delete mode 100644 docs/latex/client_8h.tex delete mode 100644 docs/latex/client_8h_source.tex delete mode 100644 docs/latex/doxygen.sty delete mode 100644 docs/latex/etoc_doxygen.sty delete mode 100644 docs/latex/files.tex delete mode 100644 docs/latex/interface__client_8h.tex delete mode 100644 docs/latex/interface__client_8h_source.tex delete mode 100644 docs/latex/interface__resp_8h.tex delete mode 100644 docs/latex/interface__resp_8h_source.tex delete mode 100644 docs/latex/longtable_doxygen.sty delete mode 100644 docs/latex/main_8c.tex delete mode 100644 docs/latex/refman.tex delete mode 100644 docs/latex/responsable_8c.tex delete mode 100644 docs/latex/responsable_8h.tex delete mode 100644 docs/latex/responsable_8h_source.tex delete mode 100644 docs/latex/tabu_doxygen.sty diff --git a/app b/app index 220ec166b2164639ca7a578cf61e39126b81ffef..4f8dab0c9d6f86c779c4539a0c2d7d192f2a409d 100755 GIT binary patch delta 3315 zcmaJ@2~<;O7XJSiP}BqxSzl_grwbhz{OI)Uk#SX7knft%wjbl$|a!%g6|98K; z{P+IvzIW>j#jP(Cn@?y8;|QUIke11K!C&FQz)e9-P4RaNlGFe7XZ;U%4o^=XRp(c% zQbTow5@y5=^1c>Jwj>d9fNU7R{C$b|s=WSs04qn?-`69q*KN?s-98 zC#l#PS>CT=t7UmjG+QCdBVyQ6S-us+o(ah*2gqJEE0q*-nf1|foi<^#1L_`bf1SRbNQ-YnwNo=*mz7H0y7B(kD z4e1>ivhc6;_-Yh$dUiMcq5g9XZf`O1okvenDJI6VJJ6V5pj~htV_gVaN2=eBXa2AQ z9rgt#O}(&fP!?SQ#|LF;ijl+#lDDz}4D;8yG4p)gn=}JjbrYx=bb2$@ z!brVcr$V;GRO(rOSgo9p?EG*}aZ3c|3%_ayeGMs^l53^vmV&Y1Zt zjCvFM5|$&Qfivd+3S(~~^T9!bjUIqghADI>v>FX`E94us!mAqidwgPa1)9nwet|;? zu+yl-Uc6_t)8!I>iNv2N@#ANO`F^d(7l`$UFDuKY8DOL-Pc=my-sX!IHXhcSYE|*b zm9~vxwY_S7m8d)_WL^;|L#vDZm_xRK3dRSLTs6Y71?;1RE4 zzZ{f^lFk*28>mUq(#x>iX4YRp9xp8C5sIe~&-w0gbL)>qL$uwNlw@b8|Bt6O$x|cu zx)``N#%Q0@gN3>ml~kA*tfpBl++TWurhh z*g!`>O|nrapAA)`E#Oa%pa#y5Xij5B7?Ltmh>U^9)AW=|jk*aMhfzHumfgah$dA)S z1hsHCMNRjB%5E3VMoSi_;0e2yHgO9hS~Q0({5hdB!s{d8d3hOX?6D>vYI(AJFTtjV z`*{dj?Rj(?Ix?%aBd;S|i%nA88ICwQ6-pfjx)|0wo~0#l&rwSsg_&Wab<=zB zPO1|ReQRnZJqo4HJX!|tIcqhmRan=U2M^M-FxzG4UR+N4JREeHaSFD&+;kz(p-WYh zkS$g2_t|U$tQ~5jW1t3ctBkK1&deNFCCJE`92N_c(+o5QO4CZ{RcK8!(`(R`W}^YP z>Ne2xkm1(SuMjt??~Y_&D<2fK0YNRi;daq_@VRZ#AEHhQpFWc9SHkBx+6Zj*Udh2< zI5(aUa*Lps%K!56y5yxW-66c9gqMcmk>{knquC4aLAsMZ31`!7(WiTQD}jD12Gn$(ZH!65qVOWJ{;l-%ETk(~S*3Txk(}$f9;QpvVoseoM7)GKUa}GKN@q5^;>0;8_EuiAc|<>s(GDE2mvHo6 z&hm&?a$sQgaQYM!Wb;?xTDmMm~o^^D0>9%9Qm!SeL5k+d~#i}V0Gz=;<@vS zO8&TX)v97r5fMRJ4pB7P3=5j9v>Ph$+6?bEjaS}yl0=Xbd$@87{M1xPyX$5)tEkrR z_?ot;_AC7Tn){xJY@l0(4a%KD8F>G;&QkVNK{1{O=@Tps+a!OEbt0C`*I+qnw#X;~ zgtJ_D0J+SkBWJmw2w5`9HJsIL2(kJoLac76L6(fltZGw;^+PyfH3W{Di)2)0m03fq ztqAal@|x?D@!yOw_>Zq2|An6CGCn1wdqfD?kB6dTW{Zq+E6$1=5@NA1D-LRqC8IK{ zJLS{bptFdW{Zr%NS;LLs5%4Uq)q?Iy1!j2>~8a zUUNO)ec3N|uZG5!JfZBVI^oOv3h91)jC3D+;w8%0M_T95|9pD$%EzFqYRG8Iqb^w9 zHU+0!c?$*c^ye;UC|7g*& zWu*C_$rd+Hta)tvJ4+q^h`+c==}jAad`o6Wd;Oju`Dyo*X|Dc38(07?#<;Nvj(+Jb3tNMRj1M z?kj(*b?0{zD@zXVj@q@OJ9^5ls`{?3>5tVEo{sHY2nW9NcvR;`OnhS7$?6x^4J*$2 z^hf9H_gxK&o*zpxPc6<G+~&2Se#XZ~w{X^7nPsk4lI++$ZaH$;k7U zhC}*=GEd{Gh7H>dPo|y!e%9=YzrO3Sy*WO;Y2l_n9TWF_^z^c)`+qiDu_Ud7PP|s| d=)T*B3w1~QNM%M?pEo-}mm&VGpx=NR8RrdThT;1(VH#52S{NMS` z_n&kA$J_^Bs2+Tws=lU~Ih+tm2x*&w5B$wM+3}+gV(lAqJ@?+oX$QysdFqwC-W82* zRY?fUAFeB_3L`aULQas%0OlS_q;1Ohasb1HKJ>uD!+e!^Y6|yX|T!_#PuC&$sNfJXZ>&`!XP{jg;fy|v=gY-r0xoRIo;QY zXd831PD*z`sm?*)fsb@)v=rKPX_{q7F{0TBpL&8dK1;d zM7=FC1lck(P|wtgovvrYV6%P~?E;IzK);1?1}kla0<!^ zfMhZF$0M7orhqZV#(Rp-K3EwOE2>PmywPVGRMGthDvbR-1|r?j5^2CnTv$vsDT!y# zgS|`T(TdVN6=8NtB-xi7#-2cdRZBgvDK09(Y-9J3%A3ilgyQbO?YX}>|IAlGxO;5G z#aG;8gG8&|*#3W1Z_298T(t~UFZ_z?fkD-8y?e5n5Ib`X%JM`#75|&;DfIdIkRs2} zdVK;ZpK;GbTy}wE$XQuMmmfu+wqEbgeFoz45Rwt~!s+V`^q@n=45DkNT}R*NS=w_F zST(AD!)xbC3faf2F1JgU$hLwdPUmwbkyXHzxTs-xwy;aj{LJ&gAx8Rg*(F>~*OJJV zqFe{caZnEbGKnpKlW_(iKNzNF>A@4Hfs1089F>JpCe4Jw5Si{yVdLRsj4t;=GW*Rh z3lAo|Sa0D5d8y9%na$Cjt@U~j`sDh8Mb|+}Msb_}ji8A);pR_`pF@X2RlI?!`!sRoKhET#8h zx+BU5cS$cuBdmC1J#>VD)8QxF4wO4`1^p)V-vVED@jN10sBt9Iv(V(Qs!yU%PQv*r zJN6>{us6I;CXaRcsXzEHi7J@x%%od@IjwXfoN^}7SOF)xq zpbH=+brB7RovE+UM6Ts8`;UxgN$@OnZrNJmS~Qf@bgdO#?ndHrH;iEJNkr=C5?JR# zJL}9OQuZ)xX{IQ3Ws8zWMGm_s;rlpobsiU8-4z1sStGDJ4Fdb==Yd+jpWLkiV*>-V zp3{TJC4)$Q7V^+jTd%hdCmHuML}?h_K(A#*Fu3;0T>2rTq?OU%!_hR|lq4eYTgcsI zU~VhsVU1xO4kC4ez`8J}t~4U`V2(W|BHisuXLoHxdMXXnes2;bw^fun@#5^kEA&ObWa0Uv#?S?C8R<-@D$9S>&FK~1%7 z_RF+IeMIHc_e)wQR0i%ADxvJ+Cd;j{d5dw$<&UEgxID^-QWs*ed<>RLCX0e1 zKsd`B?v3D=1ZSC{09gvEu&{Ho?huui<$-<3Qc#6eWAw5f4bE5t9hXc63aYS5V!W(6 z1o(`~nEPY#--2`SA0JQsg`a0UHs0%-D0t(?Lcw2676s)|oE4bhWwAk4AnZeyf-0=b zgRJWa@LVoK2eK4YVRa{ZwU!QQb%UkFWKmFs)$8=Kq6S&LP|#w^Qc#8E_llSG1OYyy zGUk3>edRBz_k*UEOySnpM&YaHD*1h7y!@VU?QP1(=db6}7azsE^T8-p1F5Z<)C@(f z)9@N>YIWe})WcR2^#e_t19w_hn?s{?j90~Dx?xkBiDIAH=HYguH)H(E+E9-FXhC5i z$!+}3&-KyIS2q&{iZdU}1>v4p&WcQ%*L{XR0)H#>aIxt041yP}S1w-bhKbx`854w$ASDk<+(M-^}baJ#W`uwKdxI@Ic!bo`6t)o*||Ae zuI>pgKia)##(cLrZo$pJycrbaF~1SAzGq9|4>6ApPFBN-e~P01!v{Y(Kg~U|@6)sH zRfpEx68Z|;9xS^xsIlJqUzxV91?fDPg^8(TU diff --git a/docs/html/bc_s.png b/docs/html/bc_s.png deleted file mode 100644 index 224b29aa9847d5a4b3902efd602b7ddf7d33e6c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT diff --git a/docs/html/bc_sd.png b/docs/html/bc_sd.png deleted file mode 100644 index 31ca888dc71049713b35c351933a8d0f36180bf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 635 zcmV->0)+jEP)Jwi0r1~gdSq#w{Bu1q z`craw(p2!hu$4C_$Oc3X(sI6e=9QSTwPt{G) z=htT&^~&c~L2~e{r5_5SYe7#Is-$ln>~Kd%$F#tC65?{LvQ}8O`A~RBB0N~`2M+waajO;5>3B&-viHGJeEK2TQOiPRa zfDKyqwMc4wfaEh4jt>H`nW_Zidwk@Bowp`}(VUaj-pSI(-1L>FJVsX}Yl9~JsqgsZ zUD9(rMwf23Gez6KPa|wwInZodP-2}9@fK0Ga_9{8SOjU&4l`pH4@qlQp83>>HT$xW zER^U>)MyV%t(Lu=`d=Y?{k1@}&r7ZGkFQ%z%N+sE9BtYjovzxyxCPxN6&@wLK{soQ zSmkj$aLI}miuE^p@~4}mg9OjDfGEkgY4~^XzLRUBB*O{+&vq<3v(E%+k_i%=`~j%{ Vj14gnt9}3g002ovPDHLkV1n!oC4m3{ diff --git a/docs/html/client_8h.html b/docs/html/client_8h.html deleted file mode 100644 index c8c043d..0000000 --- a/docs/html/client_8h.html +++ /dev/null @@ -1,405 +0,0 @@ - - - - - - - -My Project: src/app/core_logic/client.h File Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
- -
client.h File Reference
-
-
- -

Fichier d'en-tête pour les fonctions de gestion des clients. -More...

-
#include <stdio.h>
-#include <stdlib.h>
-#include "../interface/interface_client.h"
-
-

Go to the source code of this file.

- - - - - - - - - - - - - - - - - -

-Functions

int charger_clients (int numeros[], float cagnottes[], int suspendues[], int tPhysique)
 Charger les données des clients depuis un fichier.
 
void sauvegarde_clients (int numeros[], float cagnottes[], int suspendus[], int nombreClients)
 Sauvegarder les données des clients dans un fichier.
 
void supprimer_article (int panier[], int quantites[], int *taillePanier, int reference, int numeroClient, int numeros[], int nombreClients, int references[], float prixUnitaire[], float cagnottes[])
 Supprimer un article du panier du client.
 
int trouver_index_article (int reference, int references[], int nombreArticles)
 Trouver l'index d'une référence d'article dans un tableau.
 
int trouver_index_client (int numeroClient, int numeros[], int nombreClients)
 Trouver l'index d'un numéro de client dans un tableau.
 
-

Detailed Description

-

Fichier d'en-tête pour les fonctions de gestion des clients.

-

Ce fichier d'en-tête définit les fonctions liées à la gestion des clients, telles que le chargement des clients, la sauvegarde, etc.

-
Author
Hersan Mathéo
-

Function Documentation

- -

◆ charger_clients()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
int charger_clients (int numeros[],
float cagnottes[],
int suspendues[],
int tPhysique 
)
-
- -

Charger les données des clients depuis un fichier.

-
Parameters
- - - - - -
numeros- Un tableau de numéros de clients.
cagnottes- Un tableau de cagnottes des clients.
suspendues- Un tableau d'état des clients suspendus.
tPhysique- La taille physique du tableau des clients.
-
-
-
Returns
Le nombre de clients chargés depuis le fichier.
- -
-
- -

◆ sauvegarde_clients()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void sauvegarde_clients (int numeros[],
float cagnottes[],
int suspendus[],
int nombreClients 
)
-
- -

Sauvegarder les données des clients dans un fichier.

-
Parameters
- - - - - -
numeros- Un tableau de numéros de clients.
cagnottes- Un tableau de cagnottes des clients.
suspendus- Un tableau d'état des clients suspendus.
nombreClients- Le nombre total de clients.
-
-
- -
-
- -

◆ supprimer_article()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void supprimer_article (int panier[],
int quantites[],
int * taillePanier,
int reference,
int numeroClient,
int numeros[],
int nombreClients,
int references[],
float prixUnitaire[],
float cagnottes[] 
)
-
- -

Supprimer un article du panier du client.

-
Parameters
- - - - - - - - - - - -
panier- Le panier d'achat du client.
quantites- Un tableau de quantités d'articles dans le panier.
[out]taillePanier- Un pointeur pour stocker la taille du panier.
reference- La référence de l'article à supprimer.
numeroClient- Le numéro du client.
numeros- Un tableau de numéros de clients.
nombreClients- Le nombre total de clients.
references- Un tableau de références d'articles.
prixUnitaire- Un tableau de prix unitaires d'articles.
cagnottes- Un tableau de cagnottes des clients.
-
-
- -
-
- -

◆ trouver_index_article()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
int trouver_index_article (int reference,
int references[],
int nombreArticles 
)
-
- -

Trouver l'index d'une référence d'article dans un tableau.

-
Parameters
- - - - -
reference- La référence de l'article à rechercher.
references- Un tableau de références d'articles.
nombreArticles- Le nombre total d'articles.
-
-
-
Returns
L'index de la référence dans le tableau ou -1 si la référence n'est pas trouvée.
- -
-
- -

◆ trouver_index_client()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
int trouver_index_client (int numeroClient,
int numeros[],
int nombreClients 
)
-
- -

Trouver l'index d'un numéro de client dans un tableau.

-
Parameters
- - - - -
numeroClient- Le numéro de client à rechercher.
numeros- Un tableau de numéros de clients.
nombreClients- Le nombre total de clients.
-
-
-
Returns
L'index du numéro de client dans le tableau ou -1 si le numéro de client n'est pas trouvé.
- -
-
-
- - - - diff --git a/docs/html/client_8h_source.html b/docs/html/client_8h_source.html deleted file mode 100644 index cc76a5c..0000000 --- a/docs/html/client_8h_source.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - -My Project: src/app/core_logic/client.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
client.h
-
-
-Go to the documentation of this file.
1
-
10#ifndef CLIENT_H
-
11#define CLIENT_H
-
12
-
13#include <stdio.h>
-
14#include <stdlib.h>
-
15#include "../interface/interface_client.h"
-
16
-
27int charger_clients(int numeros[], float cagnottes[], int suspendues[], int tPhysique);
-
28
-
37void sauvegarde_clients(int numeros[], float cagnottes[], int suspendus[], int nombreClients);
-
38
-
53void supprimer_article(int panier[], int quantites[], int *taillePanier, int reference, int numeroClient, int numeros[], int nombreClients, int references[], float prixUnitaire[], float cagnottes[]);
-
54
-
64int trouver_index_article(int reference, int references[], int nombreArticles);
-
65
-
75int trouver_index_client(int numeroClient, int numeros[], int nombreClients);
-
76
-
77#endif // CLIENT_H
-
void sauvegarde_clients(int numeros[], float cagnottes[], int suspendus[], int nombreClients)
Sauvegarder les données des clients dans un fichier.
Definition client.c:29
-
int trouver_index_article(int reference, int references[], int nombreArticles)
Trouver l'index d'une référence d'article dans un tableau.
Definition client.c:42
-
int charger_clients(int numeros[], float cagnottes[], int suspendues[], int tPhysique)
Charger les données des clients depuis un fichier.
Definition client.c:6
-
int trouver_index_client(int numeroClient, int numeros[], int nombreClients)
Trouver l'index d'un numéro de client dans un tableau.
Definition client.c:51
-
void supprimer_article(int panier[], int quantites[], int *taillePanier, int reference, int numeroClient, int numeros[], int nombreClients, int references[], float prixUnitaire[], float cagnottes[])
Supprimer un article du panier du client.
Definition client.c:60
-
- - - - diff --git a/docs/html/closed.png b/docs/html/closed.png deleted file mode 100644 index 98cc2c909da37a6df914fbf67780eebd99c597f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT diff --git a/docs/html/dir_5194e5fea318fda12687127c23f8aba1.html b/docs/html/dir_5194e5fea318fda12687127c23f8aba1.html deleted file mode 100644 index c9e3de1..0000000 --- a/docs/html/dir_5194e5fea318fda12687127c23f8aba1.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - -My Project: src/app Directory Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
app Directory Reference
-
-
- - - - - - -

-Directories

 core_logic
 
 interface
 
-
- - - - diff --git a/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html deleted file mode 100644 index cd33c1f..0000000 --- a/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -My Project: src Directory Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
src Directory Reference
-
-
- - - - - -

-Files

 main.c
 Programme principal pour choisir une interface et lancer l'application.
 
-
- - - - diff --git a/docs/html/dir_9a14f97cc8a04806f17ae0e592fed671.html b/docs/html/dir_9a14f97cc8a04806f17ae0e592fed671.html deleted file mode 100644 index a62b607..0000000 --- a/docs/html/dir_9a14f97cc8a04806f17ae0e592fed671.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - -My Project: src/app/interface Directory Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
interface Directory Reference
-
-
- - - - - - - - -

-Files

 interface_client.h
 Fichier d'en-tête pour les fonctions de l'interface client.
 
 interface_resp.h
 En-tête des fonctions liées à l'interface du responsable.
 
-
- - - - diff --git a/docs/html/dir_b5c97184117f1879a3567c3d06daf03f.html b/docs/html/dir_b5c97184117f1879a3567c3d06daf03f.html deleted file mode 100644 index 9970910..0000000 --- a/docs/html/dir_b5c97184117f1879a3567c3d06daf03f.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -My Project: src/app/core_logic Directory Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
core_logic Directory Reference
-
-
- - - - - - - - - - - -

-Files

 client.h
 Fichier d'en-tête pour les fonctions de gestion des clients.
 
 responsable.c
 Définition des fonctions de responsable.c.
 
 responsable.h
 Déclaration des fonctions de responsable.c.
 
-
- - - - diff --git a/docs/html/doc.svg b/docs/html/doc.svg deleted file mode 100644 index 0b928a5..0000000 --- a/docs/html/doc.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - diff --git a/docs/html/docd.svg b/docs/html/docd.svg deleted file mode 100644 index ac18b27..0000000 --- a/docs/html/docd.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - diff --git a/docs/html/doxygen.css b/docs/html/doxygen.css deleted file mode 100644 index 009a9b5..0000000 --- a/docs/html/doxygen.css +++ /dev/null @@ -1,2045 +0,0 @@ -/* The standard CSS for doxygen 1.9.8*/ - -html { -/* page base colors */ ---page-background-color: white; ---page-foreground-color: black; ---page-link-color: #3D578C; ---page-visited-link-color: #4665A2; - -/* index */ ---index-odd-item-bg-color: #F8F9FC; ---index-even-item-bg-color: white; ---index-header-color: black; ---index-separator-color: #A0A0A0; - -/* header */ ---header-background-color: #F9FAFC; ---header-separator-color: #C4CFE5; ---header-gradient-image: url('nav_h.png'); ---group-header-separator-color: #879ECB; ---group-header-color: #354C7B; ---inherit-header-color: gray; - ---footer-foreground-color: #2A3D61; ---footer-logo-width: 104px; ---citation-label-color: #334975; ---glow-color: cyan; - ---title-background-color: white; ---title-separator-color: #5373B4; ---directory-separator-color: #9CAFD4; ---separator-color: #4A6AAA; - ---blockquote-background-color: #F7F8FB; ---blockquote-border-color: #9CAFD4; - ---scrollbar-thumb-color: #9CAFD4; ---scrollbar-background-color: #F9FAFC; - ---icon-background-color: #728DC1; ---icon-foreground-color: white; ---icon-doc-image: url('doc.svg'); ---icon-folder-open-image: url('folderopen.svg'); ---icon-folder-closed-image: url('folderclosed.svg'); - -/* brief member declaration list */ ---memdecl-background-color: #F9FAFC; ---memdecl-separator-color: #DEE4F0; ---memdecl-foreground-color: #555; ---memdecl-template-color: #4665A2; - -/* detailed member list */ ---memdef-border-color: #A8B8D9; ---memdef-title-background-color: #E2E8F2; ---memdef-title-gradient-image: url('nav_f.png'); ---memdef-proto-background-color: #DFE5F1; ---memdef-proto-text-color: #253555; ---memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); ---memdef-doc-background-color: white; ---memdef-param-name-color: #602020; ---memdef-template-color: #4665A2; - -/* tables */ ---table-cell-border-color: #2D4068; ---table-header-background-color: #374F7F; ---table-header-foreground-color: #FFFFFF; - -/* labels */ ---label-background-color: #728DC1; ---label-left-top-border-color: #5373B4; ---label-right-bottom-border-color: #C4CFE5; ---label-foreground-color: white; - -/** navigation bar/tree/menu */ ---nav-background-color: #F9FAFC; ---nav-foreground-color: #364D7C; ---nav-gradient-image: url('tab_b.png'); ---nav-gradient-hover-image: url('tab_h.png'); ---nav-gradient-active-image: url('tab_a.png'); ---nav-gradient-active-image-parent: url("../tab_a.png"); ---nav-separator-image: url('tab_s.png'); ---nav-breadcrumb-image: url('bc_s.png'); ---nav-breadcrumb-border-color: #C2CDE4; ---nav-splitbar-image: url('splitbar.png'); ---nav-font-size-level1: 13px; ---nav-font-size-level2: 10px; ---nav-font-size-level3: 9px; ---nav-text-normal-color: #283A5D; ---nav-text-hover-color: white; ---nav-text-active-color: white; ---nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); ---nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); ---nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); ---nav-menu-button-color: #364D7C; ---nav-menu-background-color: white; ---nav-menu-foreground-color: #555555; ---nav-menu-toggle-color: rgba(255, 255, 255, 0.5); ---nav-arrow-color: #9CAFD4; ---nav-arrow-selected-color: #9CAFD4; - -/* table of contents */ ---toc-background-color: #F4F6FA; ---toc-border-color: #D8DFEE; ---toc-header-color: #4665A2; ---toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); - -/** search field */ ---search-background-color: white; ---search-foreground-color: #909090; ---search-magnification-image: url('mag.svg'); ---search-magnification-select-image: url('mag_sel.svg'); ---search-active-color: black; ---search-filter-background-color: #F9FAFC; ---search-filter-foreground-color: black; ---search-filter-border-color: #90A5CE; ---search-filter-highlight-text-color: white; ---search-filter-highlight-bg-color: #3D578C; ---search-results-foreground-color: #425E97; ---search-results-background-color: #EEF1F7; ---search-results-border-color: black; ---search-box-shadow: inset 0.5px 0.5px 3px 0px #555; - -/** code fragments */ ---code-keyword-color: #008000; ---code-type-keyword-color: #604020; ---code-flow-keyword-color: #E08000; ---code-comment-color: #800000; ---code-preprocessor-color: #806020; ---code-string-literal-color: #002080; ---code-char-literal-color: #008080; ---code-xml-cdata-color: black; ---code-vhdl-digit-color: #FF00FF; ---code-vhdl-char-color: #000000; ---code-vhdl-keyword-color: #700070; ---code-vhdl-logic-color: #FF0000; ---code-link-color: #4665A2; ---code-external-link-color: #4665A2; ---fragment-foreground-color: black; ---fragment-background-color: #FBFCFD; ---fragment-border-color: #C4CFE5; ---fragment-lineno-border-color: #00FF00; ---fragment-lineno-background-color: #E8E8E8; ---fragment-lineno-foreground-color: black; ---fragment-lineno-link-fg-color: #4665A2; ---fragment-lineno-link-bg-color: #D8D8D8; ---fragment-lineno-link-hover-fg-color: #4665A2; ---fragment-lineno-link-hover-bg-color: #C8C8C8; ---tooltip-foreground-color: black; ---tooltip-background-color: white; ---tooltip-border-color: gray; ---tooltip-doc-color: grey; ---tooltip-declaration-color: #006318; ---tooltip-link-color: #4665A2; ---tooltip-shadow: 1px 1px 7px gray; ---fold-line-color: #808080; ---fold-minus-image: url('minus.svg'); ---fold-plus-image: url('plus.svg'); ---fold-minus-image-relpath: url('../../minus.svg'); ---fold-plus-image-relpath: url('../../plus.svg'); - -/** font-family */ ---font-family-normal: Roboto,sans-serif; ---font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; ---font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; ---font-family-title: Tahoma,Arial,sans-serif; ---font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; ---font-family-search: Arial,Verdana,sans-serif; ---font-family-icon: Arial,Helvetica; ---font-family-tooltip: Roboto,sans-serif; - -} - -@media (prefers-color-scheme: dark) { - html:not(.dark-mode) { - color-scheme: dark; - -/* page base colors */ ---page-background-color: black; ---page-foreground-color: #C9D1D9; ---page-link-color: #90A5CE; ---page-visited-link-color: #A3B4D7; - -/* index */ ---index-odd-item-bg-color: #0B101A; ---index-even-item-bg-color: black; ---index-header-color: #C4CFE5; ---index-separator-color: #334975; - -/* header */ ---header-background-color: #070B11; ---header-separator-color: #141C2E; ---header-gradient-image: url('nav_hd.png'); ---group-header-separator-color: #283A5D; ---group-header-color: #90A5CE; ---inherit-header-color: #A0A0A0; - ---footer-foreground-color: #5B7AB7; ---footer-logo-width: 60px; ---citation-label-color: #90A5CE; ---glow-color: cyan; - ---title-background-color: #090D16; ---title-separator-color: #354C79; ---directory-separator-color: #283A5D; ---separator-color: #283A5D; - ---blockquote-background-color: #101826; ---blockquote-border-color: #283A5D; - ---scrollbar-thumb-color: #283A5D; ---scrollbar-background-color: #070B11; - ---icon-background-color: #334975; ---icon-foreground-color: #C4CFE5; ---icon-doc-image: url('docd.svg'); ---icon-folder-open-image: url('folderopend.svg'); ---icon-folder-closed-image: url('folderclosedd.svg'); - -/* brief member declaration list */ ---memdecl-background-color: #0B101A; ---memdecl-separator-color: #2C3F65; ---memdecl-foreground-color: #BBB; ---memdecl-template-color: #7C95C6; - -/* detailed member list */ ---memdef-border-color: #233250; ---memdef-title-background-color: #1B2840; ---memdef-title-gradient-image: url('nav_fd.png'); ---memdef-proto-background-color: #19243A; ---memdef-proto-text-color: #9DB0D4; ---memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); ---memdef-doc-background-color: black; ---memdef-param-name-color: #D28757; ---memdef-template-color: #7C95C6; - -/* tables */ ---table-cell-border-color: #283A5D; ---table-header-background-color: #283A5D; ---table-header-foreground-color: #C4CFE5; - -/* labels */ ---label-background-color: #354C7B; ---label-left-top-border-color: #4665A2; ---label-right-bottom-border-color: #283A5D; ---label-foreground-color: #CCCCCC; - -/** navigation bar/tree/menu */ ---nav-background-color: #101826; ---nav-foreground-color: #364D7C; ---nav-gradient-image: url('tab_bd.png'); ---nav-gradient-hover-image: url('tab_hd.png'); ---nav-gradient-active-image: url('tab_ad.png'); ---nav-gradient-active-image-parent: url("../tab_ad.png"); ---nav-separator-image: url('tab_sd.png'); ---nav-breadcrumb-image: url('bc_sd.png'); ---nav-breadcrumb-border-color: #2A3D61; ---nav-splitbar-image: url('splitbard.png'); ---nav-font-size-level1: 13px; ---nav-font-size-level2: 10px; ---nav-font-size-level3: 9px; ---nav-text-normal-color: #B6C4DF; ---nav-text-hover-color: #DCE2EF; ---nav-text-active-color: #DCE2EF; ---nav-text-normal-shadow: 0px 1px 1px black; ---nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); ---nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); ---nav-menu-button-color: #B6C4DF; ---nav-menu-background-color: #05070C; ---nav-menu-foreground-color: #BBBBBB; ---nav-menu-toggle-color: rgba(255, 255, 255, 0.2); ---nav-arrow-color: #334975; ---nav-arrow-selected-color: #90A5CE; - -/* table of contents */ ---toc-background-color: #151E30; ---toc-border-color: #202E4A; ---toc-header-color: #A3B4D7; ---toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); - -/** search field */ ---search-background-color: black; ---search-foreground-color: #C5C5C5; ---search-magnification-image: url('mag_d.svg'); ---search-magnification-select-image: url('mag_seld.svg'); ---search-active-color: #C5C5C5; ---search-filter-background-color: #101826; ---search-filter-foreground-color: #90A5CE; ---search-filter-border-color: #7C95C6; ---search-filter-highlight-text-color: #BCC9E2; ---search-filter-highlight-bg-color: #283A5D; ---search-results-background-color: #101826; ---search-results-foreground-color: #90A5CE; ---search-results-border-color: #7C95C6; ---search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; - -/** code fragments */ ---code-keyword-color: #CC99CD; ---code-type-keyword-color: #AB99CD; ---code-flow-keyword-color: #E08000; ---code-comment-color: #717790; ---code-preprocessor-color: #65CABE; ---code-string-literal-color: #7EC699; ---code-char-literal-color: #00E0F0; ---code-xml-cdata-color: #C9D1D9; ---code-vhdl-digit-color: #FF00FF; ---code-vhdl-char-color: #C0C0C0; ---code-vhdl-keyword-color: #CF53C9; ---code-vhdl-logic-color: #FF0000; ---code-link-color: #79C0FF; ---code-external-link-color: #79C0FF; ---fragment-foreground-color: #C9D1D9; ---fragment-background-color: black; ---fragment-border-color: #30363D; ---fragment-lineno-border-color: #30363D; ---fragment-lineno-background-color: black; ---fragment-lineno-foreground-color: #6E7681; ---fragment-lineno-link-fg-color: #6E7681; ---fragment-lineno-link-bg-color: #303030; ---fragment-lineno-link-hover-fg-color: #8E96A1; ---fragment-lineno-link-hover-bg-color: #505050; ---tooltip-foreground-color: #C9D1D9; ---tooltip-background-color: #202020; ---tooltip-border-color: #C9D1D9; ---tooltip-doc-color: #D9E1E9; ---tooltip-declaration-color: #20C348; ---tooltip-link-color: #79C0FF; ---tooltip-shadow: none; ---fold-line-color: #808080; ---fold-minus-image: url('minusd.svg'); ---fold-plus-image: url('plusd.svg'); ---fold-minus-image-relpath: url('../../minusd.svg'); ---fold-plus-image-relpath: url('../../plusd.svg'); - -/** font-family */ ---font-family-normal: Roboto,sans-serif; ---font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; ---font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; ---font-family-title: Tahoma,Arial,sans-serif; ---font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; ---font-family-search: Arial,Verdana,sans-serif; ---font-family-icon: Arial,Helvetica; ---font-family-tooltip: Roboto,sans-serif; - -}} -body { - background-color: var(--page-background-color); - color: var(--page-foreground-color); -} - -body, table, div, p, dl { - font-weight: 400; - font-size: 14px; - font-family: var(--font-family-normal); - line-height: 22px; -} - -/* @group Heading Levels */ - -.title { - font-weight: 400; - font-size: 14px; - font-family: var(--font-family-normal); - line-height: 28px; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h1.groupheader { - font-size: 150%; -} - -h2.groupheader { - border-bottom: 1px solid var(--group-header-separator-color); - color: var(--group-header-color); - font-size: 150%; - font-weight: normal; - margin-top: 1.75em; - padding-top: 8px; - padding-bottom: 4px; - width: 100%; -} - -h3.groupheader { - font-size: 100%; -} - -h1, h2, h3, h4, h5, h6 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; -} - -h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px var(--glow-color); -} - -dt { - font-weight: bold; -} - -p.startli, p.startdd { - margin-top: 2px; -} - -th p.starttd, th p.intertd, th p.endtd { - font-size: 100%; - font-weight: 700; -} - -p.starttd { - margin-top: 0px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -p.interli { -} - -p.interdd { -} - -p.intertd { -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.navtab { - padding-right: 15px; - text-align: right; - line-height: 110%; -} - -div.navtab table { - border-spacing: 0; -} - -td.navtab { - padding-right: 6px; - padding-left: 6px; -} - -td.navtabHL { - background-image: var(--nav-gradient-active-image); - background-repeat:repeat-x; - padding-right: 6px; - padding-left: 6px; -} - -td.navtabHL a, td.navtabHL a:visited { - color: var(--nav-text-hover-color); - text-shadow: var(--nav-text-hover-shadow); -} - -a.navtab { - font-weight: bold; -} - -div.qindex{ - text-align: center; - width: 100%; - line-height: 140%; - font-size: 130%; - color: var(--index-separator-color); -} - -#main-menu a:focus { - outline: auto; - z-index: 10; - position: relative; -} - -dt.alphachar{ - font-size: 180%; - font-weight: bold; -} - -.alphachar a{ - color: var(--index-header-color); -} - -.alphachar a:hover, .alphachar a:visited{ - text-decoration: none; -} - -.classindex dl { - padding: 25px; - column-count:1 -} - -.classindex dd { - display:inline-block; - margin-left: 50px; - width: 90%; - line-height: 1.15em; -} - -.classindex dl.even { - background-color: var(--index-even-item-bg-color); -} - -.classindex dl.odd { - background-color: var(--index-odd-item-bg-color); -} - -@media(min-width: 1120px) { - .classindex dl { - column-count:2 - } -} - -@media(min-width: 1320px) { - .classindex dl { - column-count:3 - } -} - - -/* @group Link Styling */ - -a { - color: var(--page-link-color); - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: var(--page-visited-link-color); -} - -a:hover { - text-decoration: underline; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited, a.line, a.line:visited { - color: var(--code-link-color); -} - -a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: var(--code-external-link-color); -} - -a.code.hl_class { /* style for links to class names in code snippets */ } -a.code.hl_struct { /* style for links to struct names in code snippets */ } -a.code.hl_union { /* style for links to union names in code snippets */ } -a.code.hl_interface { /* style for links to interface names in code snippets */ } -a.code.hl_protocol { /* style for links to protocol names in code snippets */ } -a.code.hl_category { /* style for links to category names in code snippets */ } -a.code.hl_exception { /* style for links to exception names in code snippets */ } -a.code.hl_service { /* style for links to service names in code snippets */ } -a.code.hl_singleton { /* style for links to singleton names in code snippets */ } -a.code.hl_concept { /* style for links to concept names in code snippets */ } -a.code.hl_namespace { /* style for links to namespace names in code snippets */ } -a.code.hl_package { /* style for links to package names in code snippets */ } -a.code.hl_define { /* style for links to macro names in code snippets */ } -a.code.hl_function { /* style for links to function names in code snippets */ } -a.code.hl_variable { /* style for links to variable names in code snippets */ } -a.code.hl_typedef { /* style for links to typedef names in code snippets */ } -a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } -a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } -a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } -a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } -a.code.hl_friend { /* style for links to friend names in code snippets */ } -a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } -a.code.hl_property { /* style for links to property names in code snippets */ } -a.code.hl_event { /* style for links to event names in code snippets */ } -a.code.hl_sequence { /* style for links to sequence names in code snippets */ } -a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -ul { - overflow: visible; -} - -ul.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; - column-count: 3; - list-style-type: none; -} - -#side-nav ul { - overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ -} - -#main-nav ul { - overflow: visible; /* reset ul rule for the navigation bar drop down lists */ -} - -.fragment { - text-align: left; - direction: ltr; - overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ - overflow-y: hidden; -} - -pre.fragment { - border: 1px solid var(--fragment-border-color); - background-color: var(--fragment-background-color); - color: var(--fragment-foreground-color); - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; - font-family: var(--font-family-monospace); - font-size: 105%; -} - -div.fragment { - padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ - margin: 4px 8px 4px 2px; - color: var(--fragment-foreground-color); - background-color: var(--fragment-background-color); - border: 1px solid var(--fragment-border-color); -} - -div.line { - font-family: var(--font-family-monospace); - font-size: 13px; - min-height: 13px; - line-height: 1.2; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -div.line:after { - content:"\000A"; - white-space: pre; -} - -div.line.glow { - background-color: var(--glow-color); - box-shadow: 0 0 10px var(--glow-color); -} - -span.fold { - margin-left: 5px; - margin-right: 1px; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; - display: inline-block; - width: 12px; - height: 12px; - background-repeat:no-repeat; - background-position:center; -} - -span.lineno { - padding-right: 4px; - margin-right: 9px; - text-align: right; - border-right: 2px solid var(--fragment-lineno-border-color); - color: var(--fragment-lineno-foreground-color); - background-color: var(--fragment-lineno-background-color); - white-space: pre; -} -span.lineno a, span.lineno a:visited { - color: var(--fragment-lineno-link-fg-color); - background-color: var(--fragment-lineno-link-bg-color); -} - -span.lineno a:hover { - color: var(--fragment-lineno-link-hover-fg-color); - background-color: var(--fragment-lineno-link-hover-bg-color); -} - -.lineno { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -div.classindex ul { - list-style: none; - padding-left: 0; -} - -div.classindex span.ai { - display: inline-block; -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - color: var(--page-foreground-color); - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; -} - -p.formulaDsp { - text-align: center; -} - -img.dark-mode-visible { - display: none; -} -img.light-mode-visible { - display: none; -} - -img.formulaDsp { - -} - -img.formulaInl, img.inline { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; - width: var(--footer-logo-width); -} - -.compoundTemplParams { - color: var(--memdecl-template-color); - font-size: 80%; - line-height: 120%; -} - -/* @group Code Colorization */ - -span.keyword { - color: var(--code-keyword-color); -} - -span.keywordtype { - color: var(--code-type-keyword-color); -} - -span.keywordflow { - color: var(--code-flow-keyword-color); -} - -span.comment { - color: var(--code-comment-color); -} - -span.preprocessor { - color: var(--code-preprocessor-color); -} - -span.stringliteral { - color: var(--code-string-literal-color); -} - -span.charliteral { - color: var(--code-char-literal-color); -} - -span.xmlcdata { - color: var(--code-xml-cdata-color); -} - -span.vhdldigit { - color: var(--code-vhdl-digit-color); -} - -span.vhdlchar { - color: var(--code-vhdl-char-color); -} - -span.vhdlkeyword { - color: var(--code-vhdl-keyword-color); -} - -span.vhdllogic { - color: var(--code-vhdl-logic-color); -} - -blockquote { - background-color: var(--blockquote-background-color); - border-left: 2px solid var(--blockquote-border-color); - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; -} - -/* @end */ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid var(--table-cell-border-color); -} - -th.dirtab { - background-color: var(--table-header-background-color); - color: var(--table-header-foreground-color); - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid var(--separator-color); -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -.memberdecls td.glow, .fieldtable tr.glow { - background-color: var(--glow-color); - box-shadow: 0 0 15px var(--glow-color); -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: var(--memdecl-background-color); - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: var(--memdecl-foreground-color); -} - -.memSeparator { - border-bottom: 1px solid var(--memdecl-separator-color); - line-height: 1px; - margin: 0px; - padding: 0px; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memItemRight, .memTemplItemRight { - width: 100%; -} - -.memTemplParams { - color: var(--memdecl-template-color); - white-space: nowrap; - font-size: 80%; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtitle { - padding: 8px; - border-top: 1px solid var(--memdef-border-color); - border-left: 1px solid var(--memdef-border-color); - border-right: 1px solid var(--memdef-border-color); - border-top-right-radius: 4px; - border-top-left-radius: 4px; - margin-bottom: -1px; - background-image: var(--memdef-title-gradient-image); - background-repeat: repeat-x; - background-color: var(--memdef-title-background-color); - line-height: 1.25; - font-weight: 300; - float:left; -} - -.permalink -{ - font-size: 65%; - display: inline-block; - vertical-align: middle; -} - -.memtemplate { - font-size: 80%; - color: var(--memdef-template-color); - font-weight: normal; - margin-left: 9px; -} - -.mempage { - width: 100%; -} - -.memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; - display: table !important; - width: 100%; -} - -.memitem.glow { - box-shadow: 0 0 15px var(--glow-color); -} - -.memname { - font-weight: 400; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} - -.memproto, dl.reflist dt { - border-top: 1px solid var(--memdef-border-color); - border-left: 1px solid var(--memdef-border-color); - border-right: 1px solid var(--memdef-border-color); - padding: 6px 0px 6px 0px; - color: var(--memdef-proto-text-color); - font-weight: bold; - text-shadow: var(--memdef-proto-text-shadow); - background-color: var(--memdef-proto-background-color); - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 4px; -} - -.overload { - font-family: var(--font-family-monospace); - font-size: 65%; -} - -.memdoc, dl.reflist dd { - border-bottom: 1px solid var(--memdef-border-color); - border-left: 1px solid var(--memdef-border-color); - border-right: 1px solid var(--memdef-border-color); - padding: 6px 10px 2px 10px; - border-top-width: 0; - background-image:url('nav_g.png'); - background-repeat:repeat-x; - background-color: var(--memdef-doc-background-color); - /* opera specific markup */ - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - /* firefox specific markup */ - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -dl.reflist dt { - padding: 5px; -} - -dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: var(--memdef-param-name-color); - white-space: nowrap; -} -.paramname em { - font-style: normal; -} -.paramname code { - line-height: 14px; -} - -.params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; -} - -.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype, .tparams .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir, .tparams .paramdir { - font-family: var(--font-family-monospace); - vertical-align: top; -} - -table.mlabels { - border-spacing: 0px; -} - -td.mlabels-left { - width: 100%; - padding: 0px; -} - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; -} - -span.mlabels { - margin-left: 8px; -} - -span.mlabel { - background-color: var(--label-background-color); - border-top:1px solid var(--label-left-top-border-color); - border-left:1px solid var(--label-left-top-border-color); - border-right:1px solid var(--label-right-bottom-border-color); - border-bottom:1px solid var(--label-right-bottom-border-color); - text-shadow: none; - color: var(--label-foreground-color); - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; - vertical-align: middle; -} - - - -/* @end */ - -/* these are for tree view inside a (index) page */ - -div.directory { - margin: 10px 0px; - border-top: 1px solid var(--directory-separator-color); - border-bottom: 1px solid var(--directory-separator-color); - width: 100%; -} - -.directory table { - border-collapse:collapse; -} - -.directory td { - margin: 0px; - padding: 0px; - vertical-align: top; -} - -.directory td.entry { - white-space: nowrap; - padding-right: 6px; - padding-top: 3px; -} - -.directory td.entry a { - outline:none; -} - -.directory td.entry a img { - border: none; -} - -.directory td.desc { - width: 100%; - padding-left: 6px; - padding-right: 6px; - padding-top: 3px; - border-left: 1px solid rgba(0,0,0,0.05); -} - -.directory tr.odd { - padding-left: 6px; - background-color: var(--index-odd-item-bg-color); -} - -.directory tr.even { - padding-left: 6px; - background-color: var(--index-even-item-bg-color); -} - -.directory img { - vertical-align: -30%; -} - -.directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; -} - -.directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: var(--page-link-color); -} - -.arrow { - color: var(--nav-arrow-color); - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - font-size: 80%; - display: inline-block; - width: 16px; - height: 22px; -} - -.icon { - font-family: var(--font-family-icon); - line-height: normal; - font-weight: bold; - font-size: 12px; - height: 14px; - width: 16px; - display: inline-block; - background-color: var(--icon-background-color); - color: var(--icon-foreground-color); - text-align: center; - border-radius: 4px; - margin-left: 2px; - margin-right: 2px; -} - -.icona { - width: 24px; - height: 22px; - display: inline-block; -} - -.iconfopen { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:var(--icon-folder-open-image); - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.iconfclosed { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:var(--icon-folder-closed-image); - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.icondoc { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:var(--icon-doc-image); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -/* @end */ - -div.dynheader { - margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -address { - font-style: normal; - color: var(--footer-foreground-color); -} - -table.doxtable caption { - caption-side: top; -} - -table.doxtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.doxtable td, table.doxtable th { - border: 1px solid var(--table-cell-border-color); - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: var(--table-header-background-color); - color: var(--table-header-foreground-color); - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -table.fieldtable { - margin-bottom: 10px; - border: 1px solid var(--memdef-border-color); - border-spacing: 0px; - border-radius: 4px; - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname { - white-space: nowrap; - border-right: 1px solid var(--memdef-border-color); - border-bottom: 1px solid var(--memdef-border-color); - vertical-align: top; -} - -.fieldtable td.fieldname { - padding-top: 3px; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid var(--memdef-border-color); -} - -.fieldtable td.fielddoc p:first-child { - margin-top: 0px; -} - -.fieldtable td.fielddoc p:last-child { - margin-bottom: 2px; -} - -.fieldtable tr:last-child td { - border-bottom: none; -} - -.fieldtable th { - background-image: var(--memdef-title-gradient-image); - background-repeat:repeat-x; - background-color: var(--memdef-title-background-color); - font-size: 90%; - color: var(--memdef-proto-text-color); - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - font-weight: 400; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid var(--memdef-border-color); -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: var(--nav-gradient-image); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-image: var(--nav-gradient-image); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:var(--nav-text-normal-color); - border:solid 1px var(--nav-breadcrumb-border-color); - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:var(--nav-breadcrumb-image); - background-repeat:no-repeat; - background-position:right; - color: var(--nav-foreground-color); -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; - color: var(--nav-text-normal-color); - font-family: var(--font-family-nav); - text-shadow: var(--nav-text-normal-shadow); - text-decoration: none; -} - -.navpath li.navelem a:hover -{ - color: var(--nav-text-hover-color); - text-shadow: var(--nav-text-hover-shadow); -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - color: var(--footer-foreground-color); - font-size: 8pt; -} - - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -table.classindex -{ - margin: 10px; - white-space: nowrap; - margin-left: 3%; - margin-right: 3%; - width: 94%; - border: 0; - border-spacing: 0; - padding: 0; -} - -div.ingroups -{ - font-size: 8pt; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - background-image: var(--header-gradient-image); - background-repeat:repeat-x; - background-color: var(--header-background-color); - margin: 0px; - border-bottom: 1px solid var(--header-separator-color); -} - -div.headertitle -{ - padding: 5px 5px 5px 10px; -} - -.PageDocRTL-title div.headertitle { - text-align: right; - direction: rtl; -} - -dl { - padding: 0 0 0 0; -} - -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ -dl.section { - margin-left: 0px; - padding-left: 0px; -} - -dl.note { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00D000; -} - -dl.deprecated { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #505050; -} - -dl.todo { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00C0E0; -} - -dl.test { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #3030E0; -} - -dl.bug { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #C08050; -} - -dl.section dd { - margin-bottom: 6px; -} - - -#projectrow -{ - height: 56px; -} - -#projectlogo -{ - text-align: center; - vertical-align: bottom; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectalign -{ - vertical-align: middle; - padding-left: 0.5em; -} - -#projectname -{ - font-size: 200%; - font-family: var(--font-family-title); - margin: 0px; - padding: 2px 0px; -} - -#projectbrief -{ - font-size: 90%; - font-family: var(--font-family-title); - margin: 0px; - padding: 0px; -} - -#projectnumber -{ - font-size: 50%; - font-family: 50% var(--font-family-title); - margin: 0px; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid var(--title-separator-color); - background-color: var(--title-background-color); -} - -.image -{ - text-align: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.plantumlgraph -{ - text-align: center; -} - -.diagraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:var(--citation-label-color); - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; - text-align:right; - width:52px; -} - -dl.citelist dd { - margin:2px 0 2px 72px; - padding:5px 0; -} - -div.toc { - padding: 14px 25px; - background-color: var(--toc-background-color); - border: 1px solid var(--toc-border-color); - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 8px 10px 10px; - width: 200px; -} - -div.toc li { - background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; - font: 10px/1.2 var(--font-family-toc); - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -div.toc h3 { - font: bold 12px/1.2 var(--font-family-toc); - color: var(--toc-header-color); - border-bottom: 0 none; - margin: 0; -} - -div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; -} - -div.toc li.level2 { - margin-left: 15px; -} - -div.toc li.level3 { - margin-left: 15px; -} - -div.toc li.level4 { - margin-left: 15px; -} - -span.emoji { - /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html - * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; - */ -} - -span.obfuscator { - display: none; -} - -.inherit_header { - font-weight: bold; - color: var(--inherit-header-color); - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.inherit_header td { - padding: 6px 0px 2px 5px; -} - -.inherit { - display: none; -} - -tr.heading h2 { - margin-top: 12px; - margin-bottom: 4px; -} - -/* tooltip related style info */ - -.ttc { - position: absolute; - display: none; -} - -#powerTip { - cursor: default; - /*white-space: nowrap;*/ - color: var(--tooltip-foreground-color); - background-color: var(--tooltip-background-color); - border: 1px solid var(--tooltip-border-color); - border-radius: 4px 4px 4px 4px; - box-shadow: var(--tooltip-shadow); - display: none; - font-size: smaller; - max-width: 80%; - opacity: 0.9; - padding: 1ex 1em 1em; - position: absolute; - z-index: 2147483647; -} - -#powerTip div.ttdoc { - color: var(--tooltip-doc-color); - font-style: italic; -} - -#powerTip div.ttname a { - font-weight: bold; -} - -#powerTip a { - color: var(--tooltip-link-color); -} - -#powerTip div.ttname { - font-weight: bold; -} - -#powerTip div.ttdeci { - color: var(--tooltip-declaration-color); -} - -#powerTip div { - margin: 0px; - padding: 0px; - font-size: 12px; - font-family: var(--font-family-tooltip); - line-height: 16px; -} - -#powerTip:before, #powerTip:after { - content: ""; - position: absolute; - margin: 0px; -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.s:after, #powerTip.s:before, -#powerTip.w:after, #powerTip.w:before, -#powerTip.e:after, #powerTip.e:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.nw:after, #powerTip.nw:before, -#powerTip.sw:after, #powerTip.sw:before { - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; -} - -#powerTip.n:after, #powerTip.s:after, -#powerTip.w:after, #powerTip.e:after, -#powerTip.nw:after, #powerTip.ne:after, -#powerTip.sw:after, #powerTip.se:after { - border-color: rgba(255, 255, 255, 0); -} - -#powerTip.n:before, #powerTip.s:before, -#powerTip.w:before, #powerTip.e:before, -#powerTip.nw:before, #powerTip.ne:before, -#powerTip.sw:before, #powerTip.se:before { - border-color: rgba(128, 128, 128, 0); -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.nw:after, #powerTip.nw:before { - top: 100%; -} - -#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: var(--tooltip-background-color); - border-width: 10px; - margin: 0px -10px; -} -#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { - border-top-color: var(--tooltip-border-color); - border-width: 11px; - margin: 0px -11px; -} -#powerTip.n:after, #powerTip.n:before { - left: 50%; -} - -#powerTip.nw:after, #powerTip.nw:before { - right: 14px; -} - -#powerTip.ne:after, #powerTip.ne:before { - left: 14px; -} - -#powerTip.s:after, #powerTip.s:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.sw:after, #powerTip.sw:before { - bottom: 100%; -} - -#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: var(--tooltip-background-color); - border-width: 10px; - margin: 0px -10px; -} - -#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: var(--tooltip-border-color); - border-width: 11px; - margin: 0px -11px; -} - -#powerTip.s:after, #powerTip.s:before { - left: 50%; -} - -#powerTip.sw:after, #powerTip.sw:before { - right: 14px; -} - -#powerTip.se:after, #powerTip.se:before { - left: 14px; -} - -#powerTip.e:after, #powerTip.e:before { - left: 100%; -} -#powerTip.e:after { - border-left-color: var(--tooltip-border-color); - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.e:before { - border-left-color: var(--tooltip-border-color); - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -#powerTip.w:after, #powerTip.w:before { - right: 100%; -} -#powerTip.w:after { - border-right-color: var(--tooltip-border-color); - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.w:before { - border-right-color: var(--tooltip-border-color); - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -@media print -{ - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } -} - -/* @group Markdown */ - -table.markdownTable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.markdownTable td, table.markdownTable th { - border: 1px solid var(--table-cell-border-color); - padding: 3px 7px 2px; -} - -table.markdownTable tr { -} - -th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: var(--table-header-background-color); - color: var(--table-header-foreground-color); - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -th.markdownTableHeadLeft, td.markdownTableBodyLeft { - text-align: left -} - -th.markdownTableHeadRight, td.markdownTableBodyRight { - text-align: right -} - -th.markdownTableHeadCenter, td.markdownTableBodyCenter { - text-align: center -} - -tt, code, kbd, samp -{ - display: inline-block; -} -/* @end */ - -u { - text-decoration: underline; -} - -details>summary { - list-style-type: none; -} - -details > summary::-webkit-details-marker { - display: none; -} - -details>summary::before { - content: "\25ba"; - padding-right:4px; - font-size: 80%; -} - -details[open]>summary::before { - content: "\25bc"; - padding-right:4px; - font-size: 80%; -} - -body { - scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); -} - -::-webkit-scrollbar { - background-color: var(--scrollbar-background-color); - height: 12px; - width: 12px; -} -::-webkit-scrollbar-thumb { - border-radius: 6px; - box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); - border: solid 2px transparent; -} -::-webkit-scrollbar-corner { - background-color: var(--scrollbar-background-color); -} - diff --git a/docs/html/doxygen.svg b/docs/html/doxygen.svg deleted file mode 100644 index 79a7635..0000000 --- a/docs/html/doxygen.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/html/dynsections.js b/docs/html/dynsections.js deleted file mode 100644 index b73c828..0000000 --- a/docs/html/dynsections.js +++ /dev/null @@ -1,192 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} - -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); - $('table.directory tr'). - removeClass('odd').filter(':visible:odd').addClass('odd'); -} - -function toggleLevel(level) -{ - $('table.directory tr').each(function() { - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l'); - // add vertical lines to other rows - $('span[class=lineno]').not(':eq(0)').append(''); - // add toggle controls to lines with fold divs - $('div[class=foldopen]').each(function() { - // extract specific id to use - var id = $(this).attr('id').replace('foldopen',''); - // extract start and end foldable fragment attributes - var start = $(this).attr('data-start'); - var end = $(this).attr('data-end'); - // replace normal fold span with controls for the first line of a foldable fragment - $(this).find('span[class=fold]:first').replaceWith(''); - // append div for folded (closed) representation - $(this).after(''); - // extract the first line from the "open" section to represent closed content - var line = $(this).children().first().clone(); - // remove any glow that might still be active on the original line - $(line).removeClass('glow'); - if (start) { - // if line already ends with a start marker (e.g. trailing {), remove it - $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); - } - // replace minus with plus symbol - $(line).find('span[class=fold]').css('background-image',plusImg[relPath]); - // append ellipsis - $(line).append(' '+start+''+end); - // insert constructed line into closed div - $('#foldclosed'+id).html(line); - }); -} - -/* @license-end */ diff --git a/docs/html/files.html b/docs/html/files.html deleted file mode 100644 index 971b362..0000000 --- a/docs/html/files.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - -My Project: File List - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
File List
-
-
-
Here is a list of all documented files with brief descriptions:
-
[detail level 1234]
- - - - - - - - - - -
  src
  app
  core_logic
 client.hFichier d'en-tête pour les fonctions de gestion des clients
 responsable.cDéfinition des fonctions de responsable.c
 responsable.hDéclaration des fonctions de responsable.c
  interface
 interface_client.hFichier d'en-tête pour les fonctions de l'interface client
 interface_resp.hEn-tête des fonctions liées à l'interface du responsable
 main.cProgramme principal pour choisir une interface et lancer l'application
-
-
- - - - diff --git a/docs/html/folderclosed.svg b/docs/html/folderclosed.svg deleted file mode 100644 index b04bed2..0000000 --- a/docs/html/folderclosed.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - diff --git a/docs/html/folderclosedd.svg b/docs/html/folderclosedd.svg deleted file mode 100644 index 52f0166..0000000 --- a/docs/html/folderclosedd.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - diff --git a/docs/html/folderopen.svg b/docs/html/folderopen.svg deleted file mode 100644 index f6896dd..0000000 --- a/docs/html/folderopen.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - diff --git a/docs/html/folderopend.svg b/docs/html/folderopend.svg deleted file mode 100644 index 2d1f06e..0000000 --- a/docs/html/folderopend.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - diff --git a/docs/html/globals.html b/docs/html/globals.html deleted file mode 100644 index 6fb925b..0000000 --- a/docs/html/globals.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - -My Project: File Members - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Here is a list of all documented file members with links to the documentation:
- -

- a -

- - -

- c -

- - -

- d -

- - -

- g -

- - -

- m -

- - -

- p -

- - -

- q -

- - -

- r -

- - -

- s -

- - -

- t -

-
- - - - diff --git a/docs/html/globals_func.html b/docs/html/globals_func.html deleted file mode 100644 index 75a58f9..0000000 --- a/docs/html/globals_func.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - -My Project: File Members - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
Here is a list of all documented functions with links to the documentation:
- -

- a -

- - -

- c -

- - -

- d -

- - -

- g -

- - -

- m -

- - -

- p -

- - -

- q -

- - -

- r -

- - -

- s -

- - -

- t -

-
- - - - diff --git a/docs/html/index.html b/docs/html/index.html deleted file mode 100644 index a6ec34d..0000000 --- a/docs/html/index.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - -My Project: Main Page - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - -
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
My Project Documentation
-
-
-
- - - - diff --git a/docs/html/interface__client_8h.html b/docs/html/interface__client_8h.html deleted file mode 100644 index 4402c20..0000000 --- a/docs/html/interface__client_8h.html +++ /dev/null @@ -1,932 +0,0 @@ - - - - - - - -My Project: src/app/interface/interface_client.h File Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
- -
interface_client.h File Reference
-
-
- -

Fichier d'en-tête pour les fonctions de l'interface client. -More...

-
#include <stdio.h>
-#include <string.h>
-#include "../core_logic/client.h"
-#include "../core_logic/responsable.h"
-#include "../interface/interface_resp.h"
-
-

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

-void affiche_client (void)
 Afficher les informations du client.
 
void menu_client (int *choix)
 Afficher le menu du client et enregistrer le choix de l'utilisateur.
 
void ajouter_article_au_panier (int numeroClient, int references[], float poids[], float volume[], float prixUnitaire[], int numeros[], float cagnottes[], int suspendues[], int nombreArticles, int nombreClients, float volumeCoffre, float chargeMaximale, int panier[], int quantites[], int *taillePanier, float budget)
 Ajouter des articles au panier du client.
 
void supprimer_article_du_panier (int panier[], int quantites[], int *taillePanier, float cagnottes[], int numeroClient, int numeros[], int nombreClients, int references[], float prixUnitaire[])
 Supprimer un article du panier du client.
 
void affiche_recap_panier (int panier[], int taillePanier, int references[], float poids[], float volume[], float prixUnitaire[], int quantites[], float cagnottes[], int numeroClient, int numeros[], int nombreClients, float volumeCoffre, float chargeMaximale, float budget)
 Afficher un récapitulatif du panier du client.
 
void configurer_session_client (int numeros[], int suspendus[], int nombreClients, double *budget, float *volumeCoffre, float *chargeMaximale, int *numeroClient)
 Configurer la session client.
 
void modifier_quantite_article_panier (int panier[], int quantites[], int *taillePanier, float cagnottes[], int numeroClient, float prixUnitaire[], int references[], int nombreClients, int numeros[])
 Modifier la quantité d'un article dans le panier du client.
 
void reinitialiser_panier (int panier[], int quantites[], int *taillePanier, float cagnottes[], int numeroClient, int numeros[], int nombreClients, int references[], float prixUnitaire[])
 Réinitialiser le panier du client.
 
void deduire_cagnotte (int numeroClient, float montant, int numeros[], float cagnottes[], int nombreClients, int suspendus[])
 Déduire un montant de la cagnotte du client.
 
void quitter_application (int panier[], int taillePanier, int references[], float poids[], float volume[], float prixUnitaire[], int quantites[], float cagnottes[], int numeroClient, int numeros[], int nombreClients, float budget, int suspendus[])
 Quitter l'application client.
 
-void global_client (void)
 Exécute l'ensemble des fonctions de l'interface client.
 
-

Detailed Description

-

Fichier d'en-tête pour les fonctions de l'interface client.

-

Ce fichier d'en-tête définit les fonctions liées à l'interaction et à la gestion des clients. Ces fonctions incluent des opérations telles que l'ajout d'articles au panier d'un client, la gestion du budget, etc.

-
Author
Hersan Mathéo
-

Function Documentation

- -

◆ affiche_recap_panier()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void affiche_recap_panier (int panier[],
int taillePanier,
int references[],
float poids[],
float volume[],
float prixUnitaire[],
int quantites[],
float cagnottes[],
int numeroClient,
int numeros[],
int nombreClients,
float volumeCoffre,
float chargeMaximale,
float budget 
)
-
- -

Afficher un récapitulatif du panier du client.

-
Parameters
- - - - - - - - - - - - - - - -
panier- Le panier d'achat du client.
taillePanier- La taille du panier.
references- Un tableau de références d'articles.
poids- Un tableau de poids d'articles.
volume- Un tableau de volumes d'articles.
prixUnitaire- Un tableau de prix unitaires d'articles.
quantites- Un tableau de quantités d'articles dans le panier.
cagnottes- Un tableau de cagnottes.
numeroClient- Le numéro du client.
numeros- Un tableau de numéros d'articles.
nombreClients- Le nombre total de clients.
volumeCoffre- La limite de volume pour le panier du client.
chargeMaximale- La limite de poids pour le panier du client.
budget- Le budget du client.
-
-
- -
-
- -

◆ ajouter_article_au_panier()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void ajouter_article_au_panier (int numeroClient,
int references[],
float poids[],
float volume[],
float prixUnitaire[],
int numeros[],
float cagnottes[],
int suspendues[],
int nombreArticles,
int nombreClients,
float volumeCoffre,
float chargeMaximale,
int panier[],
int quantites[],
int * taillePanier,
float budget 
)
-
- -

Ajouter des articles au panier du client.

-
Parameters
- - - - - - - - - - - - - - - - - -
numeroClient- Le numéro du client.
references- Un tableau de références d'articles.
poids- Un tableau de poids d'articles.
volume- Un tableau de volumes d'articles.
prixUnitaire- Un tableau de prix unitaires d'articles.
numeros- Un tableau de numéros d'articles.
cagnottes- Un tableau de cagnottes.
suspendues- Un tableau d'articles suspendus.
nombreArticles- Le nombre total d'articles disponibles.
nombreClients- Le nombre total de clients.
volumeCoffre- La limite de volume pour le panier du client.
chargeMaximale- La limite de poids pour le panier du client.
panier- Le panier d'achat du client.
quantites- Un tableau de quantités d'articles dans le panier.
[out]taillePanier- Un pointeur pour stocker la taille du panier.
budget- Le budget du client.
-
-
- -
-
- -

◆ configurer_session_client()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void configurer_session_client (int numeros[],
int suspendus[],
int nombreClients,
double * budget,
float * volumeCoffre,
float * chargeMaximale,
int * numeroClient 
)
-
- -

Configurer la session client.

-
Parameters
- - - - - - - - -
numeros- Un tableau de numéros de clients.
suspendus- Un tableau d'état des clients suspendus.
nombreClients- Le nombre total de clients.
[out]budget- Un pointeur pour stocker le budget du client.
[out]volumeCoffre- Un pointeur pour stocker la limite de volume du panier du client.
[out]chargeMaximale- Un pointeur pour stocker la limite de poids du panier du client.
[out]numeroClient- Un pointeur pour stocker le numéro du client.
-
-
- -
-
- -

◆ deduire_cagnotte()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void deduire_cagnotte (int numeroClient,
float montant,
int numeros[],
float cagnottes[],
int nombreClients,
int suspendus[] 
)
-
- -

Déduire un montant de la cagnotte du client.

-
Parameters
- - - - - - - -
numeroClient- Le numéro du client.
montant- Le montant à déduire de la cagnotte.
numeros- Un tableau de numéros de clients.
cagnottes- Un tableau de cagnottes.
nombreClients- Le nombre total de clients.
suspendus- Un tableau d'état des clients suspendus.
-
-
- -
-
- -

◆ menu_client()

- -
-
- - - - - - - - -
void menu_client (int * choix)
-
- -

Afficher le menu du client et enregistrer le choix de l'utilisateur.

-
Parameters
- - -
[out]choix- Un pointeur pour stocker le choix de l'utilisateur.
-
-
- -
-
- -

◆ modifier_quantite_article_panier()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void modifier_quantite_article_panier (int panier[],
int quantites[],
int * taillePanier,
float cagnottes[],
int numeroClient,
float prixUnitaire[],
int references[],
int nombreClients,
int numeros[] 
)
-
- -

Modifier la quantité d'un article dans le panier du client.

-
Parameters
- - - - - - - - - - -
panier- Le panier d'achat du client.
quantites- Un tableau de quantités d'articles dans le panier.
[out]taillePanier- Un pointeur pour stocker la taille du panier.
cagnottes- Un tableau de cagnottes.
numeroClient- Le numéro du client.
prixUnitaire- Un tableau de prix unitaires d'articles.
references- Un tableau de références d'articles.
nombreClients- Le nombre total de clients.
numeros- Un tableau de numéros d'articles.
-
-
- -
-
- -

◆ quitter_application()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void quitter_application (int panier[],
int taillePanier,
int references[],
float poids[],
float volume[],
float prixUnitaire[],
int quantites[],
float cagnottes[],
int numeroClient,
int numeros[],
int nombreClients,
float budget,
int suspendus[] 
)
-
- -

Quitter l'application client.

-
Parameters
- - - - - - - - - - - - - - -
panier- Le panier d'achat du client.
taillePanier- La taille du panier.
references- Un tableau de références d'articles.
poids- Un tableau de poids d'articles.
volume- Un tableau de volumes d'articles.
prixUnitaire- Un tableau de prix unitaires d'articles.
quantites- Un tableau de quantités d'articles dans le panier.
cagnottes- Un tableau de cagnottes.
numeroClient- Le numéro du client.
numeros- Un tableau de numéros d'articles.
nombreClients- Le nombre total de clients.
budget- Le budget du client.
suspendus- Un tableau d'état des clients suspendus.
-
-
- -
-
- -

◆ reinitialiser_panier()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void reinitialiser_panier (int panier[],
int quantites[],
int * taillePanier,
float cagnottes[],
int numeroClient,
int numeros[],
int nombreClients,
int references[],
float prixUnitaire[] 
)
-
- -

Réinitialiser le panier du client.

-
Parameters
- - - - - - - - - - -
panier- Le panier d'achat du client.
quantites- Un tableau de quantités d'articles dans le panier.
[out]taillePanier- Un pointeur pour stocker la taille du panier.
cagnottes- Un tableau de cagnottes.
numeroClient- Le numéro du client.
numeros- Un tableau de numéros d'articles.
nombreClients- Le nombre total de clients.
references- Un tableau de références d'articles.
prixUnitaire- Un tableau de prix unitaires d'articles.
-
-
- -
-
- -

◆ supprimer_article_du_panier()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void supprimer_article_du_panier (int panier[],
int quantites[],
int * taillePanier,
float cagnottes[],
int numeroClient,
int numeros[],
int nombreClients,
int references[],
float prixUnitaire[] 
)
-
- -

Supprimer un article du panier du client.

-
Parameters
- - - - - - - - - - -
panier- Le panier d'achat du client.
quantites- Un tableau de quantités d'articles dans le panier.
[out]taillePanier- Un pointeur pour stocker la taille du panier.
cagnottes- Un tableau de cagnottes.
numeroClient- Le numéro du client.
numeros- Un tableau de numéros d'articles.
nombreClients- Le nombre total de clients.
references- Un tableau de références d'articles.
prixUnitaire- Un tableau de prix unitaires d'articles.
-
-
- -
-
-
- - - - diff --git a/docs/html/interface__client_8h_source.html b/docs/html/interface__client_8h_source.html deleted file mode 100644 index 32244cb..0000000 --- a/docs/html/interface__client_8h_source.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - -My Project: src/app/interface/interface_client.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
interface_client.h
-
-
-Go to the documentation of this file.
1
-
11#ifndef INTERFACE_CLIENT_H
-
12#define INTERFACE_CLIENT_H
-
13
-
14#include <stdio.h>
-
15#include <string.h>
-
16#include "../core_logic/client.h"
-
17#include "../core_logic/responsable.h"
-
18#include "../interface/interface_resp.h"
-
19
-
23void affiche_client(void);
-
24
-
30void menu_client(int *choix);
-
31
-
52void ajouter_article_au_panier(int numeroClient, int references[], float poids[], float volume[], float prixUnitaire[],
-
53 int numeros[], float cagnottes[], int suspendues[], int nombreArticles, int nombreClients,
-
54 float volumeCoffre, float chargeMaximale, int panier[], int quantites[], int *taillePanier, float budget);
-
55
-
69void supprimer_article_du_panier(int panier[], int quantites[], int *taillePanier, float cagnottes[], int numeroClient, int numeros[], int nombreClients, int references[], float prixUnitaire[]);
-
70
-
89void affiche_recap_panier(int panier[], int taillePanier, int references[], float poids[], float volume[],
-
90 float prixUnitaire[], int quantites[], float cagnottes[], int numeroClient,
-
91 int numeros[], int nombreClients, float volumeCoffre, float chargeMaximale, float budget);
-
92
-
104void configurer_session_client(int numeros[], int suspendus[], int nombreClients, double *budget, float *volumeCoffre, float *chargeMaximale, int *numeroClient);
-
105
-
119void modifier_quantite_article_panier(int panier[], int quantites[], int *taillePanier, float cagnottes[], int numeroClient, float prixUnitaire[], int references[], int nombreClients, int numeros[]);
-
120
-
134void reinitialiser_panier(int panier[], int quantites[], int *taillePanier, float cagnottes[], int numeroClient, int numeros[], int nombreClients, int references[], float prixUnitaire[]);
-
135
-
146void deduire_cagnotte(int numeroClient, float montant, int numeros[], float cagnottes[], int nombreClients, int suspendus[]);
-
147
-
165void quitter_application(int panier[], int taillePanier, int references[], float poids[], float volume[],
-
166 float prixUnitaire[], int quantites[], float cagnottes[], int numeroClient,
-
167 int numeros[], int nombreClients, float budget, int suspendus[]);
-
168
-
172void global_client(void);
-
173
-
174#endif // INTERFACE_CLIENT_H
-
void affiche_client(void)
Afficher les informations du client.
Definition interface_client.c:5
-
void supprimer_article_du_panier(int panier[], int quantites[], int *taillePanier, float cagnottes[], int numeroClient, int numeros[], int nombreClients, int references[], float prixUnitaire[])
Supprimer un article du panier du client.
Definition interface_client.c:122
-
void global_client(void)
Exécute l'ensemble des fonctions de l'interface client.
Definition interface_client.c:423
-
void menu_client(int *choix)
Afficher le menu du client et enregistrer le choix de l'utilisateur.
Definition interface_client.c:414
-
void deduire_cagnotte(int numeroClient, float montant, int numeros[], float cagnottes[], int nombreClients, int suspendus[])
Déduire un montant de la cagnotte du client.
Definition interface_client.c:311
-
void quitter_application(int panier[], int taillePanier, int references[], float poids[], float volume[], float prixUnitaire[], int quantites[], float cagnottes[], int numeroClient, int numeros[], int nombreClients, float budget, int suspendus[])
Quitter l'application client.
Definition interface_client.c:335
-
void configurer_session_client(int numeros[], int suspendus[], int nombreClients, double *budget, float *volumeCoffre, float *chargeMaximale, int *numeroClient)
Configurer la session client.
Definition interface_client.c:214
-
void modifier_quantite_article_panier(int panier[], int quantites[], int *taillePanier, float cagnottes[], int numeroClient, float prixUnitaire[], int references[], int nombreClients, int numeros[])
Modifier la quantité d'un article dans le panier du client.
Definition interface_client.c:262
-
void affiche_recap_panier(int panier[], int taillePanier, int references[], float poids[], float volume[], float prixUnitaire[], int quantites[], float cagnottes[], int numeroClient, int numeros[], int nombreClients, float volumeCoffre, float chargeMaximale, float budget)
Afficher un récapitulatif du panier du client.
Definition interface_client.c:148
-
void ajouter_article_au_panier(int numeroClient, int references[], float poids[], float volume[], float prixUnitaire[], int numeros[], float cagnottes[], int suspendues[], int nombreArticles, int nombreClients, float volumeCoffre, float chargeMaximale, int panier[], int quantites[], int *taillePanier, float budget)
Ajouter des articles au panier du client.
Definition interface_client.c:24
-
void reinitialiser_panier(int panier[], int quantites[], int *taillePanier, float cagnottes[], int numeroClient, int numeros[], int nombreClients, int references[], float prixUnitaire[])
Réinitialiser le panier du client.
Definition interface_client.c:304
-
- - - - diff --git a/docs/html/interface__resp_8h.html b/docs/html/interface__resp_8h.html deleted file mode 100644 index f2f5ebd..0000000 --- a/docs/html/interface__resp_8h.html +++ /dev/null @@ -1,703 +0,0 @@ - - - - - - - -My Project: src/app/interface/interface_resp.h File Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
- -
interface_resp.h File Reference
-
-
- -

En-tête des fonctions liées à l'interface du responsable. -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

void affichArticles (int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique)
 Affiche la liste des articles.
 
void affichUnArticle (int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique)
 Affiche les informations d'un article spécifique.
 
void affichUnClient (int tNumClient[], float tCagnotte[], int tSus[], int tLogique)
 Affiche les informations d'un client spécifique.
 
void affichClients (int tNumClient[], float tCagnotte[], int tSus[], int tLogique)
 Affiche la liste des clients.
 
void affichAjoutArticle (int *ref, float *poids, float *volume, float *prix, int tRef[], int tLogArticle)
 Affiche les informations nécessaires pour ajouter un nouvel article.
 
void affichSupprimerArticle (int *ref)
 Affiche les informations nécessaires pour supprimer un article.
 
void affichModifierArticle (int *ref, float *poids, float *volume, float *prix)
 Affiche les informations nécessaires pour modifier un article.
 
void problemRechercheArticle (void)
 Affiche un message en cas de problème lors de la recherche d'un article.
 
void affichAjoutClient (int tNumClient[], int tLogique, int *numC)
 Affiche les informations nécessaires pour ajouter un nouveau client.
 
void menu_resp (int *choix)
 Laisse le responsable choisir une option du menu.
 
int affichageConnexion (void)
 Affiche les informations nécessaires pour entrer le mod de passe responsable.
 
void affichModifClient (int tNumClient[], int tSus[], int tLogique)
 Affiche le menu qui permet de modifier l'état de la cagnotte d'un client.
 
void global_resp (void)
 Fonction principale de l'interface du responsable.
 
void affiche_resp (void)
 Affiche le menu principal de l'interface du responsable.
 
-

Detailed Description

-

En-tête des fonctions liées à l'interface du responsable.

-

Function Documentation

- -

◆ affichageConnexion()

- -
-
- - - - - - - - -
int affichageConnexion (void )
-
- -

Affiche les informations nécessaires pour entrer le mod de passe responsable.

-
Author
Yannis Doumir Fernandes
-

Cette fonction permet au responsable de confirmer son identité

- -
-
- -

◆ affichAjoutArticle()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void affichAjoutArticle (int * ref,
float * poids,
float * volume,
float * prix,
int tRef[],
int tLogArticle 
)
-
- -

Affiche les informations nécessaires pour ajouter un nouvel article.

-
Author
Yannis Doumir Fernandes
-
Parameters
- - - - - - - -
ref- Référence du nouvel article.
poids- Poids du nouvel article.
volume- Volume du nouvel article.
prix- Prix du nouvel article.
tRef- Tableau de référence des articles.
tLogArticle- Taille logique du tableau des références.
-
-
- -
-
- -

◆ affichAjoutClient()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
void affichAjoutClient (int tNumClient[],
int tLogique,
int * numC 
)
-
- -

Affiche les informations nécessaires pour ajouter un nouveau client.

-
Author
Yannis Doumir Fernandes
-
Parameters
- - - - -
tNumClient- Tableau des numéros de clients.
tLogique- Nombre de clients actuellement enregistrés.
numC- Numéro du nouveau client.
-
-
- -
-
- -

◆ affichArticles()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void affichArticles (int tRef[],
float tPoids[],
float tVol[],
float tPrix[],
int tLogique 
)
-
- -

Affiche la liste des articles.

-
Author
Yannis Doumir Fernandes
-
Parameters
- - - - - - -
tRef- Tableau des références des articles.
tPoids- Tableau des poids des articles.
tVol- Tableau des volumes des articles.
tPrix- Tableau des prix des articles.
tLogique- Nombre d'articles actuellement enregistrés.
-
-
- -
-
- -

◆ affichClients()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void affichClients (int tNumClient[],
float tCagnotte[],
int tSus[],
int tLogique 
)
-
- -

Affiche la liste des clients.

-
Author
Yannis Doumir Fernandes
-
Parameters
- - - - - -
tNumClient- Tableau des numéros de clients.
tCagnotte- Tableau des cagnottes des clients.
tSus- Tableau des états de suspension des clients.
tLogique- Nombre de clients actuellement enregistrés.
-
-
- -
-
- -

◆ affiche_resp()

- -
-
- - - - - - - - -
void affiche_resp (void )
-
- -

Affiche le menu principal de l'interface du responsable.

-
Author
Yannis Doumir Fernandes
- -
-
- -

◆ affichModifClient()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
void affichModifClient (int tNumClient[],
int tSus[],
int tLogique 
)
-
- -

Affiche le menu qui permet de modifier l'état de la cagnotte d'un client.

-
Author
Yannis Doumir Fernandes
- -
-
- -

◆ affichModifierArticle()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void affichModifierArticle (int * ref,
float * poids,
float * volume,
float * prix 
)
-
- -

Affiche les informations nécessaires pour modifier un article.

-
Author
Yannis Doumir Fernandes
-
Parameters
- - - - - -
ref- Référence de l'article à modifier.
poids- Nouveau poids de l'article.
volume- Nouveau volume de l'article.
prix- Nouveau prix de l'article.
-
-
- -
-
- -

◆ affichSupprimerArticle()

- -
-
- - - - - - - - -
void affichSupprimerArticle (int * ref)
-
- -

Affiche les informations nécessaires pour supprimer un article.

-
Author
Yannis Doumir Fernandes
-
Parameters
- - -
ref- Référence de l'article à supprimer.
-
-
- -
-
- -

◆ affichUnArticle()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void affichUnArticle (int tRef[],
float tPoids[],
float tVol[],
float tPrix[],
int tLogique 
)
-
- -

Affiche les informations d'un article spécifique.

-
Author
Yannis Doumir Fernandes
-
Parameters
- - - - - - -
tRef- Tableau des références des articles.
tPoids- Tableau des poids des articles.
tVol- Tableau des volumes des articles.
tPrix- Tableau des prix des articles.
tLogique- Nombre d'articles actuellement enregistrés.
-
-
- -
-
- -

◆ affichUnClient()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void affichUnClient (int tNumClient[],
float tCagnotte[],
int tSus[],
int tLogique 
)
-
- -

Affiche les informations d'un client spécifique.

-
Author
Yannis Doumir Fernandes
-
Parameters
- - - - - -
tNumClient- Tableau des numéros de clients.
tCagnotte- Tableau des cagnottes des clients.
tSus- Tableau des états de suspension des clients.
tLogique- Nombre de clients actuellement enregistrés.
-
-
- -
-
- -

◆ global_resp()

- -
-
- - - - - - - - -
void global_resp (void )
-
- -

Fonction principale de l'interface du responsable.

-
Author
Yannis Doumir Fernandes
-

Cette fonction permet au responsable d'effectuer diverses actions telles que la gestion des articles et des clients.

- -
-
- -

◆ menu_resp()

- -
-
- - - - - - - - -
void menu_resp (int * choix)
-
- -

Laisse le responsable choisir une option du menu.

-
Author
Yannis Doumir Fernandes
-
Parameters
- - -
[in,out]choix- L'option choisie par le responsable.
-
-
- -
-
- -

◆ problemRechercheArticle()

- -
-
- - - - - - - - -
void problemRechercheArticle (void )
-
- -

Affiche un message en cas de problème lors de la recherche d'un article.

-
Author
Yannis Doumir Fernandes
- -
-
-
- - - - diff --git a/docs/html/interface__resp_8h_source.html b/docs/html/interface__resp_8h_source.html deleted file mode 100644 index 04aaef1..0000000 --- a/docs/html/interface__resp_8h_source.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - -My Project: src/app/interface/interface_resp.h Source File - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
interface_resp.h
-
-
-Go to the documentation of this file.
1
-
16void affichArticles(int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique);
-
17
-
28void affichUnArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique);
-
29
-
39void affichUnClient(int tNumClient[], float tCagnotte[], int tSus[], int tLogique);
-
40
-
50void affichClients(int tNumClient[], float tCagnotte[], int tSus[], int tLogique);
-
51
-
63void affichAjoutArticle(int *ref, float *poids, float *volume, float *prix, int tRef[], int tLogArticle);
-
64
-
71void affichSupprimerArticle(int *ref);
-
72
-
82void affichModifierArticle(int *ref, float *poids, float *volume, float *prix);
-
83
- -
90
-
99void affichAjoutClient(int tNumClient[], int tLogique, int *numC);
-
100
-
107void menu_resp(int *choix);
-
108
-
109
-
116int affichageConnexion(void);
-
117
-
123void affichModifClient(int tNumClient[], int tSus[], int tLogique);
-
124
-
131void global_resp(void);
-
132
-
137void affiche_resp(void);
-
void menu_resp(int *choix)
Laisse le responsable choisir une option du menu.
Definition interface_resp.c:384
-
int affichageConnexion(void)
Affiche les informations nécessaires pour entrer le mod de passe responsable.
Definition interface_resp.c:180
-
void problemRechercheArticle(void)
Affiche un message en cas de problème lors de la recherche d'un article.
-
void affichSupprimerArticle(int *ref)
Affiche les informations nécessaires pour supprimer un article.
Definition interface_resp.c:131
-
void affichUnArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique)
Affiche les informations d'un article spécifique.
Definition interface_resp.c:47
-
void affichClients(int tNumClient[], float tCagnotte[], int tSus[], int tLogique)
Affiche la liste des clients.
Definition interface_resp.c:83
-
void affichAjoutArticle(int *ref, float *poids, float *volume, float *prix, int tRef[], int tLogArticle)
Affiche les informations nécessaires pour ajouter un nouvel article.
Definition interface_resp.c:92
-
void affichAjoutClient(int tNumClient[], int tLogique, int *numC)
Affiche les informations nécessaires pour ajouter un nouveau client.
Definition interface_resp.c:166
-
void affichUnClient(int tNumClient[], float tCagnotte[], int tSus[], int tLogique)
Affiche les informations d'un client spécifique.
Definition interface_resp.c:66
-
void affiche_resp(void)
Affiche le menu principal de l'interface du responsable.
Definition interface_resp.c:15
-
void affichModifClient(int tNumClient[], int tSus[], int tLogique)
Affiche le menu qui permet de modifier l'état de la cagnotte d'un client.
Definition interface_resp.c:206
-
void affichModifierArticle(int *ref, float *poids, float *volume, float *prix)
Affiche les informations nécessaires pour modifier un article.
Definition interface_resp.c:140
-
void affichArticles(int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique)
Affiche la liste des articles.
Definition interface_resp.c:38
-
void global_resp(void)
Fonction principale de l'interface du responsable.
Definition interface_resp.c:394
-
- - - - diff --git a/docs/html/jquery.js b/docs/html/jquery.js deleted file mode 100644 index 1dffb65..0000000 --- a/docs/html/jquery.js +++ /dev/null @@ -1,34 +0,0 @@ -/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 - * http://www.smartmenus.org/ - * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/docs/html/main_8c.html b/docs/html/main_8c.html deleted file mode 100644 index c1454b9..0000000 --- a/docs/html/main_8c.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - -My Project: src/main.c File Reference - - - - - - - - - -
-
- - - - - - -
-
My Project -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
- -
main.c File Reference
-
-
- -

Programme principal pour choisir une interface et lancer l'application. -More...

- - - - - - - - -

-Functions

int choixInterface (void)
 Fonction permettant à l'utilisateur de choisir une interface.
 
int main (void)
 Fonction principale du programme.
 
-

Detailed Description

-

Programme principal pour choisir une interface et lancer l'application.

-

Function Documentation

- -

◆ choixInterface()

- -
-
- - - - - - - - -
int choixInterface (void )
-
- -

Fonction permettant à l'utilisateur de choisir une interface.

-

L'utilisateur peut choisir entre l'interface "responsable" ou "client" en saisissant 1 ou 2. Cette fonction vérifie que l'entrée de l'utilisateur est valide.

-
Returns
Le choix de l'interface (1 pour responsable, 2 pour client).
- -
-
- -

◆ main()

- -
-
- - - - - - - - -
int main (void )
-
- -

Fonction principale du programme.

-

Cette fonction permet à l'utilisateur de choisir une interface à lancer (responsable ou client) en utilisant la fonction choixInterface(), puis elle lance l'interface correspondante.

-
Returns
0 si le programme s'est exécuté avec succès.
- -
-
-
- - - - diff --git a/docs/html/menu.js b/docs/html/menu.js deleted file mode 100644 index b0b2693..0000000 --- a/docs/html/menu.js +++ /dev/null @@ -1,136 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { - function makeTree(data,relPath) { - var result=''; - if ('children' in data) { - result+='
    '; - for (var i in data.children) { - var url; - var link; - link = data.children[i].url; - if (link.substring(0,1)=='^') { - url = link.substring(1); - } else { - url = relPath+link; - } - result+='
  • '+ - data.children[i].text+''+ - makeTree(data.children[i],relPath)+'
  • '; - } - result+='
'; - } - return result; - } - var searchBoxHtml; - if (searchEnabled) { - if (serverSide) { - searchBoxHtml='
'+ - '
'+ - '
 '+ - ''+ - '
'+ - '
'+ - '
'+ - '
'; - } else { - searchBoxHtml='
'+ - ''+ - ' '+ - ''+ - ''+ - ''+ - ''+ - ''+ - '
'; - } - } - - $('#main-nav').before('
'+ - ''+ - ''+ - '
'); - $('#main-nav').append(makeTree(menudata,relPath)); - $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); - if (searchBoxHtml) { - $('#main-menu').append('
  • '); - } - var $mainMenuState = $('#main-menu-state'); - var prevWidth = 0; - if ($mainMenuState.length) { - function initResizableIfExists() { - if (typeof initResizable==='function') initResizable(); - } - // animate mobile menu - $mainMenuState.change(function(e) { - var $menu = $('#main-menu'); - var options = { duration: 250, step: initResizableIfExists }; - if (this.checked) { - options['complete'] = function() { $menu.css('display', 'block') }; - $menu.hide().slideDown(options); - } else { - options['complete'] = function() { $menu.css('display', 'none') }; - $menu.show().slideUp(options); - } - }); - // set default menu visibility - function resetState() { - var $menu = $('#main-menu'); - var $mainMenuState = $('#main-menu-state'); - var newWidth = $(window).outerWidth(); - if (newWidth!=prevWidth) { - if ($(window).outerWidth()<768) { - $mainMenuState.prop('checked',false); $menu.hide(); - $('#searchBoxPos1').html(searchBoxHtml); - $('#searchBoxPos2').hide(); - } else { - $menu.show(); - $('#searchBoxPos1').empty(); - $('#searchBoxPos2').html(searchBoxHtml); - $('#searchBoxPos2').show(); - } - if (typeof searchBox!=='undefined') { - searchBox.CloseResultsWindow(); - } - prevWidth = newWidth; - } - } - $(window).ready(function() { resetState(); initResizableIfExists(); }); - $(window).resize(resetState); - } - $('#main-menu').smartmenus(); -} -/* @license-end */ diff --git a/docs/html/menudata.js b/docs/html/menudata.js deleted file mode 100644 index 01f2e33..0000000 --- a/docs/html/menudata.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file -*/ -var menudata={children:[ -{text:"Main Page",url:"index.html"}, -{text:"Files",url:"files.html",children:[ -{text:"File List",url:"files.html"}, -{text:"File Members",url:"globals.html",children:[ -{text:"All",url:"globals.html",children:[ -{text:"a",url:"globals.html#index_a"}, -{text:"c",url:"globals.html#index_c"}, -{text:"d",url:"globals.html#index_d"}, -{text:"g",url:"globals.html#index_g"}, -{text:"m",url:"globals.html#index_m"}, -{text:"p",url:"globals.html#index_p"}, -{text:"q",url:"globals.html#index_q"}, -{text:"r",url:"globals.html#index_r"}, -{text:"s",url:"globals.html#index_s"}, -{text:"t",url:"globals.html#index_t"}]}, -{text:"Functions",url:"globals_func.html",children:[ -{text:"a",url:"globals_func.html#index_a"}, -{text:"c",url:"globals_func.html#index_c"}, -{text:"d",url:"globals_func.html#index_d"}, -{text:"g",url:"globals_func.html#index_g"}, -{text:"m",url:"globals_func.html#index_m"}, -{text:"p",url:"globals_func.html#index_p"}, -{text:"q",url:"globals_func.html#index_q"}, -{text:"r",url:"globals_func.html#index_r"}, -{text:"s",url:"globals_func.html#index_s"}, -{text:"t",url:"globals_func.html#index_t"}]}]}]}]} diff --git a/docs/html/minus.svg b/docs/html/minus.svg deleted file mode 100644 index f70d0c1..0000000 --- a/docs/html/minus.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/docs/html/minusd.svg b/docs/html/minusd.svg deleted file mode 100644 index 5f8e879..0000000 --- a/docs/html/minusd.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/docs/html/nav_f.png b/docs/html/nav_f.png deleted file mode 100644 index 72a58a529ed3a9ed6aa0c51a79cf207e026deee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U diff --git a/docs/html/nav_fd.png b/docs/html/nav_fd.png deleted file mode 100644 index 032fbdd4c54f54fa9a2e6423b94ef4b2ebdfaceb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQU#tajv*C{Z|C~*H7f|XvG1G8 zt7aS*L7xwMeS}!z6R#{C5tIw-s~AJ==F^i}x3XyJseHR@yF& zerFf(Zf;Dd{+(0lDIROL@Sj-Ju2JQ8&-n%4%q?>|^bShc&lR?}7HeMo@BDl5N(aHY Uj$gdr1MOz;boFyt=akR{0D!zeaR2}S diff --git a/docs/html/nav_g.png b/docs/html/nav_g.png deleted file mode 100644 index 2093a237a94f6c83e19ec6e5fd42f7ddabdafa81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL6W-eg#Jd_@e6*DPn)w;=|1H}Zvm9l6xXXB%>yL=NQU;mg M>FVdQ&MBb@0Bdt1Qvd(} diff --git a/docs/html/open.png b/docs/html/open.png deleted file mode 100644 index 30f75c7efe2dd0c9e956e35b69777a02751f048b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM - - - - - - - - diff --git a/docs/html/plusd.svg b/docs/html/plusd.svg deleted file mode 100644 index 0c65bfe..0000000 --- a/docs/html/plusd.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/docs/html/responsable_8c.html b/docs/html/responsable_8c.html deleted file mode 100644 index 3473902..0000000 --- a/docs/html/responsable_8c.html +++ /dev/null @@ -1,660 +0,0 @@ - - - - - - - -My Project: src/app/core_logic/responsable.c File Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    My Project -
    -
    -
    - - - - - - - - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - - -
    -
    - -
    responsable.c File Reference
    -
    -
    - -

    Définition des fonctions de responsable.c. -More...

    -
    #include <stdio.h>
    -#include <stdlib.h>
    -#include <string.h>
    -#include "responsable.h"
    -#include "../interface/interface_resp.h"
    -
    - - - -

    -Macros

    -#define MAX_SIZE_MDP   21
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Functions

    int chargementArticles (int tRef[], float tPoids[], float tVol[], float tPrix[], int tPhysique)
     Charge les informations des articles à partir d'un fichier dans des tableaux.
     
    void sauvegardArticles (int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique)
     Sauvegarde les informations des articles dans un fichier.
     
    int ajouterArticle (int tRef[], float tPoids[], float tVol[], float tPrix[], int *tLogique, int tPhysique, int ref, float poids, float volume, float prix)
     Ajoute un nouvel article aux tableaux d'articles.
     
    void rechercheRefArticle (int tRef[], int ref, int *index, int tLogique)
     Recherche une référence d'article dans le tableau tRef.
     
    void supprimerArticle (int tRef[], float tPoids[], float tVol[], float tPrix[], int *tLogique)
     Supprime un article des tableaux d'articles.
     
    void modifierArticle (int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique)
     Modifie les informations d'un article existant.
     
    void ajouterClient (int tNumClient[], float tCagnotte[], int tSus[], int *tLogique, int tPhysique)
     Ajoute un nouveau client aux tableaux de clients.
     
    void dechiffrerCesar (char *texte, int decalage)
     Lis le mot de passe codé dans le fichier mdp.txt, le compare au mot de passe entré à laide de decodageMDP.
     
    int decodageMDP (char *mdpEnter)
     Décode le mot de passe du fichier mdp.txt pour le comparer avec le mdp entré.
     
    -void chiffrementCesar (char *mdp, int decalage)
     
    -int verifModifMDP (char *mdp, char *confirmMDP, int decalage)
     
    -int enregistrerMotDePasse (char *mdp, int decalage)
     
    -

    Detailed Description

    -

    Définition des fonctions de responsable.c.

    -

    Function Documentation

    - -

    ◆ ajouterArticle()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    int ajouterArticle (int tRef[],
    float tPoids[],
    float tVol[],
    float tPrix[],
    int * tLogique,
    int tPhysique,
    int ref,
    float poids,
    float volume,
    float prix 
    )
    -
    - -

    Ajoute un nouvel article aux tableaux d'articles.

    -
    Author
    Yannis Doumir Fernandes
    -

    Cette fonction ajoute un nouvel article aux tableaux tRef, tPoids, tVol, et tPrix et incrémente la taille logique.

    -
    Parameters
    - - - - - - - - - - - -
    tRefTableau des références d'articles.
    tPoidsTableau des poids des articles.
    tVolTableau des volumes des articles.
    tPrixTableau des prix unitaires des articles.
    tLogiqueTaille logique des tableaux.
    tPhysiqueTaille physique des tableaux.
    refRéférence du nouvel article.
    poidsPoids du nouvel article.
    volumeVolume du nouvel article.
    prixPrix unitaire du nouvel article.
    -
    -
    -
    Returns
    0 en cas de succès, -2 si le tableau est plein.
    - -
    -
    - -

    ◆ ajouterClient()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    void ajouterClient (int tNumClient[],
    float tCagnotte[],
    int tSus[],
    int * tLogique,
    int tPhysique 
    )
    -
    - -

    Ajoute un nouveau client aux tableaux de clients.

    -
    Author
    Yannis Doumir Fernandes
    -

    Cette fonction ajoute un nouveau client aux tableaux tNumClient, tCagnotte et tSus et incrémente la taille logique.

    -
    Parameters
    - - - - - - -
    tNumClientTableau des numéros de client.
    tCagnotteTableau des cagnottes des clients.
    tSusTableau des états de suspension des clients.
    tLogiquePointeur vers la taille logique des tableaux.
    tPhysiqueTaille physique des tableaux.
    -
    -
    - -
    -
    - -

    ◆ chargementArticles()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    int chargementArticles (int tRef[],
    float tPoids[],
    float tVol[],
    float tPrix[],
    int tPhysique 
    )
    -
    - -

    Charge les informations des articles à partir d'un fichier dans des tableaux.

    -
    Author
    Yannis Doumir Fernandes
    -

    Cette fonction lit les informations des articles à partir du fichier "donnee/articles.txt" et les stocke dans les tableaux tRef, tPoids, tVol, et tPrix.

    -
    Parameters
    - - - - - - -
    tRefTableau des références d'articles.
    tPoidsTableau des poids des articles.
    tVolTableau des volumes des articles.
    tPrixTableau des prix unitaires des articles.
    tPhysiqueTaille physique des tableaux.
    -
    -
    -
    Returns
    Le nombre d'articles chargés avec succès ou -1 en cas d'erreur.
    - -
    -
    - -

    ◆ dechiffrerCesar()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    void dechiffrerCesar (char * texte,
    int decalage 
    )
    -
    - -

    Lis le mot de passe codé dans le fichier mdp.txt, le compare au mot de passe entré à laide de decodageMDP.

    -
    Author
    Yannis Doumir Fernandes
    -
    Parameters
    - - - -
    textechaine de caractère comparé avec le mot de passe du fichier.
    decalageentier qui sert de clé pour déchiffrer le mot de passe.
    -
    -
    - -
    -
    - -

    ◆ decodageMDP()

    - -
    -
    - - - - - - - - -
    int decodageMDP (char * mdpEnter)
    -
    - -

    Décode le mot de passe du fichier mdp.txt pour le comparer avec le mdp entré.

    -
    Author
    Yannis Doumir Fernandes
    -
    Parameters
    - - -
    mdpEnterMot de passe entrer par l'utilisateur.
    -
    -
    - -
    -
    - -

    ◆ modifierArticle()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    void modifierArticle (int tRef[],
    float tPoids[],
    float tVol[],
    float tPrix[],
    int tLogique 
    )
    -
    - -

    Modifie les informations d'un article existant.

    -
    Author
    Yannis Doumir Fernandes
    -

    Cette fonction permet de modifier les informations (poids, volume, prix) d'un article existant.

    -
    Parameters
    - - - - - - -
    tRefTableau des références d'articles.
    tPoidsTableau des poids des articles.
    tVolTableau des volumes des articles.
    tPrixTableau des prix unitaires des articles.
    tLogiqueTaille logique des tableaux.
    -
    -
    - -
    -
    - -

    ◆ rechercheRefArticle()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    void rechercheRefArticle (int tRef[],
    int ref,
    int * index,
    int tLogique 
    )
    -
    - -

    Recherche une référence d'article dans le tableau tRef.

    -
    Author
    Yannis Doumir Fernandes
    -

    Cette fonction recherche une référence d'article dans le tableau tRef et renvoie l'index si l'article est trouvé.

    -
    Parameters
    - - - - - -
    tRefTableau des références d'articles.
    refRéférence de l'article à rechercher.
    indexPointeur vers la variable pour stocker l'index de l'article trouvé.
    tLogiqueTaille logique des tableaux.
    -
    -
    - -
    -
    - -

    ◆ sauvegardArticles()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    void sauvegardArticles (int tRef[],
    float tPoids[],
    float tVol[],
    float tPrix[],
    int tLogique 
    )
    -
    - -

    Sauvegarde les informations des articles dans un fichier.

    -
    Author
    Yannis Doumir Fernandes
    -

    Cette fonction sauvegarde les informations des articles depuis les tableaux tRef, tPoids, tVol et tPrix dans le fichier "donnee/articles.txt".

    -
    Parameters
    - - - - - - -
    tRefTableau des références d'articles.
    tPoidsTableau des poids des articles.
    tVolTableau des volumes des articles.
    tPrixTableau des prix unitaires des articles.
    tLogiqueTaille logique des tableaux.
    -
    -
    - -
    -
    - -

    ◆ supprimerArticle()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    void supprimerArticle (int tRef[],
    float tPoids[],
    float tVol[],
    float tPrix[],
    int * tLogique 
    )
    -
    - -

    Supprime un article des tableaux d'articles.

    -
    Author
    Yannis Doumir Fernandes
    -

    Cette fonction supprime un article des tableaux tRef, tPoids, tVol, et tPrix et met à jour la taille logique.

    -
    Parameters
    - - - - - - -
    tRefTableau des références d'articles.
    tPoidsTableau des poids des articles.
    tVolTableau des volumes des articles.
    tPrixTableau des prix unitaires des articles.
    tLogiquePointeur vers la taille logique des tableaux.
    -
    -
    - -
    -
    -
    - - - - diff --git a/docs/html/responsable_8h.html b/docs/html/responsable_8h.html deleted file mode 100644 index ade5fa2..0000000 --- a/docs/html/responsable_8h.html +++ /dev/null @@ -1,650 +0,0 @@ - - - - - - - -My Project: src/app/core_logic/responsable.h File Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    My Project -
    -
    -
    - - - - - - - - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - - -
    -
    - -
    responsable.h File Reference
    -
    -
    - -

    Déclaration des fonctions de responsable.c. -More...

    - -

    Go to the source code of this file.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Functions

    int chargementArticles (int tRef[], float tPoids[], float tVol[], float tPrix[], int tPhysique)
     Charge les informations des articles à partir d'un fichier dans des tableaux.
     
    void sauvegardArticles (int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique)
     Sauvegarde les informations des articles dans un fichier.
     
    int ajouterArticle (int tRef[], float tPoids[], float tVol[], float tPrix[], int *tLogique, int tPhysique, int ref, float poids, float volume, float prix)
     Ajoute un nouvel article aux tableaux d'articles.
     
    void rechercheRefArticle (int tRef[], int ref, int *index, int tLogique)
     Recherche une référence d'article dans le tableau tRef.
     
    void supprimerArticle (int tRef[], float tPoids[], float tVol[], float tPrix[], int *tLogique)
     Supprime un article des tableaux d'articles.
     
    void modifierArticle (int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique)
     Modifie les informations d'un article existant.
     
    void ajouterClient (int tNumClient[], float tCagnotte[], int tSus[], int *tLogique, int tPhysique)
     Ajoute un nouveau client aux tableaux de clients.
     
    int decodageMDP (char *mdpEnter)
     Décode le mot de passe du fichier mdp.txt pour le comparer avec le mdp entré.
     
    void dechiffrerCesar (char *texte, int decalage)
     Lis le mot de passe codé dans le fichier mdp.txt, le compare au mot de passe entré à laide de decodageMDP.
     
    -void chiffrementCesar (char *mdp, int decalage)
     
    -int verifModifMDP (char *mdp, char *confirmMDP, int decalage)
     
    -int enregistrerMotDePasse (char *mdp, int decalage)
     
    -

    Detailed Description

    -

    Déclaration des fonctions de responsable.c.

    -

    Function Documentation

    - -

    ◆ ajouterArticle()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    int ajouterArticle (int tRef[],
    float tPoids[],
    float tVol[],
    float tPrix[],
    int * tLogique,
    int tPhysique,
    int ref,
    float poids,
    float volume,
    float prix 
    )
    -
    - -

    Ajoute un nouvel article aux tableaux d'articles.

    -
    Author
    Yannis Doumir Fernandes
    -

    Cette fonction ajoute un nouvel article aux tableaux tRef, tPoids, tVol, et tPrix et incrémente la taille logique.

    -
    Parameters
    - - - - - - - - - - - -
    tRefTableau des références d'articles.
    tPoidsTableau des poids des articles.
    tVolTableau des volumes des articles.
    tPrixTableau des prix unitaires des articles.
    tLogiqueTaille logique des tableaux.
    tPhysiqueTaille physique des tableaux.
    refRéférence du nouvel article.
    poidsPoids du nouvel article.
    volumeVolume du nouvel article.
    prixPrix unitaire du nouvel article.
    -
    -
    -
    Returns
    0 en cas de succès, -2 si le tableau est plein.
    - -
    -
    - -

    ◆ ajouterClient()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    void ajouterClient (int tNumClient[],
    float tCagnotte[],
    int tSus[],
    int * tLogique,
    int tPhysique 
    )
    -
    - -

    Ajoute un nouveau client aux tableaux de clients.

    -
    Author
    Yannis Doumir Fernandes
    -

    Cette fonction ajoute un nouveau client aux tableaux tNumClient, tCagnotte et tSus et incrémente la taille logique.

    -
    Parameters
    - - - - - - -
    tNumClientTableau des numéros de client.
    tCagnotteTableau des cagnottes des clients.
    tSusTableau des états de suspension des clients.
    tLogiquePointeur vers la taille logique des tableaux.
    tPhysiqueTaille physique des tableaux.
    -
    -
    - -
    -
    - -

    ◆ chargementArticles()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    int chargementArticles (int tRef[],
    float tPoids[],
    float tVol[],
    float tPrix[],
    int tPhysique 
    )
    -
    - -

    Charge les informations des articles à partir d'un fichier dans des tableaux.

    -
    Author
    Yannis Doumir Fernandes
    -

    Cette fonction lit les informations des articles à partir du fichier "donnee/articles.txt" et les stocke dans les tableaux tRef, tPoids, tVol, et tPrix.

    -
    Parameters
    - - - - - - -
    tRefTableau des références d'articles.
    tPoidsTableau des poids des articles.
    tVolTableau des volumes des articles.
    tPrixTableau des prix unitaires des articles.
    tPhysiqueTaille physique des tableaux.
    -
    -
    -
    Returns
    Le nombre d'articles chargés avec succès ou -1 en cas d'erreur.
    - -
    -
    - -

    ◆ dechiffrerCesar()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    void dechiffrerCesar (char * texte,
    int decalage 
    )
    -
    - -

    Lis le mot de passe codé dans le fichier mdp.txt, le compare au mot de passe entré à laide de decodageMDP.

    -
    Author
    Yannis Doumir Fernandes
    -
    Parameters
    - - - -
    textechaine de caractère comparé avec le mot de passe du fichier.
    decalageentier qui sert de clé pour déchiffrer le mot de passe.
    -
    -
    - -
    -
    - -

    ◆ decodageMDP()

    - -
    -
    - - - - - - - - -
    int decodageMDP (char * mdpEnter)
    -
    - -

    Décode le mot de passe du fichier mdp.txt pour le comparer avec le mdp entré.

    -
    Author
    Yannis Doumir Fernandes
    -
    Parameters
    - - -
    mdpEnterMot de passe entrer par l'utilisateur.
    -
    -
    - -
    -
    - -

    ◆ modifierArticle()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    void modifierArticle (int tRef[],
    float tPoids[],
    float tVol[],
    float tPrix[],
    int tLogique 
    )
    -
    - -

    Modifie les informations d'un article existant.

    -
    Author
    Yannis Doumir Fernandes
    -

    Cette fonction permet de modifier les informations (poids, volume, prix) d'un article existant.

    -
    Parameters
    - - - - - - -
    tRefTableau des références d'articles.
    tPoidsTableau des poids des articles.
    tVolTableau des volumes des articles.
    tPrixTableau des prix unitaires des articles.
    tLogiqueTaille logique des tableaux.
    -
    -
    - -
    -
    - -

    ◆ rechercheRefArticle()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    void rechercheRefArticle (int tRef[],
    int ref,
    int * index,
    int tLogique 
    )
    -
    - -

    Recherche une référence d'article dans le tableau tRef.

    -
    Author
    Yannis Doumir Fernandes
    -

    Cette fonction recherche une référence d'article dans le tableau tRef et renvoie l'index si l'article est trouvé.

    -
    Parameters
    - - - - - -
    tRefTableau des références d'articles.
    refRéférence de l'article à rechercher.
    indexPointeur vers la variable pour stocker l'index de l'article trouvé.
    tLogiqueTaille logique des tableaux.
    -
    -
    - -
    -
    - -

    ◆ sauvegardArticles()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    void sauvegardArticles (int tRef[],
    float tPoids[],
    float tVol[],
    float tPrix[],
    int tLogique 
    )
    -
    - -

    Sauvegarde les informations des articles dans un fichier.

    -
    Author
    Yannis Doumir Fernandes
    -

    Cette fonction sauvegarde les informations des articles depuis les tableaux tRef, tPoids, tVol et tPrix dans le fichier "donnee/articles.txt".

    -
    Parameters
    - - - - - - -
    tRefTableau des références d'articles.
    tPoidsTableau des poids des articles.
    tVolTableau des volumes des articles.
    tPrixTableau des prix unitaires des articles.
    tLogiqueTaille logique des tableaux.
    -
    -
    - -
    -
    - -

    ◆ supprimerArticle()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    void supprimerArticle (int tRef[],
    float tPoids[],
    float tVol[],
    float tPrix[],
    int * tLogique 
    )
    -
    - -

    Supprime un article des tableaux d'articles.

    -
    Author
    Yannis Doumir Fernandes
    -

    Cette fonction supprime un article des tableaux tRef, tPoids, tVol, et tPrix et met à jour la taille logique.

    -
    Parameters
    - - - - - - -
    tRefTableau des références d'articles.
    tPoidsTableau des poids des articles.
    tVolTableau des volumes des articles.
    tPrixTableau des prix unitaires des articles.
    tLogiquePointeur vers la taille logique des tableaux.
    -
    -
    - -
    -
    -
    - - - - diff --git a/docs/html/responsable_8h_source.html b/docs/html/responsable_8h_source.html deleted file mode 100644 index fc7e785..0000000 --- a/docs/html/responsable_8h_source.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - -My Project: src/app/core_logic/responsable.h Source File - - - - - - - - - -
    -
    - - - - - - -
    -
    My Project -
    -
    -
    - - - - - - - - - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - - -
    -
    -
    responsable.h
    -
    -
    -Go to the documentation of this file.
    1
    -
    20int chargementArticles(int tRef[], float tPoids[], float tVol[], float tPrix[], int tPhysique);
    -
    21
    -
    35void sauvegardArticles(int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique);
    -
    36
    -
    55int ajouterArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int *tLogique, int tPhysique, int ref, float poids, float volume, float prix);
    -
    56
    -
    68void rechercheRefArticle(int tRef[], int ref, int *index, int tLogique);
    -
    69
    -
    82void supprimerArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int *tLogique);
    -
    83
    -
    96void modifierArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique);
    -
    97
    -
    110void ajouterClient(int tNumClient[], float tCagnotte[], int tSus[], int *tLogique, int tPhysique);
    -
    111
    -
    118int decodageMDP(char *mdpEnter);
    -
    119
    -
    127void dechiffrerCesar(char *texte, int decalage);
    -
    128
    -
    129void chiffrementCesar(char *mdp, int decalage);
    -
    130int verifModifMDP(char *mdp, char *confirmMDP, int decalage);
    -
    131int enregistrerMotDePasse(char *mdp, int decalage);
    -
    void supprimerArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int *tLogique)
    Supprime un article des tableaux d'articles.
    Definition responsable.c:98
    -
    void ajouterClient(int tNumClient[], float tCagnotte[], int tSus[], int *tLogique, int tPhysique)
    Ajoute un nouveau client aux tableaux de clients.
    Definition responsable.c:127
    -
    void rechercheRefArticle(int tRef[], int ref, int *index, int tLogique)
    Recherche une référence d'article dans le tableau tRef.
    Definition responsable.c:83
    -
    int chargementArticles(int tRef[], float tPoids[], float tVol[], float tPrix[], int tPhysique)
    Charge les informations des articles à partir d'un fichier dans des tableaux.
    Definition responsable.c:14
    -
    int decodageMDP(char *mdpEnter)
    Décode le mot de passe du fichier mdp.txt pour le comparer avec le mdp entré.
    Definition responsable.c:154
    -
    void modifierArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique)
    Modifie les informations d'un article existant.
    Definition responsable.c:114
    -
    int ajouterArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int *tLogique, int tPhysique, int ref, float poids, float volume, float prix)
    Ajoute un nouvel article aux tableaux d'articles.
    Definition responsable.c:58
    -
    void sauvegardArticles(int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique)
    Sauvegarde les informations des articles dans un fichier.
    Definition responsable.c:40
    -
    void dechiffrerCesar(char *texte, int decalage)
    Lis le mot de passe codé dans le fichier mdp.txt, le compare au mot de passe entré à laide de decodag...
    Definition responsable.c:141
    -
    - - - - diff --git a/docs/html/search/all_0.js b/docs/html/search/all_0.js deleted file mode 100644 index aeabf99..0000000 --- a/docs/html/search/all_0.js +++ /dev/null @@ -1,19 +0,0 @@ -var searchData= -[ - ['affichageconnexion_0',['affichageConnexion',['../interface__resp_8h.html#a31e174ac99df5a3cb347944f972ab5c9',1,'interface_resp.c']]], - ['affichajoutarticle_1',['affichAjoutArticle',['../interface__resp_8h.html#a9112538df3d862ffefc89fb8532d1176',1,'interface_resp.c']]], - ['affichajoutclient_2',['affichAjoutClient',['../interface__resp_8h.html#a964d2d2bc5b9aa544e6187ed6cbc961c',1,'interface_resp.c']]], - ['afficharticles_3',['affichArticles',['../interface__resp_8h.html#af518981f5e0d4575a6b7bae3f22e9985',1,'interface_resp.c']]], - ['affichclients_4',['affichClients',['../interface__resp_8h.html#a7c0531c63ea490d0b674960483e9ba27',1,'interface_resp.c']]], - ['affiche_5fclient_5',['affiche_client',['../interface__client_8h.html#a0ee281249d9a07abd6143449b761d212',1,'interface_client.c']]], - ['affiche_5frecap_5fpanier_6',['affiche_recap_panier',['../interface__client_8h.html#aa7f83065dbcf53ea2df22f9724c47470',1,'interface_client.c']]], - ['affiche_5fresp_7',['affiche_resp',['../interface__resp_8h.html#abb1a25ae1531e0857856843b41805528',1,'interface_resp.c']]], - ['affichmodifclient_8',['affichModifClient',['../interface__resp_8h.html#ad770c392a3645464f2f19740f2006c44',1,'interface_resp.c']]], - ['affichmodifierarticle_9',['affichModifierArticle',['../interface__resp_8h.html#af075e50ffce501b901ff31b1fb73262f',1,'interface_resp.c']]], - ['affichsupprimerarticle_10',['affichSupprimerArticle',['../interface__resp_8h.html#a47ca5882a75fd3b919ba02b028582473',1,'interface_resp.c']]], - ['affichunarticle_11',['affichUnArticle',['../interface__resp_8h.html#a5e9ce25cbd73f9d4732b84eb5ab59d13',1,'interface_resp.c']]], - ['affichunclient_12',['affichUnClient',['../interface__resp_8h.html#aa29059c1470e490b32fdf483b5570c88',1,'interface_resp.c']]], - ['ajouter_5farticle_5fau_5fpanier_13',['ajouter_article_au_panier',['../interface__client_8h.html#aa92d76f0c1463d0ad7d6479e6c27e99e',1,'interface_client.c']]], - ['ajouterarticle_14',['ajouterarticle',['../responsable_8c.html#abce68a203cf18b85ebdad34e468815f0',1,'ajouterArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int *tLogique, int tPhysique, int ref, float poids, float volume, float prix): responsable.c'],['../responsable_8h.html#abce68a203cf18b85ebdad34e468815f0',1,'ajouterArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int *tLogique, int tPhysique, int ref, float poids, float volume, float prix): responsable.c']]], - ['ajouterclient_15',['ajouterclient',['../responsable_8c.html#a185476dbf2dae604d3deb6a3085580a2',1,'ajouterClient(int tNumClient[], float tCagnotte[], int tSus[], int *tLogique, int tPhysique): responsable.c'],['../responsable_8h.html#a185476dbf2dae604d3deb6a3085580a2',1,'ajouterClient(int tNumClient[], float tCagnotte[], int tSus[], int *tLogique, int tPhysique): responsable.c']]] -]; diff --git a/docs/html/search/all_1.js b/docs/html/search/all_1.js deleted file mode 100644 index 27344db..0000000 --- a/docs/html/search/all_1.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['chargementarticles_0',['chargementarticles',['../responsable_8c.html#a937ddfa15445cc5d2336130fb6567ce1',1,'chargementArticles(int tRef[], float tPoids[], float tVol[], float tPrix[], int tPhysique): responsable.c'],['../responsable_8h.html#a937ddfa15445cc5d2336130fb6567ce1',1,'chargementArticles(int tRef[], float tPoids[], float tVol[], float tPrix[], int tPhysique): responsable.c']]], - ['charger_5fclients_1',['charger_clients',['../client_8h.html#a8bc792436cb2773b638667f7a898a625',1,'client.c']]], - ['choixinterface_2',['choixInterface',['../main_8c.html#a5fdac9110609b2cc4b43c68b643af452',1,'main.c']]], - ['client_2eh_3',['client.h',['../client_8h.html',1,'']]], - ['configurer_5fsession_5fclient_4',['configurer_session_client',['../interface__client_8h.html#a7caca9094610ed2dfcbfe0b350b678cf',1,'interface_client.c']]] -]; diff --git a/docs/html/search/all_2.js b/docs/html/search/all_2.js deleted file mode 100644 index d7bb1bb..0000000 --- a/docs/html/search/all_2.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['dechiffrercesar_0',['dechiffrercesar',['../responsable_8c.html#ad21f0252145711b8da85feef17902fbc',1,'dechiffrerCesar(char *texte, int decalage): responsable.c'],['../responsable_8h.html#ad21f0252145711b8da85feef17902fbc',1,'dechiffrerCesar(char *texte, int decalage): responsable.c']]], - ['decodagemdp_1',['decodagemdp',['../responsable_8c.html#aa02b66bb7f733cf9bcb6a7fc2b4598e0',1,'decodageMDP(char *mdpEnter): responsable.c'],['../responsable_8h.html#aa02b66bb7f733cf9bcb6a7fc2b4598e0',1,'decodageMDP(char *mdpEnter): responsable.c']]], - ['deduire_5fcagnotte_2',['deduire_cagnotte',['../interface__client_8h.html#a7203df964d63cb07d7b19912d5e3c3bd',1,'interface_client.c']]] -]; diff --git a/docs/html/search/all_3.js b/docs/html/search/all_3.js deleted file mode 100644 index fdcccfc..0000000 --- a/docs/html/search/all_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['global_5fclient_0',['global_client',['../interface__client_8h.html#a40507f288c72ef9b92d113990bc0ed40',1,'interface_client.c']]], - ['global_5fresp_1',['global_resp',['../interface__resp_8h.html#af8034d8f578bddee1a9e5b95e8000e06',1,'interface_resp.c']]] -]; diff --git a/docs/html/search/all_4.js b/docs/html/search/all_4.js deleted file mode 100644 index f6994ce..0000000 --- a/docs/html/search/all_4.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['interface_5fclient_2eh_0',['interface_client.h',['../interface__client_8h.html',1,'']]], - ['interface_5fresp_2eh_1',['interface_resp.h',['../interface__resp_8h.html',1,'']]] -]; diff --git a/docs/html/search/all_5.js b/docs/html/search/all_5.js deleted file mode 100644 index b7a4aaf..0000000 --- a/docs/html/search/all_5.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['main_0',['main',['../main_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main.c']]], - ['main_2ec_1',['main.c',['../main_8c.html',1,'']]], - ['menu_5fclient_2',['menu_client',['../interface__client_8h.html#a49de18c6560633af132a56085d28a8ba',1,'interface_client.c']]], - ['menu_5fresp_3',['menu_resp',['../interface__resp_8h.html#a1f14dc8f23be75e1a5c0e7ce0c77f597',1,'interface_resp.c']]], - ['modifier_5fquantite_5farticle_5fpanier_4',['modifier_quantite_article_panier',['../interface__client_8h.html#a87e47382ab2c90e6d5949fa78f50900e',1,'interface_client.c']]], - ['modifierarticle_5',['modifierarticle',['../responsable_8c.html#ab02f9ff38b359630bc980bae859f7512',1,'modifierArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique): responsable.c'],['../responsable_8h.html#ab02f9ff38b359630bc980bae859f7512',1,'modifierArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique): responsable.c']]] -]; diff --git a/docs/html/search/all_6.js b/docs/html/search/all_6.js deleted file mode 100644 index 4edb82c..0000000 --- a/docs/html/search/all_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['problemrecherchearticle_0',['problemRechercheArticle',['../interface__resp_8h.html#a34970f3ce5206778f2a225d7fff17bdd',1,'interface_resp.h']]] -]; diff --git a/docs/html/search/all_7.js b/docs/html/search/all_7.js deleted file mode 100644 index 8fab472..0000000 --- a/docs/html/search/all_7.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['quitter_5fapplication_0',['quitter_application',['../interface__client_8h.html#a75ce35e6cd3b58c6359897a8aa131509',1,'interface_client.c']]] -]; diff --git a/docs/html/search/all_8.js b/docs/html/search/all_8.js deleted file mode 100644 index 9f25075..0000000 --- a/docs/html/search/all_8.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['rechercherefarticle_0',['rechercherefarticle',['../responsable_8c.html#a33f342ec6aaff14efce87b42350d9bee',1,'rechercheRefArticle(int tRef[], int ref, int *index, int tLogique): responsable.c'],['../responsable_8h.html#a33f342ec6aaff14efce87b42350d9bee',1,'rechercheRefArticle(int tRef[], int ref, int *index, int tLogique): responsable.c']]], - ['reinitialiser_5fpanier_1',['reinitialiser_panier',['../interface__client_8h.html#ac55e8aab165ed0541827f10be23c9d97',1,'interface_client.c']]], - ['responsable_2ec_2',['responsable.c',['../responsable_8c.html',1,'']]], - ['responsable_2eh_3',['responsable.h',['../responsable_8h.html',1,'']]] -]; diff --git a/docs/html/search/all_9.js b/docs/html/search/all_9.js deleted file mode 100644 index 4a4ba8b..0000000 --- a/docs/html/search/all_9.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['sauvegardarticles_0',['sauvegardarticles',['../responsable_8c.html#ac9e79c89d04823f4b1b5572c9865e57d',1,'sauvegardArticles(int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique): responsable.c'],['../responsable_8h.html#ac9e79c89d04823f4b1b5572c9865e57d',1,'sauvegardArticles(int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique): responsable.c']]], - ['sauvegarde_5fclients_1',['sauvegarde_clients',['../client_8h.html#a029f0d2d057a55b541f2cb82c76b9cda',1,'client.c']]], - ['supprimer_5farticle_2',['supprimer_article',['../client_8h.html#acad182f42a0cd24ad98b174fba322ad1',1,'client.c']]], - ['supprimer_5farticle_5fdu_5fpanier_3',['supprimer_article_du_panier',['../interface__client_8h.html#a31471d992b6f14d5249bbb6efdeec3cd',1,'interface_client.c']]], - ['supprimerarticle_4',['supprimerarticle',['../responsable_8c.html#a0f8076a332f73d1edca58cfaeb42167e',1,'supprimerArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int *tLogique): responsable.c'],['../responsable_8h.html#a0f8076a332f73d1edca58cfaeb42167e',1,'supprimerArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int *tLogique): responsable.c']]] -]; diff --git a/docs/html/search/all_a.js b/docs/html/search/all_a.js deleted file mode 100644 index 3b666c0..0000000 --- a/docs/html/search/all_a.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['trouver_5findex_5farticle_0',['trouver_index_article',['../client_8h.html#a5e81c9bb0e47fe7a39ae0235da80b05e',1,'client.c']]], - ['trouver_5findex_5fclient_1',['trouver_index_client',['../client_8h.html#ac5dad689583b01a2f96595f2d1069550',1,'client.c']]] -]; diff --git a/docs/html/search/close.svg b/docs/html/search/close.svg deleted file mode 100644 index 337d6cc..0000000 --- a/docs/html/search/close.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - diff --git a/docs/html/search/files_0.js b/docs/html/search/files_0.js deleted file mode 100644 index db7b520..0000000 --- a/docs/html/search/files_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['client_2eh_0',['client.h',['../client_8h.html',1,'']]] -]; diff --git a/docs/html/search/files_1.js b/docs/html/search/files_1.js deleted file mode 100644 index f6994ce..0000000 --- a/docs/html/search/files_1.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['interface_5fclient_2eh_0',['interface_client.h',['../interface__client_8h.html',1,'']]], - ['interface_5fresp_2eh_1',['interface_resp.h',['../interface__resp_8h.html',1,'']]] -]; diff --git a/docs/html/search/files_2.js b/docs/html/search/files_2.js deleted file mode 100644 index e594314..0000000 --- a/docs/html/search/files_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['main_2ec_0',['main.c',['../main_8c.html',1,'']]] -]; diff --git a/docs/html/search/files_3.js b/docs/html/search/files_3.js deleted file mode 100644 index 47ac1a7..0000000 --- a/docs/html/search/files_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['responsable_2ec_0',['responsable.c',['../responsable_8c.html',1,'']]], - ['responsable_2eh_1',['responsable.h',['../responsable_8h.html',1,'']]] -]; diff --git a/docs/html/search/functions_0.js b/docs/html/search/functions_0.js deleted file mode 100644 index aeabf99..0000000 --- a/docs/html/search/functions_0.js +++ /dev/null @@ -1,19 +0,0 @@ -var searchData= -[ - ['affichageconnexion_0',['affichageConnexion',['../interface__resp_8h.html#a31e174ac99df5a3cb347944f972ab5c9',1,'interface_resp.c']]], - ['affichajoutarticle_1',['affichAjoutArticle',['../interface__resp_8h.html#a9112538df3d862ffefc89fb8532d1176',1,'interface_resp.c']]], - ['affichajoutclient_2',['affichAjoutClient',['../interface__resp_8h.html#a964d2d2bc5b9aa544e6187ed6cbc961c',1,'interface_resp.c']]], - ['afficharticles_3',['affichArticles',['../interface__resp_8h.html#af518981f5e0d4575a6b7bae3f22e9985',1,'interface_resp.c']]], - ['affichclients_4',['affichClients',['../interface__resp_8h.html#a7c0531c63ea490d0b674960483e9ba27',1,'interface_resp.c']]], - ['affiche_5fclient_5',['affiche_client',['../interface__client_8h.html#a0ee281249d9a07abd6143449b761d212',1,'interface_client.c']]], - ['affiche_5frecap_5fpanier_6',['affiche_recap_panier',['../interface__client_8h.html#aa7f83065dbcf53ea2df22f9724c47470',1,'interface_client.c']]], - ['affiche_5fresp_7',['affiche_resp',['../interface__resp_8h.html#abb1a25ae1531e0857856843b41805528',1,'interface_resp.c']]], - ['affichmodifclient_8',['affichModifClient',['../interface__resp_8h.html#ad770c392a3645464f2f19740f2006c44',1,'interface_resp.c']]], - ['affichmodifierarticle_9',['affichModifierArticle',['../interface__resp_8h.html#af075e50ffce501b901ff31b1fb73262f',1,'interface_resp.c']]], - ['affichsupprimerarticle_10',['affichSupprimerArticle',['../interface__resp_8h.html#a47ca5882a75fd3b919ba02b028582473',1,'interface_resp.c']]], - ['affichunarticle_11',['affichUnArticle',['../interface__resp_8h.html#a5e9ce25cbd73f9d4732b84eb5ab59d13',1,'interface_resp.c']]], - ['affichunclient_12',['affichUnClient',['../interface__resp_8h.html#aa29059c1470e490b32fdf483b5570c88',1,'interface_resp.c']]], - ['ajouter_5farticle_5fau_5fpanier_13',['ajouter_article_au_panier',['../interface__client_8h.html#aa92d76f0c1463d0ad7d6479e6c27e99e',1,'interface_client.c']]], - ['ajouterarticle_14',['ajouterarticle',['../responsable_8c.html#abce68a203cf18b85ebdad34e468815f0',1,'ajouterArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int *tLogique, int tPhysique, int ref, float poids, float volume, float prix): responsable.c'],['../responsable_8h.html#abce68a203cf18b85ebdad34e468815f0',1,'ajouterArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int *tLogique, int tPhysique, int ref, float poids, float volume, float prix): responsable.c']]], - ['ajouterclient_15',['ajouterclient',['../responsable_8c.html#a185476dbf2dae604d3deb6a3085580a2',1,'ajouterClient(int tNumClient[], float tCagnotte[], int tSus[], int *tLogique, int tPhysique): responsable.c'],['../responsable_8h.html#a185476dbf2dae604d3deb6a3085580a2',1,'ajouterClient(int tNumClient[], float tCagnotte[], int tSus[], int *tLogique, int tPhysique): responsable.c']]] -]; diff --git a/docs/html/search/functions_1.js b/docs/html/search/functions_1.js deleted file mode 100644 index a1dbe38..0000000 --- a/docs/html/search/functions_1.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['chargementarticles_0',['chargementarticles',['../responsable_8c.html#a937ddfa15445cc5d2336130fb6567ce1',1,'chargementArticles(int tRef[], float tPoids[], float tVol[], float tPrix[], int tPhysique): responsable.c'],['../responsable_8h.html#a937ddfa15445cc5d2336130fb6567ce1',1,'chargementArticles(int tRef[], float tPoids[], float tVol[], float tPrix[], int tPhysique): responsable.c']]], - ['charger_5fclients_1',['charger_clients',['../client_8h.html#a8bc792436cb2773b638667f7a898a625',1,'client.c']]], - ['choixinterface_2',['choixInterface',['../main_8c.html#a5fdac9110609b2cc4b43c68b643af452',1,'main.c']]], - ['configurer_5fsession_5fclient_3',['configurer_session_client',['../interface__client_8h.html#a7caca9094610ed2dfcbfe0b350b678cf',1,'interface_client.c']]] -]; diff --git a/docs/html/search/functions_2.js b/docs/html/search/functions_2.js deleted file mode 100644 index d7bb1bb..0000000 --- a/docs/html/search/functions_2.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['dechiffrercesar_0',['dechiffrercesar',['../responsable_8c.html#ad21f0252145711b8da85feef17902fbc',1,'dechiffrerCesar(char *texte, int decalage): responsable.c'],['../responsable_8h.html#ad21f0252145711b8da85feef17902fbc',1,'dechiffrerCesar(char *texte, int decalage): responsable.c']]], - ['decodagemdp_1',['decodagemdp',['../responsable_8c.html#aa02b66bb7f733cf9bcb6a7fc2b4598e0',1,'decodageMDP(char *mdpEnter): responsable.c'],['../responsable_8h.html#aa02b66bb7f733cf9bcb6a7fc2b4598e0',1,'decodageMDP(char *mdpEnter): responsable.c']]], - ['deduire_5fcagnotte_2',['deduire_cagnotte',['../interface__client_8h.html#a7203df964d63cb07d7b19912d5e3c3bd',1,'interface_client.c']]] -]; diff --git a/docs/html/search/functions_3.js b/docs/html/search/functions_3.js deleted file mode 100644 index fdcccfc..0000000 --- a/docs/html/search/functions_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['global_5fclient_0',['global_client',['../interface__client_8h.html#a40507f288c72ef9b92d113990bc0ed40',1,'interface_client.c']]], - ['global_5fresp_1',['global_resp',['../interface__resp_8h.html#af8034d8f578bddee1a9e5b95e8000e06',1,'interface_resp.c']]] -]; diff --git a/docs/html/search/functions_4.js b/docs/html/search/functions_4.js deleted file mode 100644 index 2f89bb9..0000000 --- a/docs/html/search/functions_4.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['main_0',['main',['../main_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main.c']]], - ['menu_5fclient_1',['menu_client',['../interface__client_8h.html#a49de18c6560633af132a56085d28a8ba',1,'interface_client.c']]], - ['menu_5fresp_2',['menu_resp',['../interface__resp_8h.html#a1f14dc8f23be75e1a5c0e7ce0c77f597',1,'interface_resp.c']]], - ['modifier_5fquantite_5farticle_5fpanier_3',['modifier_quantite_article_panier',['../interface__client_8h.html#a87e47382ab2c90e6d5949fa78f50900e',1,'interface_client.c']]], - ['modifierarticle_4',['modifierarticle',['../responsable_8c.html#ab02f9ff38b359630bc980bae859f7512',1,'modifierArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique): responsable.c'],['../responsable_8h.html#ab02f9ff38b359630bc980bae859f7512',1,'modifierArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique): responsable.c']]] -]; diff --git a/docs/html/search/functions_5.js b/docs/html/search/functions_5.js deleted file mode 100644 index 4edb82c..0000000 --- a/docs/html/search/functions_5.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['problemrecherchearticle_0',['problemRechercheArticle',['../interface__resp_8h.html#a34970f3ce5206778f2a225d7fff17bdd',1,'interface_resp.h']]] -]; diff --git a/docs/html/search/functions_6.js b/docs/html/search/functions_6.js deleted file mode 100644 index 8fab472..0000000 --- a/docs/html/search/functions_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['quitter_5fapplication_0',['quitter_application',['../interface__client_8h.html#a75ce35e6cd3b58c6359897a8aa131509',1,'interface_client.c']]] -]; diff --git a/docs/html/search/functions_7.js b/docs/html/search/functions_7.js deleted file mode 100644 index ea9d9f1..0000000 --- a/docs/html/search/functions_7.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['rechercherefarticle_0',['rechercherefarticle',['../responsable_8c.html#a33f342ec6aaff14efce87b42350d9bee',1,'rechercheRefArticle(int tRef[], int ref, int *index, int tLogique): responsable.c'],['../responsable_8h.html#a33f342ec6aaff14efce87b42350d9bee',1,'rechercheRefArticle(int tRef[], int ref, int *index, int tLogique): responsable.c']]], - ['reinitialiser_5fpanier_1',['reinitialiser_panier',['../interface__client_8h.html#ac55e8aab165ed0541827f10be23c9d97',1,'interface_client.c']]] -]; diff --git a/docs/html/search/functions_8.js b/docs/html/search/functions_8.js deleted file mode 100644 index 4a4ba8b..0000000 --- a/docs/html/search/functions_8.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['sauvegardarticles_0',['sauvegardarticles',['../responsable_8c.html#ac9e79c89d04823f4b1b5572c9865e57d',1,'sauvegardArticles(int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique): responsable.c'],['../responsable_8h.html#ac9e79c89d04823f4b1b5572c9865e57d',1,'sauvegardArticles(int tRef[], float tPoids[], float tVol[], float tPrix[], int tLogique): responsable.c']]], - ['sauvegarde_5fclients_1',['sauvegarde_clients',['../client_8h.html#a029f0d2d057a55b541f2cb82c76b9cda',1,'client.c']]], - ['supprimer_5farticle_2',['supprimer_article',['../client_8h.html#acad182f42a0cd24ad98b174fba322ad1',1,'client.c']]], - ['supprimer_5farticle_5fdu_5fpanier_3',['supprimer_article_du_panier',['../interface__client_8h.html#a31471d992b6f14d5249bbb6efdeec3cd',1,'interface_client.c']]], - ['supprimerarticle_4',['supprimerarticle',['../responsable_8c.html#a0f8076a332f73d1edca58cfaeb42167e',1,'supprimerArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int *tLogique): responsable.c'],['../responsable_8h.html#a0f8076a332f73d1edca58cfaeb42167e',1,'supprimerArticle(int tRef[], float tPoids[], float tVol[], float tPrix[], int *tLogique): responsable.c']]] -]; diff --git a/docs/html/search/functions_9.js b/docs/html/search/functions_9.js deleted file mode 100644 index 3b666c0..0000000 --- a/docs/html/search/functions_9.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['trouver_5findex_5farticle_0',['trouver_index_article',['../client_8h.html#a5e81c9bb0e47fe7a39ae0235da80b05e',1,'client.c']]], - ['trouver_5findex_5fclient_1',['trouver_index_client',['../client_8h.html#ac5dad689583b01a2f96595f2d1069550',1,'client.c']]] -]; diff --git a/docs/html/search/mag.svg b/docs/html/search/mag.svg deleted file mode 100644 index ffb6cf0..0000000 --- a/docs/html/search/mag.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - diff --git a/docs/html/search/mag_d.svg b/docs/html/search/mag_d.svg deleted file mode 100644 index 4122773..0000000 --- a/docs/html/search/mag_d.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - diff --git a/docs/html/search/mag_sel.svg b/docs/html/search/mag_sel.svg deleted file mode 100644 index 553dba8..0000000 --- a/docs/html/search/mag_sel.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - diff --git a/docs/html/search/mag_seld.svg b/docs/html/search/mag_seld.svg deleted file mode 100644 index c906f84..0000000 --- a/docs/html/search/mag_seld.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - diff --git a/docs/html/search/search.css b/docs/html/search/search.css deleted file mode 100644 index 19f76f9..0000000 --- a/docs/html/search/search.css +++ /dev/null @@ -1,291 +0,0 @@ -/*---------------- Search Box positioning */ - -#main-menu > li:last-child { - /* This
  • object is the parent of the search bar */ - display: flex; - justify-content: center; - align-items: center; - height: 36px; - margin-right: 1em; -} - -/*---------------- Search box styling */ - -.SRPage * { - font-weight: normal; - line-height: normal; -} - -dark-mode-toggle { - margin-left: 5px; - display: flex; - float: right; -} - -#MSearchBox { - display: inline-block; - white-space : nowrap; - background: var(--search-background-color); - border-radius: 0.65em; - box-shadow: var(--search-box-shadow); - z-index: 102; -} - -#MSearchBox .left { - display: inline-block; - vertical-align: middle; - height: 1.4em; -} - -#MSearchSelect { - display: inline-block; - vertical-align: middle; - width: 20px; - height: 19px; - background-image: var(--search-magnification-select-image); - margin: 0 0 0 0.3em; - padding: 0; -} - -#MSearchSelectExt { - display: inline-block; - vertical-align: middle; - width: 10px; - height: 19px; - background-image: var(--search-magnification-image); - margin: 0 0 0 0.5em; - padding: 0; -} - - -#MSearchField { - display: inline-block; - vertical-align: middle; - width: 7.5em; - height: 19px; - margin: 0 0.15em; - padding: 0; - line-height: 1em; - border:none; - color: var(--search-foreground-color); - outline: none; - font-family: var(--font-family-search); - -webkit-border-radius: 0px; - border-radius: 0px; - background: none; -} - -@media(hover: none) { - /* to avoid zooming on iOS */ - #MSearchField { - font-size: 16px; - } -} - -#MSearchBox .right { - display: inline-block; - vertical-align: middle; - width: 1.4em; - height: 1.4em; -} - -#MSearchClose { - display: none; - font-size: inherit; - background : none; - border: none; - margin: 0; - padding: 0; - outline: none; - -} - -#MSearchCloseImg { - padding: 0.3em; - margin: 0; -} - -.MSearchBoxActive #MSearchField { - color: var(--search-active-color); -} - - - -/*---------------- Search filter selection */ - -#MSearchSelectWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid var(--search-filter-border-color); - background-color: var(--search-filter-background-color); - z-index: 10001; - padding-top: 4px; - padding-bottom: 4px; - -moz-border-radius: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -.SelectItem { - font: 8pt var(--font-family-search); - padding-left: 2px; - padding-right: 12px; - border: 0px; -} - -span.SelectionMark { - margin-right: 4px; - font-family: var(--font-family-monospace); - outline-style: none; - text-decoration: none; -} - -a.SelectItem { - display: block; - outline-style: none; - color: var(--search-filter-foreground-color); - text-decoration: none; - padding-left: 6px; - padding-right: 12px; -} - -a.SelectItem:focus, -a.SelectItem:active { - color: var(--search-filter-foreground-color); - outline-style: none; - text-decoration: none; -} - -a.SelectItem:hover { - color: var(--search-filter-highlight-text-color); - background-color: var(--search-filter-highlight-bg-color); - outline-style: none; - text-decoration: none; - cursor: pointer; - display: block; -} - -/*---------------- Search results window */ - -iframe#MSearchResults { - /*width: 60ex;*/ - height: 15em; -} - -#MSearchResultsWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid var(--search-results-border-color); - background-color: var(--search-results-background-color); - z-index:10000; - width: 300px; - height: 400px; - overflow: auto; -} - -/* ----------------------------------- */ - - -#SRIndex { - clear:both; -} - -.SREntry { - font-size: 10pt; - padding-left: 1ex; -} - -.SRPage .SREntry { - font-size: 8pt; - padding: 1px 5px; -} - -div.SRPage { - margin: 5px 2px; - background-color: var(--search-results-background-color); -} - -.SRChildren { - padding-left: 3ex; padding-bottom: .5em -} - -.SRPage .SRChildren { - display: none; -} - -.SRSymbol { - font-weight: bold; - color: var(--search-results-foreground-color); - font-family: var(--font-family-search); - text-decoration: none; - outline: none; -} - -a.SRScope { - display: block; - color: var(--search-results-foreground-color); - font-family: var(--font-family-search); - font-size: 8pt; - text-decoration: none; - outline: none; -} - -a.SRSymbol:focus, a.SRSymbol:active, -a.SRScope:focus, a.SRScope:active { - text-decoration: underline; -} - -span.SRScope { - padding-left: 4px; - font-family: var(--font-family-search); -} - -.SRPage .SRStatus { - padding: 2px 5px; - font-size: 8pt; - font-style: italic; - font-family: var(--font-family-search); -} - -.SRResult { - display: none; -} - -div.searchresults { - margin-left: 10px; - margin-right: 10px; -} - -/*---------------- External search page results */ - -.pages b { - color: white; - padding: 5px 5px 3px 5px; - background-image: var(--nav-gradient-active-image-parent); - background-repeat: repeat-x; - text-shadow: 0 1px 1px #000000; -} - -.pages { - line-height: 17px; - margin-left: 4px; - text-decoration: none; -} - -.hl { - font-weight: bold; -} - -#searchresults { - margin-bottom: 20px; -} - -.searchpages { - margin-top: 10px; -} - diff --git a/docs/html/search/search.js b/docs/html/search/search.js deleted file mode 100644 index 6fd40c6..0000000 --- a/docs/html/search/search.js +++ /dev/null @@ -1,840 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function convertToId(search) -{ - var result = ''; - for (i=0;i do a search - { - this.Search(); - } - } - - this.OnSearchSelectKey = function(evt) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==40 && this.searchIndex0) // Up - { - this.searchIndex--; - this.OnSelectItem(this.searchIndex); - } - else if (e.keyCode==13 || e.keyCode==27) - { - e.stopPropagation(); - this.OnSelectItem(this.searchIndex); - this.CloseSelectionWindow(); - this.DOMSearchField().focus(); - } - return false; - } - - // --------- Actions - - // Closes the results window. - this.CloseResultsWindow = function() - { - this.DOMPopupSearchResultsWindow().style.display = 'none'; - this.DOMSearchClose().style.display = 'none'; - this.Activate(false); - } - - this.CloseSelectionWindow = function() - { - this.DOMSearchSelectWindow().style.display = 'none'; - } - - // Performs a search. - this.Search = function() - { - this.keyTimeout = 0; - - // strip leading whitespace - var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); - - var code = searchValue.toLowerCase().charCodeAt(0); - var idxChar = searchValue.substr(0, 1).toLowerCase(); - if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair - { - idxChar = searchValue.substr(0, 2); - } - - var jsFile; - - var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); - if (idx!=-1) - { - var hexCode=idx.toString(16); - jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; - } - - var loadJS = function(url, impl, loc){ - var scriptTag = document.createElement('script'); - scriptTag.src = url; - scriptTag.onload = impl; - scriptTag.onreadystatechange = impl; - loc.appendChild(scriptTag); - } - - var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); - var domSearchBox = this.DOMSearchBox(); - var domPopupSearchResults = this.DOMPopupSearchResults(); - var domSearchClose = this.DOMSearchClose(); - var resultsPath = this.resultsPath; - - var handleResults = function() { - document.getElementById("Loading").style.display="none"; - if (typeof searchData !== 'undefined') { - createResults(resultsPath); - document.getElementById("NoMatches").style.display="none"; - } - - if (idx!=-1) { - searchResults.Search(searchValue); - } else { // no file with search results => force empty search results - searchResults.Search('===='); - } - - if (domPopupSearchResultsWindow.style.display!='block') - { - domSearchClose.style.display = 'inline-block'; - var left = getXPos(domSearchBox) + 150; - var top = getYPos(domSearchBox) + 20; - domPopupSearchResultsWindow.style.display = 'block'; - left -= domPopupSearchResults.offsetWidth; - var maxWidth = document.body.clientWidth; - var maxHeight = document.body.clientHeight; - var width = 300; - if (left<10) left=10; - if (width+left+8>maxWidth) width=maxWidth-left-8; - var height = 400; - if (height+top+8>maxHeight) height=maxHeight-top-8; - domPopupSearchResultsWindow.style.top = top + 'px'; - domPopupSearchResultsWindow.style.left = left + 'px'; - domPopupSearchResultsWindow.style.width = width + 'px'; - domPopupSearchResultsWindow.style.height = height + 'px'; - } - } - - if (jsFile) { - loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); - } else { - handleResults(); - } - - this.lastSearchValue = searchValue; - } - - // -------- Activation Functions - - // Activates or deactivates the search panel, resetting things to - // their default values if necessary. - this.Activate = function(isActive) - { - if (isActive || // open it - this.DOMPopupSearchResultsWindow().style.display == 'block' - ) - { - this.DOMSearchBox().className = 'MSearchBoxActive'; - this.searchActive = true; - } - else if (!isActive) // directly remove the panel - { - this.DOMSearchBox().className = 'MSearchBoxInactive'; - this.searchActive = false; - this.lastSearchValue = '' - this.lastResultsPage = ''; - this.DOMSearchField().value = ''; - } - } -} - -// ----------------------------------------------------------------------- - -// The class that handles everything on the search results page. -function SearchResults(name) -{ - // The number of matches from the last run of . - this.lastMatchCount = 0; - this.lastKey = 0; - this.repeatOn = false; - - // Toggles the visibility of the passed element ID. - this.FindChildElement = function(id) - { - var parentElement = document.getElementById(id); - var element = parentElement.firstChild; - - while (element && element!=parentElement) - { - if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') - { - return element; - } - - if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) - { - element = element.firstChild; - } - else if (element.nextSibling) - { - element = element.nextSibling; - } - else - { - do - { - element = element.parentNode; - } - while (element && element!=parentElement && !element.nextSibling); - - if (element && element!=parentElement) - { - element = element.nextSibling; - } - } - } - } - - this.Toggle = function(id) - { - var element = this.FindChildElement(id); - if (element) - { - if (element.style.display == 'block') - { - element.style.display = 'none'; - } - else - { - element.style.display = 'block'; - } - } - } - - // Searches for the passed string. If there is no parameter, - // it takes it from the URL query. - // - // Always returns true, since other documents may try to call it - // and that may or may not be possible. - this.Search = function(search) - { - if (!search) // get search word from URL - { - search = window.location.search; - search = search.substring(1); // Remove the leading '?' - search = unescape(search); - } - - search = search.replace(/^ +/, ""); // strip leading spaces - search = search.replace(/ +$/, ""); // strip trailing spaces - search = search.toLowerCase(); - search = convertToId(search); - - var resultRows = document.getElementsByTagName("div"); - var matches = 0; - - var i = 0; - while (i < resultRows.length) - { - var row = resultRows.item(i); - if (row.className == "SRResult") - { - var rowMatchName = row.id.toLowerCase(); - rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' - - if (search.length<=rowMatchName.length && - rowMatchName.substr(0, search.length)==search) - { - row.style.display = 'block'; - matches++; - } - else - { - row.style.display = 'none'; - } - } - i++; - } - document.getElementById("Searching").style.display='none'; - if (matches == 0) // no results - { - document.getElementById("NoMatches").style.display='block'; - } - else // at least one result - { - document.getElementById("NoMatches").style.display='none'; - } - this.lastMatchCount = matches; - return true; - } - - // return the first item with index index or higher that is visible - this.NavNext = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index++; - } - return focusItem; - } - - this.NavPrev = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index--; - } - return focusItem; - } - - this.ProcessKeys = function(e) - { - if (e.type == "keydown") - { - this.repeatOn = false; - this.lastKey = e.keyCode; - } - else if (e.type == "keypress") - { - if (!this.repeatOn) - { - if (this.lastKey) this.repeatOn = true; - return false; // ignore first keypress after keydown - } - } - else if (e.type == "keyup") - { - this.lastKey = 0; - this.repeatOn = false; - } - return this.lastKey!=0; - } - - this.Nav = function(evt,itemIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - var newIndex = itemIndex-1; - var focusItem = this.NavPrev(newIndex); - if (focusItem) - { - var child = this.FindChildElement(focusItem.parentNode.parentNode.id); - if (child && child.style.display == 'block') // children visible - { - var n=0; - var tmpElem; - while (1) // search for last child - { - tmpElem = document.getElementById('Item'+newIndex+'_c'+n); - if (tmpElem) - { - focusItem = tmpElem; - } - else // found it! - { - break; - } - n++; - } - } - } - if (focusItem) - { - focusItem.focus(); - } - else // return focus to search field - { - document.getElementById("MSearchField").focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = itemIndex+1; - var focusItem; - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem && elem.style.display == 'block') // children visible - { - focusItem = document.getElementById('Item'+itemIndex+'_c0'); - } - if (!focusItem) focusItem = this.NavNext(newIndex); - if (focusItem) focusItem.focus(); - } - else if (this.lastKey==39) // Right - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'block'; - } - else if (this.lastKey==37) // Left - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'none'; - } - else if (this.lastKey==27) // Escape - { - e.stopPropagation(); - searchBox.CloseResultsWindow(); - document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } - - this.NavChild = function(evt,itemIndex,childIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - if (childIndex>0) - { - var newIndex = childIndex-1; - document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); - } - else // already at first child, jump to parent - { - document.getElementById('Item'+itemIndex).focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = childIndex+1; - var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); - if (!elem) // last child, jump to parent next parent - { - elem = this.NavNext(itemIndex+1); - } - if (elem) - { - elem.focus(); - } - } - else if (this.lastKey==27) // Escape - { - e.stopPropagation(); - searchBox.CloseResultsWindow(); - document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } -} - -function setKeyActions(elem,action) -{ - elem.setAttribute('onkeydown',action); - elem.setAttribute('onkeypress',action); - elem.setAttribute('onkeyup',action); -} - -function setClassAttr(elem,attr) -{ - elem.setAttribute('class',attr); - elem.setAttribute('className',attr); -} - -function createResults(resultsPath) -{ - var results = document.getElementById("SRResults"); - results.innerHTML = ''; - for (var e=0; e-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T diff --git a/docs/html/splitbard.png b/docs/html/splitbard.png deleted file mode 100644 index 8367416d757fd7b6dc4272b6432dc75a75abd068..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf@VhhFKy35^fiT zT~&lUj3=cDh^%3HDY9k5CEku}PHXNoNC(_$U3XPb&Q*ME25pT;2(*BOgAf<+R$lzakPG`kF31()Fx{L5Wrac|GQzjeE= zueY1`Ze{#x<8=S|`~MgGetGce)#vN&|J{Cd^tS%;tBYTo?+^d68<#n_Y_xx`J||4O V@QB{^CqU0Kc)I$ztaD0e0svEzbJzd? diff --git a/docs/html/sync_off.png b/docs/html/sync_off.png deleted file mode 100644 index 3b443fc62892114406e3d399421b2a881b897acc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* diff --git a/docs/html/sync_on.png b/docs/html/sync_on.png deleted file mode 100644 index e08320fb64e6fa33b573005ed6d8fe294e19db76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 diff --git a/docs/html/tab_a.png b/docs/html/tab_a.png deleted file mode 100644 index 3b725c41c5a527a3a3e40097077d0e206a681247..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 diff --git a/docs/html/tab_ad.png b/docs/html/tab_ad.png deleted file mode 100644 index e34850acfc24be58da6d2fd1ccc6b29cc84fe34d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QhuH;jv*C{Z|5d*H3V=pKi{In zd2jxLclDRPylmD}^l7{QOtL{vUjO{-WqItb5sQp2h-99b8^^Scr-=2mblCdZuUm?4 jzOJvgvt3{(cjKLW5(A@0qPS@<&}0TrS3j3^P6y&q2{!U5bk+Tso_B!YCpDh>v z{CM*1U8YvQRyBUHt^Ju0W_sq-?;9@_4equ-bavTs=gk796zopr0EBT&m;e9( diff --git a/docs/html/tab_s.png b/docs/html/tab_s.png deleted file mode 100644 index ab478c95b67371d700a20869f7de1ddd73522d50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QuUrLjv*C{Z|^p8HaRdjTwH7) zC?wLlL}}I{)n%R&r+1}IGmDnq;&J#%V6)9VsYhS`O^BVBQlxOUep0c$RENLq#g8A$ z)z7%K_bI&n@J+X_=x}fJoEKed-$<>=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ diff --git a/docs/html/tab_sd.png b/docs/html/tab_sd.png deleted file mode 100644 index 757a565ced4730f85c833fb2547d8e199ae68f19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qq7(&jv*C{Z|_!fH5o7*c=%9% zcILh!EA=pAQKdx-Cdiev=v{eg{8Ht<{e8_NAN~b=)%W>-WDCE0PyDHGemi$BoXwcK z{>e9^za6*c1ilttWw&V+U;WCPlV9{LdC~Ey%_H(qj`xgfES(4Yz5jSTZfCt`4E$0YRsR*S^mTCR^;V&sxC8{l_Cp7w8-YPgg&ebxsLQ00$vXK>z>% diff --git a/docs/html/tabs.css b/docs/html/tabs.css deleted file mode 100644 index 71c8a47..0000000 --- a/docs/html/tabs.css +++ /dev/null @@ -1 +0,0 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important;color:var(--nav-menu-foreground-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} \ No newline at end of file diff --git a/docs/latex/Makefile b/docs/latex/Makefile deleted file mode 100644 index 7f82972..0000000 --- a/docs/latex/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -LATEX_CMD?=pdflatex -MKIDX_CMD?=makeindex -BIBTEX_CMD?=bibtex -LATEX_COUNT?=8 -MANUAL_FILE?=refman - -all: $(MANUAL_FILE).pdf - -pdf: $(MANUAL_FILE).pdf - -$(MANUAL_FILE).pdf: clean $(MANUAL_FILE).tex - $(LATEX_CMD) $(MANUAL_FILE) - $(MKIDX_CMD) $(MANUAL_FILE).idx - $(LATEX_CMD) $(MANUAL_FILE) - latex_count=$(LATEX_COUNT) ; \ - while grep -E -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\ - do \ - echo "Rerunning latex...." ;\ - $(LATEX_CMD) $(MANUAL_FILE) ;\ - latex_count=`expr $$latex_count - 1` ;\ - done - $(MKIDX_CMD) $(MANUAL_FILE).idx - $(LATEX_CMD) $(MANUAL_FILE) - - -clean: - rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl $(MANUAL_FILE).pdf diff --git a/docs/latex/client_8h.tex b/docs/latex/client_8h.tex deleted file mode 100644 index 8b11000..0000000 --- a/docs/latex/client_8h.tex +++ /dev/null @@ -1,158 +0,0 @@ -\doxysection{src/app/core\+\_\+logic/client.h File Reference} -\hypertarget{client_8h}{}\label{client_8h}\index{src/app/core\_logic/client.h@{src/app/core\_logic/client.h}} - - -Fichier d\textquotesingle{}en-\/tête pour les fonctions de gestion des clients. - - -{\ttfamily \#include $<$stdio.\+h$>$}\newline -{\ttfamily \#include $<$stdlib.\+h$>$}\newline -{\ttfamily \#include "{}../interface/interface\+\_\+client.\+h"{}}\newline -\doxysubsubsection*{Functions} -\begin{DoxyCompactItemize} -\item -int \mbox{\hyperlink{client_8h_a8bc792436cb2773b638667f7a898a625}{charger\+\_\+clients}} (int numeros\mbox{[}$\,$\mbox{]}, float cagnottes\mbox{[}$\,$\mbox{]}, int suspendues\mbox{[}$\,$\mbox{]}, int t\+Physique) -\begin{DoxyCompactList}\small\item\em Charger les données des clients depuis un fichier. \end{DoxyCompactList}\item -void \mbox{\hyperlink{client_8h_a029f0d2d057a55b541f2cb82c76b9cda}{sauvegarde\+\_\+clients}} (int numeros\mbox{[}$\,$\mbox{]}, float cagnottes\mbox{[}$\,$\mbox{]}, int suspendus\mbox{[}$\,$\mbox{]}, int nombre\+Clients) -\begin{DoxyCompactList}\small\item\em Sauvegarder les données des clients dans un fichier. \end{DoxyCompactList}\item -void \mbox{\hyperlink{client_8h_acad182f42a0cd24ad98b174fba322ad1}{supprimer\+\_\+article}} (int panier\mbox{[}$\,$\mbox{]}, int quantites\mbox{[}$\,$\mbox{]}, int \texorpdfstring{$\ast$}{*}taille\+Panier, int reference, int numero\+Client, int numeros\mbox{[}$\,$\mbox{]}, int nombre\+Clients, int references\mbox{[}$\,$\mbox{]}, float prix\+Unitaire\mbox{[}$\,$\mbox{]}, float cagnottes\mbox{[}$\,$\mbox{]}) -\begin{DoxyCompactList}\small\item\em Supprimer un article du panier du client. \end{DoxyCompactList}\item -int \mbox{\hyperlink{client_8h_a5e81c9bb0e47fe7a39ae0235da80b05e}{trouver\+\_\+index\+\_\+article}} (int reference, int references\mbox{[}$\,$\mbox{]}, int nombre\+Articles) -\begin{DoxyCompactList}\small\item\em Trouver l\textquotesingle{}index d\textquotesingle{}une référence d\textquotesingle{}article dans un tableau. \end{DoxyCompactList}\item -int \mbox{\hyperlink{client_8h_ac5dad689583b01a2f96595f2d1069550}{trouver\+\_\+index\+\_\+client}} (int numero\+Client, int numeros\mbox{[}$\,$\mbox{]}, int nombre\+Clients) -\begin{DoxyCompactList}\small\item\em Trouver l\textquotesingle{}index d\textquotesingle{}un numéro de client dans un tableau. \end{DoxyCompactList}\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -Fichier d\textquotesingle{}en-\/tête pour les fonctions de gestion des clients. - -Ce fichier d\textquotesingle{}en-\/tête définit les fonctions liées à la gestion des clients, telles que le chargement des clients, la sauvegarde, etc. - -\begin{DoxyAuthor}{Author} -Hersan Mathéo -\end{DoxyAuthor} - - -\doxysubsection{Function Documentation} -\Hypertarget{client_8h_a8bc792436cb2773b638667f7a898a625}\label{client_8h_a8bc792436cb2773b638667f7a898a625} -\index{client.h@{client.h}!charger\_clients@{charger\_clients}} -\index{charger\_clients@{charger\_clients}!client.h@{client.h}} -\doxysubsubsection{\texorpdfstring{charger\_clients()}{charger\_clients()}} -{\footnotesize\ttfamily int charger\+\_\+clients (\begin{DoxyParamCaption}\item[{int}]{numeros\mbox{[}$\,$\mbox{]}, }\item[{float}]{cagnottes\mbox{[}$\,$\mbox{]}, }\item[{int}]{suspendues\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Physique }\end{DoxyParamCaption})} - - - -Charger les données des clients depuis un fichier. - - -\begin{DoxyParams}{Parameters} -{\em numeros} & -\/ Un tableau de numéros de clients. \\ -\hline -{\em cagnottes} & -\/ Un tableau de cagnottes des clients. \\ -\hline -{\em suspendues} & -\/ Un tableau d\textquotesingle{}état des clients suspendus. \\ -\hline -{\em t\+Physique} & -\/ La taille physique du tableau des clients.\\ -\hline -\end{DoxyParams} -\begin{DoxyReturn}{Returns} -Le nombre de clients chargés depuis le fichier. -\end{DoxyReturn} -\Hypertarget{client_8h_a029f0d2d057a55b541f2cb82c76b9cda}\label{client_8h_a029f0d2d057a55b541f2cb82c76b9cda} -\index{client.h@{client.h}!sauvegarde\_clients@{sauvegarde\_clients}} -\index{sauvegarde\_clients@{sauvegarde\_clients}!client.h@{client.h}} -\doxysubsubsection{\texorpdfstring{sauvegarde\_clients()}{sauvegarde\_clients()}} -{\footnotesize\ttfamily void sauvegarde\+\_\+clients (\begin{DoxyParamCaption}\item[{int}]{numeros\mbox{[}$\,$\mbox{]}, }\item[{float}]{cagnottes\mbox{[}$\,$\mbox{]}, }\item[{int}]{suspendus\mbox{[}$\,$\mbox{]}, }\item[{int}]{nombre\+Clients }\end{DoxyParamCaption})} - - - -Sauvegarder les données des clients dans un fichier. - - -\begin{DoxyParams}{Parameters} -{\em numeros} & -\/ Un tableau de numéros de clients. \\ -\hline -{\em cagnottes} & -\/ Un tableau de cagnottes des clients. \\ -\hline -{\em suspendus} & -\/ Un tableau d\textquotesingle{}état des clients suspendus. \\ -\hline -{\em nombre\+Clients} & -\/ Le nombre total de clients. \\ -\hline -\end{DoxyParams} -\Hypertarget{client_8h_acad182f42a0cd24ad98b174fba322ad1}\label{client_8h_acad182f42a0cd24ad98b174fba322ad1} -\index{client.h@{client.h}!supprimer\_article@{supprimer\_article}} -\index{supprimer\_article@{supprimer\_article}!client.h@{client.h}} -\doxysubsubsection{\texorpdfstring{supprimer\_article()}{supprimer\_article()}} -{\footnotesize\ttfamily void supprimer\+\_\+article (\begin{DoxyParamCaption}\item[{int}]{panier\mbox{[}$\,$\mbox{]}, }\item[{int}]{quantites\mbox{[}$\,$\mbox{]}, }\item[{int \texorpdfstring{$\ast$}{*}}]{taille\+Panier, }\item[{int}]{reference, }\item[{int}]{numero\+Client, }\item[{int}]{numeros\mbox{[}$\,$\mbox{]}, }\item[{int}]{nombre\+Clients, }\item[{int}]{references\mbox{[}$\,$\mbox{]}, }\item[{float}]{prix\+Unitaire\mbox{[}$\,$\mbox{]}, }\item[{float}]{cagnottes\mbox{[}$\,$\mbox{]} }\end{DoxyParamCaption})} - - - -Supprimer un article du panier du client. - - -\begin{DoxyParams}[1]{Parameters} - & {\em panier} & -\/ Le panier d\textquotesingle{}achat du client. \\ -\hline - & {\em quantites} & -\/ Un tableau de quantités d\textquotesingle{}articles dans le panier. \\ -\hline -\mbox{\texttt{ out}} & {\em taille\+Panier} & -\/ Un pointeur pour stocker la taille du panier. \\ -\hline - & {\em reference} & -\/ La référence de l\textquotesingle{}article à supprimer. \\ -\hline - & {\em numero\+Client} & -\/ Le numéro du client. \\ -\hline - & {\em numeros} & -\/ Un tableau de numéros de clients. \\ -\hline - & {\em nombre\+Clients} & -\/ Le nombre total de clients. \\ -\hline - & {\em references} & -\/ Un tableau de références d\textquotesingle{}articles. \\ -\hline - & {\em prix\+Unitaire} & -\/ Un tableau de prix unitaires d\textquotesingle{}articles. \\ -\hline - & {\em cagnottes} & -\/ Un tableau de cagnottes des clients. \\ -\hline -\end{DoxyParams} -\Hypertarget{client_8h_a5e81c9bb0e47fe7a39ae0235da80b05e}\label{client_8h_a5e81c9bb0e47fe7a39ae0235da80b05e} -\index{client.h@{client.h}!trouver\_index\_article@{trouver\_index\_article}} -\index{trouver\_index\_article@{trouver\_index\_article}!client.h@{client.h}} -\doxysubsubsection{\texorpdfstring{trouver\_index\_article()}{trouver\_index\_article()}} -{\footnotesize\ttfamily int trouver\+\_\+index\+\_\+article (\begin{DoxyParamCaption}\item[{int}]{reference, }\item[{int}]{references\mbox{[}$\,$\mbox{]}, }\item[{int}]{nombre\+Articles }\end{DoxyParamCaption})} - - - -Trouver l\textquotesingle{}index d\textquotesingle{}une référence d\textquotesingle{}article dans un tableau. - - -\begin{DoxyParams}{Parameters} -{\em reference} & -\/ La référence de l\textquotesingle{}article à rechercher. \\ -\hline -{\em references} & -\/ Un tableau de références d\textquotesingle{}articles. \\ -\hline -{\em nombre\+Articles} & -\/ Le nombre total d\textquotesingle{}articles.\\ -\hline -\end{DoxyParams} -\begin{DoxyReturn}{Returns} -L\textquotesingle{}index de la référence dans le tableau ou -\/1 si la référence n\textquotesingle{}est pas trouvée. -\end{DoxyReturn} -\Hypertarget{client_8h_ac5dad689583b01a2f96595f2d1069550}\label{client_8h_ac5dad689583b01a2f96595f2d1069550} -\index{client.h@{client.h}!trouver\_index\_client@{trouver\_index\_client}} -\index{trouver\_index\_client@{trouver\_index\_client}!client.h@{client.h}} -\doxysubsubsection{\texorpdfstring{trouver\_index\_client()}{trouver\_index\_client()}} -{\footnotesize\ttfamily int trouver\+\_\+index\+\_\+client (\begin{DoxyParamCaption}\item[{int}]{numero\+Client, }\item[{int}]{numeros\mbox{[}$\,$\mbox{]}, }\item[{int}]{nombre\+Clients }\end{DoxyParamCaption})} - - - -Trouver l\textquotesingle{}index d\textquotesingle{}un numéro de client dans un tableau. - - -\begin{DoxyParams}{Parameters} -{\em numero\+Client} & -\/ Le numéro de client à rechercher. \\ -\hline -{\em numeros} & -\/ Un tableau de numéros de clients. \\ -\hline -{\em nombre\+Clients} & -\/ Le nombre total de clients.\\ -\hline -\end{DoxyParams} -\begin{DoxyReturn}{Returns} -L\textquotesingle{}index du numéro de client dans le tableau ou -\/1 si le numéro de client n\textquotesingle{}est pas trouvé. -\end{DoxyReturn} diff --git a/docs/latex/client_8h_source.tex b/docs/latex/client_8h_source.tex deleted file mode 100644 index ecaa22a..0000000 --- a/docs/latex/client_8h_source.tex +++ /dev/null @@ -1,25 +0,0 @@ -\doxysection{client.\+h} -\hypertarget{client_8h_source}{}\label{client_8h_source}\index{src/app/core\_logic/client.h@{src/app/core\_logic/client.h}} -\mbox{\hyperlink{client_8h}{Go to the documentation of this file.}} -\begin{DoxyCode}{0} -\DoxyCodeLine{00001\ } -\DoxyCodeLine{00010\ \textcolor{preprocessor}{\#ifndef\ CLIENT\_H}} -\DoxyCodeLine{00011\ \textcolor{preprocessor}{\#define\ CLIENT\_H}} -\DoxyCodeLine{00012\ } -\DoxyCodeLine{00013\ \textcolor{preprocessor}{\#include\ }} -\DoxyCodeLine{00014\ \textcolor{preprocessor}{\#include\ }} -\DoxyCodeLine{00015\ \textcolor{preprocessor}{\#include\ "{}../interface/interface\_client.h"{}}} -\DoxyCodeLine{00016\ } -\DoxyCodeLine{00027\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{client_8h_a8bc792436cb2773b638667f7a898a625}{charger\_clients}}(\textcolor{keywordtype}{int}\ numeros[],\ \textcolor{keywordtype}{float}\ cagnottes[],\ \textcolor{keywordtype}{int}\ suspendues[],\ \textcolor{keywordtype}{int}\ tPhysique);} -\DoxyCodeLine{00028\ } -\DoxyCodeLine{00037\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{client_8h_a029f0d2d057a55b541f2cb82c76b9cda}{sauvegarde\_clients}}(\textcolor{keywordtype}{int}\ numeros[],\ \textcolor{keywordtype}{float}\ cagnottes[],\ \textcolor{keywordtype}{int}\ suspendus[],\ \textcolor{keywordtype}{int}\ nombreClients);} -\DoxyCodeLine{00038\ } -\DoxyCodeLine{00053\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{client_8h_acad182f42a0cd24ad98b174fba322ad1}{supprimer\_article}}(\textcolor{keywordtype}{int}\ panier[],\ \textcolor{keywordtype}{int}\ quantites[],\ \textcolor{keywordtype}{int}\ *taillePanier,\ \textcolor{keywordtype}{int}\ reference,\ \textcolor{keywordtype}{int}\ numeroClient,\ \textcolor{keywordtype}{int}\ numeros[],\ \textcolor{keywordtype}{int}\ nombreClients,\ \textcolor{keywordtype}{int}\ references[],\ \textcolor{keywordtype}{float}\ prixUnitaire[],\ \textcolor{keywordtype}{float}\ cagnottes[]);} -\DoxyCodeLine{00054\ } -\DoxyCodeLine{00064\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{client_8h_a5e81c9bb0e47fe7a39ae0235da80b05e}{trouver\_index\_article}}(\textcolor{keywordtype}{int}\ reference,\ \textcolor{keywordtype}{int}\ references[],\ \textcolor{keywordtype}{int}\ nombreArticles);} -\DoxyCodeLine{00065\ } -\DoxyCodeLine{00075\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{client_8h_ac5dad689583b01a2f96595f2d1069550}{trouver\_index\_client}}(\textcolor{keywordtype}{int}\ numeroClient,\ \textcolor{keywordtype}{int}\ numeros[],\ \textcolor{keywordtype}{int}\ nombreClients);} -\DoxyCodeLine{00076\ } -\DoxyCodeLine{00077\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ CLIENT\_H}} - -\end{DoxyCode} diff --git a/docs/latex/doxygen.sty b/docs/latex/doxygen.sty deleted file mode 100644 index 4bfc17f..0000000 --- a/docs/latex/doxygen.sty +++ /dev/null @@ -1,694 +0,0 @@ -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{doxygen} - -% Packages used by this style file -\RequirePackage{alltt} -%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package -\RequirePackage{calc} -\RequirePackage{float} -%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package -\RequirePackage{verbatim} -\RequirePackage[table]{xcolor} -\RequirePackage{longtable_doxygen} -\RequirePackage{tabu_doxygen} -\RequirePackage{fancyvrb} -\RequirePackage{tabularx} -\RequirePackage{multicol} -\RequirePackage{multirow} -\RequirePackage{hanging} -\RequirePackage{ifpdf} -\RequirePackage{adjustbox} -\RequirePackage{amssymb} -\RequirePackage{stackengine} -\RequirePackage{enumitem} -\RequirePackage{alphalph} -\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis - -%---------- Internal commands used in this style file ---------------- - -\newcommand{\ensurespace}[1]{% - \begingroup% - \setlength{\dimen@}{#1}% - \vskip\z@\@plus\dimen@% - \penalty -100\vskip\z@\@plus -\dimen@% - \vskip\dimen@% - \penalty 9999% - \vskip -\dimen@% - \vskip\z@skip% hide the previous |\vskip| from |\addvspace| - \endgroup% -} - -\newcommand{\DoxyHorRuler}[1]{% - \setlength{\parskip}{0ex plus 0ex minus 0ex}% - \ifthenelse{#1=0}% - {% - \hrule% - }% - {% - \hrulefilll% - }% -} -\newcommand{\DoxyLabelFont}{} -\newcommand{\entrylabel}[1]{% - {% - \parbox[b]{\labelwidth-4pt}{% - \makebox[0pt][l]{\DoxyLabelFont#1}% - \vspace{1.5\baselineskip}% - }% - }% -} - -\newenvironment{DoxyDesc}[1]{% - \ensurespace{4\baselineskip}% - \begin{list}{}{% - \settowidth{\labelwidth}{20pt}% - %\setlength{\parsep}{0pt}% - \setlength{\itemsep}{0pt}% - \setlength{\leftmargin}{\labelwidth+\labelsep}% - \renewcommand{\makelabel}{\entrylabel}% - }% - \item[#1]% -}{% - \end{list}% -} - -\newsavebox{\xrefbox} -\newlength{\xreflength} -\newcommand{\xreflabel}[1]{% - \sbox{\xrefbox}{#1}% - \setlength{\xreflength}{\wd\xrefbox}% - \ifthenelse{\xreflength>\labelwidth}{% - \begin{minipage}{\textwidth}% - \setlength{\parindent}{0pt}% - \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}% - \end{minipage}% - }{% - \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}% - }% -} - -%---------- Commands used by doxygen LaTeX output generator ---------- - -% Used by
     ... 
    -\newenvironment{DoxyPre}{% - \small% - \begin{alltt}% -}{% - \end{alltt}% - \normalsize% -} -% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output. -\newlength{\CodeWidthChar} -\newlength{\CodeHeightChar} -\settowidth{\CodeWidthChar}{?} -\settoheight{\CodeHeightChar}{?} -% Necessary for hanging indent -\newlength{\DoxyCodeWidth} - -\newcommand\DoxyCodeLine[1]{ - \ifthenelse{\equal{\detokenize{#1}}{}} - { - \vspace*{\baselineskip} - } - { - \hangpara{\DoxyCodeWidth}{1}{#1}\par - } -} - -\newcommand\NiceSpace{% - \discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}% -} - -% Used by @code ... @endcode -\newenvironment{DoxyCode}[1]{% - \par% - \scriptsize% - \normalfont\ttfamily% - \rightskip0pt plus 1fil% - \settowidth{\DoxyCodeWidth}{000000}% - \settowidth{\CodeWidthChar}{?}% - \settoheight{\CodeHeightChar}{?}% - \setlength{\parskip}{0ex plus 0ex minus 0ex}% - \ifthenelse{\equal{#1}{0}} - { - {\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces% - } - { - {\lccode`~32 \lowercase{\global\let~}}\obeyspaces% - } - -}{% - \normalfont% - \normalsize% - \settowidth{\CodeWidthChar}{?}% - \settoheight{\CodeHeightChar}{?}% -} - -% Redefining not defined characters, i.e. "Replacement Character" in tex output. -\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{% - \textcolor{white}{\sffamily\bfseries\small ?}}{% - \rotatebox{45}{$\blacksquare$}}}} - -% Used by @example, @include, @includelineno and @dontinclude -\newenvironment{DoxyCodeInclude}[1]{% - \DoxyCode{#1}% -}{% - \endDoxyCode% -} - -% Used by @verbatim ... @endverbatim -\newenvironment{DoxyVerb}{% - \par% - \footnotesize% - \verbatim% -}{% - \endverbatim% - \normalsize% -} - -% Used by @verbinclude -\newenvironment{DoxyVerbInclude}{% - \DoxyVerb% -}{% - \endDoxyVerb% -} - -% Used by numbered lists (using '-#' or
      ...
    ) -\setlistdepth{12} -\newlist{DoxyEnumerate}{enumerate}{12} -\setlist[DoxyEnumerate,1]{label=\arabic*.} -\setlist[DoxyEnumerate,2]{label=(\enumalphalphcnt*)} -\setlist[DoxyEnumerate,3]{label=\roman*.} -\setlist[DoxyEnumerate,4]{label=\enumAlphAlphcnt*.} -\setlist[DoxyEnumerate,5]{label=\arabic*.} -\setlist[DoxyEnumerate,6]{label=(\enumalphalphcnt*)} -\setlist[DoxyEnumerate,7]{label=\roman*.} -\setlist[DoxyEnumerate,8]{label=\enumAlphAlphcnt*.} -\setlist[DoxyEnumerate,9]{label=\arabic*.} -\setlist[DoxyEnumerate,10]{label=(\enumalphalphcnt*)} -\setlist[DoxyEnumerate,11]{label=\roman*.} -\setlist[DoxyEnumerate,12]{label=\enumAlphAlphcnt*.} - -% Used by bullet lists (using '-', @li, @arg, or
      ...
    ) -\setlistdepth{12} -\newlist{DoxyItemize}{itemize}{12} -\setlist[DoxyItemize]{label=\textperiodcentered} - -\setlist[DoxyItemize,1]{label=\textbullet} -\setlist[DoxyItemize,2]{label=\normalfont\bfseries \textendash} -\setlist[DoxyItemize,3]{label=\textasteriskcentered} -\setlist[DoxyItemize,4]{label=\textperiodcentered} - -% Used by description lists (using
    ...
    ) -\newenvironment{DoxyDescription}{% - \description% -}{% - \enddescription% -} - -% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc -% (only if caption is specified) -\newenvironment{DoxyImage}{% - \begin{figure}[H]% - \centering% -}{% - \end{figure}% -} - -% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc -% (only if no caption is specified) -\newenvironment{DoxyImageNoCaption}{% - \begin{center}% -}{% - \end{center}% -} - -% Used by @image -% (only if inline is specified) -\newenvironment{DoxyInlineImage}{% -}{% -} - -% Used by @attention -\newenvironment{DoxyAttention}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @author and @authors -\newenvironment{DoxyAuthor}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @date -\newenvironment{DoxyDate}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @invariant -\newenvironment{DoxyInvariant}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @note -\newenvironment{DoxyNote}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @post -\newenvironment{DoxyPostcond}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @pre -\newenvironment{DoxyPrecond}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @copyright -\newenvironment{DoxyCopyright}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @remark -\newenvironment{DoxyRemark}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @return and @returns -\newenvironment{DoxyReturn}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @since -\newenvironment{DoxySince}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @see -\newenvironment{DoxySeeAlso}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @version -\newenvironment{DoxyVersion}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @warning -\newenvironment{DoxyWarning}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @par and @paragraph -\newenvironment{DoxyParagraph}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by parameter lists -\newenvironment{DoxyParams}[2][]{% - \tabulinesep=1mm% - \par% - \ifthenelse{\equal{#1}{}}% - {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description - {\ifthenelse{\equal{#1}{1}}% - {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc - {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc - } - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used for fields of simple structs -\newenvironment{DoxyFields}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}% - \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used for fields simple class style enums -\newenvironment{DoxyEnumFields}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used for parameters within a detailed function description -\newenvironment{DoxyParamCaption}{% - \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}% -}{% -} - -% Used by return value lists -\newenvironment{DoxyRetVals}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used by exception lists -\newenvironment{DoxyExceptions}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used by template parameter lists -\newenvironment{DoxyTemplParams}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used for member lists -\newenvironment{DoxyCompactItemize}{% - \begin{itemize}% - \setlength{\itemsep}{-3pt}% - \setlength{\parsep}{0pt}% - \setlength{\topsep}{0pt}% - \setlength{\partopsep}{0pt}% -}{% - \end{itemize}% -} - -% Used for member descriptions -\newenvironment{DoxyCompactList}{% - \begin{list}{}{% - \setlength{\leftmargin}{0.5cm}% - \setlength{\itemsep}{0pt}% - \setlength{\parsep}{0pt}% - \setlength{\topsep}{0pt}% - \renewcommand{\makelabel}{\hfill}% - }% -}{% - \end{list}% -} - -% Used for reference lists (@bug, @deprecated, @todo, etc.) -\newenvironment{DoxyRefList}{% - \begin{list}{}{% - \setlength{\labelwidth}{10pt}% - \setlength{\leftmargin}{\labelwidth}% - \addtolength{\leftmargin}{\labelsep}% - \renewcommand{\makelabel}{\xreflabel}% - }% -}{% - \end{list}% -} - -% Used by @bug, @deprecated, @todo, etc. -\newenvironment{DoxyRefDesc}[1]{% - \begin{list}{}{% - \renewcommand\makelabel[1]{\textbf{##1}}% - \settowidth\labelwidth{\makelabel{#1}}% - \setlength\leftmargin{\labelwidth+\labelsep}% - }% -}{% - \end{list}% -} - -% Used by parameter lists and simple sections -\newenvironment{Desc} -{\begin{list}{}{% - \settowidth{\labelwidth}{20pt}% - \setlength{\parsep}{0pt}% - \setlength{\itemsep}{0pt}% - \setlength{\leftmargin}{\labelwidth+\labelsep}% - \renewcommand{\makelabel}{\entrylabel}% - } -}{% - \end{list}% -} - -% Used by tables -\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}% -\newenvironment{TabularC}[1]% -{\tabulinesep=1mm -\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}% -{\end{longtabu*}\par}% - -\newenvironment{TabularNC}[1]% -{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}% -{\end{tabu}\par}% - -% Used for member group headers -\newenvironment{Indent}{% - \begin{list}{}{% - \setlength{\leftmargin}{0.5cm}% - }% - \item[]\ignorespaces% -}{% - \unskip% - \end{list}% -} - -% Used when hyperlinks are turned on -\newcommand{\doxylink}[2]{% - \mbox{\hyperlink{#1}{#2}}% -} - -% Used when hyperlinks are turned on -% Third argument is the SectionType, see the doxygen internal -% documentation for the values (relevant: Page ... Subsubsection). -\newcommand{\doxysectlink}[3]{% - \mbox{\hyperlink{#1}{#2}}% -} -% Used when hyperlinks are turned off -\newcommand{\doxyref}[3]{% - \textbf{#1} (\textnormal{#2}\,\pageref{#3})% -} - -% Used when hyperlinks are turned off -% Fourth argument is the SectionType, see the doxygen internal -% documentation for the values (relevant: Page ... Subsubsection). -\newcommand{\doxysectref}[4]{% - \textbf{#1} (\textnormal{#2}\,\pageref{#3})% -} - -% Used to link to a table when hyperlinks are turned on -\newcommand{\doxytablelink}[2]{% - \ref{#1}% -} - -% Used to link to a table when hyperlinks are turned off -\newcommand{\doxytableref}[3]{% - \ref{#3}% -} - -% Used by @addindex -\newcommand{\lcurly}{\{} -\newcommand{\rcurly}{\}} - -% Colors used for syntax highlighting -\definecolor{comment}{rgb}{0.5,0.0,0.0} -\definecolor{keyword}{rgb}{0.0,0.5,0.0} -\definecolor{keywordtype}{rgb}{0.38,0.25,0.125} -\definecolor{keywordflow}{rgb}{0.88,0.5,0.0} -\definecolor{preprocessor}{rgb}{0.5,0.38,0.125} -\definecolor{stringliteral}{rgb}{0.0,0.125,0.25} -\definecolor{charliteral}{rgb}{0.0,0.5,0.5} -\definecolor{xmlcdata}{rgb}{0.0,0.0,0.0} -\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0} -\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43} -\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0} -\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0} - -% Color used for table heading -\newcommand{\tableheadbgcolor}{lightgray}% - -% Version of hypertarget with correct landing location -\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}} - -% possibility to have sections etc. be within the margins -% unfortunately had to copy part of book.cls and add \raggedright -\makeatletter -\newcounter{subsubsubsection}[subsubsection] -\newcounter{subsubsubsubsection}[subsubsubsection] -\newcounter{subsubsubsubsubsection}[subsubsubsubsection] -\newcounter{subsubsubsubsubsubsection}[subsubsubsubsubsection] -\renewcommand{\thesubsubsubsection}{\thesubsubsection.\arabic{subsubsubsection}} -\renewcommand{\thesubsubsubsubsection}{\thesubsubsubsection.\arabic{subsubsubsubsection}} -\renewcommand{\thesubsubsubsubsubsection}{\thesubsubsubsubsection.\arabic{subsubsubsubsubsection}} -\renewcommand{\thesubsubsubsubsubsubsection}{\thesubsubsubsubsubsection.\arabic{subsubsubsubsubsubsection}} -\newcommand{\subsubsubsectionmark}[1]{} -\newcommand{\subsubsubsubsectionmark}[1]{} -\newcommand{\subsubsubsubsubsectionmark}[1]{} -\newcommand{\subsubsubsubsubsubsectionmark}[1]{} -\def\toclevel@subsubsubsection{4} -\def\toclevel@subsubsubsubsection{5} -\def\toclevel@subsubsubsubsubsection{6} -\def\toclevel@subsubsubsubsubsubsection{7} -\def\toclevel@paragraph{8} -\def\toclevel@subparagraph{9} - -\newcommand\doxysection{\@startsection {section}{1}{\z@}% - {-3.5ex \@plus -1ex \@minus -.2ex}% - {2.3ex \@plus.2ex}% - {\raggedright\normalfont\Large\bfseries}} -\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\large\bfseries}} -\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\doxysubsubsubsection{\@startsection{subsubsubsection}{4}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\doxysubsubsubsubsection{\@startsection{subsubsubsubsection}{5}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\doxysubsubsubsubsubsection{\@startsection{subsubsubsubsubsection}{6}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\doxysubsubsubsubsubsubsection{\@startsection{subsubsubsubsubsubsection}{7}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\doxyparagraph{\@startsection{paragraph}{8}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\doxysubparagraph{\@startsection{subparagraph}{9}{\parindent}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\normalsize\bfseries}} - -\newcommand\l@subsubsubsection{\@dottedtocline{4}{6.1em}{7.8em}} -\newcommand\l@subsubsubsubsection{\@dottedtocline{5}{6.1em}{9.4em}} -\newcommand\l@subsubsubsubsubsection{\@dottedtocline{6}{6.1em}{11em}} -\newcommand\l@subsubsubsubsubsubsection{\@dottedtocline{7}{6.1em}{12.6em}} -\renewcommand\l@paragraph{\@dottedtocline{8}{6.1em}{14.2em}} -\renewcommand\l@subparagraph{\@dottedtocline{9}{6.1em}{15.8em}} -\makeatother -% the sectsty doesn't look to be maintained but gives, in our case, some warning like: -% LaTeX Warning: Command \underline has changed. -% Check if current package is valid. -% unfortunately had to copy the relevant part -\newcommand*{\doxypartfont} [1] - {\gdef\SS@partnumberfont{\SS@sectid{0}\SS@nopart\SS@makeulinepartchap#1} - \gdef\SS@parttitlefont{\SS@sectid{0}\SS@titlepart\SS@makeulinepartchap#1}} -\newcommand*{\doxychapterfont} [1] - {\gdef\SS@chapnumfont{\SS@sectid{1}\SS@nopart\SS@makeulinepartchap#1} - \gdef\SS@chaptitlefont{\SS@sectid{1}\SS@titlepart\SS@makeulinepartchap#1}} -\newcommand*{\doxysectionfont} [1] - {\gdef\SS@sectfont{\SS@sectid{2}\SS@rr\SS@makeulinesect#1}} -\newcommand*{\doxysubsectionfont} [1] - {\gdef\SS@subsectfont{\SS@sectid{3}\SS@rr\SS@makeulinesect#1}} -\newcommand*{\doxysubsubsectionfont} [1] - {\gdef\SS@subsubsectfont{\SS@sectid{4}\SS@rr\SS@makeulinesect#1}} -\newcommand*{\doxyparagraphfont} [1] - {\gdef\SS@parafont{\SS@sectid{5}\SS@rr\SS@makeulinesect#1}} -\newcommand*{\doxysubparagraphfont} [1] - {\gdef\SS@subparafont{\SS@sectid{6}\SS@rr\SS@makeulinesect#1}} -\newcommand*{\doxyminisecfont} [1] - {\gdef\SS@minisecfont{\SS@sectid{7}\SS@rr\SS@makeulinepartchap#1}} -\newcommand*{\doxyallsectionsfont} [1] {\doxypartfont{#1}% - \doxychapterfont{#1}% - \doxysectionfont{#1}% - \doxysubsectionfont{#1}% - \doxysubsubsectionfont{#1}% - \doxyparagraphfont{#1}% - \doxysubparagraphfont{#1}% - \doxyminisecfont{#1}}% -% Define caption that is also suitable in a table -\makeatletter -\def\doxyfigcaption{% -\H@refstepcounter{figure}% -\@dblarg{\@caption{figure}}} -\makeatother - -% Define alpha enumarative names for counters > 26 -\makeatletter -\def\enumalphalphcnt#1{\expandafter\@enumalphalphcnt\csname c@#1\endcsname} -\def\@enumalphalphcnt#1{\alphalph{#1}} -\def\enumAlphAlphcnt#1{\expandafter\@enumAlphAlphcnt\csname c@#1\endcsname} -\def\@enumAlphAlphcnt#1{\AlphAlph{#1}} -\makeatother -\AddEnumerateCounter{\enumalphalphcnt}{\@enumalphalphcnt}{aa} -\AddEnumerateCounter{\enumAlphAlphcnt}{\@enumAlphAlphcnt}{AA} diff --git a/docs/latex/etoc_doxygen.sty b/docs/latex/etoc_doxygen.sty deleted file mode 100644 index 5f7e127..0000000 --- a/docs/latex/etoc_doxygen.sty +++ /dev/null @@ -1,2178 +0,0 @@ -%% -%% This is file etoc_doxygen.sty -%% -%% Apart from this header notice and the renaming from etoc to -%% etoc_doxygen (also in \ProvidesPackage) it is an identical -%% copy of -%% -%% etoc.sty -%% -%% at version 1.2b of 2023/07/01. -%% -%% This file has been provided to Doxygen team courtesy of the -%% author for benefit of users having a LaTeX installation not -%% yet providing version 1.2a or later of etoc, whose -%% deeplevels feature is required. -%% -%% The original source etoc.dtx (only of the latest version at -%% any given time) is available at -%% -%% https://ctan.org/pkg/etoc -%% -%% and contains the terms for copying and modification as well -%% as author contact information. -%% -%% In brief any modified versions of this file must be renamed -%% with new filenames distinct from etoc.sty. -%% -%% Package: etoc -%% Version: 1.2b -%% License: LPPL 1.3c -%% Copyright (C) 2012-2023 Jean-Francois B. -\NeedsTeXFormat{LaTeX2e}[2003/12/01] -\ProvidesPackage{etoc_doxygen}[2023/07/01 v1.2b Completely customisable TOCs (JFB)] -\newif\ifEtoc@oldLaTeX -\@ifl@t@r\fmtversion{2020/10/01} - {} - {\Etoc@oldLaTeXtrue - \PackageInfo{etoc}{Old LaTeX (\fmtversion) detected!\MessageBreak - Since 1.1a (2023/01/14), etoc prefers LaTeX at least\MessageBreak - as recent as 2020-10-01, for reasons of the .toc file,\MessageBreak - and used to require it (from 1.1a to 1.2).\MessageBreak - This etoc (1.2b) does not *require* it, but has not been\MessageBreak - tested thoroughly on old LaTeX (especially if document\MessageBreak - does not use hyperref) and retrofitting was done only\MessageBreak - on basis of author partial remembrances of old context.\MessageBreak - Reported}} -\RequirePackage{kvoptions} -\SetupKeyvalOptions{prefix=Etoc@} -\newif\ifEtoc@lof -\DeclareVoidOption{lof}{\Etoc@loftrue - \PackageInfo{etoc}{Experimental support for \string\locallistoffigures.\MessageBreak - Barely tested, use at own risk}% -} -\newif\ifEtoc@lot -\DeclareVoidOption{lot}{\Etoc@lottrue - \PackageInfo{etoc}{Experimental support for \string\locallistoftables.\MessageBreak - Barely tested, use at own risk}% -} -\@ifclassloaded{memoir}{ -\PackageInfo{etoc} - {As this is with memoir class, all `...totoc' options\MessageBreak - are set true by default. Reported} -\DeclareBoolOption[true]{maintoctotoc} -\DeclareBoolOption[true]{localtoctotoc} -\DeclareBoolOption[true]{localloftotoc} -\DeclareBoolOption[true]{locallottotoc} -}{ -\DeclareBoolOption[false]{maintoctotoc} -\DeclareBoolOption[false]{localtoctotoc} -\DeclareBoolOption[false]{localloftotoc} -\DeclareBoolOption[false]{locallottotoc} -} -\DeclareBoolOption[true]{ouroboros} -\DeclareBoolOption[false]{deeplevels} -\DeclareDefaultOption{\PackageWarning{etoc}{Option `\CurrentOption' is unknown.}} -\ProcessKeyvalOptions* -\DisableKeyvalOption[action=error,package=etoc]{etoc}{lof} -\DisableKeyvalOption[action=error,package=etoc]{etoc}{lot} -\DisableKeyvalOption[action=error,package=etoc]{etoc}{deeplevels} -\def\etocsetup#1{\setkeys{etoc}{#1}} -\def\etocifmaintoctotoc{\ifEtoc@maintoctotoc - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} -\def\etociflocaltoctotoc{\ifEtoc@localtoctotoc - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} -\def\etociflocalloftotoc{\ifEtoc@localloftotoc - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} -\def\etociflocallottotoc{\ifEtoc@locallottotoc - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} -\RequirePackage{multicol} -\def\etoc@{\etoc@} -\long\def\Etoc@gobtoetoc@ #1\etoc@{} -\newtoks\Etoc@toctoks -\def\Etoc@par{\par} -\def\etocinline{\def\Etoc@par{}} -\let\etocnopar\etocinline -\def\etocdisplay{\def\Etoc@par{\par}} -\let\Etoc@global\@empty -\def\etocglobaldefs{\let\Etoc@global\global\let\tof@global\global} -\def\etoclocaldefs {\let\Etoc@global\@empty\let\tof@global\@empty} -\newif\ifEtoc@numbered -\newif\ifEtoc@hyperref -\newif\ifEtoc@parskip -\newif\ifEtoc@tocwithid -\newif\ifEtoc@standardlines -\newif\ifEtoc@etocstyle -\newif\ifEtoc@classstyle -\newif\ifEtoc@keeporiginaltoc -\newif\ifEtoc@skipprefix -\newif\ifEtoc@isfirst -\newif\ifEtoc@localtoc -\newif\ifEtoc@skipthisone -\newif\ifEtoc@stoptoc -\newif\ifEtoc@notactive -\newif\ifEtoc@mustclosegroup -\newif\ifEtoc@isemptytoc -\newif\ifEtoc@checksemptiness -\def\etocchecksemptiness {\Etoc@checksemptinesstrue } -\def\etocdoesnotcheckemptiness {\Etoc@checksemptinessfalse } -\newif\ifEtoc@notocifnotoc -\def\etocnotocifnotoc {\Etoc@checksemptinesstrue\Etoc@notocifnotoctrue } -\newcounter{etoc@tocid} -\def\Etoc@tocext{toc} -\def\Etoc@lofext{lof} -\def\Etoc@lotext{lot} -\let\Etoc@currext\Etoc@tocext -\def\etocifislocal{\ifEtoc@localtoc\expandafter\@firstoftwo\else - \expandafter\@secondoftwo\fi - } -\def\etocifislocaltoc{\etocifislocal{\ifx\Etoc@currext\Etoc@tocext - \expandafter\@firstoftwo\else - \expandafter\@secondoftwo\fi}% - {\@secondoftwo}% - } -\def\etocifislocallof{\etocifislocal{\ifx\Etoc@currext\Etoc@lofext - \expandafter\@firstoftwo\else - \expandafter\@secondoftwo\fi}% - {\@secondoftwo}% - } -\def\etocifislocallot{\etocifislocal{\ifx\Etoc@currext\Etoc@lotext - \expandafter\@firstoftwo\else - \expandafter\@secondoftwo\fi}% - {\@secondoftwo}% - } -\expandafter\def\csname Etoc@-3@@\endcsname {-\thr@@} -\expandafter\def\csname Etoc@-2@@\endcsname {-\tw@} -\expandafter\let\csname Etoc@-1@@\endcsname \m@ne -\expandafter\let\csname Etoc@0@@\endcsname \z@ -\expandafter\let\csname Etoc@1@@\endcsname \@ne -\expandafter\let\csname Etoc@2@@\endcsname \tw@ -\expandafter\let\csname Etoc@3@@\endcsname \thr@@ -\expandafter\chardef\csname Etoc@4@@\endcsname 4 -\expandafter\chardef\csname Etoc@5@@\endcsname 5 -\expandafter\chardef\csname Etoc@6@@\endcsname 6 -\ifEtoc@deeplevels - \expandafter\chardef\csname Etoc@7@@\endcsname 7 - \expandafter\chardef\csname Etoc@8@@\endcsname 8 - \expandafter\chardef\csname Etoc@9@@\endcsname 9 - \expandafter\chardef\csname Etoc@10@@\endcsname 10 - \expandafter\chardef\csname Etoc@11@@\endcsname 11 - \expandafter\chardef\csname Etoc@12@@\endcsname 12 -\fi -\expandafter\let\expandafter\Etoc@maxlevel - \csname Etoc@\ifEtoc@deeplevels12\else6\fi @@\endcsname -\edef\etocthemaxlevel{\number\Etoc@maxlevel} -\@ifclassloaded{memoir}{\def\Etoc@minf{-\thr@@}}{\def\Etoc@minf{-\tw@}} -\let\Etoc@none@@ \Etoc@minf -\expandafter\let\expandafter\Etoc@all@@ - \csname Etoc@\ifEtoc@deeplevels11\else5\fi @@\endcsname -\let\Etoc@dolevels\@empty -\def\Etoc@newlevel #1{\expandafter\def\expandafter\Etoc@dolevels\expandafter - {\Etoc@dolevels\Etoc@do{#1}}} -\ifdefined\expanded - \def\etocsetlevel#1#2{\expanded{\noexpand\etoc@setlevel{#1}{#2}}}% -\else - \def\etocsetlevel#1#2{{\edef\Etoc@tmp{\noexpand\etoc@setlevel{#1}{#2}}\expandafter}\Etoc@tmp}% -\fi -\def\etoc@setlevel#1#2{% - \edef\Etoc@tmp{\the\numexpr#2}% - \if1\ifnum\Etoc@tmp>\Etoc@maxlevel0\fi\unless\ifnum\Etoc@minf<\Etoc@tmp;\fi1% - \ifEtoc@deeplevels - \in@{.#1,}{.none,.all,.figure,.table,.-3,.-2,.-1,.0,.1,.2,.3,.4,.5,.6,% - .7,.8,.9,.10,.11,.12,}% - \else - \in@{.#1,}{.none,.all,.figure,.table,.-3,.-2,.-1,.0,.1,.2,.3,.4,.5,.6,}% - \fi - \ifin@\else\if\@car#1\@nil @\in@true\fi\fi - \ifin@ - \PackageWarning{etoc} - {Sorry, but `#1' is forbidden as level name.\MessageBreak - \if\@car#1\@nil @% - (because of the @ as first character)\MessageBreak\fi - Reported}% - \else - \etocifunknownlevelTF{#1}{\Etoc@newlevel{#1}}{}% - \expandafter\let\csname Etoc@#1@@\expandafter\endcsname - \csname Etoc@\Etoc@tmp @@\endcsname - \expandafter\edef\csname Etoc@@#1@@\endcsname - {\expandafter\noexpand\csname Etoc@#1@@\endcsname}% - \expandafter\edef\csname toclevel@@#1\endcsname - {\expandafter\noexpand\csname toclevel@#1\endcsname}% - \fi - \else - \PackageWarning{etoc} - {Argument `\detokenize{#2}' of \string\etocsetlevel\space should - represent one of\MessageBreak - \ifnum\Etoc@minf=-\thr@@-2, \fi-1, 0, 1, 2, \ifEtoc@deeplevels ...\else3, 4\fi, - \the\numexpr\Etoc@maxlevel-1, or \number\Etoc@maxlevel\space - but evaluates to \Etoc@tmp.\MessageBreak - The level of `#1' will be set to \number\Etoc@maxlevel.\MessageBreak - Tables of contents will ignore `#1' as long\MessageBreak - as its level is \number\Etoc@maxlevel\space (=\string\etocthemaxlevel).% - \MessageBreak - Reported}% - \etocifunknownlevelTF{#1}{\Etoc@newlevel{#1}}{}% - \expandafter\let\csname Etoc@#1@@\endcsname\Etoc@maxlevel - \fi -} -\def\etoclevel#1{\csname Etoc@#1@@\endcsname} -\def\etocthelevel#1{\number\csname Etoc@#1@@\endcsname} -\def\etocifunknownlevelTF#1{\@ifundefined{Etoc@#1@@}} -\@ifclassloaded{memoir}{\etocsetlevel{book}{-2}}{} -\etocsetlevel{part}{-1} -\etocsetlevel{chapter}{0} -\etocsetlevel{section}{1} -\etocsetlevel{subsection}{2} -\etocsetlevel{subsubsection}{3} -\etocsetlevel{paragraph}{4} -\etocsetlevel{subparagraph}{5} -\ifdefined\c@chapter - \etocsetlevel{appendix}{0} -\else - \etocsetlevel{appendix}{1} -\fi -\def\Etoc@do#1{\@namedef{l@@#1}{\csname l@#1\endcsname}} -\Etoc@dolevels -\let\Etoc@figure@@\Etoc@maxlevel -\let\Etoc@table@@ \Etoc@maxlevel -\let\Etoc@gobblethreeorfour\@gobblefour -\ifdefined\@gobblethree - \let\Etoc@gobblethree\@gobblethree -\else - \long\def\Etoc@gobblethree#1#2#3{}% -\fi -\AtBeginDocument{% -\@ifpackageloaded{parskip}{\Etoc@parskiptrue}{}% -\@ifpackageloaded{hyperref} - {\Etoc@hyperreftrue} - {\ifEtoc@oldLaTeX - \let\Etoc@gobblethreeorfour\Etoc@gobblethree - \let\Etoc@etoccontentsline@fourargs\Etoc@etoccontentsline@ - \long\def\Etoc@etoccontentsline@#1#2#3{% - \Etoc@etoccontentsline@fourargs{#1}{#2}{#3}{}% - }% - \fi - }% -} -\def\etocskipfirstprefix {\global\Etoc@skipprefixtrue } -\def\Etoc@updatestackofends#1\etoc@{\gdef\Etoc@stackofends{#1}} -\def\Etoc@stackofends{{-3}{}} -\def\Etoc@doendsandbegin{% - \expandafter\Etoc@traversestackofends\Etoc@stackofends\etoc@ -} -\def\Etoc@traversestackofends#1{% - \ifnum#1>\Etoc@level - \csname Etoc@end@#1\endcsname - \expandafter\Etoc@traversestackofends - \else - \Etoc@traversestackofends@done{#1}% - \fi -} -\def\Etoc@traversestackofends@done#1#2{#2% - \ifnum#1<\Etoc@level - \csname Etoc@begin@\the\numexpr\Etoc@level\endcsname - \Etoc@global\Etoc@isfirsttrue - \edef\Etoc@tmp{{\the\numexpr\Etoc@level}}% - \else - \Etoc@global\Etoc@isfirstfalse - \let\Etoc@tmp\@empty - \fi - \expandafter\Etoc@updatestackofends\Etoc@tmp{#1}% -} -\def\Etoc@etoccontentsline #1{% - \let\Etoc@next\Etoc@gobblethreeorfour - \ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel - \else - \Etoc@skipthisonefalse - \global\expandafter\let\expandafter\Etoc@level\csname Etoc@#1@@\endcsname - \if @\@car#1\@nil\else\global\let\Etoc@virtualtop\Etoc@level\fi - \ifEtoc@localtoc - \ifEtoc@stoptoc - \Etoc@skipthisonetrue - \else - \ifEtoc@notactive - \Etoc@skipthisonetrue - \else - \unless\ifnum\Etoc@level>\etoclocaltop - \Etoc@skipthisonetrue - \global\Etoc@stoptoctrue - \fi - \fi - \fi - \fi - \ifEtoc@skipthisone - \else - \unless\ifnum\Etoc@level>\c@tocdepth - \ifEtoc@standardlines - \let\Etoc@next\Etoc@savedcontentsline - \else - \let\Etoc@next\Etoc@etoccontentsline@ - \fi - \fi - \fi - \fi - \Etoc@next{#1}% -} -\def\Etoc@etoccontentsline@ #1#2#3#4{% - \Etoc@doendsandbegin - \Etoc@global\edef\Etoc@prefix {\expandafter\noexpand - \csname Etoc@prefix@\the\numexpr\Etoc@level\endcsname }% - \Etoc@global\edef\Etoc@contents{\expandafter\noexpand - \csname Etoc@contents@\the\numexpr\Etoc@level\endcsname }% - \ifEtoc@skipprefix \Etoc@global\def\Etoc@prefix{\@empty}\fi - \global\Etoc@skipprefixfalse - \Etoc@lxyz{#2}{#3}{#4}% - \Etoc@prefix - \Etoc@contents -} -\def\Etoc@lxyz #1#2#3{% - \ifEtoc@hyperref - \Etoc@global\def\etocthelink##1{\hyperlink{#3}{##1}}% - \else - \Etoc@global\let\etocthelink\@firstofone - \fi - \Etoc@global\def\etocthepage {#2}% - \ifEtoc@hyperref - \ifx\etocthepage\@empty - \Etoc@global\let\etocthelinkedpage\@empty - \else - \Etoc@global\def\etocthelinkedpage{\hyperlink {#3}{#2}}% - \fi - \else - \Etoc@global\let\etocthelinkedpage\etocthepage - \fi - \Etoc@global\def\etocthename{#1}% - \futurelet\Etoc@getnb@token\Etoc@@getnb #1\hspace\etoc@ - \ifEtoc@hyperref - \def\Etoc@tmp##1##2{\Etoc@global\def##2{\hyperlink{#3}{##1}}}% - \expandafter\Etoc@tmp\expandafter{\etocthename}\etocthelinkedname - \ifEtoc@numbered - \expandafter\Etoc@tmp\expandafter{\etocthenumber}\etocthelinkednumber - \else - \Etoc@global\let\etocthelinkednumber\@empty - \fi - \else - \Etoc@global\let\etocthelinkedname \etocthename - \Etoc@global\let\etocthelinkednumber\etocthenumber - \fi - \Etoc@global\expandafter\let\csname etoclink \endcsname \etocthelink - \Etoc@global\expandafter\let\csname etocname \endcsname \etocthename - \Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthenumber - \Etoc@global\expandafter\let\csname etocpage \endcsname \etocthepage - \ifEtoc@hyperref - \Etoc@lxyz@linktoc - \fi -} -\def\Etoc@lxyz@linktoc{% - \ifcase\Hy@linktoc - \or - \Etoc@global\expandafter\let\csname etocname \endcsname\etocthelinkedname - \Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthelinkednumber - \or % page - \Etoc@global\expandafter\let\csname etocpage \endcsname\etocthelinkedpage - \else % all - \Etoc@global\expandafter\let\csname etocname \endcsname\etocthelinkedname - \Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthelinkednumber - \Etoc@global\expandafter\let\csname etocpage \endcsname\etocthelinkedpage - \fi -} -\def\Etoc@@getnb {% - \let\Etoc@next\Etoc@getnb - \ifx\Etoc@getnb@token\@sptoken\let\Etoc@next\Etoc@getnb@nonbr\fi - \ifx\Etoc@getnb@token\bgroup \let\Etoc@next\Etoc@getnb@nonbr\fi - \Etoc@next -} -\def\Etoc@getnb #1{% - \in@{#1}{\numberline\chapternumberline\partnumberline\booknumberline}% - \ifin@ - \let\Etoc@next\Etoc@getnb@nmbrd - \else - \ifnum\Etoc@level=\m@ne - \let\Etoc@next\Etoc@@getit - \else - \let\Etoc@next\Etoc@getnb@nonbr - \fi - \in@{#1}{\nonumberline}% - \ifin@ - \let\Etoc@next\Etoc@getnb@nonumberline - \fi - \fi - \Etoc@next #1% -} -\def\Etoc@getnb@nmbrd #1#2{% - \Etoc@global\Etoc@numberedtrue - \Etoc@global\def\etocthenumber {#2}% - \Etoc@getnb@nmbrd@getname\@empty -}% -\def\Etoc@getnb@nmbrd@getname #1\hspace\etoc@ {% - \Etoc@global\expandafter\def\expandafter\etocthename\expandafter{#1}% -} -\def\Etoc@getnb@nonbr #1\etoc@ {% - \Etoc@global\Etoc@numberedfalse - \Etoc@global\let\etocthenumber \@empty -} -\def\Etoc@getnb@nonumberline #1\hspace\etoc@ {% - \Etoc@global\Etoc@numberedfalse - \Etoc@global\let\etocthenumber \@empty - \Etoc@global\expandafter\def\expandafter\etocthename\expandafter{\@gobble#1}% -} -\def\Etoc@@getit #1\hspace#2{% - \ifx\etoc@#2% - \Etoc@global\Etoc@numberedfalse - \Etoc@global\let\etocthenumber \@empty - \else - \Etoc@global\Etoc@numberedtrue - \Etoc@global\def\etocthenumber {#1}% - \expandafter\Etoc@getit@getname \expandafter\@empty - \fi -} -\def\Etoc@getit@getname #1\hspace\etoc@ {% - \Etoc@global\expandafter\def\expandafter\etocthename\expandafter{#1}% -} -\let\etocthename \@empty -\let\etocthenumber \@empty -\let\etocthepage \@empty -\let\etocthelinkedname \@empty -\let\etocthelinkednumber \@empty -\let\etocthelinkedpage \@empty -\let\etocthelink \@firstofone -\DeclareRobustCommand*{\etocname} {} -\DeclareRobustCommand*{\etocnumber}{} -\DeclareRobustCommand*{\etocpage} {} -\DeclareRobustCommand*{\etoclink} {\@firstofone} -\DeclareRobustCommand*{\etocifnumbered} - {\ifEtoc@numbered\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} -\expandafter\let\expandafter\etocxifnumbered\csname etocifnumbered \endcsname -\DeclareRobustCommand*{\etociffirst} - {\ifEtoc@isfirst\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} -\expandafter\let\expandafter\etocxiffirst\csname etociffirst \endcsname -\def\Etoc@readtoc {% - \ifeof \Etoc@tf - \else - \read \Etoc@tf to \Etoc@buffer - \Etoc@toctoks=\expandafter\expandafter\expandafter - {\expandafter\the\expandafter\Etoc@toctoks\Etoc@buffer}% - \expandafter\Etoc@readtoc - \fi -} -\Etoc@toctoks {}% (superfluous, but for clarity) -\AtBeginDocument{\IfFileExists{\jobname.toc} - {{\endlinechar=\m@ne - \makeatletter - \newread\Etoc@tf - \openin\Etoc@tf\@filef@und - \Etoc@readtoc - \global\Etoc@toctoks=\expandafter{\the\Etoc@toctoks}% - \closein\Etoc@tf}} - {\typeout{No file \jobname.toc.}}} -\def\Etoc@openouttoc{% - \ifEtoc@hyperref - \ifx\hyper@last\@undefined - \IfFileExists{\jobname .toc} - {\Hy@WarningNoLine - {old toc file detected; run LaTeX again (cheers from `etoc')}% - \global\Etoc@toctoks={}% - } - {}% - \fi - \fi - \if@filesw - \newwrite \tf@toc - \immediate \openout \tf@toc \jobname .toc\relax - \fi - \global\let\Etoc@openouttoc\empty -} -\def\Etoc@toctoc{% - \gdef\Etoc@stackofends{{-3}{}}% - \global\let\Etoc@level\Etoc@minf - \global\let\Etoc@virtualtop\Etoc@minf - \the\Etoc@toctoks - \ifEtoc@notactive - \else - \gdef\Etoc@level{-\thr@@}% - \Etoc@doendsandbegin - \fi -} -\def\Etoc@@startlocaltoc#1#2{% - \ifEtoc@localtoc - \ifnum #1=#2\relax - \global\let\etoclocaltop\Etoc@virtualtop - \Etoc@@startlocaltochook - \etoclocaltableofcontentshook - \ifEtoc@etocstyle - \etocetoclocaltocmaketitle - \fi - \ifx\Etoc@aftertitlehook\@empty - \else - \ifEtoc@localtoctotoc - \ifEtoc@ouroboros - \else - \let\Etoc@tmp\contentsline - \def\contentsline{\let\contentsline\Etoc@tmp\Etoc@gobblethreeorfour}% - \fi - \fi - \fi - \global\Etoc@notactivefalse - \fi - \fi -} -\let\etoc@startlocaltoc\@gobble -\let\Etoc@@startlocaltoc@toc\Etoc@@startlocaltoc -\let\Etoc@@startlocaltochook\@empty -\unless\ifEtoc@deeplevels - \def\etocdivisionnameatlevel#1{% - \ifcase\numexpr#1\relax - \ifdefined\c@chapter chapter\else section\fi% - \or section% - \or subsection% - \or subsubsection% - \or paragraph% - \or subparagraph% - \or empty% - \else\ifnum\numexpr#1<\m@ne - book% - \else - part% - \fi - \fi - } -\else - \def\etocdivisionnameatlevel#1{% - \ifcase\numexpr#1\relax - \ifdefined\c@chapter chapter\else section\fi% - \or section% - \or subsection% - \or subsubsection% - \or subsubsubsection% - \or subsubsubsubsection% - \or subsubsubsubsubsection% - \or subsubsubsubsubsubsection% - \or paragraph% - \or subparagraph% - \else\ifnum\numexpr#1>\z@ - empty% - \else\ifnum\numexpr#1=\m@ne - part% - \else - book% - \fi\fi - \fi - } -\fi -\def\etoclocalheadtotoc#1#2{\addcontentsline{toc}{@#1}{#2}} -\def\etocglobalheadtotoc{\addcontentsline{toc}} -\providecommand*\UseName{\@nameuse} -\def\etocetoclocaltocmaketitle{% - \UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\localcontentsname}% - \if@noskipsec\leavevmode\par\fi - \etociflocaltoctotoc - {\etocifisstarred - {}% star variant, do not add to toc - {\etoclocalheadtotoc - {\etocdivisionnameatlevel{\etoclocaltop+1}}% - {\localcontentsname}% - }% - }% - {}% -}% -\def\localcontentsname {\contentsname}% -\let\etoclocaltableofcontentshook\@empty -\if1\ifEtoc@lof0\fi\ifEtoc@lot0\fi1% -\else -\AtBeginDocument{% - \let\Etoc@originaladdcontentsline\addcontentsline - \def\addcontentsline{\Etoc@hackedaddcontentsline}% -}% -\fi -\ifEtoc@lof - \ifEtoc@lot - \def\Etoc@hackedaddcontentsline#1{% - \expanded{\noexpand\in@{.#1,}}{.lof,.lot,}% - \ifin@\expandafter\Etoc@hackedaddcontentsline@i - \else\expandafter\Etoc@originaladdcontentsline - \fi {#1}} - \else - \def\Etoc@hackedaddcontentsline#1{% - \expanded{\noexpand\in@{.#1,}}{.lof,}% - \ifin@\expandafter\Etoc@hackedaddcontentsline@i - \else\expandafter\Etoc@originaladdcontentsline - \fi {#1}} - \fi -\else - \def\Etoc@hackedaddcontentsline#1{% - \expanded{\noexpand\in@{.#1,}}{.lot,}% - \ifin@\expandafter\Etoc@hackedaddcontentsline@i - \else\expandafter\Etoc@originaladdcontentsline - \fi {#1}} -\fi -\def\Etoc@hackedaddcontentsline@i#1#2#3{% - \expanded{\noexpand\in@{.#1;#2,}}{.lof;figure,.lot;table,}% - \ifin@ - \addtocontents {toc}{% - \protect\contentsline{#2}{#3}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}% - \ifdefined\protected@file@percent\protected@file@percent\fi - }% - \fi - \Etoc@originaladdcontentsline{#1}{#2}{#3}% -} -\unless\ifdefined\expanded - \def\Etoc@hackedaddcontentsline#1{% - {\edef\Etoc@tmp{\noexpand\in@{.#1,}{\ifEtoc@lof.lof,\fi\ifEtoc@lot.lot,\fi}}\expandafter}% - \Etoc@tmp - \ifin@\expandafter\Etoc@hackedaddcontentsline@i - \else\expandafter\Etoc@originaladdcontentsline - \fi {#1}% - } - \def\Etoc@hackedaddcontentsline@i#1#2#3{% - {\edef\Etoc@tmp{\noexpand\in@{.#1;#2,}}\expandafter}% - \Etoc@tmp{.lof;figure,.lot;table,}% - \ifin@ - \addtocontents {toc}{% - \protect\contentsline{#2}{#3}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}% - \ifdefined\protected@file@percent\protected@file@percent\fi - }% - \fi - \Etoc@originaladdcontentsline{#1}{#2}{#3}% - } -\fi -\def\Etoc@@startlocallistof#1#2#3{% - \ifEtoc@localtoc - \ifnum #2=#3\relax - \global\let\etoclocaltop\Etoc@virtualtop - \global\Etoc@notactivefalse - \Etoc@@startlocaltochook - \csname etoclocallistof#1shook\endcsname - \ifEtoc@etocstyle - \csname etocetoclistof#1smaketitle\endcsname - \fi - \fi - \fi -} -\def\Etoc@@startlocallistof@setlevels#1{% - \ifnum\etoclocaltop<\z@ - \expandafter\let\csname Etoc@#1@@\endcsname\@ne - \else - \expandafter\let\csname Etoc@#1@@\expandafter\endcsname - \csname Etoc@\the\numexpr\etoclocaltop+\@ne @@\endcsname - \fi - \def\Etoc@do##1{% - \ifnum\etoclevel{##1}>\etoclocaltop - \expandafter\let\csname Etoc@##1@@\endcsname\Etoc@maxlevel - \fi}% - \Etoc@dolevels -} -\def\etoclocallistoffigureshook{\etocstandardlines} -\def\etoclocallistoftableshook {\etocstandardlines} -\def\locallistfigurename{\listfigurename} -\def\locallisttablename {\listtablename} -\def\etocetoclistoffiguresmaketitle{% - \UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\locallistfigurename}% - \ifnum\etoclocaltop>\tw@\mbox{}\par\fi - \etociflocalloftotoc - {\etocifisstarred - {}% star variant, do not add to toc - {\etoclocalheadtotoc - {\etocdivisionnameatlevel{\etoclocaltop+1}}% - {\locallistfigurename}% - }% - }% - {}% -}% -\def\etocetoclistoftablesmaketitle{% - \UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\locallisttablename}% - \ifnum\etoclocaltop>\tw@\mbox{}\par\fi - \etociflocallottotoc - {\etocifisstarred - {}% star variant, do not add to toc - {\etoclocalheadtotoc - {\etocdivisionnameatlevel{\etoclocaltop+1}}% - {\locallisttablename}% - }% - }% - {}% -}% -\let\Etoc@listofreset\@empty -\ifEtoc@lof - \def\locallistoffigures{% - \def\Etoc@listofreset{% - \let\Etoc@currext\Etoc@tocext - \let\Etoc@@startlocaltoc\Etoc@@startlocaltoc@toc - \let\Etoc@@startlocaltochook\@empty - \let\Etoc@listofreset\@empty - \let\Etoc@listofhook\@empty - }% - \let\Etoc@currext\Etoc@lofext - \def\Etoc@@startlocaltoc{\Etoc@@startlocallistof{figure}}% - \def\Etoc@@startlocaltochook{\Etoc@@startlocallistof@setlevels{figure}}% - \def\Etoc@listofhook{% - \def\Etoc@do####1{% - \expandafter\let\csname Etoc@@####1@@\endcsname\Etoc@maxlevel - }% - \Etoc@dolevels - }% - \localtableofcontents - } -\else - \def\locallistoffigures{% - \PackageError{etoc}{% - \string\locallistoffigures \on@line\space but\MessageBreak - package was loaded without `lof' option}% - {Try again with \string\usepackage[lof]{etoc}}% - } -\fi -\ifEtoc@lot - \def\locallistoftables{% - \def\Etoc@listofreset{% - \let\Etoc@currext\Etoc@tocext - \let\Etoc@@startlocaltoc\Etoc@@startlocaltoc@toc - \let\Etoc@@startlocaltochook\@empty - \let\Etoc@listofreset\@empty - \let\Etoc@listofhook\@empty - }% - \let\Etoc@currext\Etoc@lotext - \def\Etoc@@startlocaltoc{\Etoc@@startlocallistof{table}}% - \def\Etoc@@startlocaltochook{\Etoc@@startlocallistof@setlevels{table}}% - \def\Etoc@listofhook{% - \def\Etoc@do####1{% - \expandafter\let\csname Etoc@@####1@@\endcsname\Etoc@maxlevel - }% - \Etoc@dolevels - }% - \localtableofcontents - } -\else - \def\locallistoftables{% - \PackageError{etoc}{% - \string\locallistoftable \on@line\space but\MessageBreak - package was loaded without `lot' option}% - {Try again with \string\usepackage[lot]{etoc}}% - } -\fi -\def\Etoc@checkifempty {% - \global\Etoc@isemptytoctrue - \global\Etoc@stoptocfalse - \global\let\Etoc@level\Etoc@minf - \global\let\Etoc@virtualtop\Etoc@minf - \gdef\Etoc@stackofends{{-3}{}}% - \begingroup - \ifEtoc@localtoc - \def\etoc@startlocaltoc##1{% - \ifnum##1=\Etoc@tocid\relax - \global\let\etoclocaltop\Etoc@virtualtop - \Etoc@@startlocaltochook - \global\Etoc@notactivefalse - \fi - }% - \let\contentsline\Etoc@testingcontentslinelocal - \else - \let\contentsline\Etoc@testingcontentsline - \fi - \Etoc@storetocdepth - \let\Etoc@setlocaltop@doendsandbegin\@empty - \the\Etoc@toctoks - \Etoc@restoretocdepth - \endgroup -} -\DeclareRobustCommand*\etocifwasempty - {\ifEtoc@isemptytoc\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi } -\expandafter\let\expandafter\etocxifwasempty\csname etocifwasempty \endcsname -\def\Etoc@testingcontentslinelocal #1{% - \ifEtoc@stoptoc - \else - \ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel - \else - \global\expandafter\let\expandafter\Etoc@level\csname Etoc@#1@@\endcsname - \if @\@car#1\@nil\else\global\let\Etoc@virtualtop\Etoc@level\fi - \ifEtoc@notactive - \else - \ifnum\Etoc@level>\etoclocaltop - \unless\ifnum\Etoc@level>\c@tocdepth - \global\Etoc@isemptytocfalse - \global\Etoc@stoptoctrue - \fi - \else - \global\Etoc@stoptoctrue - \fi - \fi - \fi - \fi - \Etoc@gobblethreeorfour{}% -} -\def\Etoc@testingcontentsline #1{% - \ifEtoc@stoptoc - \else - \ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel - \else - \unless\ifnum\csname Etoc@#1@@\endcsname>\c@tocdepth - \global\Etoc@isemptytocfalse - \global\Etoc@stoptoctrue - \fi - \fi - \fi - \Etoc@gobblethreeorfour{}% -} -\def\Etoc@localtableofcontents#1{% - \gdef\etoclocaltop{-\@m}% - \Etoc@localtoctrue - \global\Etoc@isemptytocfalse - \edef\Etoc@tocid{#1}% - \ifnum\Etoc@tocid<\@ne - \setbox0\hbox{\ref{Unknown toc ref \@secondoftwo#1. \space Rerun LaTeX}}% - \global\Etoc@stoptoctrue - \gdef\etoclocaltop{-\thr@@}% - \Etoc@tableofcontents - \expandafter\Etoc@gobtoetoc@ - \fi - \global\Etoc@notactivetrue - \ifEtoc@checksemptiness - \Etoc@checkifempty - \fi - \ifEtoc@isemptytoc - \ifEtoc@notactive - \setbox0\hbox{\ref{Unknown toc ID \number\Etoc@tocid. \space Rerun LaTeX}}% - \global\Etoc@isemptytocfalse - \global\Etoc@stoptoctrue - \gdef\etoclocaltop{-\thr@@}% - \Etoc@tableofcontents - \expandafter\expandafter\expandafter\Etoc@gobtoetoc@ - \fi - \else - \global\Etoc@stoptocfalse - \global\Etoc@notactivetrue - \edef\etoc@startlocaltoc##1% - {\noexpand\Etoc@@startlocaltoc{##1}{\Etoc@tocid}}% - \Etoc@tableofcontents - \fi - \@gobble\etoc@ - \endgroup\ifEtoc@mustclosegroup\endgroup\fi - \Etoc@tocdepthreset - \Etoc@listofreset - \etocaftertochook -}% \Etoc@localtableofcontents -\def\Etoc@getref #1{% - \@ifundefined{r@#1} - {0} - {\expandafter\Etoc@getref@i\romannumeral-`0% - \expandafter\expandafter\expandafter - \@car\csname r@#1\endcsname0\@nil\@etoc - }% -} -\def\Etoc@getref@i#1#2\@etoc{\ifnum9<1\string#1 #1#2\else 0\fi} -\def\Etoc@ref#1{\Etoc@localtableofcontents{\Etoc@getref{#1}}} -\def\Etoc@label#1{\label{#1}\futurelet\Etoc@nexttoken\Etoc@t@bleofcontents} -\@firstofone{\def\Etoc@again} {\futurelet\Etoc@nexttoken\Etoc@t@bleofcontents} -\def\Etoc@dothis #1#2\etoc@ {\fi #1} -\def\Etoc@t@bleofcontents{% - \gdef\etoclocaltop{-\@M}% - \ifx\Etoc@nexttoken\label\Etoc@dothis{\expandafter\Etoc@label\@gobble}\fi - \ifx\Etoc@nexttoken\@sptoken\Etoc@dothis{\Etoc@again}\fi - \ifx\Etoc@nexttoken\ref\Etoc@dothis{\expandafter\Etoc@ref\@gobble}\fi - \ifEtoc@tocwithid\Etoc@dothis{\Etoc@localtableofcontents{\c@etoc@tocid}}\fi - \global\Etoc@isemptytocfalse - \ifEtoc@checksemptiness\Etoc@checkifempty\fi - \ifEtoc@isemptytoc - \ifEtoc@notocifnotoc - \expandafter\expandafter\expandafter\@gobble - \fi - \fi - \Etoc@tableofcontents - \endgroup - \ifEtoc@mustclosegroup\endgroup\fi - \Etoc@tocdepthreset - \Etoc@listofreset - \etocaftertochook - \@gobble\etoc@ - }% \Etoc@t@bleofcontents -\def\Etoc@table@fcontents{% - \refstepcounter{etoc@tocid}% - \Etoc@tocwithidfalse - \futurelet\Etoc@nexttoken\Etoc@t@bleofcontents -} -\def\Etoc@localtable@fcontents{% - \refstepcounter{etoc@tocid}% - \addtocontents{toc}{\string\etoc@startlocaltoc{\the\c@etoc@tocid}}% - \Etoc@tocwithidtrue - \futurelet\Etoc@nexttoken\Etoc@t@bleofcontents -} -\def\etoctableofcontents{% - \Etoc@openouttoc - \Etoc@tocdepthset - \begingroup - \@ifstar - {\let\Etoc@aftertitlehook\@empty\Etoc@table@fcontents} - {\def\Etoc@aftertitlehook{\etocaftertitlehook}\Etoc@table@fcontents}% -}% \etoctableofcontents -\def\etocifisstarred{\ifx\Etoc@aftertitlehook\@empty - \expandafter\@firstoftwo\else - \expandafter\@secondoftwo - \fi} -\let\etocoriginaltableofcontents\tableofcontents -\let\tableofcontents\etoctableofcontents -\let\Etoc@listofhook\@empty -\newcommand*\localtableofcontents{% - \Etoc@openouttoc - \Etoc@tocdepthset - \begingroup - \Etoc@listofhook - \@ifstar - {\let\Etoc@aftertitlehook\@empty\Etoc@localtable@fcontents} - {\def\Etoc@aftertitlehook{\etocaftertitlehook}\Etoc@localtable@fcontents}% -}% \localtableofcontents -\newcommand*\localtableofcontentswithrelativedepth[1]{% - \def\Etoc@@startlocaltochook{% - \global\c@tocdepth\numexpr\etoclocaltop+#1\relax - }% - \def\Etoc@listofreset{\let\Etoc@@startlocaltochook\@empty - \let\Etoc@listofreset\@empty}% - \localtableofcontents -}% \localtableofcontentswithrelativedepth -\newcommand\etocsettocstyle[2]{% - \Etoc@etocstylefalse - \Etoc@classstylefalse - \def\Etoc@tableofcontents@user@before{#1}% - \def\Etoc@tableofcontents@user@after {#2}% -}% -\def\etocstoretocstyleinto#1{% -%% \@ifdefinable#1{% - \edef#1{\noexpand\Etoc@etocstylefalse\noexpand\Etoc@classstylefalse - \def\noexpand\Etoc@tableofcontents@user@before{% - \unexpanded\expandafter{\Etoc@tableofcontents@user@before}% - }% - \def\noexpand\Etoc@tableofcontents@user@after{% - \unexpanded\expandafter{\Etoc@tableofcontents@user@after}% - }% - }% -%% }% -}% -\def\Etoc@tableofcontents {% - \Etoc@tableofcontents@etoc@before - \ifEtoc@localtoc\ifEtoc@etocstyle\expandafter\expandafter\expandafter\@gobble\fi\fi - \Etoc@tableofcontents@user@before - \Etoc@tableofcontents@contents - \ifEtoc@localtoc\ifEtoc@etocstyle\expandafter\expandafter\expandafter\@gobble\fi\fi - \Etoc@tableofcontents@user@after - \Etoc@tableofcontents@etoc@after - \@gobble\etoc@ -} -\def\Etoc@tableofcontents@etoc@before{% - \ifnum\c@tocdepth>\Etoc@minf - \else - \expandafter\Etoc@gobtoetoc@ - \fi - \Etoc@par - \Etoc@beforetitlehook - \etocbeforetitlehook - \Etoc@storetocdepth - \let\Etoc@savedcontentsline\contentsline - \let\contentsline\Etoc@etoccontentsline - \ifEtoc@standardlines - \else - \def\Etoc@do##1{% - \expandafter\def\csname etocsaved##1tocline\endcsname - {\PackageError{etoc}{% - \expandafter\string\csname etocsaved##1tocline\endcsname\space - has been deprecated\MessageBreak - at 1.1a and is removed at 1.2.\MessageBreak - Use \expandafter\string\csname l@##1\endcsname\space directly.\MessageBreak - Reported \on@line}% - {I will use \expandafter\string - \csname l@##1\endcsname\space myself for this time.% - }% - \csname l@##1\endcsname - }% - }% - \Etoc@dolevels - \fi -}% -\def\Etoc@tableofcontents@contents{% - \Etoc@tocdepthset - \ifEtoc@parskip\parskip\z@skip\fi - \Etoc@aftertitlehook - \gdef\etoclocaltop{-\thr@@}% - \Etoc@toctoc - \etocaftercontentshook -}% -\def\Etoc@tableofcontents@etoc@after{% - \@nobreakfalse - \Etoc@restoretocdepth - \ifx\Etoc@global\global - \@ifundefined{tof@finish} - {} - {\ifx\tof@finish\@empty - \else - \global\let\contentsline\Etoc@savedcontentsline - \fi - }% - \fi -} -\def\etocsetstyle#1{\ifcsname Etoc@#1@@\endcsname - \expandafter\Etoc@setstyle@a - \else - \expandafter\Etoc@setstyle@error - \fi {#1}% -} -\def\Etoc@setstyle@error #1{% - \PackageWarning{etoc}{`#1' is unknown to etoc. \space Did you\MessageBreak - forget some \string\etocsetlevel{#1}{}?\MessageBreak - Reported}% - \@gobblefour -} -\def\Etoc@setstyle@a #1{% - \edef\Etoc@tmp{\the\numexpr\csname Etoc@#1@@\endcsname}% - \if1\unless\ifnum\Etoc@tmp<\Etoc@maxlevel 0\fi - \unless\ifnum\Etoc@tmp>\Etoc@minf 0\fi1% - \Etoc@standardlinesfalse - \expandafter\Etoc@setstyle@b\expandafter\Etoc@tmp - \else - \ifnum\Etoc@tmp=\Etoc@maxlevel - \in@{.#1,}{.figure,.table,}% - \ifin@ - \PackageWarning{etoc} - {You can not use \string\etocsetstyle\space with `#1'.\MessageBreak - Check the package documentation (in particular about\MessageBreak - \string\etoclocallistoffigureshook/\string\etoclocallistoftableshook)% - \MessageBreak on how to customize - figure and table entries in local\MessageBreak lists. Reported}% - \else - \PackageInfo{etoc} - {Attempt to set the style of `#1',\MessageBreak - whose level is currently the maximal one \etocthemaxlevel,\MessageBreak - which is never displayed. \space This will be ignored\MessageBreak - but note that we do quit compatibility mode.\MessageBreak - Reported}% - \Etoc@standardlinesfalse - \fi - \else - \PackageWarning{etoc}{This should not happen. Reported}% - \fi - \expandafter\@gobblefour - \fi -} -\long\def\Etoc@setstyle@b#1#2#3#4#5{% - \expandafter\def\csname Etoc@begin@#1\endcsname {#2}% - \expandafter\def\csname Etoc@prefix@#1\endcsname {#3}% - \expandafter\def\csname Etoc@contents@#1\endcsname {#4}% - \expandafter\def\csname Etoc@end@#1\endcsname {#5}% -} -\def\Etoc@setstyle@e#1{% - \expandafter\let\csname Etoc@begin@#1\endcsname \@empty - \expandafter\let\csname Etoc@prefix@#1\endcsname \@empty - \expandafter\let\csname Etoc@contents@#1\endcsname \@empty - \expandafter\let\csname Etoc@end@#1\endcsname \@empty -} -\def\Etoc@storelines@a#1{% - \noexpand\Etoc@setstyle@b{#1}% - {\expandafter\Etoc@expandonce\csname Etoc@begin@#1\endcsname}% - {\expandafter\Etoc@expandonce\csname Etoc@prefix@#1\endcsname}% - {\expandafter\Etoc@expandonce\csname Etoc@contents@#1\endcsname}% - {\expandafter\Etoc@expandonce\csname Etoc@end@#1\endcsname}% -} -\def\Etoc@expandonce#1{\unexpanded\expandafter{#1}} -\def\etocstorelinestylesinto#1{% - \edef#1{\Etoc@storelines@a{-2}\Etoc@storelines@a{-1}\Etoc@storelines@a{0}% - \Etoc@storelines@a {1}\Etoc@storelines@a {2}\Etoc@storelines@a{3}% - \Etoc@storelines@a {4}\Etoc@storelines@a {5}% - \ifEtoc@deeplevels - \Etoc@storelines@a{6}\Etoc@storelines@a{7}\Etoc@storelines@a{8}% - \Etoc@storelines@a{9}\Etoc@storelines@a{10}\Etoc@storelines@a{11}% - \fi - }% -} -\def\etocstorethislinestyleinto#1#2{% - \edef#2{\expandafter\Etoc@storelines@a\expandafter{\number\etoclevel{#1}}}% -}% -\def\etocfontminustwo {\normalfont \LARGE \bfseries} -\def\etocfontminusone {\normalfont \large \bfseries} -\def\etocfontzero {\normalfont \large \bfseries} -\def\etocfontone {\normalfont \normalsize \bfseries} -\def\etocfonttwo {\normalfont \normalsize} -\def\etocfontthree {\normalfont \footnotesize} -\def\etocsepminustwo {4ex \@plus .5ex \@minus .5ex} -\def\etocsepminusone {4ex \@plus .5ex \@minus .5ex} -\def\etocsepzero {2.5ex \@plus .4ex \@minus .4ex} -\def\etocsepone {1.5ex \@plus .3ex \@minus .3ex} -\def\etocseptwo {.5ex \@plus .1ex \@minus .1ex} -\def\etocsepthree {.25ex \@plus .05ex \@minus .05ex} -\def\etocbaselinespreadminustwo {1} -\def\etocbaselinespreadminusone {1} -\def\etocbaselinespreadzero {1} -\def\etocbaselinespreadone {1} -\def\etocbaselinespreadtwo {1} -\def\etocbaselinespreadthree {.9} -\def\etocminustwoleftmargin {1.5em plus 0.5fil} -\def\etocminustworightmargin {1.5em plus -0.5fil} -\def\etocminusoneleftmargin {1em} -\def\etocminusonerightmargin {1em} -\def\etoctoclineleaders - {\hbox{\normalfont\normalsize\hb@xt@2ex {\hss.\hss}}} -\def\etocabbrevpagename {p.~} -\def\etocpartname {Part} -\def\etocbookname {Book} -\def\etocdefaultlines{% - \Etoc@standardlinesfalse - \etocdefaultlines@setbook - \etocdefaultlines@setpart - \etocdefaultlines@setchapter - \etocdefaultlines@setsection - \etocdefaultlines@setsubsection - \etocdefaultlines@setsubsubsection - \etocdefaultlines@setdeeperones -} -\def\etocnoprotrusion{\leavevmode\kern-\p@\kern\p@} -\@ifclassloaded{memoir}{% - \def\etocdefaultlines@setbook{% - \Etoc@setstyle@b - {-2}% - {\addpenalty\@M\etocskipfirstprefix} - {\addpenalty\@secpenalty} - {\begingroup - \etocfontminustwo - \addvspace{\etocsepminustwo}% - \parindent \z@ - \leftskip \etocminustwoleftmargin - \rightskip \etocminustworightmargin - \parfillskip \@flushglue - \vbox{\etocifnumbered{\etoclink{\etocbookname\enspace\etocthenumber:\quad}}{}% - \etocname - \baselineskip\etocbaselinespreadminustwo\baselineskip - \par}% - \addpenalty\@M\addvspace{\etocsepminusone}% - \endgroup} - {}% - } - }{\let\etocdefaultlines@setbook\@empty} -\def\etocdefaultlines@setpart{% -\Etoc@setstyle@b - {-1}% - {\addpenalty\@M\etocskipfirstprefix} - {\addpenalty\@secpenalty} - {\begingroup - \etocfontminusone - \addvspace{\etocsepminusone}% - \parindent \z@ - \leftskip \etocminusoneleftmargin - \rightskip \etocminusonerightmargin - \parfillskip \@flushglue - \vbox{\etocifnumbered{\etoclink{\etocpartname\enspace\etocthenumber.\quad}}{}% - \etocname - \baselineskip\etocbaselinespreadminusone\baselineskip - \par}% - \addpenalty\@M\addvspace{\etocsepzero}% - \endgroup} - {}% -} -\def\etocdefaultlines@setchapter{% -\Etoc@setstyle@b - {0}% - {\addpenalty\@M\etocskipfirstprefix} - {\addpenalty\@itempenalty} - {\begingroup - \etocfontzero - \addvspace{\etocsepzero}% - \parindent \z@ \parfillskip \@flushglue - \vbox{\etocifnumbered{\etocnumber.\enspace}{}\etocname - \baselineskip\etocbaselinespreadzero\baselineskip - \par}% - \endgroup} - {\addpenalty{-\@highpenalty}\addvspace{\etocsepminusone}}% -} -\def\etocdefaultlines@setsection{% -\Etoc@setstyle@b - {1}% - {\addpenalty\@M\etocskipfirstprefix} - {\addpenalty\@itempenalty} - {\begingroup - \etocfontone - \addvspace{\etocsepone}% - \parindent \z@ \parfillskip \z@ - \setbox\z@\vbox{\parfillskip\@flushglue - \etocname\par - \setbox\tw@\lastbox - \global\setbox\@ne\hbox{\unhbox\tw@\ }}% - \dimen\z@=\wd\@ne - \setbox\z@=\etoctoclineleaders - \advance\dimen\z@\wd\z@ - \etocifnumbered - {\setbox\tw@\hbox{\etocnumber, \etocabbrevpagename\etocpage\etocnoprotrusion}} - {\setbox\tw@\hbox{\etocabbrevpagename\etocpage\etocnoprotrusion}}% - \advance\dimen\z@\wd\tw@ - \ifdim\dimen\z@ < \linewidth - \vbox{\etocname~% - \leaders\box\z@\hfil\box\tw@ - \baselineskip\etocbaselinespreadone\baselineskip - \par}% - \else - \vbox{\etocname~% - \leaders\copy\z@\hfil\break - \hbox{}\leaders\box\z@\hfil\box\tw@ - \baselineskip\etocbaselinespreadone\baselineskip - \par}% - \fi - \endgroup} - {\addpenalty\@secpenalty\addvspace{\etocsepzero}}% -} -\def\etocdefaultlines@setsubsection{% -\Etoc@setstyle@b - {2}% - {\addpenalty\@medpenalty\etocskipfirstprefix} - {\addpenalty\@itempenalty} - {\begingroup - \etocfonttwo - \addvspace{\etocseptwo}% - \parindent \z@ \parfillskip \z@ - \setbox\z@\vbox{\parfillskip\@flushglue - \etocname\par\setbox\tw@\lastbox - \global\setbox\@ne\hbox{\unhbox\tw@}}% - \dimen\z@=\wd\@ne - \setbox\z@=\etoctoclineleaders - \advance\dimen\z@\wd\z@ - \etocifnumbered - {\setbox\tw@\hbox{\etocnumber, \etocabbrevpagename\etocpage\etocnoprotrusion}} - {\setbox\tw@\hbox{\etocabbrevpagename\etocpage\etocnoprotrusion}}% - \advance\dimen\z@\wd\tw@ - \ifdim\dimen\z@ < \linewidth - \vbox{\etocname~% - \leaders\box\z@\hfil\box\tw@ - \baselineskip\etocbaselinespreadtwo\baselineskip - \par}% - \else - \vbox{\etocname~% - \leaders\copy\z@\hfil\break - \hbox{}\leaders\box\z@\hfil\box\tw@ - \baselineskip\etocbaselinespreadtwo\baselineskip - \par}% - \fi - \endgroup} - {\addpenalty\@secpenalty\addvspace{\etocsepone}}% -} -\def\etocdefaultlines@setsubsubsection{% -\Etoc@setstyle@b - {3}% - {\addpenalty\@M - \etocfontthree - \vspace{\etocsepthree}% - \noindent - \etocskipfirstprefix} - {\allowbreak\,--\,} - {\etocname} - {.\hfil - \begingroup - \baselineskip\etocbaselinespreadthree\baselineskip - \par - \endgroup - \addpenalty{-\@highpenalty}} -} -\def\etocdefaultlines@setdeeperones{% -\Etoc@setstyle@e{4}% -\Etoc@setstyle@e{5}% -\ifEtoc@deeplevels - \Etoc@setstyle@e{6}% - \Etoc@setstyle@e{7}% - \Etoc@setstyle@e{8}% - \Etoc@setstyle@e{9}% - \Etoc@setstyle@e{10}% - \Etoc@setstyle@e{11}% -\fi -} -\def\etocabovetocskip{3.5ex \@plus 1ex \@minus .2ex} -\def\etocbelowtocskip{3.5ex \@plus 1ex \@minus .2ex} -\def\etoccolumnsep{2em} -\def\etocmulticolsep{0ex} -\def\etocmulticolpretolerance{-1} -\def\etocmulticoltolerance{200} -\def\etocdefaultnbcol{2} -\def\etocinnertopsep{2ex} -\newcommand\etocmulticolstyle[2][\etocdefaultnbcol]{% -\etocsettocstyle - {\let\etocoldpar\par - \addvspace{\etocabovetocskip}% - \ifnum #1>\@ne - \expandafter\@firstoftwo - \else \expandafter\@secondoftwo - \fi - {\multicolpretolerance\etocmulticolpretolerance - \multicoltolerance\etocmulticoltolerance - \setlength{\columnsep}{\etoccolumnsep}% - \setlength{\multicolsep}{\etocmulticolsep}% - \begin{multicols}{#1}[#2\etocoldpar\addvspace{\etocinnertopsep}]} - {#2\ifvmode\else\begingroup\interlinepenalty\@M\parskip\z@skip - \@@par\endgroup - \fi - \nobreak\addvspace{\etocinnertopsep}% - \pretolerance\etocmulticolpretolerance - \tolerance\etocmulticoltolerance}% - }% - {\ifnum #1>\@ne - \expandafter\@firstofone - \else \expandafter\@gobble - \fi - {\end{multicols}}% - \addvspace{\etocbelowtocskip}}% -} -\def\etocinnerbottomsep{3.5ex} -\def\etocinnerleftsep{2em} -\def\etocinnerrightsep{2em} -\def\etoctoprule{\hrule} -\def\etocleftrule{\vrule} -\def\etocrightrule{\vrule} -\def\etocbottomrule{\hrule} -\def\etoctoprulecolorcmd{\relax} -\def\etocbottomrulecolorcmd{\relax} -\def\etocleftrulecolorcmd{\relax} -\def\etocrightrulecolorcmd{\relax} -\def\etoc@ruledheading #1{% - \hb@xt@\linewidth{\color@begingroup - \hss #1\hss\hskip-\linewidth - \etoctoprulecolorcmd\leaders\etoctoprule\hss - \phantom{#1}% - \leaders\etoctoprule\hss\color@endgroup}% - \nointerlineskip\nobreak\vskip\etocinnertopsep} -\newcommand*\etocruledstyle[2][\etocdefaultnbcol]{% -\etocsettocstyle - {\addvspace{\etocabovetocskip}% - \ifnum #1>\@ne - \expandafter\@firstoftwo - \else \expandafter\@secondoftwo - \fi - {\multicolpretolerance\etocmulticolpretolerance - \multicoltolerance\etocmulticoltolerance - \setlength{\columnsep}{\etoccolumnsep}% - \setlength{\multicolsep}{\etocmulticolsep}% - \begin{multicols}{#1}[\etoc@ruledheading{#2}]} - {\etoc@ruledheading{#2}% - \pretolerance\etocmulticolpretolerance - \tolerance\etocmulticoltolerance}} - {\ifnum #1>\@ne\expandafter\@firstofone - \else \expandafter\@gobble - \fi - {\end{multicols}}% - \addvspace{\etocbelowtocskip}}} -\def\etocframedmphook{\relax} -\long\def\etocbkgcolorcmd{\relax} -\long\def\Etoc@relax{\relax} -\newbox\etoc@framed@titlebox -\newbox\etoc@framed@contentsbox -\newcommand*\etocframedstyle[2][\etocdefaultnbcol]{% -\etocsettocstyle{% - \addvspace{\etocabovetocskip}% - \sbox\z@{#2}% - \dimen\z@\dp\z@ - \ifdim\wd\z@<\linewidth \dp\z@\z@ \else \dimen\z@\z@ \fi - \setbox\etoc@framed@titlebox=\hb@xt@\linewidth{\color@begingroup - \hss - \ifx\etocbkgcolorcmd\Etoc@relax - \else - \sbox\tw@{\color{white}% - \vrule\@width\wd\z@\@height\ht\z@\@depth\dimen\z@}% - \ifdim\wd\z@<\linewidth \dp\tw@\z@\fi - \box\tw@ - \hskip-\wd\z@ - \fi - \copy\z@ - \hss - \hskip-\linewidth - \etoctoprulecolorcmd\leaders\etoctoprule\hss - \hskip\wd\z@ - \etoctoprulecolorcmd\leaders\etoctoprule\hss\color@endgroup}% - \setbox\z@\hbox{\etocleftrule\etocrightrule}% - \dimen\tw@\linewidth\advance\dimen\tw@-\wd\z@ - \advance\dimen\tw@-\etocinnerleftsep - \advance\dimen\tw@-\etocinnerrightsep - \setbox\etoc@framed@contentsbox=\vbox\bgroup - \hsize\dimen\tw@ - \kern\dimen\z@ - \vskip\etocinnertopsep - \hbox\bgroup - \begin{minipage}{\hsize}% - \etocframedmphook - \ifnum #1>\@ne - \expandafter\@firstoftwo - \else \expandafter\@secondoftwo - \fi - {\multicolpretolerance\etocmulticolpretolerance - \multicoltolerance\etocmulticoltolerance - \setlength{\columnsep}{\etoccolumnsep}% - \setlength{\multicolsep}{\etocmulticolsep}% - \begin{multicols}{#1}} - {\pretolerance\etocmulticolpretolerance - \tolerance\etocmulticoltolerance}} - {\ifnum #1>\@ne\expandafter\@firstofone - \else \expandafter\@gobble - \fi - {\end{multicols}\unskip }% - \end{minipage}% - \egroup - \vskip\etocinnerbottomsep - \egroup - \vbox{\hsize\linewidth - \ifx\etocbkgcolorcmd\Etoc@relax - \else - \kern\ht\etoc@framed@titlebox - \kern\dp\etoc@framed@titlebox - \hb@xt@\linewidth{\color@begingroup - \etocleftrulecolorcmd\etocleftrule - \etocbkgcolorcmd - \leaders\vrule - \@height\ht\etoc@framed@contentsbox - \@depth\dp\etoc@framed@contentsbox - \hss - \etocrightrulecolorcmd\etocrightrule - \color@endgroup}\nointerlineskip - \vskip-\dp\etoc@framed@contentsbox - \vskip-\ht\etoc@framed@contentsbox - \vskip-\dp\etoc@framed@titlebox - \vskip-\ht\etoc@framed@titlebox - \fi - \box\etoc@framed@titlebox\nointerlineskip - \hb@xt@\linewidth{\color@begingroup - {\etocleftrulecolorcmd\etocleftrule}% - \hss\box\etoc@framed@contentsbox\hss - \etocrightrulecolorcmd\etocrightrule\color@endgroup} - \nointerlineskip - \vskip\ht\etoc@framed@contentsbox - \vskip\dp\etoc@framed@contentsbox - \hb@xt@\linewidth{\color@begingroup\etocbottomrulecolorcmd - \leaders\etocbottomrule\hss\color@endgroup}} - \addvspace{\etocbelowtocskip}}} -\newcommand\etoc@multicoltoc[2][\etocdefaultnbcol]{% - \etocmulticolstyle[#1]{#2}% - \tableofcontents} -\newcommand\etoc@multicoltoci[2][\etocdefaultnbcol]{% - \etocmulticolstyle[#1]{#2}% - \tableofcontents*} -\newcommand\etoc@local@multicoltoc[2][\etocdefaultnbcol]{% - \etocmulticolstyle[#1]{#2}% - \localtableofcontents} -\newcommand\etoc@local@multicoltoci[2][\etocdefaultnbcol]{% - \etocmulticolstyle[#1]{#2}% - \localtableofcontents*} -\newcommand*\etoc@ruledtoc[2][\etocdefaultnbcol]{% - \etocruledstyle[#1]{#2}% - \tableofcontents} -\newcommand*\etoc@ruledtoci[2][\etocdefaultnbcol]{% - \etocruledstyle[#1]{#2}% - \tableofcontents*} -\newcommand*\etoc@local@ruledtoc[2][\etocdefaultnbcol]{% - \etocruledstyle[#1]{#2}% - \localtableofcontents} -\newcommand*\etoc@local@ruledtoci[2][\etocdefaultnbcol]{% - \etocruledstyle[#1]{#2}% - \localtableofcontents*} -\newcommand*\etoc@framedtoc[2][\etocdefaultnbcol]{% - \etocframedstyle[#1]{#2}% - \tableofcontents} -\newcommand*\etoc@framedtoci[2][\etocdefaultnbcol]{% - \etocframedstyle[#1]{#2}% - \tableofcontents*} -\newcommand*\etoc@local@framedtoc[2][\etocdefaultnbcol]{% - \etocframedstyle[#1]{#2}% - \localtableofcontents} -\newcommand*\etoc@local@framedtoci[2][\etocdefaultnbcol]{% - \etocframedstyle[#1]{#2}% - \localtableofcontents*} -\def\etocmulticol{\begingroup - \Etoc@mustclosegrouptrue - \@ifstar - {\etoc@multicoltoci} - {\etoc@multicoltoc}} -\def\etocruled{\begingroup - \Etoc@mustclosegrouptrue - \@ifstar - {\etoc@ruledtoci} - {\etoc@ruledtoc}} -\def\etocframed{\begingroup - \Etoc@mustclosegrouptrue - \@ifstar - {\etoc@framedtoci} - {\etoc@framedtoc}} -\def\etoclocalmulticol{\begingroup - \Etoc@mustclosegrouptrue - \@ifstar - {\etoc@local@multicoltoci} - {\etoc@local@multicoltoc}} -\def\etoclocalruled{\begingroup - \Etoc@mustclosegrouptrue - \@ifstar - {\etoc@local@ruledtoci} - {\etoc@local@ruledtoc}} -\def\etoclocalframed{\begingroup - \Etoc@mustclosegrouptrue - \@ifstar - {\etoc@local@framedtoci} - {\etoc@local@framedtoc}} -\def\etocmemoirtoctotocfmt #1#2{% - \PackageWarning{etoc} - {\string\etocmemoirtoctotocfmt\space is deprecated.\MessageBreak - Use in its place \string\etocsettoclineforclasstoc,\MessageBreak - and \string\etocsettoclineforclasslistof{toc} (or {lof}, {lot}). - I will do this now.\MessageBreak - Reported}% - \etocsettoclineforclasstoc{#1}{#2}% - \etocsettoclineforclasslistof{toc}{#1}{#2}% -} -\def\etocsettoclineforclasstoc #1#2{% - \def\etocclassmaintocaddtotoc{\etocglobalheadtotoc{#1}{#2}}% -} -\def\etocsettoclineforclasslistof #1#2#3{% - \@namedef{etocclasslocal#1addtotoc}{\etoclocalheadtotoc{#2}{#3}}% -} -\let\etocclasslocaltocaddtotoc\@empty -\let\etocclasslocallofaddtotoc\@empty -\let\etocclasslocallotaddtotoc\@empty -\ifdefined\c@chapter - \def\etocclasslocaltocmaketitle{\section*{\localcontentsname}} - \def\etocclasslocallofmaketitle{\section*{\locallistfigurename}} - \def\etocclasslocallotmaketitle{\section*{\locallisttablename}} - \etocsettoclineforclasstoc {chapter}{\contentsname} - \etocsettoclineforclasslistof{toc}{section}{\localcontentsname} - \etocsettoclineforclasslistof{lof}{section}{\locallistfigurename} - \etocsettoclineforclasslistof{lot}{section}{\locallisttablename} -\else - \def\etocclasslocaltocmaketitle{\subsection*{\localcontentsname}}% - \def\etocclasslocallofmaketitle{\subsection*{\locallistfigurename}}% - \def\etocclasslocallotmaketitle{\subsection*{\locallisttablename}}% - \etocsettoclineforclasstoc {section}{\contentsname} - \etocsettoclineforclasslistof{toc}{subsection}{\localcontentsname} - \etocsettoclineforclasslistof{lof}{subsection}{\locallistfigurename} - \etocsettoclineforclasslistof{lot}{subsection}{\locallisttablename} -\fi -\def\etocclasslocalperhapsaddtotoc #1{% - \etocifisstarred - {} - {\csname ifEtoc@local#1totoc\endcsname - \csname etocclasslocal#1addtotoc\endcsname - \fi - }% -} -\def\etocarticlestyle{% - \etocsettocstyle - {\ifEtoc@localtoc - \@nameuse{etocclasslocal\Etoc@currext maketitle}% - \etocclasslocalperhapsaddtotoc\Etoc@currext - \else - \section *{\contentsname - \@mkboth {\MakeUppercase \contentsname} - {\MakeUppercase \contentsname}}% - \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}% - \fi - } - {}% -} -\def\etocarticlestylenomarks{% - \etocsettocstyle - {\ifEtoc@localtoc - \@nameuse{etocclasslocal\Etoc@currext maketitle}% - \etocclasslocalperhapsaddtotoc\Etoc@currext - \else - \section *{\contentsname}% - \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}% - \fi - } - {}% -} -\def\etocbookstyle{% - \etocsettocstyle - {\if@twocolumn \@restonecoltrue \onecolumn \else \@restonecolfalse \fi - \ifEtoc@localtoc - \@nameuse{etocclasslocal\Etoc@currext maketitle}% - \etocclasslocalperhapsaddtotoc\Etoc@currext - \else - \chapter *{\contentsname - \@mkboth {\MakeUppercase \contentsname} - {\MakeUppercase \contentsname}}% - \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}% - \fi - }% - {\if@restonecol \twocolumn \fi}% -} -\def\etocbookstylenomarks{% - \etocsettocstyle - {\if@twocolumn \@restonecoltrue \onecolumn \else \@restonecolfalse \fi - \ifEtoc@localtoc - \@nameuse{etocclasslocal\Etoc@currext maketitle}% - \etocclasslocalperhapsaddtotoc\Etoc@currext - \else - \chapter *{\contentsname}% - \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}% - \fi - }% - {\if@restonecol \twocolumn \fi}% -} -\let\etocreportstyle\etocbookstyle -\let\etocreportstylenomarks\etocbookstylenomarks -\def\etocmemoirstyle{% - \etocsettocstyle - {\ensureonecol \par \begingroup \phantomsection - \ifx\Etoc@aftertitlehook\@empty - \else - \ifmem@em@starred@listof - \else - \ifEtoc@localtoc - \etocclasslocalperhapsaddtotoc\Etoc@currext - \else - \ifEtoc@maintoctotoc - \etocclassmaintocaddtotoc - \fi - \fi - \fi - \fi - \ifEtoc@localtoc - \@namedef{@\Etoc@currext maketitle}{% - \@nameuse{etocclasslocal\Etoc@currext maketitle}% - }% - \fi - \@nameuse {@\Etoc@currext maketitle} %<< space token here from memoir code - \ifx\Etoc@aftertitlehook\@empty - \else - \Etoc@aftertitlehook \let \Etoc@aftertitlehook \relax - \fi - \parskip \cftparskip \@nameuse {cft\Etoc@currext beforelisthook}% - }% - {\@nameuse {cft\Etoc@currext afterlisthook}% - \endgroup\restorefromonecol - }% -} -\let\Etoc@beforetitlehook\@empty -\if1\@ifclassloaded{scrartcl}0{\@ifclassloaded{scrbook}0{\@ifclassloaded{scrreprt}01}}% -\expandafter\@gobble -\else - \ifdefined\setuptoc - \def\Etoc@beforetitlehook{% - \ifEtoc@localtoc - \etocclasslocalperhapsaddtotoc\Etoc@currext - \setuptoc{\Etoc@currext}{leveldown}% - \else - \etocifisstarred{}{\etocifmaintoctotoc{\setuptoc{toc}{totoc}}}% - \fi - }% - \fi -\expandafter\@firstofone -\fi -{\def\etocclasslocalperhapsaddtotoc #1{% - \etocifisstarred - {}% - {\csname ifEtoc@local#1totoc\endcsname - \setuptoc{\Etoc@currext}{totoc}% - \fi - }% - }% -} -\ifdefined\Iftocfeature - \def\etoc@Iftocfeature{\Iftocfeature}% -\else - \def\etoc@Iftocfeature{\iftocfeature}% -\fi -\def\etocscrartclstyle{% - \etocsettocstyle - {\ifx\Etoc@currext\Etoc@tocext - \expandafter\@firstofone - \else - \expandafter\@gobble - \fi - {\let\if@dynlist\if@tocleft}% - \edef\@currext{\Etoc@currext}% - \@ifundefined{listof\@currext name}% - {\def\list@fname{\listofname~\@currext}}% - {\expandafter\let\expandafter\list@fname - \csname listof\@currext name\endcsname}% - \etoc@Iftocfeature {\@currext}{onecolumn} - {\etoc@Iftocfeature {\@currext}{leveldown} - {} - {\if@twocolumn \aftergroup \twocolumn \onecolumn \fi }} - {}% - \etoc@Iftocfeature {\@currext}{numberline}% - {\def \nonumberline {\numberline {}}}{}% - \expandafter\tocbasic@listhead\expandafter {\list@fname}% - \begingroup \expandafter \expandafter \expandafter - \endgroup \expandafter - \ifx - \csname microtypesetup\endcsname \relax - \else - \etoc@Iftocfeature {\@currext}{noprotrusion}{} - {\microtypesetup {protrusion=false}% - \PackageInfo {tocbasic}% - {character protrusion at \@currext\space deactivated}}% - \fi - \etoc@Iftocfeature{\@currext}{noparskipfake}{}{% - \ifvmode \@tempskipa\lastskip \vskip-\lastskip - \addtolength{\@tempskipa}{\parskip}\vskip\@tempskipa\fi - }% - \setlength {\parskip }{\z@ }% - \setlength {\parindent }{\z@ }% - \setlength {\parfillskip }{\z@ \@plus 1fil}% - \csname tocbasic@@before@hook\endcsname - \csname tb@\@currext @before@hook\endcsname - }% end of before_toc - {% start of after_toc - \providecommand\tocbasic@end@toc@file{}\tocbasic@end@toc@file - \edef\@currext{\Etoc@currext}% - \csname tb@\@currext @after@hook\endcsname - \csname tocbasic@@after@hook\endcsname - }% end of after_toc -} -\let\etocscrbookstyle\etocscrartclstyle -\let\etocscrreprtstyle\etocscrartclstyle -\def\etocclasstocstyle{\etocarticlestyle} -\newcommand*\etocmarkboth[1]{% - \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}} -\newcommand*\etocmarkbothnouc[1]{\@mkboth{#1}{#1}} -\newcommand\etoctocstyle[3][section]{\etocmulticolstyle[#2]% - {\csname #1\endcsname *{#3}}} -\newcommand\etoctocstylewithmarks[4][section]{\etocmulticolstyle[#2]% - {\csname #1\endcsname *{#3\etocmarkboth{#4}}}} -\newcommand\etoctocstylewithmarksnouc[4][section]{\etocmulticolstyle[#2]% - {\csname #1\endcsname *{#3\etocmarkbothnouc{#4}}}} -\def\Etoc@redefetocstylesforchapters{% - \renewcommand\etoctocstylewithmarks[4][chapter]{% - \etocmulticolstyle[##2]{\csname ##1\endcsname *{##3\etocmarkboth{##4}}}% - } - \renewcommand\etoctocstylewithmarksnouc[4][chapter]{% - \etocmulticolstyle[##2]{\csname ##1\endcsname *{##3\etocmarkbothnouc{##4}}}% - } - \renewcommand\etoctocstyle[3][chapter]{% - \etocmulticolstyle[##2]{\csname ##1\endcsname *{##3}} - } -} -\@ifclassloaded{scrartcl} - {\renewcommand*\etocclasstocstyle{\etocscrartclstyle}}{} -\@ifclassloaded{book} - {\renewcommand*\etocfontone{\normalfont\normalsize} - \renewcommand*\etocclasstocstyle{\etocbookstyle} - \Etoc@redefetocstylesforchapters}{} -\@ifclassloaded{report} - {\renewcommand*\etocfontone{\normalfont\normalsize} - \renewcommand*\etocclasstocstyle{\etocreportstyle} - \Etoc@redefetocstylesforchapters}{} -\@ifclassloaded{scrbook} - {\renewcommand*\etocfontone{\normalfont\normalsize} - \renewcommand*\etocclasstocstyle{\etocscrbookstyle} - \Etoc@redefetocstylesforchapters}{} -\@ifclassloaded{scrreprt} - {\renewcommand*\etocfontone{\normalfont\normalsize} - \renewcommand*\etocclasstocstyle{\etocscrreprtstyle} - \Etoc@redefetocstylesforchapters}{} -\@ifclassloaded{memoir} - {\renewcommand*\etocfontone{\normalfont\normalsize} - \renewcommand*\etocclasstocstyle{\etocmemoirstyle} - \Etoc@redefetocstylesforchapters}{} -\def\etoctocloftstyle {% - \etocsettocstyle{% - \@cfttocstart - \par - \begingroup - \parindent\z@ \parskip\cftparskip - \@nameuse{@cftmake\Etoc@currext title}% - \ifEtoc@localtoc - \etoctocloftlocalperhapsaddtotoc\Etoc@currext - \else - \etocifisstarred {}{\ifEtoc@maintoctotoc\@cftdobibtoc\fi}% - \fi - }% - {% - \endgroup - \@cfttocfinish - }% -} -\def\etoctocloftlocalperhapsaddtotoc#1{% - \etocifisstarred - {}% - {\csname ifEtoc@local#1totoc\endcsname - \ifdefined\c@chapter\def\@tocextra{@section}\else\def\@tocextra{@subsection}\fi - \csname @cftdobib#1\endcsname - \fi - }% -} -\def\etoctocbibindstyle {% - \etocsettocstyle {% - \toc@start - \ifEtoc@localtoc - \@nameuse{etocclasslocal\Etoc@currext maketitle}% - \etocclasslocalperhapsaddtotoc\Etoc@currext - \else - \etoc@tocbibind@dotoctitle - \fi - }% - {\toc@finish}% -} -\def\etoc@tocbibind@dotoctitle {% - \if@bibchapter - \etocifisstarred - {\chapter*{\contentsname}\prw@mkboth{\contentsname} % id. - }% - {\ifEtoc@maintoctotoc - \toc@chapter{\contentsname} %<-space from original - \else - \chapter*{\contentsname}\prw@mkboth{\contentsname} % id. - \fi - }% - \else - \etocifisstarred - {\@nameuse{\@tocextra}*{\contentsname\prw@mkboth{\contentsname}} %<-space - } - {\ifEtoc@maintoctotoc - \toc@section{\@tocextra}{\contentsname} %<-space from original - \else - \@nameuse{\@tocextra}*{\contentsname\prw@mkboth{\contentsname}} % id. - \fi - }% - \fi -}% -\@ifclassloaded{memoir} -{} -{% memoir not loaded - \@ifpackageloaded{tocloft} - {\if@cftnctoc\else - \ifEtoc@keeporiginaltoc - \else - \AtBeginDocument{\let\tableofcontents\etoctableofcontents}% - \fi - \fi } - {\AtBeginDocument - {\@ifpackageloaded{tocloft} - {\if@cftnctoc\else - \PackageWarningNoLine {etoc} - {Package `tocloft' was loaded after `etoc'.\MessageBreak - To prevent it from overwriting \protect\tableofcontents, it will\MessageBreak - be tricked into believing to have been loaded with its\MessageBreak - option `titles'. \space But this will cause the `tocloft'\MessageBreak - customization of the titles of the main list of figures\MessageBreak - and list of tables to not apply either.\MessageBreak - You should load `tocloft' before `etoc'.}% - \AtEndDocument{\PackageWarning{etoc} - {Please load `tocloft' before `etoc'!\@gobbletwo}}% - \fi - \@cftnctoctrue }% - {}% - }% - }% -} -\@ifclassloaded{memoir} -{} -{% memoir not loaded - \AtBeginDocument{% - \@ifpackageloaded{tocloft} - {% - \def\etocclasstocstyle{% - \etoctocloftstyle - \Etoc@classstyletrue - }% - \ifEtoc@etocstyle - \ifEtoc@classstyle - \etocclasstocstyle - \Etoc@etocstyletrue - \fi - \else - \ifEtoc@classstyle - \etocclasstocstyle - \fi - \fi - }% - {% no tocloft - \@ifpackageloaded {tocbibind} - {\if@dotoctoc - \def\etocclasstocstyle{% - \etoctocbibindstyle - \Etoc@classstyletrue - }% - \ifEtoc@etocstyle - \ifEtoc@classstyle - \etocclasstocstyle - \Etoc@etocstyletrue - \fi - \else - \ifEtoc@classstyle - \etocclasstocstyle - \fi - \fi - \ifEtoc@keeporiginaltoc - \else - \let\tableofcontents\etoctableofcontents - \fi - }% - {}% - }% - \@ifpackageloaded{tocbibind} - {% tocbibind, perhaps with tocloft - \if@dotoctoc - \ifEtoc@keeporiginaltoc - \else - \let\tableofcontents\etoctableofcontents - \fi - \etocsetup{maintoctotoc,localtoctotoc}% - \PackageInfo{etoc}{% - Setting (or re-setting) the options `maintoctotoc' and\MessageBreak - `localtoctotoc' to true as tocbibind was detected and\MessageBreak - found to be configured for `TOC to toc'.\MessageBreak - Reported at begin document}% - \fi - \if@dotoclof - \ifEtoc@lof - \etocsetup{localloftotoc}% - \PackageInfo{etoc}{% - Setting (or re-setting) `localloftotoc=true' as the\MessageBreak - package tocbibind was detected and is configured for\MessageBreak - `LOF to toc'. Reported at begin document}% - \fi - \fi - \if@dotoclot - \ifEtoc@lot - \etocsetup{locallottotoc}% - \PackageInfo{etoc}{% - Setting (or re-setting) `locallottotoc=true' as the\MessageBreak - package tocbibind was detected and is configured for\MessageBreak - `LOT to toc'. Reported at begin document}% - \fi - \fi - }% end of tocbibind branch - {}% - }% end of at begin document -}% end of not with memoir branch -\def\Etoc@addtocontents #1#2{% - \addtocontents {toc}{% - \protect\contentsline{#1}{#2}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}% - \ifdefined\protected@file@percent\protected@file@percent\fi - }% -} -\def\Etoc@addcontentsline@ #1#2#3{% - \@namedef{toclevel@#1}{#3}\addcontentsline {toc}{#1}{#2}% -} -\DeclareRobustCommand*{\etoctoccontentsline} - {\@ifstar{\Etoc@addcontentsline@}{\Etoc@addtocontents}} -\def\Etoc@addtocontents@immediately#1#2{% - \begingroup - \let\Etoc@originalwrite\write - \def\write{\immediate\Etoc@originalwrite}% - \Etoc@addtocontents{#1}{#2}% - \endgroup -} -\def\Etoc@addcontentsline@@immediately#1#2#3{% - \begingroup - \let\Etoc@originalwrite\write - \def\write{\immediate\Etoc@originalwrite}% - \Etoc@addcontentsline@{#1}{#2}{#3}% - \endgoroup -} -\DeclareRobustCommand*{\etocimmediatetoccontentsline} - {\@ifstar{\Etoc@addcontentsline@@immediately}{\Etoc@addtocontents@immediately}} -\def\Etoc@storetocdepth {\xdef\Etoc@savedtocdepth{\number\c@tocdepth}} -\def\Etoc@restoretocdepth {\global\c@tocdepth\Etoc@savedtocdepth\relax} -\def\etocobeytoctocdepth {\def\etoc@settocdepth - {\afterassignment\Etoc@@nottoodeep \global\c@tocdepth}} -\def\Etoc@@nottoodeep {\ifnum\Etoc@savedtocdepth<\c@tocdepth - \global\c@tocdepth\Etoc@savedtocdepth\relax\fi } -\def\etocignoretoctocdepth {\let\etoc@settocdepth\@gobble } -\def\etocsettocdepth {\futurelet\Etoc@nexttoken\Etoc@set@tocdepth } -\def\Etoc@set@tocdepth {\ifx\Etoc@nexttoken\bgroup - \expandafter\Etoc@set@tocdepth@ - \else\expandafter\Etoc@set@toctocdepth - \fi } -\def\Etoc@set@tocdepth@ #1{\@ifundefined {Etoc@#1@@} - {\PackageWarning{etoc} - {Unknown sectioning unit #1, \protect\etocsettocdepth\space ignored}} - {\global\c@tocdepth\csname Etoc@#1@@\endcsname}% -} -\def\Etoc@set@toctocdepth #1#{\Etoc@set@toctocdepth@ } -\def\Etoc@set@toctocdepth@ #1{% - \@ifundefined{Etoc@#1@@}% - {\PackageWarning{etoc} - {Unknown sectioning depth #1, \protect\etocsettocdepth.toc ignored}}% - {\addtocontents {toc} - {\protect\etoc@settocdepth\expandafter\protect\csname Etoc@#1@@\endcsname}}% -} -\def\etocimmediatesettocdepth #1#{\Etoc@set@toctocdepth@immediately} -\def\Etoc@set@toctocdepth@immediately #1{% - \@ifundefined{Etoc@#1@@}% - {\PackageWarning{etoc} - {Unknown sectioning depth #1, \protect\etocimmediatesettocdepth.toc ignored}}% - {\begingroup - \let\Etoc@originalwrite\write - \def\write{\immediate\Etoc@originalwrite}% - \addtocontents {toc} - {\protect\etoc@settocdepth\expandafter\protect - \csname Etoc@#1@@\endcsname}% - \endgroup - }% -} -\def\etocdepthtag #1#{\Etoc@depthtag } -\def\Etoc@depthtag #1{\addtocontents {toc}{\protect\etoc@depthtag {#1}}} -\def\etocimmediatedepthtag #1#{\Etoc@depthtag@immediately } -\def\Etoc@depthtag@immediately #1{% - \begingroup - \let\Etoc@originalwrite\write - \def\write{\immediate\Etoc@originalwrite}% - \addtocontents {toc}{\protect\etoc@depthtag {#1}}% - \endgroup -} -\def\etocignoredepthtags {\let\etoc@depthtag \@gobble } -\def\etocobeydepthtags {\let\etoc@depthtag \Etoc@depthtag@ } -\def\Etoc@depthtag@ #1{\@ifundefined{Etoc@depthof@#1}% - {}% ignore in silence if tag has no associated depth - {\afterassignment\Etoc@@nottoodeep - \global\c@tocdepth\csname Etoc@depthof@#1\endcsname}% -} -\def\etocsettagdepth #1#2{\@ifundefined{Etoc@#2@@}% - {\PackageWarning{etoc} - {Unknown sectioning depth #2, \protect\etocsettagdepth\space ignored}}% - {\@namedef{Etoc@depthof@#1}{\@nameuse{Etoc@#2@@}}}% -} -\def\Etoc@tocvsec@err #1{\PackageError {etoc} - {The command \protect#1\space is incompatible with `etoc'} - {Use \protect\etocsettocdepth.toc as replacement}% -}% -\AtBeginDocument {% - \@ifclassloaded{memoir} - {\PackageInfo {etoc} - {Regarding `memoir' class command \protect\settocdepth, consider\MessageBreak - \protect\etocsettocdepth.toc as a drop-in replacement with more\MessageBreak - capabilities (see `etoc' manual). \space - Also, \protect\etocsettocdepth\MessageBreak - and \protect\etocsetnexttocdepth\space should be used in place of\MessageBreak - `memoir' command \protect\maxtocdepth\@gobble}% - }% - {\@ifpackageloaded {tocvsec2}{% - \def\maxtocdepth #1{\Etoc@tocvsec@err \maxtocdepth }% - \def\settocdepth #1{\Etoc@tocvsec@err \settocdepth }% - \def\resettocdepth {\@ifstar {\Etoc@tocvsec@err \resettocdepth }% - {\Etoc@tocvsec@err \resettocdepth }% - }% - \def\save@tocdepth #1#2#3{}% - \let\reset@tocdepth\relax - \let\remax@tocdepth\relax - \let\tableofcontents\etoctableofcontents - \PackageWarningNoLine {etoc} - {Package `tocvsec2' detected and its modification of\MessageBreak - \protect\tableofcontents\space reverted. \space Use - \protect\etocsettocdepth.toc\MessageBreak as a replacement - for `tocvsec2' toc-related commands}% - }% tocvsec2 loaded - {}% tocvsec2 not loaded - }% -}% -\def\invisibletableofcontents {\etocsetnexttocdepth {-3}\tableofcontents }% -\def\invisiblelocaltableofcontents - {\etocsetnexttocdepth {-3}\localtableofcontents }% -\def\etocsetnexttocdepth #1{% - \@ifundefined{Etoc@#1@@} - {\PackageWarning{etoc} - {Unknown sectioning unit #1, \protect\etocsetnextocdepth\space ignored}} - {\Etoc@setnexttocdepth{\csname Etoc@#1@@\endcsname}}% -}% -\def\Etoc@setnexttocdepth#1{% - \def\Etoc@tocdepthset{% - \Etoc@tocdepthreset - \edef\Etoc@tocdepthreset {% - \global\c@tocdepth\the\c@tocdepth\space - \global\let\noexpand\Etoc@tocdepthreset\noexpand\@empty - }% - \global\c@tocdepth#1% - \global\let\Etoc@tocdepthset\@empty - }% -}% -\let\Etoc@tocdepthreset\@empty -\let\Etoc@tocdepthset \@empty -\def\etocsetlocaltop #1#{\Etoc@set@localtop}% -\def\Etoc@set@localtop #1{% - \@ifundefined{Etoc@#1@@}% - {\PackageWarning{etoc} - {Unknown sectioning depth #1, \protect\etocsetlocaltop.toc ignored}}% - {\addtocontents {toc} - {\protect\etoc@setlocaltop\expandafter\protect\csname Etoc@#1@@\endcsname}}% -}% -\def\etocimmediatesetlocaltop #1#{\Etoc@set@localtop@immediately}% -\def\Etoc@set@localtop@immediately #1{% - \@ifundefined{Etoc@#1@@}% - {\PackageWarning{etoc} - {Unknown sectioning depth #1, \protect\etocimmediatesetlocaltop.toc ignored}}% - {\begingroup - \let\Etoc@originalwrite\write - \def\write{\immediate\Etoc@originalwrite}% - \addtocontents {toc} - {\protect\etoc@setlocaltop\expandafter\protect - \csname Etoc@#1@@\endcsname}% - \endgroup - }% -}% -\def\etoc@setlocaltop #1{% - \ifnum#1=\Etoc@maxlevel - \Etoc@skipthisonetrue - \else - \Etoc@skipthisonefalse - \global\let\Etoc@level #1% - \global\let\Etoc@virtualtop #1% - \ifEtoc@localtoc - \ifEtoc@stoptoc - \Etoc@skipthisonetrue - \else - \ifEtoc@notactive - \Etoc@skipthisonetrue - \else - \unless\ifnum\Etoc@level>\etoclocaltop - \Etoc@skipthisonetrue - \global\Etoc@stoptoctrue - \fi - \fi - \fi - \fi - \fi - \let\Etoc@next\@empty - \ifEtoc@skipthisone - \else - \ifnum\Etoc@level>\c@tocdepth - \else - \ifEtoc@standardlines - \else - \let\Etoc@next\Etoc@setlocaltop@doendsandbegin - \fi - \fi - \fi - \Etoc@next -}% -\def\Etoc@setlocaltop@doendsandbegin{% - \Etoc@doendsandbegin - \global\Etoc@skipprefixfalse -} -\addtocontents {toc}{\protect\@ifundefined{etoctocstyle}% - {\let\protect\etoc@startlocaltoc\protect\@gobble - \let\protect\etoc@settocdepth\protect\@gobble - \let\protect\etoc@depthtag\protect\@gobble - \let\protect\etoc@setlocaltop\protect\@gobble}{}}% -\def\etocstandardlines {\Etoc@standardlinestrue} -\def\etoctoclines {\Etoc@standardlinesfalse} -\etocdefaultlines -\etocstandardlines -\def\etocstandarddisplaystyle{% - \PackageWarningNoLine{etoc}{% - \string\etocstandarddisplaystyle \on@line\MessageBreak - is deprecated. \space Please use \string\etocclasstocstyle}% -} -\expandafter\def\expandafter\etocclasstocstyle\expandafter{% - \etocclasstocstyle - \Etoc@classstyletrue -} -\def\etocetoclocaltocstyle{\Etoc@etocstyletrue} -\def\etocusertocstyle{\Etoc@etocstylefalse} -\etocclasstocstyle -\etocetoclocaltocstyle -\etocobeytoctocdepth -\etocobeydepthtags -\let\etocbeforetitlehook \@empty -\let\etocaftertitlehook \@empty -\let\etocaftercontentshook \@empty -\let\etocaftertochook \@empty -\def\etockeeporiginaltableofcontents - {\Etoc@keeporiginaltoctrue\let\tableofcontents\etocoriginaltableofcontents}% -\endinput -%% -%% End of file `etoc.sty'. diff --git a/docs/latex/files.tex b/docs/latex/files.tex deleted file mode 100644 index b9195ae..0000000 --- a/docs/latex/files.tex +++ /dev/null @@ -1,9 +0,0 @@ -\doxysection{File List} -Here is a list of all documented files with brief descriptions\+:\begin{DoxyCompactList} -\item\contentsline{section}{src/\mbox{\hyperlink{main_8c}{main.\+c}} \\*Programme principal pour choisir une interface et lancer l\textquotesingle{}application }{\pageref{main_8c}}{} -\item\contentsline{section}{src/app/core\+\_\+logic/\mbox{\hyperlink{client_8h}{client.\+h}} \\*Fichier d\textquotesingle{}en-\/tête pour les fonctions de gestion des clients }{\pageref{client_8h}}{} -\item\contentsline{section}{src/app/core\+\_\+logic/\mbox{\hyperlink{responsable_8c}{responsable.\+c}} \\*Définition des fonctions de \doxylink{responsable_8c}{responsable.\+c} }{\pageref{responsable_8c}}{} -\item\contentsline{section}{src/app/core\+\_\+logic/\mbox{\hyperlink{responsable_8h}{responsable.\+h}} \\*Déclaration des fonctions de \doxylink{responsable_8c}{responsable.\+c} }{\pageref{responsable_8h}}{} -\item\contentsline{section}{src/app/interface/\mbox{\hyperlink{interface__client_8h}{interface\+\_\+client.\+h}} \\*Fichier d\textquotesingle{}en-\/tête pour les fonctions de l\textquotesingle{}interface client }{\pageref{interface__client_8h}}{} -\item\contentsline{section}{src/app/interface/\mbox{\hyperlink{interface__resp_8h}{interface\+\_\+resp.\+h}} \\*En-\/tête des fonctions liées à l\textquotesingle{}interface du responsable }{\pageref{interface__resp_8h}}{} -\end{DoxyCompactList} diff --git a/docs/latex/interface__client_8h.tex b/docs/latex/interface__client_8h.tex deleted file mode 100644 index a461440..0000000 --- a/docs/latex/interface__client_8h.tex +++ /dev/null @@ -1,337 +0,0 @@ -\doxysection{src/app/interface/interface\+\_\+client.h File Reference} -\hypertarget{interface__client_8h}{}\label{interface__client_8h}\index{src/app/interface/interface\_client.h@{src/app/interface/interface\_client.h}} - - -Fichier d\textquotesingle{}en-\/tête pour les fonctions de l\textquotesingle{}interface client. - - -{\ttfamily \#include $<$stdio.\+h$>$}\newline -{\ttfamily \#include $<$string.\+h$>$}\newline -{\ttfamily \#include "{}../core\+\_\+logic/client.\+h"{}}\newline -{\ttfamily \#include "{}../core\+\_\+logic/responsable.\+h"{}}\newline -{\ttfamily \#include "{}../interface/interface\+\_\+resp.\+h"{}}\newline -\doxysubsubsection*{Functions} -\begin{DoxyCompactItemize} -\item -\Hypertarget{interface__client_8h_a0ee281249d9a07abd6143449b761d212}\label{interface__client_8h_a0ee281249d9a07abd6143449b761d212} -void {\bfseries affiche\+\_\+client} (void) -\begin{DoxyCompactList}\small\item\em Afficher les informations du client. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__client_8h_a49de18c6560633af132a56085d28a8ba}{menu\+\_\+client}} (int \texorpdfstring{$\ast$}{*}choix) -\begin{DoxyCompactList}\small\item\em Afficher le menu du client et enregistrer le choix de l\textquotesingle{}utilisateur. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__client_8h_aa92d76f0c1463d0ad7d6479e6c27e99e}{ajouter\+\_\+article\+\_\+au\+\_\+panier}} (int numero\+Client, int references\mbox{[}$\,$\mbox{]}, float poids\mbox{[}$\,$\mbox{]}, float volume\mbox{[}$\,$\mbox{]}, float prix\+Unitaire\mbox{[}$\,$\mbox{]}, int numeros\mbox{[}$\,$\mbox{]}, float cagnottes\mbox{[}$\,$\mbox{]}, int suspendues\mbox{[}$\,$\mbox{]}, int nombre\+Articles, int nombre\+Clients, float volume\+Coffre, float charge\+Maximale, int panier\mbox{[}$\,$\mbox{]}, int quantites\mbox{[}$\,$\mbox{]}, int \texorpdfstring{$\ast$}{*}taille\+Panier, float budget) -\begin{DoxyCompactList}\small\item\em Ajouter des articles au panier du client. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__client_8h_a31471d992b6f14d5249bbb6efdeec3cd}{supprimer\+\_\+article\+\_\+du\+\_\+panier}} (int panier\mbox{[}$\,$\mbox{]}, int quantites\mbox{[}$\,$\mbox{]}, int \texorpdfstring{$\ast$}{*}taille\+Panier, float cagnottes\mbox{[}$\,$\mbox{]}, int numero\+Client, int numeros\mbox{[}$\,$\mbox{]}, int nombre\+Clients, int references\mbox{[}$\,$\mbox{]}, float prix\+Unitaire\mbox{[}$\,$\mbox{]}) -\begin{DoxyCompactList}\small\item\em Supprimer un article du panier du client. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__client_8h_aa7f83065dbcf53ea2df22f9724c47470}{affiche\+\_\+recap\+\_\+panier}} (int panier\mbox{[}$\,$\mbox{]}, int taille\+Panier, int references\mbox{[}$\,$\mbox{]}, float poids\mbox{[}$\,$\mbox{]}, float volume\mbox{[}$\,$\mbox{]}, float prix\+Unitaire\mbox{[}$\,$\mbox{]}, int quantites\mbox{[}$\,$\mbox{]}, float cagnottes\mbox{[}$\,$\mbox{]}, int numero\+Client, int numeros\mbox{[}$\,$\mbox{]}, int nombre\+Clients, float volume\+Coffre, float charge\+Maximale, float budget) -\begin{DoxyCompactList}\small\item\em Afficher un récapitulatif du panier du client. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__client_8h_a7caca9094610ed2dfcbfe0b350b678cf}{configurer\+\_\+session\+\_\+client}} (int numeros\mbox{[}$\,$\mbox{]}, int suspendus\mbox{[}$\,$\mbox{]}, int nombre\+Clients, double \texorpdfstring{$\ast$}{*}budget, float \texorpdfstring{$\ast$}{*}volume\+Coffre, float \texorpdfstring{$\ast$}{*}charge\+Maximale, int \texorpdfstring{$\ast$}{*}numero\+Client) -\begin{DoxyCompactList}\small\item\em Configurer la session client. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__client_8h_a87e47382ab2c90e6d5949fa78f50900e}{modifier\+\_\+quantite\+\_\+article\+\_\+panier}} (int panier\mbox{[}$\,$\mbox{]}, int quantites\mbox{[}$\,$\mbox{]}, int \texorpdfstring{$\ast$}{*}taille\+Panier, float cagnottes\mbox{[}$\,$\mbox{]}, int numero\+Client, float prix\+Unitaire\mbox{[}$\,$\mbox{]}, int references\mbox{[}$\,$\mbox{]}, int nombre\+Clients, int numeros\mbox{[}$\,$\mbox{]}) -\begin{DoxyCompactList}\small\item\em Modifier la quantité d\textquotesingle{}un article dans le panier du client. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__client_8h_ac55e8aab165ed0541827f10be23c9d97}{reinitialiser\+\_\+panier}} (int panier\mbox{[}$\,$\mbox{]}, int quantites\mbox{[}$\,$\mbox{]}, int \texorpdfstring{$\ast$}{*}taille\+Panier, float cagnottes\mbox{[}$\,$\mbox{]}, int numero\+Client, int numeros\mbox{[}$\,$\mbox{]}, int nombre\+Clients, int references\mbox{[}$\,$\mbox{]}, float prix\+Unitaire\mbox{[}$\,$\mbox{]}) -\begin{DoxyCompactList}\small\item\em Réinitialiser le panier du client. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__client_8h_a7203df964d63cb07d7b19912d5e3c3bd}{deduire\+\_\+cagnotte}} (int numero\+Client, float montant, int numeros\mbox{[}$\,$\mbox{]}, float cagnottes\mbox{[}$\,$\mbox{]}, int nombre\+Clients, int suspendus\mbox{[}$\,$\mbox{]}) -\begin{DoxyCompactList}\small\item\em Déduire un montant de la cagnotte du client. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__client_8h_a75ce35e6cd3b58c6359897a8aa131509}{quitter\+\_\+application}} (int panier\mbox{[}$\,$\mbox{]}, int taille\+Panier, int references\mbox{[}$\,$\mbox{]}, float poids\mbox{[}$\,$\mbox{]}, float volume\mbox{[}$\,$\mbox{]}, float prix\+Unitaire\mbox{[}$\,$\mbox{]}, int quantites\mbox{[}$\,$\mbox{]}, float cagnottes\mbox{[}$\,$\mbox{]}, int numero\+Client, int numeros\mbox{[}$\,$\mbox{]}, int nombre\+Clients, float budget, int suspendus\mbox{[}$\,$\mbox{]}) -\begin{DoxyCompactList}\small\item\em Quitter l\textquotesingle{}application client. \end{DoxyCompactList}\item -\Hypertarget{interface__client_8h_a40507f288c72ef9b92d113990bc0ed40}\label{interface__client_8h_a40507f288c72ef9b92d113990bc0ed40} -void {\bfseries global\+\_\+client} (void) -\begin{DoxyCompactList}\small\item\em Exécute l\textquotesingle{}ensemble des fonctions de l\textquotesingle{}interface client. \end{DoxyCompactList}\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -Fichier d\textquotesingle{}en-\/tête pour les fonctions de l\textquotesingle{}interface client. - -Ce fichier d\textquotesingle{}en-\/tête définit les fonctions liées à l\textquotesingle{}interaction et à la gestion des clients. Ces fonctions incluent des opérations telles que l\textquotesingle{}ajout d\textquotesingle{}articles au panier d\textquotesingle{}un client, la gestion du budget, etc. - -\begin{DoxyAuthor}{Author} -Hersan Mathéo -\end{DoxyAuthor} - - -\doxysubsection{Function Documentation} -\Hypertarget{interface__client_8h_aa7f83065dbcf53ea2df22f9724c47470}\label{interface__client_8h_aa7f83065dbcf53ea2df22f9724c47470} -\index{interface\_client.h@{interface\_client.h}!affiche\_recap\_panier@{affiche\_recap\_panier}} -\index{affiche\_recap\_panier@{affiche\_recap\_panier}!interface\_client.h@{interface\_client.h}} -\doxysubsubsection{\texorpdfstring{affiche\_recap\_panier()}{affiche\_recap\_panier()}} -{\footnotesize\ttfamily void affiche\+\_\+recap\+\_\+panier (\begin{DoxyParamCaption}\item[{int}]{panier\mbox{[}$\,$\mbox{]}, }\item[{int}]{taille\+Panier, }\item[{int}]{references\mbox{[}$\,$\mbox{]}, }\item[{float}]{poids\mbox{[}$\,$\mbox{]}, }\item[{float}]{volume\mbox{[}$\,$\mbox{]}, }\item[{float}]{prix\+Unitaire\mbox{[}$\,$\mbox{]}, }\item[{int}]{quantites\mbox{[}$\,$\mbox{]}, }\item[{float}]{cagnottes\mbox{[}$\,$\mbox{]}, }\item[{int}]{numero\+Client, }\item[{int}]{numeros\mbox{[}$\,$\mbox{]}, }\item[{int}]{nombre\+Clients, }\item[{float}]{volume\+Coffre, }\item[{float}]{charge\+Maximale, }\item[{float}]{budget }\end{DoxyParamCaption})} - - - -Afficher un récapitulatif du panier du client. - - -\begin{DoxyParams}{Parameters} -{\em panier} & -\/ Le panier d\textquotesingle{}achat du client. \\ -\hline -{\em taille\+Panier} & -\/ La taille du panier. \\ -\hline -{\em references} & -\/ Un tableau de références d\textquotesingle{}articles. \\ -\hline -{\em poids} & -\/ Un tableau de poids d\textquotesingle{}articles. \\ -\hline -{\em volume} & -\/ Un tableau de volumes d\textquotesingle{}articles. \\ -\hline -{\em prix\+Unitaire} & -\/ Un tableau de prix unitaires d\textquotesingle{}articles. \\ -\hline -{\em quantites} & -\/ Un tableau de quantités d\textquotesingle{}articles dans le panier. \\ -\hline -{\em cagnottes} & -\/ Un tableau de cagnottes. \\ -\hline -{\em numero\+Client} & -\/ Le numéro du client. \\ -\hline -{\em numeros} & -\/ Un tableau de numéros d\textquotesingle{}articles. \\ -\hline -{\em nombre\+Clients} & -\/ Le nombre total de clients. \\ -\hline -{\em volume\+Coffre} & -\/ La limite de volume pour le panier du client. \\ -\hline -{\em charge\+Maximale} & -\/ La limite de poids pour le panier du client. \\ -\hline -{\em budget} & -\/ Le budget du client. \\ -\hline -\end{DoxyParams} -\Hypertarget{interface__client_8h_aa92d76f0c1463d0ad7d6479e6c27e99e}\label{interface__client_8h_aa92d76f0c1463d0ad7d6479e6c27e99e} -\index{interface\_client.h@{interface\_client.h}!ajouter\_article\_au\_panier@{ajouter\_article\_au\_panier}} -\index{ajouter\_article\_au\_panier@{ajouter\_article\_au\_panier}!interface\_client.h@{interface\_client.h}} -\doxysubsubsection{\texorpdfstring{ajouter\_article\_au\_panier()}{ajouter\_article\_au\_panier()}} -{\footnotesize\ttfamily void ajouter\+\_\+article\+\_\+au\+\_\+panier (\begin{DoxyParamCaption}\item[{int}]{numero\+Client, }\item[{int}]{references\mbox{[}$\,$\mbox{]}, }\item[{float}]{poids\mbox{[}$\,$\mbox{]}, }\item[{float}]{volume\mbox{[}$\,$\mbox{]}, }\item[{float}]{prix\+Unitaire\mbox{[}$\,$\mbox{]}, }\item[{int}]{numeros\mbox{[}$\,$\mbox{]}, }\item[{float}]{cagnottes\mbox{[}$\,$\mbox{]}, }\item[{int}]{suspendues\mbox{[}$\,$\mbox{]}, }\item[{int}]{nombre\+Articles, }\item[{int}]{nombre\+Clients, }\item[{float}]{volume\+Coffre, }\item[{float}]{charge\+Maximale, }\item[{int}]{panier\mbox{[}$\,$\mbox{]}, }\item[{int}]{quantites\mbox{[}$\,$\mbox{]}, }\item[{int \texorpdfstring{$\ast$}{*}}]{taille\+Panier, }\item[{float}]{budget }\end{DoxyParamCaption})} - - - -Ajouter des articles au panier du client. - - -\begin{DoxyParams}[1]{Parameters} - & {\em numero\+Client} & -\/ Le numéro du client. \\ -\hline - & {\em references} & -\/ Un tableau de références d\textquotesingle{}articles. \\ -\hline - & {\em poids} & -\/ Un tableau de poids d\textquotesingle{}articles. \\ -\hline - & {\em volume} & -\/ Un tableau de volumes d\textquotesingle{}articles. \\ -\hline - & {\em prix\+Unitaire} & -\/ Un tableau de prix unitaires d\textquotesingle{}articles. \\ -\hline - & {\em numeros} & -\/ Un tableau de numéros d\textquotesingle{}articles. \\ -\hline - & {\em cagnottes} & -\/ Un tableau de cagnottes. \\ -\hline - & {\em suspendues} & -\/ Un tableau d\textquotesingle{}articles suspendus. \\ -\hline - & {\em nombre\+Articles} & -\/ Le nombre total d\textquotesingle{}articles disponibles. \\ -\hline - & {\em nombre\+Clients} & -\/ Le nombre total de clients. \\ -\hline - & {\em volume\+Coffre} & -\/ La limite de volume pour le panier du client. \\ -\hline - & {\em charge\+Maximale} & -\/ La limite de poids pour le panier du client. \\ -\hline - & {\em panier} & -\/ Le panier d\textquotesingle{}achat du client. \\ -\hline - & {\em quantites} & -\/ Un tableau de quantités d\textquotesingle{}articles dans le panier. \\ -\hline -\mbox{\texttt{ out}} & {\em taille\+Panier} & -\/ Un pointeur pour stocker la taille du panier. \\ -\hline - & {\em budget} & -\/ Le budget du client. \\ -\hline -\end{DoxyParams} -\Hypertarget{interface__client_8h_a7caca9094610ed2dfcbfe0b350b678cf}\label{interface__client_8h_a7caca9094610ed2dfcbfe0b350b678cf} -\index{interface\_client.h@{interface\_client.h}!configurer\_session\_client@{configurer\_session\_client}} -\index{configurer\_session\_client@{configurer\_session\_client}!interface\_client.h@{interface\_client.h}} -\doxysubsubsection{\texorpdfstring{configurer\_session\_client()}{configurer\_session\_client()}} -{\footnotesize\ttfamily void configurer\+\_\+session\+\_\+client (\begin{DoxyParamCaption}\item[{int}]{numeros\mbox{[}$\,$\mbox{]}, }\item[{int}]{suspendus\mbox{[}$\,$\mbox{]}, }\item[{int}]{nombre\+Clients, }\item[{double \texorpdfstring{$\ast$}{*}}]{budget, }\item[{float \texorpdfstring{$\ast$}{*}}]{volume\+Coffre, }\item[{float \texorpdfstring{$\ast$}{*}}]{charge\+Maximale, }\item[{int \texorpdfstring{$\ast$}{*}}]{numero\+Client }\end{DoxyParamCaption})} - - - -Configurer la session client. - - -\begin{DoxyParams}[1]{Parameters} - & {\em numeros} & -\/ Un tableau de numéros de clients. \\ -\hline - & {\em suspendus} & -\/ Un tableau d\textquotesingle{}état des clients suspendus. \\ -\hline - & {\em nombre\+Clients} & -\/ Le nombre total de clients. \\ -\hline -\mbox{\texttt{ out}} & {\em budget} & -\/ Un pointeur pour stocker le budget du client. \\ -\hline -\mbox{\texttt{ out}} & {\em volume\+Coffre} & -\/ Un pointeur pour stocker la limite de volume du panier du client. \\ -\hline -\mbox{\texttt{ out}} & {\em charge\+Maximale} & -\/ Un pointeur pour stocker la limite de poids du panier du client. \\ -\hline -\mbox{\texttt{ out}} & {\em numero\+Client} & -\/ Un pointeur pour stocker le numéro du client. \\ -\hline -\end{DoxyParams} -\Hypertarget{interface__client_8h_a7203df964d63cb07d7b19912d5e3c3bd}\label{interface__client_8h_a7203df964d63cb07d7b19912d5e3c3bd} -\index{interface\_client.h@{interface\_client.h}!deduire\_cagnotte@{deduire\_cagnotte}} -\index{deduire\_cagnotte@{deduire\_cagnotte}!interface\_client.h@{interface\_client.h}} -\doxysubsubsection{\texorpdfstring{deduire\_cagnotte()}{deduire\_cagnotte()}} -{\footnotesize\ttfamily void deduire\+\_\+cagnotte (\begin{DoxyParamCaption}\item[{int}]{numero\+Client, }\item[{float}]{montant, }\item[{int}]{numeros\mbox{[}$\,$\mbox{]}, }\item[{float}]{cagnottes\mbox{[}$\,$\mbox{]}, }\item[{int}]{nombre\+Clients, }\item[{int}]{suspendus\mbox{[}$\,$\mbox{]} }\end{DoxyParamCaption})} - - - -Déduire un montant de la cagnotte du client. - - -\begin{DoxyParams}{Parameters} -{\em numero\+Client} & -\/ Le numéro du client. \\ -\hline -{\em montant} & -\/ Le montant à déduire de la cagnotte. \\ -\hline -{\em numeros} & -\/ Un tableau de numéros de clients. \\ -\hline -{\em cagnottes} & -\/ Un tableau de cagnottes. \\ -\hline -{\em nombre\+Clients} & -\/ Le nombre total de clients. \\ -\hline -{\em suspendus} & -\/ Un tableau d\textquotesingle{}état des clients suspendus. \\ -\hline -\end{DoxyParams} -\Hypertarget{interface__client_8h_a49de18c6560633af132a56085d28a8ba}\label{interface__client_8h_a49de18c6560633af132a56085d28a8ba} -\index{interface\_client.h@{interface\_client.h}!menu\_client@{menu\_client}} -\index{menu\_client@{menu\_client}!interface\_client.h@{interface\_client.h}} -\doxysubsubsection{\texorpdfstring{menu\_client()}{menu\_client()}} -{\footnotesize\ttfamily void menu\+\_\+client (\begin{DoxyParamCaption}\item[{int \texorpdfstring{$\ast$}{*}}]{choix }\end{DoxyParamCaption})} - - - -Afficher le menu du client et enregistrer le choix de l\textquotesingle{}utilisateur. - - -\begin{DoxyParams}[1]{Parameters} -\mbox{\texttt{ out}} & {\em choix} & -\/ Un pointeur pour stocker le choix de l\textquotesingle{}utilisateur. \\ -\hline -\end{DoxyParams} -\Hypertarget{interface__client_8h_a87e47382ab2c90e6d5949fa78f50900e}\label{interface__client_8h_a87e47382ab2c90e6d5949fa78f50900e} -\index{interface\_client.h@{interface\_client.h}!modifier\_quantite\_article\_panier@{modifier\_quantite\_article\_panier}} -\index{modifier\_quantite\_article\_panier@{modifier\_quantite\_article\_panier}!interface\_client.h@{interface\_client.h}} -\doxysubsubsection{\texorpdfstring{modifier\_quantite\_article\_panier()}{modifier\_quantite\_article\_panier()}} -{\footnotesize\ttfamily void modifier\+\_\+quantite\+\_\+article\+\_\+panier (\begin{DoxyParamCaption}\item[{int}]{panier\mbox{[}$\,$\mbox{]}, }\item[{int}]{quantites\mbox{[}$\,$\mbox{]}, }\item[{int \texorpdfstring{$\ast$}{*}}]{taille\+Panier, }\item[{float}]{cagnottes\mbox{[}$\,$\mbox{]}, }\item[{int}]{numero\+Client, }\item[{float}]{prix\+Unitaire\mbox{[}$\,$\mbox{]}, }\item[{int}]{references\mbox{[}$\,$\mbox{]}, }\item[{int}]{nombre\+Clients, }\item[{int}]{numeros\mbox{[}$\,$\mbox{]} }\end{DoxyParamCaption})} - - - -Modifier la quantité d\textquotesingle{}un article dans le panier du client. - - -\begin{DoxyParams}[1]{Parameters} - & {\em panier} & -\/ Le panier d\textquotesingle{}achat du client. \\ -\hline - & {\em quantites} & -\/ Un tableau de quantités d\textquotesingle{}articles dans le panier. \\ -\hline -\mbox{\texttt{ out}} & {\em taille\+Panier} & -\/ Un pointeur pour stocker la taille du panier. \\ -\hline - & {\em cagnottes} & -\/ Un tableau de cagnottes. \\ -\hline - & {\em numero\+Client} & -\/ Le numéro du client. \\ -\hline - & {\em prix\+Unitaire} & -\/ Un tableau de prix unitaires d\textquotesingle{}articles. \\ -\hline - & {\em references} & -\/ Un tableau de références d\textquotesingle{}articles. \\ -\hline - & {\em nombre\+Clients} & -\/ Le nombre total de clients. \\ -\hline - & {\em numeros} & -\/ Un tableau de numéros d\textquotesingle{}articles. \\ -\hline -\end{DoxyParams} -\Hypertarget{interface__client_8h_a75ce35e6cd3b58c6359897a8aa131509}\label{interface__client_8h_a75ce35e6cd3b58c6359897a8aa131509} -\index{interface\_client.h@{interface\_client.h}!quitter\_application@{quitter\_application}} -\index{quitter\_application@{quitter\_application}!interface\_client.h@{interface\_client.h}} -\doxysubsubsection{\texorpdfstring{quitter\_application()}{quitter\_application()}} -{\footnotesize\ttfamily void quitter\+\_\+application (\begin{DoxyParamCaption}\item[{int}]{panier\mbox{[}$\,$\mbox{]}, }\item[{int}]{taille\+Panier, }\item[{int}]{references\mbox{[}$\,$\mbox{]}, }\item[{float}]{poids\mbox{[}$\,$\mbox{]}, }\item[{float}]{volume\mbox{[}$\,$\mbox{]}, }\item[{float}]{prix\+Unitaire\mbox{[}$\,$\mbox{]}, }\item[{int}]{quantites\mbox{[}$\,$\mbox{]}, }\item[{float}]{cagnottes\mbox{[}$\,$\mbox{]}, }\item[{int}]{numero\+Client, }\item[{int}]{numeros\mbox{[}$\,$\mbox{]}, }\item[{int}]{nombre\+Clients, }\item[{float}]{budget, }\item[{int}]{suspendus\mbox{[}$\,$\mbox{]} }\end{DoxyParamCaption})} - - - -Quitter l\textquotesingle{}application client. - - -\begin{DoxyParams}{Parameters} -{\em panier} & -\/ Le panier d\textquotesingle{}achat du client. \\ -\hline -{\em taille\+Panier} & -\/ La taille du panier. \\ -\hline -{\em references} & -\/ Un tableau de références d\textquotesingle{}articles. \\ -\hline -{\em poids} & -\/ Un tableau de poids d\textquotesingle{}articles. \\ -\hline -{\em volume} & -\/ Un tableau de volumes d\textquotesingle{}articles. \\ -\hline -{\em prix\+Unitaire} & -\/ Un tableau de prix unitaires d\textquotesingle{}articles. \\ -\hline -{\em quantites} & -\/ Un tableau de quantités d\textquotesingle{}articles dans le panier. \\ -\hline -{\em cagnottes} & -\/ Un tableau de cagnottes. \\ -\hline -{\em numero\+Client} & -\/ Le numéro du client. \\ -\hline -{\em numeros} & -\/ Un tableau de numéros d\textquotesingle{}articles. \\ -\hline -{\em nombre\+Clients} & -\/ Le nombre total de clients. \\ -\hline -{\em budget} & -\/ Le budget du client. \\ -\hline -{\em suspendus} & -\/ Un tableau d\textquotesingle{}état des clients suspendus. \\ -\hline -\end{DoxyParams} -\Hypertarget{interface__client_8h_ac55e8aab165ed0541827f10be23c9d97}\label{interface__client_8h_ac55e8aab165ed0541827f10be23c9d97} -\index{interface\_client.h@{interface\_client.h}!reinitialiser\_panier@{reinitialiser\_panier}} -\index{reinitialiser\_panier@{reinitialiser\_panier}!interface\_client.h@{interface\_client.h}} -\doxysubsubsection{\texorpdfstring{reinitialiser\_panier()}{reinitialiser\_panier()}} -{\footnotesize\ttfamily void reinitialiser\+\_\+panier (\begin{DoxyParamCaption}\item[{int}]{panier\mbox{[}$\,$\mbox{]}, }\item[{int}]{quantites\mbox{[}$\,$\mbox{]}, }\item[{int \texorpdfstring{$\ast$}{*}}]{taille\+Panier, }\item[{float}]{cagnottes\mbox{[}$\,$\mbox{]}, }\item[{int}]{numero\+Client, }\item[{int}]{numeros\mbox{[}$\,$\mbox{]}, }\item[{int}]{nombre\+Clients, }\item[{int}]{references\mbox{[}$\,$\mbox{]}, }\item[{float}]{prix\+Unitaire\mbox{[}$\,$\mbox{]} }\end{DoxyParamCaption})} - - - -Réinitialiser le panier du client. - - -\begin{DoxyParams}[1]{Parameters} - & {\em panier} & -\/ Le panier d\textquotesingle{}achat du client. \\ -\hline - & {\em quantites} & -\/ Un tableau de quantités d\textquotesingle{}articles dans le panier. \\ -\hline -\mbox{\texttt{ out}} & {\em taille\+Panier} & -\/ Un pointeur pour stocker la taille du panier. \\ -\hline - & {\em cagnottes} & -\/ Un tableau de cagnottes. \\ -\hline - & {\em numero\+Client} & -\/ Le numéro du client. \\ -\hline - & {\em numeros} & -\/ Un tableau de numéros d\textquotesingle{}articles. \\ -\hline - & {\em nombre\+Clients} & -\/ Le nombre total de clients. \\ -\hline - & {\em references} & -\/ Un tableau de références d\textquotesingle{}articles. \\ -\hline - & {\em prix\+Unitaire} & -\/ Un tableau de prix unitaires d\textquotesingle{}articles. \\ -\hline -\end{DoxyParams} -\Hypertarget{interface__client_8h_a31471d992b6f14d5249bbb6efdeec3cd}\label{interface__client_8h_a31471d992b6f14d5249bbb6efdeec3cd} -\index{interface\_client.h@{interface\_client.h}!supprimer\_article\_du\_panier@{supprimer\_article\_du\_panier}} -\index{supprimer\_article\_du\_panier@{supprimer\_article\_du\_panier}!interface\_client.h@{interface\_client.h}} -\doxysubsubsection{\texorpdfstring{supprimer\_article\_du\_panier()}{supprimer\_article\_du\_panier()}} -{\footnotesize\ttfamily void supprimer\+\_\+article\+\_\+du\+\_\+panier (\begin{DoxyParamCaption}\item[{int}]{panier\mbox{[}$\,$\mbox{]}, }\item[{int}]{quantites\mbox{[}$\,$\mbox{]}, }\item[{int \texorpdfstring{$\ast$}{*}}]{taille\+Panier, }\item[{float}]{cagnottes\mbox{[}$\,$\mbox{]}, }\item[{int}]{numero\+Client, }\item[{int}]{numeros\mbox{[}$\,$\mbox{]}, }\item[{int}]{nombre\+Clients, }\item[{int}]{references\mbox{[}$\,$\mbox{]}, }\item[{float}]{prix\+Unitaire\mbox{[}$\,$\mbox{]} }\end{DoxyParamCaption})} - - - -Supprimer un article du panier du client. - - -\begin{DoxyParams}[1]{Parameters} - & {\em panier} & -\/ Le panier d\textquotesingle{}achat du client. \\ -\hline - & {\em quantites} & -\/ Un tableau de quantités d\textquotesingle{}articles dans le panier. \\ -\hline -\mbox{\texttt{ out}} & {\em taille\+Panier} & -\/ Un pointeur pour stocker la taille du panier. \\ -\hline - & {\em cagnottes} & -\/ Un tableau de cagnottes. \\ -\hline - & {\em numero\+Client} & -\/ Le numéro du client. \\ -\hline - & {\em numeros} & -\/ Un tableau de numéros d\textquotesingle{}articles. \\ -\hline - & {\em nombre\+Clients} & -\/ Le nombre total de clients. \\ -\hline - & {\em references} & -\/ Un tableau de références d\textquotesingle{}articles. \\ -\hline - & {\em prix\+Unitaire} & -\/ Un tableau de prix unitaires d\textquotesingle{}articles. \\ -\hline -\end{DoxyParams} diff --git a/docs/latex/interface__client_8h_source.tex b/docs/latex/interface__client_8h_source.tex deleted file mode 100644 index eda875f..0000000 --- a/docs/latex/interface__client_8h_source.tex +++ /dev/null @@ -1,45 +0,0 @@ -\doxysection{interface\+\_\+client.\+h} -\hypertarget{interface__client_8h_source}{}\label{interface__client_8h_source}\index{src/app/interface/interface\_client.h@{src/app/interface/interface\_client.h}} -\mbox{\hyperlink{interface__client_8h}{Go to the documentation of this file.}} -\begin{DoxyCode}{0} -\DoxyCodeLine{00001\ } -\DoxyCodeLine{00011\ \textcolor{preprocessor}{\#ifndef\ INTERFACE\_CLIENT\_H}} -\DoxyCodeLine{00012\ \textcolor{preprocessor}{\#define\ INTERFACE\_CLIENT\_H}} -\DoxyCodeLine{00013\ } -\DoxyCodeLine{00014\ \textcolor{preprocessor}{\#include\ }} -\DoxyCodeLine{00015\ \textcolor{preprocessor}{\#include\ }} -\DoxyCodeLine{00016\ \textcolor{preprocessor}{\#include\ "{}../core\_logic/client.h"{}}} -\DoxyCodeLine{00017\ \textcolor{preprocessor}{\#include\ "{}../core\_logic/responsable.h"{}}} -\DoxyCodeLine{00018\ \textcolor{preprocessor}{\#include\ "{}../interface/interface\_resp.h"{}}} -\DoxyCodeLine{00019\ } -\DoxyCodeLine{00023\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__client_8h_a0ee281249d9a07abd6143449b761d212}{affiche\_client}}(\textcolor{keywordtype}{void});} -\DoxyCodeLine{00024\ } -\DoxyCodeLine{00030\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__client_8h_a49de18c6560633af132a56085d28a8ba}{menu\_client}}(\textcolor{keywordtype}{int}\ *choix);} -\DoxyCodeLine{00031\ } -\DoxyCodeLine{00052\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__client_8h_aa92d76f0c1463d0ad7d6479e6c27e99e}{ajouter\_article\_au\_panier}}(\textcolor{keywordtype}{int}\ numeroClient,\ \textcolor{keywordtype}{int}\ references[],\ \textcolor{keywordtype}{float}\ poids[],\ \textcolor{keywordtype}{float}\ volume[],\ \textcolor{keywordtype}{float}\ prixUnitaire[],} -\DoxyCodeLine{00053\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ numeros[],\ \textcolor{keywordtype}{float}\ cagnottes[],\ \textcolor{keywordtype}{int}\ suspendues[],\ \textcolor{keywordtype}{int}\ nombreArticles,\ \textcolor{keywordtype}{int}\ nombreClients,} -\DoxyCodeLine{00054\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{float}\ volumeCoffre,\ \textcolor{keywordtype}{float}\ chargeMaximale,\ \textcolor{keywordtype}{int}\ panier[],\ \textcolor{keywordtype}{int}\ quantites[],\ \textcolor{keywordtype}{int}\ *taillePanier,\ \textcolor{keywordtype}{float}\ budget);} -\DoxyCodeLine{00055\ } -\DoxyCodeLine{00069\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__client_8h_a31471d992b6f14d5249bbb6efdeec3cd}{supprimer\_article\_du\_panier}}(\textcolor{keywordtype}{int}\ panier[],\ \textcolor{keywordtype}{int}\ quantites[],\ \textcolor{keywordtype}{int}\ *taillePanier,\ \textcolor{keywordtype}{float}\ cagnottes[],\ \textcolor{keywordtype}{int}\ numeroClient,\ \textcolor{keywordtype}{int}\ numeros[],\ \textcolor{keywordtype}{int}\ nombreClients,\ \textcolor{keywordtype}{int}\ references[],\ \textcolor{keywordtype}{float}\ prixUnitaire[]);} -\DoxyCodeLine{00070\ } -\DoxyCodeLine{00089\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__client_8h_aa7f83065dbcf53ea2df22f9724c47470}{affiche\_recap\_panier}}(\textcolor{keywordtype}{int}\ panier[],\ \textcolor{keywordtype}{int}\ taillePanier,\ \textcolor{keywordtype}{int}\ references[],\ \textcolor{keywordtype}{float}\ poids[],\ \textcolor{keywordtype}{float}\ volume[],} -\DoxyCodeLine{00090\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{float}\ prixUnitaire[],\ \textcolor{keywordtype}{int}\ quantites[],\ \textcolor{keywordtype}{float}\ cagnottes[],\ \textcolor{keywordtype}{int}\ numeroClient,} -\DoxyCodeLine{00091\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ numeros[],\ \textcolor{keywordtype}{int}\ nombreClients,\ \textcolor{keywordtype}{float}\ volumeCoffre,\ \textcolor{keywordtype}{float}\ chargeMaximale,\ \textcolor{keywordtype}{float}\ budget);} -\DoxyCodeLine{00092\ } -\DoxyCodeLine{00104\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__client_8h_a7caca9094610ed2dfcbfe0b350b678cf}{configurer\_session\_client}}(\textcolor{keywordtype}{int}\ numeros[],\ \textcolor{keywordtype}{int}\ suspendus[],\ \textcolor{keywordtype}{int}\ nombreClients,\ \textcolor{keywordtype}{double}\ *budget,\ \textcolor{keywordtype}{float}\ *volumeCoffre,\ \textcolor{keywordtype}{float}\ *chargeMaximale,\ \textcolor{keywordtype}{int}\ *numeroClient);} -\DoxyCodeLine{00105\ } -\DoxyCodeLine{00119\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__client_8h_a87e47382ab2c90e6d5949fa78f50900e}{modifier\_quantite\_article\_panier}}(\textcolor{keywordtype}{int}\ panier[],\ \textcolor{keywordtype}{int}\ quantites[],\ \textcolor{keywordtype}{int}\ *taillePanier,\ \textcolor{keywordtype}{float}\ cagnottes[],\ \textcolor{keywordtype}{int}\ numeroClient,\ \textcolor{keywordtype}{float}\ prixUnitaire[],\ \textcolor{keywordtype}{int}\ references[],\ \textcolor{keywordtype}{int}\ nombreClients,\ \textcolor{keywordtype}{int}\ numeros[]);} -\DoxyCodeLine{00120\ } -\DoxyCodeLine{00134\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__client_8h_ac55e8aab165ed0541827f10be23c9d97}{reinitialiser\_panier}}(\textcolor{keywordtype}{int}\ panier[],\ \textcolor{keywordtype}{int}\ quantites[],\ \textcolor{keywordtype}{int}\ *taillePanier,\ \textcolor{keywordtype}{float}\ cagnottes[],\ \textcolor{keywordtype}{int}\ numeroClient,\ \textcolor{keywordtype}{int}\ numeros[],\ \textcolor{keywordtype}{int}\ nombreClients,\ \textcolor{keywordtype}{int}\ references[],\ \textcolor{keywordtype}{float}\ prixUnitaire[]);} -\DoxyCodeLine{00135\ } -\DoxyCodeLine{00146\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__client_8h_a7203df964d63cb07d7b19912d5e3c3bd}{deduire\_cagnotte}}(\textcolor{keywordtype}{int}\ numeroClient,\ \textcolor{keywordtype}{float}\ montant,\ \textcolor{keywordtype}{int}\ numeros[],\ \textcolor{keywordtype}{float}\ cagnottes[],\ \textcolor{keywordtype}{int}\ nombreClients,\ \textcolor{keywordtype}{int}\ suspendus[]);} -\DoxyCodeLine{00147\ } -\DoxyCodeLine{00165\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__client_8h_a75ce35e6cd3b58c6359897a8aa131509}{quitter\_application}}(\textcolor{keywordtype}{int}\ panier[],\ \textcolor{keywordtype}{int}\ taillePanier,\ \textcolor{keywordtype}{int}\ references[],\ \textcolor{keywordtype}{float}\ poids[],\ \textcolor{keywordtype}{float}\ volume[],} -\DoxyCodeLine{00166\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{float}\ prixUnitaire[],\ \textcolor{keywordtype}{int}\ quantites[],\ \textcolor{keywordtype}{float}\ cagnottes[],\ \textcolor{keywordtype}{int}\ numeroClient,} -\DoxyCodeLine{00167\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ numeros[],\ \textcolor{keywordtype}{int}\ nombreClients,\ \textcolor{keywordtype}{float}\ budget,\ \textcolor{keywordtype}{int}\ suspendus[]);} -\DoxyCodeLine{00168\ } -\DoxyCodeLine{00172\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__client_8h_a40507f288c72ef9b92d113990bc0ed40}{global\_client}}(\textcolor{keywordtype}{void});} -\DoxyCodeLine{00173\ } -\DoxyCodeLine{00174\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ INTERFACE\_CLIENT\_H}} - -\end{DoxyCode} diff --git a/docs/latex/interface__resp_8h.tex b/docs/latex/interface__resp_8h.tex deleted file mode 100644 index 89ec7b8..0000000 --- a/docs/latex/interface__resp_8h.tex +++ /dev/null @@ -1,321 +0,0 @@ -\doxysection{src/app/interface/interface\+\_\+resp.h File Reference} -\hypertarget{interface__resp_8h}{}\label{interface__resp_8h}\index{src/app/interface/interface\_resp.h@{src/app/interface/interface\_resp.h}} - - -En-\/tête des fonctions liées à l\textquotesingle{}interface du responsable. - - -\doxysubsubsection*{Functions} -\begin{DoxyCompactItemize} -\item -void \mbox{\hyperlink{interface__resp_8h_af518981f5e0d4575a6b7bae3f22e9985}{affich\+Articles}} (int t\+Ref\mbox{[}$\,$\mbox{]}, float t\+Poids\mbox{[}$\,$\mbox{]}, float t\+Vol\mbox{[}$\,$\mbox{]}, float t\+Prix\mbox{[}$\,$\mbox{]}, int t\+Logique) -\begin{DoxyCompactList}\small\item\em Affiche la liste des articles. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__resp_8h_a5e9ce25cbd73f9d4732b84eb5ab59d13}{affich\+Un\+Article}} (int t\+Ref\mbox{[}$\,$\mbox{]}, float t\+Poids\mbox{[}$\,$\mbox{]}, float t\+Vol\mbox{[}$\,$\mbox{]}, float t\+Prix\mbox{[}$\,$\mbox{]}, int t\+Logique) -\begin{DoxyCompactList}\small\item\em Affiche les informations d\textquotesingle{}un article spécifique. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__resp_8h_aa29059c1470e490b32fdf483b5570c88}{affich\+Un\+Client}} (int t\+Num\+Client\mbox{[}$\,$\mbox{]}, float t\+Cagnotte\mbox{[}$\,$\mbox{]}, int t\+Sus\mbox{[}$\,$\mbox{]}, int t\+Logique) -\begin{DoxyCompactList}\small\item\em Affiche les informations d\textquotesingle{}un client spécifique. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__resp_8h_a7c0531c63ea490d0b674960483e9ba27}{affich\+Clients}} (int t\+Num\+Client\mbox{[}$\,$\mbox{]}, float t\+Cagnotte\mbox{[}$\,$\mbox{]}, int t\+Sus\mbox{[}$\,$\mbox{]}, int t\+Logique) -\begin{DoxyCompactList}\small\item\em Affiche la liste des clients. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__resp_8h_a9112538df3d862ffefc89fb8532d1176}{affich\+Ajout\+Article}} (int \texorpdfstring{$\ast$}{*}ref, float \texorpdfstring{$\ast$}{*}poids, float \texorpdfstring{$\ast$}{*}volume, float \texorpdfstring{$\ast$}{*}prix, int t\+Ref\mbox{[}$\,$\mbox{]}, int t\+Log\+Article) -\begin{DoxyCompactList}\small\item\em Affiche les informations nécessaires pour ajouter un nouvel article. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__resp_8h_a47ca5882a75fd3b919ba02b028582473}{affich\+Supprimer\+Article}} (int \texorpdfstring{$\ast$}{*}ref) -\begin{DoxyCompactList}\small\item\em Affiche les informations nécessaires pour supprimer un article. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__resp_8h_af075e50ffce501b901ff31b1fb73262f}{affich\+Modifier\+Article}} (int \texorpdfstring{$\ast$}{*}ref, float \texorpdfstring{$\ast$}{*}poids, float \texorpdfstring{$\ast$}{*}volume, float \texorpdfstring{$\ast$}{*}prix) -\begin{DoxyCompactList}\small\item\em Affiche les informations nécessaires pour modifier un article. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__resp_8h_a34970f3ce5206778f2a225d7fff17bdd}{problem\+Recherche\+Article}} (void) -\begin{DoxyCompactList}\small\item\em Affiche un message en cas de problème lors de la recherche d\textquotesingle{}un article. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__resp_8h_a964d2d2bc5b9aa544e6187ed6cbc961c}{affich\+Ajout\+Client}} (int t\+Num\+Client\mbox{[}$\,$\mbox{]}, int t\+Logique, int \texorpdfstring{$\ast$}{*}numC) -\begin{DoxyCompactList}\small\item\em Affiche les informations nécessaires pour ajouter un nouveau client. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__resp_8h_a1f14dc8f23be75e1a5c0e7ce0c77f597}{menu\+\_\+resp}} (int \texorpdfstring{$\ast$}{*}choix) -\begin{DoxyCompactList}\small\item\em Laisse le responsable choisir une option du menu. \end{DoxyCompactList}\item -int \mbox{\hyperlink{interface__resp_8h_a31e174ac99df5a3cb347944f972ab5c9}{affichage\+Connexion}} (void) -\begin{DoxyCompactList}\small\item\em Affiche les informations nécessaires pour entrer le mod de passe responsable. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__resp_8h_ad770c392a3645464f2f19740f2006c44}{affich\+Modif\+Client}} (int t\+Num\+Client\mbox{[}$\,$\mbox{]}, int t\+Sus\mbox{[}$\,$\mbox{]}, int t\+Logique) -\begin{DoxyCompactList}\small\item\em Affiche le menu qui permet de modifier l\textquotesingle{}état de la cagnotte d\textquotesingle{}un client. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__resp_8h_af8034d8f578bddee1a9e5b95e8000e06}{global\+\_\+resp}} (void) -\begin{DoxyCompactList}\small\item\em Fonction principale de l\textquotesingle{}interface du responsable. \end{DoxyCompactList}\item -void \mbox{\hyperlink{interface__resp_8h_abb1a25ae1531e0857856843b41805528}{affiche\+\_\+resp}} (void) -\begin{DoxyCompactList}\small\item\em Affiche le menu principal de l\textquotesingle{}interface du responsable. \end{DoxyCompactList}\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -En-\/tête des fonctions liées à l\textquotesingle{}interface du responsable. - - - -\doxysubsection{Function Documentation} -\Hypertarget{interface__resp_8h_a31e174ac99df5a3cb347944f972ab5c9}\label{interface__resp_8h_a31e174ac99df5a3cb347944f972ab5c9} -\index{interface\_resp.h@{interface\_resp.h}!affichageConnexion@{affichageConnexion}} -\index{affichageConnexion@{affichageConnexion}!interface\_resp.h@{interface\_resp.h}} -\doxysubsubsection{\texorpdfstring{affichageConnexion()}{affichageConnexion()}} -{\footnotesize\ttfamily int affichage\+Connexion (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})} - - - -Affiche les informations nécessaires pour entrer le mod de passe responsable. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} -Cette fonction permet au responsable de confirmer son identité \Hypertarget{interface__resp_8h_a9112538df3d862ffefc89fb8532d1176}\label{interface__resp_8h_a9112538df3d862ffefc89fb8532d1176} -\index{interface\_resp.h@{interface\_resp.h}!affichAjoutArticle@{affichAjoutArticle}} -\index{affichAjoutArticle@{affichAjoutArticle}!interface\_resp.h@{interface\_resp.h}} -\doxysubsubsection{\texorpdfstring{affichAjoutArticle()}{affichAjoutArticle()}} -{\footnotesize\ttfamily void affich\+Ajout\+Article (\begin{DoxyParamCaption}\item[{int \texorpdfstring{$\ast$}{*}}]{ref, }\item[{float \texorpdfstring{$\ast$}{*}}]{poids, }\item[{float \texorpdfstring{$\ast$}{*}}]{volume, }\item[{float \texorpdfstring{$\ast$}{*}}]{prix, }\item[{int}]{t\+Ref\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Log\+Article }\end{DoxyParamCaption})} - - - -Affiche les informations nécessaires pour ajouter un nouvel article. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} - -\begin{DoxyParams}{Parameters} -{\em ref} & -\/ Référence du nouvel article. \\ -\hline -{\em poids} & -\/ Poids du nouvel article. \\ -\hline -{\em volume} & -\/ Volume du nouvel article. \\ -\hline -{\em prix} & -\/ Prix du nouvel article. \\ -\hline -{\em t\+Ref} & -\/ Tableau de référence des articles. \\ -\hline -{\em t\+Log\+Article} & -\/ Taille logique du tableau des références. \\ -\hline -\end{DoxyParams} -\Hypertarget{interface__resp_8h_a964d2d2bc5b9aa544e6187ed6cbc961c}\label{interface__resp_8h_a964d2d2bc5b9aa544e6187ed6cbc961c} -\index{interface\_resp.h@{interface\_resp.h}!affichAjoutClient@{affichAjoutClient}} -\index{affichAjoutClient@{affichAjoutClient}!interface\_resp.h@{interface\_resp.h}} -\doxysubsubsection{\texorpdfstring{affichAjoutClient()}{affichAjoutClient()}} -{\footnotesize\ttfamily void affich\+Ajout\+Client (\begin{DoxyParamCaption}\item[{int}]{t\+Num\+Client\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Logique, }\item[{int \texorpdfstring{$\ast$}{*}}]{numC }\end{DoxyParamCaption})} - - - -Affiche les informations nécessaires pour ajouter un nouveau client. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} - -\begin{DoxyParams}{Parameters} -{\em t\+Num\+Client} & -\/ Tableau des numéros de clients. \\ -\hline -{\em t\+Logique} & -\/ Nombre de clients actuellement enregistrés. \\ -\hline -{\em numC} & -\/ Numéro du nouveau client. \\ -\hline -\end{DoxyParams} -\Hypertarget{interface__resp_8h_af518981f5e0d4575a6b7bae3f22e9985}\label{interface__resp_8h_af518981f5e0d4575a6b7bae3f22e9985} -\index{interface\_resp.h@{interface\_resp.h}!affichArticles@{affichArticles}} -\index{affichArticles@{affichArticles}!interface\_resp.h@{interface\_resp.h}} -\doxysubsubsection{\texorpdfstring{affichArticles()}{affichArticles()}} -{\footnotesize\ttfamily void affich\+Articles (\begin{DoxyParamCaption}\item[{int}]{t\+Ref\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Poids\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Vol\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Prix\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Logique }\end{DoxyParamCaption})} - - - -Affiche la liste des articles. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} - -\begin{DoxyParams}{Parameters} -{\em t\+Ref} & -\/ Tableau des références des articles. \\ -\hline -{\em t\+Poids} & -\/ Tableau des poids des articles. \\ -\hline -{\em t\+Vol} & -\/ Tableau des volumes des articles. \\ -\hline -{\em t\+Prix} & -\/ Tableau des prix des articles. \\ -\hline -{\em t\+Logique} & -\/ Nombre d\textquotesingle{}articles actuellement enregistrés. \\ -\hline -\end{DoxyParams} -\Hypertarget{interface__resp_8h_a7c0531c63ea490d0b674960483e9ba27}\label{interface__resp_8h_a7c0531c63ea490d0b674960483e9ba27} -\index{interface\_resp.h@{interface\_resp.h}!affichClients@{affichClients}} -\index{affichClients@{affichClients}!interface\_resp.h@{interface\_resp.h}} -\doxysubsubsection{\texorpdfstring{affichClients()}{affichClients()}} -{\footnotesize\ttfamily void affich\+Clients (\begin{DoxyParamCaption}\item[{int}]{t\+Num\+Client\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Cagnotte\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Sus\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Logique }\end{DoxyParamCaption})} - - - -Affiche la liste des clients. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} - -\begin{DoxyParams}{Parameters} -{\em t\+Num\+Client} & -\/ Tableau des numéros de clients. \\ -\hline -{\em t\+Cagnotte} & -\/ Tableau des cagnottes des clients. \\ -\hline -{\em t\+Sus} & -\/ Tableau des états de suspension des clients. \\ -\hline -{\em t\+Logique} & -\/ Nombre de clients actuellement enregistrés. \\ -\hline -\end{DoxyParams} -\Hypertarget{interface__resp_8h_abb1a25ae1531e0857856843b41805528}\label{interface__resp_8h_abb1a25ae1531e0857856843b41805528} -\index{interface\_resp.h@{interface\_resp.h}!affiche\_resp@{affiche\_resp}} -\index{affiche\_resp@{affiche\_resp}!interface\_resp.h@{interface\_resp.h}} -\doxysubsubsection{\texorpdfstring{affiche\_resp()}{affiche\_resp()}} -{\footnotesize\ttfamily void affiche\+\_\+resp (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})} - - - -Affiche le menu principal de l\textquotesingle{}interface du responsable. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} -\Hypertarget{interface__resp_8h_ad770c392a3645464f2f19740f2006c44}\label{interface__resp_8h_ad770c392a3645464f2f19740f2006c44} -\index{interface\_resp.h@{interface\_resp.h}!affichModifClient@{affichModifClient}} -\index{affichModifClient@{affichModifClient}!interface\_resp.h@{interface\_resp.h}} -\doxysubsubsection{\texorpdfstring{affichModifClient()}{affichModifClient()}} -{\footnotesize\ttfamily void affich\+Modif\+Client (\begin{DoxyParamCaption}\item[{int}]{t\+Num\+Client\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Sus\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Logique }\end{DoxyParamCaption})} - - - -Affiche le menu qui permet de modifier l\textquotesingle{}état de la cagnotte d\textquotesingle{}un client. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} -\Hypertarget{interface__resp_8h_af075e50ffce501b901ff31b1fb73262f}\label{interface__resp_8h_af075e50ffce501b901ff31b1fb73262f} -\index{interface\_resp.h@{interface\_resp.h}!affichModifierArticle@{affichModifierArticle}} -\index{affichModifierArticle@{affichModifierArticle}!interface\_resp.h@{interface\_resp.h}} -\doxysubsubsection{\texorpdfstring{affichModifierArticle()}{affichModifierArticle()}} -{\footnotesize\ttfamily void affich\+Modifier\+Article (\begin{DoxyParamCaption}\item[{int \texorpdfstring{$\ast$}{*}}]{ref, }\item[{float \texorpdfstring{$\ast$}{*}}]{poids, }\item[{float \texorpdfstring{$\ast$}{*}}]{volume, }\item[{float \texorpdfstring{$\ast$}{*}}]{prix }\end{DoxyParamCaption})} - - - -Affiche les informations nécessaires pour modifier un article. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} - -\begin{DoxyParams}{Parameters} -{\em ref} & -\/ Référence de l\textquotesingle{}article à modifier. \\ -\hline -{\em poids} & -\/ Nouveau poids de l\textquotesingle{}article. \\ -\hline -{\em volume} & -\/ Nouveau volume de l\textquotesingle{}article. \\ -\hline -{\em prix} & -\/ Nouveau prix de l\textquotesingle{}article. \\ -\hline -\end{DoxyParams} -\Hypertarget{interface__resp_8h_a47ca5882a75fd3b919ba02b028582473}\label{interface__resp_8h_a47ca5882a75fd3b919ba02b028582473} -\index{interface\_resp.h@{interface\_resp.h}!affichSupprimerArticle@{affichSupprimerArticle}} -\index{affichSupprimerArticle@{affichSupprimerArticle}!interface\_resp.h@{interface\_resp.h}} -\doxysubsubsection{\texorpdfstring{affichSupprimerArticle()}{affichSupprimerArticle()}} -{\footnotesize\ttfamily void affich\+Supprimer\+Article (\begin{DoxyParamCaption}\item[{int \texorpdfstring{$\ast$}{*}}]{ref }\end{DoxyParamCaption})} - - - -Affiche les informations nécessaires pour supprimer un article. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} - -\begin{DoxyParams}{Parameters} -{\em ref} & -\/ Référence de l\textquotesingle{}article à supprimer. \\ -\hline -\end{DoxyParams} -\Hypertarget{interface__resp_8h_a5e9ce25cbd73f9d4732b84eb5ab59d13}\label{interface__resp_8h_a5e9ce25cbd73f9d4732b84eb5ab59d13} -\index{interface\_resp.h@{interface\_resp.h}!affichUnArticle@{affichUnArticle}} -\index{affichUnArticle@{affichUnArticle}!interface\_resp.h@{interface\_resp.h}} -\doxysubsubsection{\texorpdfstring{affichUnArticle()}{affichUnArticle()}} -{\footnotesize\ttfamily void affich\+Un\+Article (\begin{DoxyParamCaption}\item[{int}]{t\+Ref\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Poids\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Vol\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Prix\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Logique }\end{DoxyParamCaption})} - - - -Affiche les informations d\textquotesingle{}un article spécifique. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} - -\begin{DoxyParams}{Parameters} -{\em t\+Ref} & -\/ Tableau des références des articles. \\ -\hline -{\em t\+Poids} & -\/ Tableau des poids des articles. \\ -\hline -{\em t\+Vol} & -\/ Tableau des volumes des articles. \\ -\hline -{\em t\+Prix} & -\/ Tableau des prix des articles. \\ -\hline -{\em t\+Logique} & -\/ Nombre d\textquotesingle{}articles actuellement enregistrés. \\ -\hline -\end{DoxyParams} -\Hypertarget{interface__resp_8h_aa29059c1470e490b32fdf483b5570c88}\label{interface__resp_8h_aa29059c1470e490b32fdf483b5570c88} -\index{interface\_resp.h@{interface\_resp.h}!affichUnClient@{affichUnClient}} -\index{affichUnClient@{affichUnClient}!interface\_resp.h@{interface\_resp.h}} -\doxysubsubsection{\texorpdfstring{affichUnClient()}{affichUnClient()}} -{\footnotesize\ttfamily void affich\+Un\+Client (\begin{DoxyParamCaption}\item[{int}]{t\+Num\+Client\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Cagnotte\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Sus\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Logique }\end{DoxyParamCaption})} - - - -Affiche les informations d\textquotesingle{}un client spécifique. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} - -\begin{DoxyParams}{Parameters} -{\em t\+Num\+Client} & -\/ Tableau des numéros de clients. \\ -\hline -{\em t\+Cagnotte} & -\/ Tableau des cagnottes des clients. \\ -\hline -{\em t\+Sus} & -\/ Tableau des états de suspension des clients. \\ -\hline -{\em t\+Logique} & -\/ Nombre de clients actuellement enregistrés. \\ -\hline -\end{DoxyParams} -\Hypertarget{interface__resp_8h_af8034d8f578bddee1a9e5b95e8000e06}\label{interface__resp_8h_af8034d8f578bddee1a9e5b95e8000e06} -\index{interface\_resp.h@{interface\_resp.h}!global\_resp@{global\_resp}} -\index{global\_resp@{global\_resp}!interface\_resp.h@{interface\_resp.h}} -\doxysubsubsection{\texorpdfstring{global\_resp()}{global\_resp()}} -{\footnotesize\ttfamily void global\+\_\+resp (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})} - - - -Fonction principale de l\textquotesingle{}interface du responsable. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} -Cette fonction permet au responsable d\textquotesingle{}effectuer diverses actions telles que la gestion des articles et des clients. \Hypertarget{interface__resp_8h_a1f14dc8f23be75e1a5c0e7ce0c77f597}\label{interface__resp_8h_a1f14dc8f23be75e1a5c0e7ce0c77f597} -\index{interface\_resp.h@{interface\_resp.h}!menu\_resp@{menu\_resp}} -\index{menu\_resp@{menu\_resp}!interface\_resp.h@{interface\_resp.h}} -\doxysubsubsection{\texorpdfstring{menu\_resp()}{menu\_resp()}} -{\footnotesize\ttfamily void menu\+\_\+resp (\begin{DoxyParamCaption}\item[{int \texorpdfstring{$\ast$}{*}}]{choix }\end{DoxyParamCaption})} - - - -Laisse le responsable choisir une option du menu. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} - -\begin{DoxyParams}[1]{Parameters} -\mbox{\texttt{ in,out}} & {\em choix} & -\/ L\textquotesingle{}option choisie par le responsable. \\ -\hline -\end{DoxyParams} -\Hypertarget{interface__resp_8h_a34970f3ce5206778f2a225d7fff17bdd}\label{interface__resp_8h_a34970f3ce5206778f2a225d7fff17bdd} -\index{interface\_resp.h@{interface\_resp.h}!problemRechercheArticle@{problemRechercheArticle}} -\index{problemRechercheArticle@{problemRechercheArticle}!interface\_resp.h@{interface\_resp.h}} -\doxysubsubsection{\texorpdfstring{problemRechercheArticle()}{problemRechercheArticle()}} -{\footnotesize\ttfamily void problem\+Recherche\+Article (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})} - - - -Affiche un message en cas de problème lors de la recherche d\textquotesingle{}un article. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} diff --git a/docs/latex/interface__resp_8h_source.tex b/docs/latex/interface__resp_8h_source.tex deleted file mode 100644 index d92b858..0000000 --- a/docs/latex/interface__resp_8h_source.tex +++ /dev/null @@ -1,35 +0,0 @@ -\doxysection{interface\+\_\+resp.\+h} -\hypertarget{interface__resp_8h_source}{}\label{interface__resp_8h_source}\index{src/app/interface/interface\_resp.h@{src/app/interface/interface\_resp.h}} -\mbox{\hyperlink{interface__resp_8h}{Go to the documentation of this file.}} -\begin{DoxyCode}{0} -\DoxyCodeLine{00001\ } -\DoxyCodeLine{00016\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__resp_8h_af518981f5e0d4575a6b7bae3f22e9985}{affichArticles}}(\textcolor{keywordtype}{int}\ tRef[],\ \textcolor{keywordtype}{float}\ tPoids[],\ \textcolor{keywordtype}{float}\ tVol[],\ \textcolor{keywordtype}{float}\ tPrix[],\ \textcolor{keywordtype}{int}\ tLogique);} -\DoxyCodeLine{00017\ } -\DoxyCodeLine{00028\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__resp_8h_a5e9ce25cbd73f9d4732b84eb5ab59d13}{affichUnArticle}}(\textcolor{keywordtype}{int}\ tRef[],\ \textcolor{keywordtype}{float}\ tPoids[],\ \textcolor{keywordtype}{float}\ tVol[],\ \textcolor{keywordtype}{float}\ tPrix[],\ \textcolor{keywordtype}{int}\ tLogique);} -\DoxyCodeLine{00029\ } -\DoxyCodeLine{00039\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__resp_8h_aa29059c1470e490b32fdf483b5570c88}{affichUnClient}}(\textcolor{keywordtype}{int}\ tNumClient[],\ \textcolor{keywordtype}{float}\ tCagnotte[],\ \textcolor{keywordtype}{int}\ tSus[],\ \textcolor{keywordtype}{int}\ tLogique);} -\DoxyCodeLine{00040\ } -\DoxyCodeLine{00050\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__resp_8h_a7c0531c63ea490d0b674960483e9ba27}{affichClients}}(\textcolor{keywordtype}{int}\ tNumClient[],\ \textcolor{keywordtype}{float}\ tCagnotte[],\ \textcolor{keywordtype}{int}\ tSus[],\ \textcolor{keywordtype}{int}\ tLogique);} -\DoxyCodeLine{00051\ } -\DoxyCodeLine{00063\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__resp_8h_a9112538df3d862ffefc89fb8532d1176}{affichAjoutArticle}}(\textcolor{keywordtype}{int}\ *ref,\ \textcolor{keywordtype}{float}\ *poids,\ \textcolor{keywordtype}{float}\ *volume,\ \textcolor{keywordtype}{float}\ *prix,\ \textcolor{keywordtype}{int}\ tRef[],\ \textcolor{keywordtype}{int}\ tLogArticle);} -\DoxyCodeLine{00064\ } -\DoxyCodeLine{00071\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__resp_8h_a47ca5882a75fd3b919ba02b028582473}{affichSupprimerArticle}}(\textcolor{keywordtype}{int}\ *ref);} -\DoxyCodeLine{00072\ } -\DoxyCodeLine{00082\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__resp_8h_af075e50ffce501b901ff31b1fb73262f}{affichModifierArticle}}(\textcolor{keywordtype}{int}\ *ref,\ \textcolor{keywordtype}{float}\ *poids,\ \textcolor{keywordtype}{float}\ *volume,\ \textcolor{keywordtype}{float}\ *prix);} -\DoxyCodeLine{00083\ } -\DoxyCodeLine{00089\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__resp_8h_a34970f3ce5206778f2a225d7fff17bdd}{problemRechercheArticle}}(\textcolor{keywordtype}{void});} -\DoxyCodeLine{00090\ } -\DoxyCodeLine{00099\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__resp_8h_a964d2d2bc5b9aa544e6187ed6cbc961c}{affichAjoutClient}}(\textcolor{keywordtype}{int}\ tNumClient[],\ \textcolor{keywordtype}{int}\ tLogique,\ \textcolor{keywordtype}{int}\ *numC);} -\DoxyCodeLine{00100\ } -\DoxyCodeLine{00107\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__resp_8h_a1f14dc8f23be75e1a5c0e7ce0c77f597}{menu\_resp}}(\textcolor{keywordtype}{int}\ *choix);} -\DoxyCodeLine{00108\ } -\DoxyCodeLine{00109\ } -\DoxyCodeLine{00116\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{interface__resp_8h_a31e174ac99df5a3cb347944f972ab5c9}{affichageConnexion}}(\textcolor{keywordtype}{void});} -\DoxyCodeLine{00117\ } -\DoxyCodeLine{00123\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__resp_8h_ad770c392a3645464f2f19740f2006c44}{affichModifClient}}(\textcolor{keywordtype}{int}\ tNumClient[],\ \textcolor{keywordtype}{int}\ tSus[],\ \textcolor{keywordtype}{int}\ tLogique);} -\DoxyCodeLine{00124\ } -\DoxyCodeLine{00131\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__resp_8h_af8034d8f578bddee1a9e5b95e8000e06}{global\_resp}}(\textcolor{keywordtype}{void});} -\DoxyCodeLine{00132\ } -\DoxyCodeLine{00137\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{interface__resp_8h_abb1a25ae1531e0857856843b41805528}{affiche\_resp}}(\textcolor{keywordtype}{void});} - -\end{DoxyCode} diff --git a/docs/latex/longtable_doxygen.sty b/docs/latex/longtable_doxygen.sty deleted file mode 100644 index e94b78b..0000000 --- a/docs/latex/longtable_doxygen.sty +++ /dev/null @@ -1,456 +0,0 @@ -%% -%% This is file `longtable.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% longtable.dtx (with options: `package') -%% -%% This is a generated file. -%% -%% The source is maintained by the LaTeX Project team and bug -%% reports for it can be opened at http://latex-project.org/bugs.html -%% (but please observe conditions on bug reports sent to that address!) -%% -%% Copyright 1993-2016 -%% The LaTeX3 Project and any individual authors listed elsewhere -%% in this file. -%% -%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'. -%% -------------------------------------------------------------------------- -%% -%% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3c -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3c or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This file may only be distributed together with a copy of the LaTeX -%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle' -%% without such generated files. -%% -%% The list of all files belonging to the LaTeX `Tools Bundle' is -%% given in the file `manifest.txt'. -%% -%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle -\NeedsTeXFormat{LaTeX2e}[1995/06/01] -\ProvidesPackage{longtable_doxygen} - [2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen] -\def\LT@err{\PackageError{longtable}} -\def\LT@warn{\PackageWarning{longtable}} -\def\LT@final@warn{% - \AtEndDocument{% - \LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}% - \global\let\LT@final@warn\relax} -\DeclareOption{errorshow}{% - \def\LT@warn{\PackageInfo{longtable}}} -\DeclareOption{pausing}{% - \def\LT@warn#1{% - \LT@err{#1}{This is not really an error}}} -\DeclareOption{set}{} -\DeclareOption{final}{} -\ProcessOptions -\newskip\LTleft \LTleft=\fill -\newskip\LTright \LTright=\fill -\newskip\LTpre \LTpre=\bigskipamount -\newskip\LTpost \LTpost=\bigskipamount -\newcount\LTchunksize \LTchunksize=20 -\let\c@LTchunksize\LTchunksize -\newdimen\LTcapwidth \LTcapwidth=4in -\newbox\LT@head -\newbox\LT@firsthead -\newbox\LT@foot -\newbox\LT@lastfoot -\newcount\LT@cols -\newcount\LT@rows -\newcounter{LT@tables} -\newcounter{LT@chunks}[LT@tables] -\ifx\c@table\undefined - \newcounter{table} - \def\fnum@table{\tablename~\thetable} -\fi -\ifx\tablename\undefined - \def\tablename{Table} -\fi -\newtoks\LT@p@ftn -\mathchardef\LT@end@pen=30000 -\def\longtable{% - \par - \ifx\multicols\@undefined - \else - \ifnum\col@number>\@ne - \@twocolumntrue - \fi - \fi - \if@twocolumn - \LT@err{longtable not in 1-column mode}\@ehc - \fi - \begingroup - \@ifnextchar[\LT@array{\LT@array[x]}} -\def\LT@array[#1]#2{% - \refstepcounter{table}\stepcounter{LT@tables}% - \if l#1% - \LTleft\z@ \LTright\fill - \else\if r#1% - \LTleft\fill \LTright\z@ - \else\if c#1% - \LTleft\fill \LTright\fill - \fi\fi\fi - \let\LT@mcol\multicolumn - \let\LT@@tabarray\@tabarray - \let\LT@@hl\hline - \def\@tabarray{% - \let\hline\LT@@hl - \LT@@tabarray}% - \let\\\LT@tabularcr\let\tabularnewline\\% - \def\newpage{\noalign{\break}}% - \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}% - \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}% - \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption - \@tempdima\ht\strutbox - \let\@endpbox\LT@endpbox - \ifx\extrarowheight\@undefined - \let\@acol\@tabacol - \let\@classz\@tabclassz \let\@classiv\@tabclassiv - \def\@startpbox{\vtop\LT@startpbox}% - \let\@@startpbox\@startpbox - \let\@@endpbox\@endpbox - \let\LT@LL@FM@cr\@tabularcr - \else - \advance\@tempdima\extrarowheight - \col@sep\tabcolsep - \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr - \fi - \setbox\@arstrutbox\hbox{\vrule - \@height \arraystretch \@tempdima - \@depth \arraystretch \dp \strutbox - \@width \z@}% - \let\@sharp##\let\protect\relax - \begingroup - \@mkpream{#2}% - \xdef\LT@bchunk{% - \global\advance\c@LT@chunks\@ne - \global\LT@rows\z@\setbox\z@\vbox\bgroup - \LT@setprevdepth - \tabskip\LTleft \noexpand\halign to\hsize\bgroup - \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}% - \endgroup - \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols - \LT@make@row - \m@th\let\par\@empty - \everycr{}\lineskip\z@\baselineskip\z@ - \LT@bchunk} -\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}} -\def\LT@start{% - \let\LT@start\endgraf - \endgraf\penalty\z@\vskip\LTpre - \dimen@\pagetotal - \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi - \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi - \advance\dimen@ \ht\LT@foot - \dimen@ii\vfuzz - \vfuzz\maxdimen - \setbox\tw@\copy\z@ - \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox - \setbox\tw@\vbox{\unvbox\tw@}% - \vfuzz\dimen@ii - \advance\dimen@ \ht - \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi - \advance\dimen@\dp - \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi - \advance\dimen@ -\pagegoal - \ifdim \dimen@>\z@\vfil\break\fi - \global\@colroom\@colht - \ifvoid\LT@foot\else - \advance\vsize-\ht\LT@foot - \global\advance\@colroom-\ht\LT@foot - \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@ - \maxdepth\z@ - \fi - \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak - \output{\LT@output}} -\def\endlongtable{% - \crcr - \noalign{% - \let\LT@entry\LT@entry@chop - \xdef\LT@save@row{\LT@save@row}}% - \LT@echunk - \LT@start - \unvbox\z@ - \LT@get@widths - \if@filesw - {\let\LT@entry\LT@entry@write\immediate\write\@auxout{% - \gdef\expandafter\noexpand - \csname LT@\romannumeral\c@LT@tables\endcsname - {\LT@save@row}}}% - \fi - \ifx\LT@save@row\LT@@save@row - \else - \LT@warn{Column \@width s have changed\MessageBreak - in table \thetable}% - \LT@final@warn - \fi - \endgraf\penalty -\LT@end@pen - \endgroup - \global\@mparbottom\z@ - \pagegoal\vsize - \endgraf\penalty\z@\addvspace\LTpost - \ifvoid\footins\else\insert\footins{}\fi} -\def\LT@nofcols#1&{% - \futurelet\@let@token\LT@n@fcols} -\def\LT@n@fcols{% - \advance\LT@cols\@ne - \ifx\@let@token\LT@nofcols - \expandafter\@gobble - \else - \expandafter\LT@nofcols - \fi} -\def\LT@tabularcr{% - \relax\iffalse{\fi\ifnum0=`}\fi - \@ifstar - {\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr - \LT@t@bularcr}% - {\LT@t@bularcr}} -\let\LT@crcr\crcr -\let\LT@setprevdepth\relax -\def\LT@t@bularcr{% - \global\advance\LT@rows\@ne - \ifnum\LT@rows=\LTchunksize - \gdef\LT@setprevdepth{% - \prevdepth\z@\global - \global\let\LT@setprevdepth\relax}% - \expandafter\LT@xtabularcr - \else - \ifnum0=`{}\fi - \expandafter\LT@LL@FM@cr - \fi} -\def\LT@xtabularcr{% - \@ifnextchar[\LT@argtabularcr\LT@ntabularcr} -\def\LT@ntabularcr{% - \ifnum0=`{}\fi - \LT@echunk - \LT@start - \unvbox\z@ - \LT@get@widths - \LT@bchunk} -\def\LT@argtabularcr[#1]{% - \ifnum0=`{}\fi - \ifdim #1>\z@ - \unskip\@xargarraycr{#1}% - \else - \@yargarraycr{#1}% - \fi - \LT@echunk - \LT@start - \unvbox\z@ - \LT@get@widths - \LT@bchunk} -\def\LT@echunk{% - \crcr\LT@save@row\cr\egroup - \global\setbox\@ne\lastbox - \unskip - \egroup} -\def\LT@entry#1#2{% - \ifhmode\@firstofone{&}\fi\omit - \ifnum#1=\c@LT@chunks - \else - \kern#2\relax - \fi} -\def\LT@entry@chop#1#2{% - \noexpand\LT@entry - {\ifnum#1>\c@LT@chunks - 1}{0pt% - \else - #1}{#2% - \fi}} -\def\LT@entry@write{% - \noexpand\LT@entry^^J% - \@spaces} -\def\LT@kill{% - \LT@echunk - \LT@get@widths - \expandafter\LT@rebox\LT@bchunk} -\def\LT@rebox#1\bgroup{% - #1\bgroup - \unvbox\z@ - \unskip - \setbox\z@\lastbox} -\def\LT@blank@row{% - \xdef\LT@save@row{\expandafter\LT@build@blank - \romannumeral\number\LT@cols 001 }} -\def\LT@build@blank#1{% - \if#1m% - \noexpand\LT@entry{1}{0pt}% - \expandafter\LT@build@blank - \fi} -\def\LT@make@row{% - \global\expandafter\let\expandafter\LT@save@row - \csname LT@\romannumeral\c@LT@tables\endcsname - \ifx\LT@save@row\relax - \LT@blank@row - \else - {\let\LT@entry\or - \if!% - \ifcase\expandafter\expandafter\expandafter\LT@cols - \expandafter\@gobble\LT@save@row - \or - \else - \relax - \fi - !% - \else - \aftergroup\LT@blank@row - \fi}% - \fi} -\let\setlongtables\relax -\def\LT@get@widths{% - \setbox\tw@\hbox{% - \unhbox\@ne - \let\LT@old@row\LT@save@row - \global\let\LT@save@row\@empty - \count@\LT@cols - \loop - \unskip - \setbox\tw@\lastbox - \ifhbox\tw@ - \LT@def@row - \advance\count@\m@ne - \repeat}% - \ifx\LT@@save@row\@undefined - \let\LT@@save@row\LT@save@row - \fi} -\def\LT@def@row{% - \let\LT@entry\or - \edef\@tempa{% - \ifcase\expandafter\count@\LT@old@row - \else - {1}{0pt}% - \fi}% - \let\LT@entry\relax - \xdef\LT@save@row{% - \LT@entry - \expandafter\LT@max@sel\@tempa - \LT@save@row}} -\def\LT@max@sel#1#2{% - {\ifdim#2=\wd\tw@ - #1% - \else - \number\c@LT@chunks - \fi}% - {\the\wd\tw@}} -\def\LT@hline{% - \noalign{\ifnum0=`}\fi - \penalty\@M - \futurelet\@let@token\LT@@hline} -\def\LT@@hline{% - \ifx\@let@token\hline - \global\let\@gtempa\@gobble - \gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}% - \else - \global\let\@gtempa\@empty - \gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}% - \fi - \ifnum0=`{\fi}% - \multispan\LT@cols - \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr - \noalign{\LT@sep}% - \multispan\LT@cols - \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr - \noalign{\penalty\@M}% - \@gtempa} -\def\LT@caption{% - \noalign\bgroup - \@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n} -\def\LT@c@ption#1[#2]#3{% - \LT@makecaption#1\fnum@table{#3}% - \def\@tempa{#2}% - \ifx\@tempa\@empty\else - {\let\\\space - \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}% - \fi} -\def\LT@capti@n{% - \@ifstar - {\egroup\LT@c@ption\@gobble[]}% - {\egroup\@xdblarg{\LT@c@ption\@firstofone}}} -\def\LT@makecaption#1#2#3{% - \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{% - \sbox\@tempboxa{#1{#2: }#3}% - \ifdim\wd\@tempboxa>\hsize - #1{#2: }#3% - \else - \hbox to\hsize{\hfil\box\@tempboxa\hfil}% - \fi - \endgraf\vskip\baselineskip}% - \hss}}} -\def\LT@output{% - \ifnum\outputpenalty <-\@Mi - \ifnum\outputpenalty > -\LT@end@pen - \LT@err{floats and marginpars not allowed in a longtable}\@ehc - \else - \setbox\z@\vbox{\unvbox\@cclv}% - \ifdim \ht\LT@lastfoot>\ht\LT@foot - \dimen@\pagegoal - \advance\dimen@-\ht\LT@lastfoot - \ifdim\dimen@<\ht\z@ - \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}% - \@makecol - \@outputpage - \setbox\z@\vbox{\box\LT@head}% - \fi - \fi - \global\@colroom\@colht - \global\vsize\@colht - \vbox - {\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}% - \fi - \else - \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}% - \@makecol - \@outputpage - \global\vsize\@colroom - \copy\LT@head\nobreak - \fi} -\def\LT@end@hd@ft#1{% - \LT@echunk - \ifx\LT@start\endgraf - \LT@err - {Longtable head or foot not at start of table}% - {Increase LTchunksize}% - \fi - \setbox#1\box\z@ - \LT@get@widths - \LT@bchunk} -\def\endfirsthead{\LT@end@hd@ft\LT@firsthead} -\def\endhead{\LT@end@hd@ft\LT@head} -\def\endfoot{\LT@end@hd@ft\LT@foot} -\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot} -\def\LT@startpbox#1{% - \bgroup - \let\@footnotetext\LT@p@ftntext - \setlength\hsize{#1}% - \@arrayparboxrestore - \vrule \@height \ht\@arstrutbox \@width \z@} -\def\LT@endpbox{% - \@finalstrut\@arstrutbox - \egroup - \the\LT@p@ftn - \global\LT@p@ftn{}% - \hfil} -%% added \long to prevent: -% LaTeX Warning: Command \LT@p@ftntext has changed. -% -% from the original repository (https://github.com/latex3/latex2e/blob/develop/required/tools/longtable.dtx): -% \changes{v4.15}{2021/03/28} -% {make long for gh/364} -% Inside the `p' column, just save up the footnote text in a token -% register. -\long\def\LT@p@ftntext#1{% - \edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}% - \global\LT@p@ftn\expandafter{\@tempa{#1}}}% - -\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen} -\endinput -%% -%% End of file `longtable.sty'. diff --git a/docs/latex/main_8c.tex b/docs/latex/main_8c.tex deleted file mode 100644 index a937513..0000000 --- a/docs/latex/main_8c.tex +++ /dev/null @@ -1,56 +0,0 @@ -\doxysection{src/main.c File Reference} -\hypertarget{main_8c}{}\label{main_8c}\index{src/main.c@{src/main.c}} - - -Programme principal pour choisir une interface et lancer l\textquotesingle{}application. - - -{\ttfamily \#include $<$stdio.\+h$>$}\newline -{\ttfamily \#include "{}app/interface/interface\+\_\+client.\+h"{}}\newline -{\ttfamily \#include "{}app/interface/interface\+\_\+resp.\+h"{}}\newline -{\ttfamily \#include "{}app/core\+\_\+logic/responsable.\+h"{}}\newline -\doxysubsubsection*{Functions} -\begin{DoxyCompactItemize} -\item -int \mbox{\hyperlink{main_8c_a5fdac9110609b2cc4b43c68b643af452}{choix\+Interface}} (void) -\begin{DoxyCompactList}\small\item\em Fonction permettant à l\textquotesingle{}utilisateur de choisir une interface. \end{DoxyCompactList}\item -int \mbox{\hyperlink{main_8c_a840291bc02cba5474a4cb46a9b9566fe}{main}} (void) -\begin{DoxyCompactList}\small\item\em Fonction principale du programme. \end{DoxyCompactList}\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -Programme principal pour choisir une interface et lancer l\textquotesingle{}application. - - - -\doxysubsection{Function Documentation} -\Hypertarget{main_8c_a5fdac9110609b2cc4b43c68b643af452}\label{main_8c_a5fdac9110609b2cc4b43c68b643af452} -\index{main.c@{main.c}!choixInterface@{choixInterface}} -\index{choixInterface@{choixInterface}!main.c@{main.c}} -\doxysubsubsection{\texorpdfstring{choixInterface()}{choixInterface()}} -{\footnotesize\ttfamily int choix\+Interface (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})} - - - -Fonction permettant à l\textquotesingle{}utilisateur de choisir une interface. - -L\textquotesingle{}utilisateur peut choisir entre l\textquotesingle{}interface "{}responsable"{} ou "{}client"{} en saisissant 1 ou 2. Cette fonction vérifie que l\textquotesingle{}entrée de l\textquotesingle{}utilisateur est valide. - -\begin{DoxyReturn}{Returns} -Le choix de l\textquotesingle{}interface (1 pour responsable, 2 pour client). -\end{DoxyReturn} -\Hypertarget{main_8c_a840291bc02cba5474a4cb46a9b9566fe}\label{main_8c_a840291bc02cba5474a4cb46a9b9566fe} -\index{main.c@{main.c}!main@{main}} -\index{main@{main}!main.c@{main.c}} -\doxysubsubsection{\texorpdfstring{main()}{main()}} -{\footnotesize\ttfamily int main (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})} - - - -Fonction principale du programme. - -Cette fonction permet à l\textquotesingle{}utilisateur de choisir une interface à lancer (responsable ou client) en utilisant la fonction \doxylink{main_8c_a5fdac9110609b2cc4b43c68b643af452}{choix\+Interface()}, puis elle lance l\textquotesingle{}interface correspondante. - -\begin{DoxyReturn}{Returns} -0 si le programme s\textquotesingle{}est exécuté avec succès. -\end{DoxyReturn} diff --git a/docs/latex/refman.tex b/docs/latex/refman.tex deleted file mode 100644 index 9b3bd26..0000000 --- a/docs/latex/refman.tex +++ /dev/null @@ -1,231 +0,0 @@ - % Handle batch mode - % to overcome problems with too many open files - \let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage} - \pdfminorversion=7 - % Set document class depending on configuration - \documentclass[twoside]{book} - %% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package - \usepackage{ifthen} - \ifx\requestedLaTeXdate\undefined - \usepackage{array} - \else - \usepackage{array}[=2016-10-06] - \fi - %% - % Packages required by doxygen - \makeatletter - \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} - % suppress package identification of infwarerr as it contains the word "warning" - \let\@@protected@wlog\protected@wlog - \def\protected@wlog#1{\wlog{package info suppressed}} - \RequirePackage{infwarerr} - \let\protected@wlog\@@protected@wlog - \makeatother - \IfFormatAtLeastTF{2016/01/01}{}{\usepackage{fixltx2e}} % for \textsubscript - \IfFormatAtLeastTF{2015/01/01}{\pdfsuppresswarningpagegroup=1}{} - \usepackage{doxygen} - \usepackage{graphicx} - \usepackage[utf8]{inputenc} - \usepackage{makeidx} - \PassOptionsToPackage{warn}{textcomp} - \usepackage{textcomp} - \usepackage[nointegrals]{wasysym} - \usepackage{ifxetex} - % NLS support packages - % Define default fonts - % Font selection - \usepackage[T1]{fontenc} - % set main and monospaced font - \usepackage[scaled=.90]{helvet} -\usepackage{courier} -\renewcommand{\familydefault}{\sfdefault} - \doxyallsectionsfont{% - \fontseries{bc}\selectfont% - \color{darkgray}% - } - \renewcommand{\DoxyLabelFont}{% - \fontseries{bc}\selectfont% - \color{darkgray}% - } - \newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}} - % Arguments of doxygenemoji: - % 1) '::' form of the emoji, already LaTeX-escaped - % 2) file with the name of the emoji without the .png extension - % in case image exist use this otherwise use the '::' form - \newcommand{\doxygenemoji}[2]{% - \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}% - } - % Page & text layout - \usepackage{geometry} - \geometry{% - a4paper,% - top=2.5cm,% - bottom=2.5cm,% - left=2.5cm,% - right=2.5cm% - } - \usepackage{changepage} - % Allow a bit of overflow to go unnoticed by other means - \tolerance=750 - \hfuzz=15pt - \hbadness=750 - \setlength{\emergencystretch}{15pt} - \setlength{\parindent}{0cm} - \newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}} - \newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}} - \doxynormalparskip - % Redefine paragraph/subparagraph environments, using sectsty fonts - \makeatletter - \renewcommand{\paragraph}{% - \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{% - \normalfont\normalsize\bfseries\SS@parafont% - }% - } - \renewcommand{\subparagraph}{% - \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{% - \normalfont\normalsize\bfseries\SS@subparafont% - }% - } - \makeatother - \makeatletter - \newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@} - \makeatother - % Headers & footers - \usepackage{fancyhdr} - \pagestyle{fancyplain} - \renewcommand{\footrulewidth}{0.4pt} - \fancypagestyle{fancyplain}{ - \fancyhf{} - \fancyhead[LE, RO]{\bfseries\thepage} - \fancyhead[LO]{\bfseries\rightmark} - \fancyhead[RE]{\bfseries\leftmark} - \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen } - } - \fancypagestyle{plain}{ - \fancyhf{} - \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen } - \renewcommand{\headrulewidth}{0pt} - } - \pagestyle{fancyplain} - \renewcommand{\chaptermark}[1]{% - \markboth{#1}{}% - } - \renewcommand{\sectionmark}[1]{% - \markright{\thesection\ #1}% - } - % ToC, LoF, LoT, bibliography, and index - % Indices & bibliography - \usepackage{natbib} - \usepackage[titles]{tocloft} - \setcounter{tocdepth}{3} - \setcounter{secnumdepth}{5} - % creating indexes - \makeindex - \usepackage{newunicodechar} - \makeatletter - \def\doxynewunicodechar#1#2{% - \@tempswafalse - \edef\nuc@tempa{\detokenize{#1}}% - \if\relax\nuc@tempa\relax - \nuc@emptyargerr - \else - \edef\@tempb{\expandafter\@car\nuc@tempa\@nil}% - \nuc@check - \if@tempswa - \@namedef{u8:\nuc@tempa}{#2}% - \fi - \fi - } - \makeatother - \doxynewunicodechar{⁻}{${}^{-}$}% Superscript minus - \doxynewunicodechar{²}{${}^{2}$}% Superscript two - \doxynewunicodechar{³}{${}^{3}$}% Superscript three - % Hyperlinks - % Hyperlinks (required, but should be loaded last) - \ifpdf - \usepackage[pdftex,pagebackref=true]{hyperref} - \else - \ifxetex - \usepackage[pagebackref=true]{hyperref} - \else - \usepackage[ps2pdf,pagebackref=true]{hyperref} - \fi - \fi - \hypersetup{% - colorlinks=true,% - linkcolor=blue,% - citecolor=blue,% - unicode,% - pdftitle={My Project},% - pdfsubject={}% - } - % Custom commands used by the header - % Custom commands - \newcommand{\clearemptydoublepage}{% - \newpage{\pagestyle{empty}\cleardoublepage}% - } - % caption style definition - \usepackage{caption} - \captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top} - % in page table of contents - \IfFormatAtLeastTF{2023/05/01}{\usepackage[deeplevels]{etoc}}{\usepackage[deeplevels]{etoc_doxygen}} - \etocsettocstyle{\doxytocparskip}{\doxynormalparskip} - \etocsetlevel{subsubsubsection}{4} - \etocsetlevel{subsubsubsubsection}{5} - \etocsetlevel{subsubsubsubsubsection}{6} - \etocsetlevel{subsubsubsubsubsubsection}{7} - \etocsetlevel{paragraph}{8} - \etocsetlevel{subparagraph}{9} - % prevent numbers overlap the titles in toc - \renewcommand{\numberline}[1]{#1~} -% End of preamble, now comes the document contents -%===== C O N T E N T S ===== -\begin{document} - \raggedbottom - % Titlepage & ToC - % To avoid duplicate page anchors due to reuse of same numbers for - % the index (be it as roman numbers) - \hypersetup{pageanchor=false, - bookmarksnumbered=true, - pdfencoding=unicode - } - \pagenumbering{alph} - \begin{titlepage} - \vspace*{7cm} - \begin{center}% - {\Large My Project}\\ - \vspace*{1cm} - {\large Generated by Doxygen 1.9.8}\\ - \end{center} - \end{titlepage} - \clearemptydoublepage - \pagenumbering{roman} - \tableofcontents - \clearemptydoublepage - \pagenumbering{arabic} - % re-enable anchors again - \hypersetup{pageanchor=true} -%--- Begin generated contents --- -\chapter{File Index} -\input{files} -\chapter{File Documentation} -\input{client_8h} -\input{client_8h_source} -\input{responsable_8c} -\input{responsable_8h} -\input{responsable_8h_source} -\input{interface__client_8h} -\input{interface__client_8h_source} -\input{interface__resp_8h} -\input{interface__resp_8h_source} -\input{main_8c} -%--- End generated contents --- -% Index - \backmatter - \newpage - \phantomsection - \clearemptydoublepage - \addcontentsline{toc}{chapter}{\indexname} - \printindex -% Required for some languages (in combination with latexdocumentpre from the header) -\end{document} diff --git a/docs/latex/responsable_8c.tex b/docs/latex/responsable_8c.tex deleted file mode 100644 index 86428f8..0000000 --- a/docs/latex/responsable_8c.tex +++ /dev/null @@ -1,304 +0,0 @@ -\doxysection{src/app/core\+\_\+logic/responsable.c File Reference} -\hypertarget{responsable_8c}{}\label{responsable_8c}\index{src/app/core\_logic/responsable.c@{src/app/core\_logic/responsable.c}} - - -Définition des fonctions de \doxylink{responsable_8c}{responsable.\+c}. - - -{\ttfamily \#include $<$stdio.\+h$>$}\newline -{\ttfamily \#include $<$stdlib.\+h$>$}\newline -{\ttfamily \#include $<$string.\+h$>$}\newline -{\ttfamily \#include "{}responsable.\+h"{}}\newline -{\ttfamily \#include "{}../interface/interface\+\_\+resp.\+h"{}}\newline -\doxysubsubsection*{Macros} -\begin{DoxyCompactItemize} -\item -\Hypertarget{responsable_8c_af5ec89901489d7ff972b5713b906baf9}\label{responsable_8c_af5ec89901489d7ff972b5713b906baf9} -\#define {\bfseries MAX\+\_\+\+SIZE\+\_\+\+MDP}~21 -\end{DoxyCompactItemize} -\doxysubsubsection*{Functions} -\begin{DoxyCompactItemize} -\item -int \mbox{\hyperlink{responsable_8c_a937ddfa15445cc5d2336130fb6567ce1}{chargement\+Articles}} (int t\+Ref\mbox{[}$\,$\mbox{]}, float t\+Poids\mbox{[}$\,$\mbox{]}, float t\+Vol\mbox{[}$\,$\mbox{]}, float t\+Prix\mbox{[}$\,$\mbox{]}, int t\+Physique) -\begin{DoxyCompactList}\small\item\em Charge les informations des articles à partir d\textquotesingle{}un fichier dans des tableaux. \end{DoxyCompactList}\item -void \mbox{\hyperlink{responsable_8c_ac9e79c89d04823f4b1b5572c9865e57d}{sauvegard\+Articles}} (int t\+Ref\mbox{[}$\,$\mbox{]}, float t\+Poids\mbox{[}$\,$\mbox{]}, float t\+Vol\mbox{[}$\,$\mbox{]}, float t\+Prix\mbox{[}$\,$\mbox{]}, int t\+Logique) -\begin{DoxyCompactList}\small\item\em Sauvegarde les informations des articles dans un fichier. \end{DoxyCompactList}\item -int \mbox{\hyperlink{responsable_8c_abce68a203cf18b85ebdad34e468815f0}{ajouter\+Article}} (int t\+Ref\mbox{[}$\,$\mbox{]}, float t\+Poids\mbox{[}$\,$\mbox{]}, float t\+Vol\mbox{[}$\,$\mbox{]}, float t\+Prix\mbox{[}$\,$\mbox{]}, int \texorpdfstring{$\ast$}{*}t\+Logique, int t\+Physique, int ref, float poids, float volume, float prix) -\begin{DoxyCompactList}\small\item\em Ajoute un nouvel article aux tableaux d\textquotesingle{}articles. \end{DoxyCompactList}\item -void \mbox{\hyperlink{responsable_8c_a33f342ec6aaff14efce87b42350d9bee}{recherche\+Ref\+Article}} (int t\+Ref\mbox{[}$\,$\mbox{]}, int ref, int \texorpdfstring{$\ast$}{*}index, int t\+Logique) -\begin{DoxyCompactList}\small\item\em Recherche une référence d\textquotesingle{}article dans le tableau t\+Ref. \end{DoxyCompactList}\item -void \mbox{\hyperlink{responsable_8c_a0f8076a332f73d1edca58cfaeb42167e}{supprimer\+Article}} (int t\+Ref\mbox{[}$\,$\mbox{]}, float t\+Poids\mbox{[}$\,$\mbox{]}, float t\+Vol\mbox{[}$\,$\mbox{]}, float t\+Prix\mbox{[}$\,$\mbox{]}, int \texorpdfstring{$\ast$}{*}t\+Logique) -\begin{DoxyCompactList}\small\item\em Supprime un article des tableaux d\textquotesingle{}articles. \end{DoxyCompactList}\item -void \mbox{\hyperlink{responsable_8c_ab02f9ff38b359630bc980bae859f7512}{modifier\+Article}} (int t\+Ref\mbox{[}$\,$\mbox{]}, float t\+Poids\mbox{[}$\,$\mbox{]}, float t\+Vol\mbox{[}$\,$\mbox{]}, float t\+Prix\mbox{[}$\,$\mbox{]}, int t\+Logique) -\begin{DoxyCompactList}\small\item\em Modifie les informations d\textquotesingle{}un article existant. \end{DoxyCompactList}\item -void \mbox{\hyperlink{responsable_8c_a185476dbf2dae604d3deb6a3085580a2}{ajouter\+Client}} (int t\+Num\+Client\mbox{[}$\,$\mbox{]}, float t\+Cagnotte\mbox{[}$\,$\mbox{]}, int t\+Sus\mbox{[}$\,$\mbox{]}, int \texorpdfstring{$\ast$}{*}t\+Logique, int t\+Physique) -\begin{DoxyCompactList}\small\item\em Ajoute un nouveau client aux tableaux de clients. \end{DoxyCompactList}\item -void \mbox{\hyperlink{responsable_8c_ad21f0252145711b8da85feef17902fbc}{dechiffrer\+Cesar}} (char \texorpdfstring{$\ast$}{*}texte, int decalage) -\begin{DoxyCompactList}\small\item\em Lis le mot de passe codé dans le fichier mdp.\+txt, le compare au mot de passe entré à laide de decodage\+MDP. \end{DoxyCompactList}\item -int \mbox{\hyperlink{responsable_8c_aa02b66bb7f733cf9bcb6a7fc2b4598e0}{decodage\+MDP}} (char \texorpdfstring{$\ast$}{*}mdp\+Enter) -\begin{DoxyCompactList}\small\item\em Décode le mot de passe du fichier mdp.\+txt pour le comparer avec le mdp entré. \end{DoxyCompactList}\item -\Hypertarget{responsable_8c_a0b3515864e8480ef500c2d9fd24d664a}\label{responsable_8c_a0b3515864e8480ef500c2d9fd24d664a} -void {\bfseries chiffrement\+Cesar} (char \texorpdfstring{$\ast$}{*}mdp, int decalage) -\item -\Hypertarget{responsable_8c_a841dc44be0e28562f4c84982e13201a1}\label{responsable_8c_a841dc44be0e28562f4c84982e13201a1} -int {\bfseries verif\+Modif\+MDP} (char \texorpdfstring{$\ast$}{*}mdp, char \texorpdfstring{$\ast$}{*}confirm\+MDP, int decalage) -\item -\Hypertarget{responsable_8c_a9b054657f51a33188e8f73e8ebccea99}\label{responsable_8c_a9b054657f51a33188e8f73e8ebccea99} -int {\bfseries enregistrer\+Mot\+De\+Passe} (char \texorpdfstring{$\ast$}{*}mdp, int decalage) -\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -Définition des fonctions de \doxylink{responsable_8c}{responsable.\+c}. - - - -\doxysubsection{Function Documentation} -\Hypertarget{responsable_8c_abce68a203cf18b85ebdad34e468815f0}\label{responsable_8c_abce68a203cf18b85ebdad34e468815f0} -\index{responsable.c@{responsable.c}!ajouterArticle@{ajouterArticle}} -\index{ajouterArticle@{ajouterArticle}!responsable.c@{responsable.c}} -\doxysubsubsection{\texorpdfstring{ajouterArticle()}{ajouterArticle()}} -{\footnotesize\ttfamily int ajouter\+Article (\begin{DoxyParamCaption}\item[{int}]{t\+Ref\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Poids\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Vol\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Prix\mbox{[}$\,$\mbox{]}, }\item[{int \texorpdfstring{$\ast$}{*}}]{t\+Logique, }\item[{int}]{t\+Physique, }\item[{int}]{ref, }\item[{float}]{poids, }\item[{float}]{volume, }\item[{float}]{prix }\end{DoxyParamCaption})} - - - -Ajoute un nouvel article aux tableaux d\textquotesingle{}articles. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} -Cette fonction ajoute un nouvel article aux tableaux t\+Ref, t\+Poids, t\+Vol, et t\+Prix et incrémente la taille logique. - - -\begin{DoxyParams}{Parameters} -{\em t\+Ref} & Tableau des références d\textquotesingle{}articles. \\ -\hline -{\em t\+Poids} & Tableau des poids des articles. \\ -\hline -{\em t\+Vol} & Tableau des volumes des articles. \\ -\hline -{\em t\+Prix} & Tableau des prix unitaires des articles. \\ -\hline -{\em t\+Logique} & Taille logique des tableaux. \\ -\hline -{\em t\+Physique} & Taille physique des tableaux. \\ -\hline -{\em ref} & Référence du nouvel article. \\ -\hline -{\em poids} & Poids du nouvel article. \\ -\hline -{\em volume} & Volume du nouvel article. \\ -\hline -{\em prix} & Prix unitaire du nouvel article. \\ -\hline -\end{DoxyParams} -\begin{DoxyReturn}{Returns} -0 en cas de succès, -\/2 si le tableau est plein. -\end{DoxyReturn} -\Hypertarget{responsable_8c_a185476dbf2dae604d3deb6a3085580a2}\label{responsable_8c_a185476dbf2dae604d3deb6a3085580a2} -\index{responsable.c@{responsable.c}!ajouterClient@{ajouterClient}} -\index{ajouterClient@{ajouterClient}!responsable.c@{responsable.c}} -\doxysubsubsection{\texorpdfstring{ajouterClient()}{ajouterClient()}} -{\footnotesize\ttfamily void ajouter\+Client (\begin{DoxyParamCaption}\item[{int}]{t\+Num\+Client\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Cagnotte\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Sus\mbox{[}$\,$\mbox{]}, }\item[{int \texorpdfstring{$\ast$}{*}}]{t\+Logique, }\item[{int}]{t\+Physique }\end{DoxyParamCaption})} - - - -Ajoute un nouveau client aux tableaux de clients. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} -Cette fonction ajoute un nouveau client aux tableaux t\+Num\+Client, t\+Cagnotte et t\+Sus et incrémente la taille logique. - - -\begin{DoxyParams}{Parameters} -{\em t\+Num\+Client} & Tableau des numéros de client. \\ -\hline -{\em t\+Cagnotte} & Tableau des cagnottes des clients. \\ -\hline -{\em t\+Sus} & Tableau des états de suspension des clients. \\ -\hline -{\em t\+Logique} & Pointeur vers la taille logique des tableaux. \\ -\hline -{\em t\+Physique} & Taille physique des tableaux. \\ -\hline -\end{DoxyParams} -\Hypertarget{responsable_8c_a937ddfa15445cc5d2336130fb6567ce1}\label{responsable_8c_a937ddfa15445cc5d2336130fb6567ce1} -\index{responsable.c@{responsable.c}!chargementArticles@{chargementArticles}} -\index{chargementArticles@{chargementArticles}!responsable.c@{responsable.c}} -\doxysubsubsection{\texorpdfstring{chargementArticles()}{chargementArticles()}} -{\footnotesize\ttfamily int chargement\+Articles (\begin{DoxyParamCaption}\item[{int}]{t\+Ref\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Poids\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Vol\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Prix\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Physique }\end{DoxyParamCaption})} - - - -Charge les informations des articles à partir d\textquotesingle{}un fichier dans des tableaux. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} -Cette fonction lit les informations des articles à partir du fichier "{}donnee/articles.\+txt"{} et les stocke dans les tableaux t\+Ref, t\+Poids, t\+Vol, et t\+Prix. - - -\begin{DoxyParams}{Parameters} -{\em t\+Ref} & Tableau des références d\textquotesingle{}articles. \\ -\hline -{\em t\+Poids} & Tableau des poids des articles. \\ -\hline -{\em t\+Vol} & Tableau des volumes des articles. \\ -\hline -{\em t\+Prix} & Tableau des prix unitaires des articles. \\ -\hline -{\em t\+Physique} & Taille physique des tableaux. \\ -\hline -\end{DoxyParams} -\begin{DoxyReturn}{Returns} -Le nombre d\textquotesingle{}articles chargés avec succès ou -\/1 en cas d\textquotesingle{}erreur. -\end{DoxyReturn} -\Hypertarget{responsable_8c_ad21f0252145711b8da85feef17902fbc}\label{responsable_8c_ad21f0252145711b8da85feef17902fbc} -\index{responsable.c@{responsable.c}!dechiffrerCesar@{dechiffrerCesar}} -\index{dechiffrerCesar@{dechiffrerCesar}!responsable.c@{responsable.c}} -\doxysubsubsection{\texorpdfstring{dechiffrerCesar()}{dechiffrerCesar()}} -{\footnotesize\ttfamily void dechiffrer\+Cesar (\begin{DoxyParamCaption}\item[{char \texorpdfstring{$\ast$}{*}}]{texte, }\item[{int}]{decalage }\end{DoxyParamCaption})} - - - -Lis le mot de passe codé dans le fichier mdp.\+txt, le compare au mot de passe entré à laide de decodage\+MDP. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} - -\begin{DoxyParams}{Parameters} -{\em texte} & chaine de caractère comparé avec le mot de passe du fichier. \\ -\hline -{\em decalage} & entier qui sert de clé pour déchiffrer le mot de passe. \\ -\hline -\end{DoxyParams} -\Hypertarget{responsable_8c_aa02b66bb7f733cf9bcb6a7fc2b4598e0}\label{responsable_8c_aa02b66bb7f733cf9bcb6a7fc2b4598e0} -\index{responsable.c@{responsable.c}!decodageMDP@{decodageMDP}} -\index{decodageMDP@{decodageMDP}!responsable.c@{responsable.c}} -\doxysubsubsection{\texorpdfstring{decodageMDP()}{decodageMDP()}} -{\footnotesize\ttfamily int decodage\+MDP (\begin{DoxyParamCaption}\item[{char \texorpdfstring{$\ast$}{*}}]{mdp\+Enter }\end{DoxyParamCaption})} - - - -Décode le mot de passe du fichier mdp.\+txt pour le comparer avec le mdp entré. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} - -\begin{DoxyParams}{Parameters} -{\em mdp\+Enter} & Mot de passe entrer par l\textquotesingle{}utilisateur. \\ -\hline -\end{DoxyParams} -\Hypertarget{responsable_8c_ab02f9ff38b359630bc980bae859f7512}\label{responsable_8c_ab02f9ff38b359630bc980bae859f7512} -\index{responsable.c@{responsable.c}!modifierArticle@{modifierArticle}} -\index{modifierArticle@{modifierArticle}!responsable.c@{responsable.c}} -\doxysubsubsection{\texorpdfstring{modifierArticle()}{modifierArticle()}} -{\footnotesize\ttfamily void modifier\+Article (\begin{DoxyParamCaption}\item[{int}]{t\+Ref\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Poids\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Vol\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Prix\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Logique }\end{DoxyParamCaption})} - - - -Modifie les informations d\textquotesingle{}un article existant. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} -Cette fonction permet de modifier les informations (poids, volume, prix) d\textquotesingle{}un article existant. - - -\begin{DoxyParams}{Parameters} -{\em t\+Ref} & Tableau des références d\textquotesingle{}articles. \\ -\hline -{\em t\+Poids} & Tableau des poids des articles. \\ -\hline -{\em t\+Vol} & Tableau des volumes des articles. \\ -\hline -{\em t\+Prix} & Tableau des prix unitaires des articles. \\ -\hline -{\em t\+Logique} & Taille logique des tableaux. \\ -\hline -\end{DoxyParams} -\Hypertarget{responsable_8c_a33f342ec6aaff14efce87b42350d9bee}\label{responsable_8c_a33f342ec6aaff14efce87b42350d9bee} -\index{responsable.c@{responsable.c}!rechercheRefArticle@{rechercheRefArticle}} -\index{rechercheRefArticle@{rechercheRefArticle}!responsable.c@{responsable.c}} -\doxysubsubsection{\texorpdfstring{rechercheRefArticle()}{rechercheRefArticle()}} -{\footnotesize\ttfamily void recherche\+Ref\+Article (\begin{DoxyParamCaption}\item[{int}]{t\+Ref\mbox{[}$\,$\mbox{]}, }\item[{int}]{ref, }\item[{int \texorpdfstring{$\ast$}{*}}]{index, }\item[{int}]{t\+Logique }\end{DoxyParamCaption})} - - - -Recherche une référence d\textquotesingle{}article dans le tableau t\+Ref. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} -Cette fonction recherche une référence d\textquotesingle{}article dans le tableau t\+Ref et renvoie l\textquotesingle{}index si l\textquotesingle{}article est trouvé. - - -\begin{DoxyParams}{Parameters} -{\em t\+Ref} & Tableau des références d\textquotesingle{}articles. \\ -\hline -{\em ref} & Référence de l\textquotesingle{}article à rechercher. \\ -\hline -{\em index} & Pointeur vers la variable pour stocker l\textquotesingle{}index de l\textquotesingle{}article trouvé. \\ -\hline -{\em t\+Logique} & Taille logique des tableaux. \\ -\hline -\end{DoxyParams} -\Hypertarget{responsable_8c_ac9e79c89d04823f4b1b5572c9865e57d}\label{responsable_8c_ac9e79c89d04823f4b1b5572c9865e57d} -\index{responsable.c@{responsable.c}!sauvegardArticles@{sauvegardArticles}} -\index{sauvegardArticles@{sauvegardArticles}!responsable.c@{responsable.c}} -\doxysubsubsection{\texorpdfstring{sauvegardArticles()}{sauvegardArticles()}} -{\footnotesize\ttfamily void sauvegard\+Articles (\begin{DoxyParamCaption}\item[{int}]{t\+Ref\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Poids\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Vol\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Prix\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Logique }\end{DoxyParamCaption})} - - - -Sauvegarde les informations des articles dans un fichier. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} -Cette fonction sauvegarde les informations des articles depuis les tableaux t\+Ref, t\+Poids, t\+Vol et t\+Prix dans le fichier "{}donnee/articles.\+txt"{}. - - -\begin{DoxyParams}{Parameters} -{\em t\+Ref} & Tableau des références d\textquotesingle{}articles. \\ -\hline -{\em t\+Poids} & Tableau des poids des articles. \\ -\hline -{\em t\+Vol} & Tableau des volumes des articles. \\ -\hline -{\em t\+Prix} & Tableau des prix unitaires des articles. \\ -\hline -{\em t\+Logique} & Taille logique des tableaux. \\ -\hline -\end{DoxyParams} -\Hypertarget{responsable_8c_a0f8076a332f73d1edca58cfaeb42167e}\label{responsable_8c_a0f8076a332f73d1edca58cfaeb42167e} -\index{responsable.c@{responsable.c}!supprimerArticle@{supprimerArticle}} -\index{supprimerArticle@{supprimerArticle}!responsable.c@{responsable.c}} -\doxysubsubsection{\texorpdfstring{supprimerArticle()}{supprimerArticle()}} -{\footnotesize\ttfamily void supprimer\+Article (\begin{DoxyParamCaption}\item[{int}]{t\+Ref\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Poids\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Vol\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Prix\mbox{[}$\,$\mbox{]}, }\item[{int \texorpdfstring{$\ast$}{*}}]{t\+Logique }\end{DoxyParamCaption})} - - - -Supprime un article des tableaux d\textquotesingle{}articles. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} -Cette fonction supprime un article des tableaux t\+Ref, t\+Poids, t\+Vol, et t\+Prix et met à jour la taille logique. - - -\begin{DoxyParams}{Parameters} -{\em t\+Ref} & Tableau des références d\textquotesingle{}articles. \\ -\hline -{\em t\+Poids} & Tableau des poids des articles. \\ -\hline -{\em t\+Vol} & Tableau des volumes des articles. \\ -\hline -{\em t\+Prix} & Tableau des prix unitaires des articles. \\ -\hline -{\em t\+Logique} & Pointeur vers la taille logique des tableaux. \\ -\hline -\end{DoxyParams} diff --git a/docs/latex/responsable_8h.tex b/docs/latex/responsable_8h.tex deleted file mode 100644 index 50fd072..0000000 --- a/docs/latex/responsable_8h.tex +++ /dev/null @@ -1,293 +0,0 @@ -\doxysection{src/app/core\+\_\+logic/responsable.h File Reference} -\hypertarget{responsable_8h}{}\label{responsable_8h}\index{src/app/core\_logic/responsable.h@{src/app/core\_logic/responsable.h}} - - -Déclaration des fonctions de \doxylink{responsable_8c}{responsable.\+c}. - - -\doxysubsubsection*{Functions} -\begin{DoxyCompactItemize} -\item -int \mbox{\hyperlink{responsable_8h_a937ddfa15445cc5d2336130fb6567ce1}{chargement\+Articles}} (int t\+Ref\mbox{[}$\,$\mbox{]}, float t\+Poids\mbox{[}$\,$\mbox{]}, float t\+Vol\mbox{[}$\,$\mbox{]}, float t\+Prix\mbox{[}$\,$\mbox{]}, int t\+Physique) -\begin{DoxyCompactList}\small\item\em Charge les informations des articles à partir d\textquotesingle{}un fichier dans des tableaux. \end{DoxyCompactList}\item -void \mbox{\hyperlink{responsable_8h_ac9e79c89d04823f4b1b5572c9865e57d}{sauvegard\+Articles}} (int t\+Ref\mbox{[}$\,$\mbox{]}, float t\+Poids\mbox{[}$\,$\mbox{]}, float t\+Vol\mbox{[}$\,$\mbox{]}, float t\+Prix\mbox{[}$\,$\mbox{]}, int t\+Logique) -\begin{DoxyCompactList}\small\item\em Sauvegarde les informations des articles dans un fichier. \end{DoxyCompactList}\item -int \mbox{\hyperlink{responsable_8h_abce68a203cf18b85ebdad34e468815f0}{ajouter\+Article}} (int t\+Ref\mbox{[}$\,$\mbox{]}, float t\+Poids\mbox{[}$\,$\mbox{]}, float t\+Vol\mbox{[}$\,$\mbox{]}, float t\+Prix\mbox{[}$\,$\mbox{]}, int \texorpdfstring{$\ast$}{*}t\+Logique, int t\+Physique, int ref, float poids, float volume, float prix) -\begin{DoxyCompactList}\small\item\em Ajoute un nouvel article aux tableaux d\textquotesingle{}articles. \end{DoxyCompactList}\item -void \mbox{\hyperlink{responsable_8h_a33f342ec6aaff14efce87b42350d9bee}{recherche\+Ref\+Article}} (int t\+Ref\mbox{[}$\,$\mbox{]}, int ref, int \texorpdfstring{$\ast$}{*}index, int t\+Logique) -\begin{DoxyCompactList}\small\item\em Recherche une référence d\textquotesingle{}article dans le tableau t\+Ref. \end{DoxyCompactList}\item -void \mbox{\hyperlink{responsable_8h_a0f8076a332f73d1edca58cfaeb42167e}{supprimer\+Article}} (int t\+Ref\mbox{[}$\,$\mbox{]}, float t\+Poids\mbox{[}$\,$\mbox{]}, float t\+Vol\mbox{[}$\,$\mbox{]}, float t\+Prix\mbox{[}$\,$\mbox{]}, int \texorpdfstring{$\ast$}{*}t\+Logique) -\begin{DoxyCompactList}\small\item\em Supprime un article des tableaux d\textquotesingle{}articles. \end{DoxyCompactList}\item -void \mbox{\hyperlink{responsable_8h_ab02f9ff38b359630bc980bae859f7512}{modifier\+Article}} (int t\+Ref\mbox{[}$\,$\mbox{]}, float t\+Poids\mbox{[}$\,$\mbox{]}, float t\+Vol\mbox{[}$\,$\mbox{]}, float t\+Prix\mbox{[}$\,$\mbox{]}, int t\+Logique) -\begin{DoxyCompactList}\small\item\em Modifie les informations d\textquotesingle{}un article existant. \end{DoxyCompactList}\item -void \mbox{\hyperlink{responsable_8h_a185476dbf2dae604d3deb6a3085580a2}{ajouter\+Client}} (int t\+Num\+Client\mbox{[}$\,$\mbox{]}, float t\+Cagnotte\mbox{[}$\,$\mbox{]}, int t\+Sus\mbox{[}$\,$\mbox{]}, int \texorpdfstring{$\ast$}{*}t\+Logique, int t\+Physique) -\begin{DoxyCompactList}\small\item\em Ajoute un nouveau client aux tableaux de clients. \end{DoxyCompactList}\item -int \mbox{\hyperlink{responsable_8h_aa02b66bb7f733cf9bcb6a7fc2b4598e0}{decodage\+MDP}} (char \texorpdfstring{$\ast$}{*}mdp\+Enter) -\begin{DoxyCompactList}\small\item\em Décode le mot de passe du fichier mdp.\+txt pour le comparer avec le mdp entré. \end{DoxyCompactList}\item -void \mbox{\hyperlink{responsable_8h_ad21f0252145711b8da85feef17902fbc}{dechiffrer\+Cesar}} (char \texorpdfstring{$\ast$}{*}texte, int decalage) -\begin{DoxyCompactList}\small\item\em Lis le mot de passe codé dans le fichier mdp.\+txt, le compare au mot de passe entré à laide de decodage\+MDP. \end{DoxyCompactList}\item -\Hypertarget{responsable_8h_a0b3515864e8480ef500c2d9fd24d664a}\label{responsable_8h_a0b3515864e8480ef500c2d9fd24d664a} -void {\bfseries chiffrement\+Cesar} (char \texorpdfstring{$\ast$}{*}mdp, int decalage) -\item -\Hypertarget{responsable_8h_a841dc44be0e28562f4c84982e13201a1}\label{responsable_8h_a841dc44be0e28562f4c84982e13201a1} -int {\bfseries verif\+Modif\+MDP} (char \texorpdfstring{$\ast$}{*}mdp, char \texorpdfstring{$\ast$}{*}confirm\+MDP, int decalage) -\item -\Hypertarget{responsable_8h_a9b054657f51a33188e8f73e8ebccea99}\label{responsable_8h_a9b054657f51a33188e8f73e8ebccea99} -int {\bfseries enregistrer\+Mot\+De\+Passe} (char \texorpdfstring{$\ast$}{*}mdp, int decalage) -\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -Déclaration des fonctions de \doxylink{responsable_8c}{responsable.\+c}. - - - -\doxysubsection{Function Documentation} -\Hypertarget{responsable_8h_abce68a203cf18b85ebdad34e468815f0}\label{responsable_8h_abce68a203cf18b85ebdad34e468815f0} -\index{responsable.h@{responsable.h}!ajouterArticle@{ajouterArticle}} -\index{ajouterArticle@{ajouterArticle}!responsable.h@{responsable.h}} -\doxysubsubsection{\texorpdfstring{ajouterArticle()}{ajouterArticle()}} -{\footnotesize\ttfamily int ajouter\+Article (\begin{DoxyParamCaption}\item[{int}]{t\+Ref\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Poids\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Vol\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Prix\mbox{[}$\,$\mbox{]}, }\item[{int \texorpdfstring{$\ast$}{*}}]{t\+Logique, }\item[{int}]{t\+Physique, }\item[{int}]{ref, }\item[{float}]{poids, }\item[{float}]{volume, }\item[{float}]{prix }\end{DoxyParamCaption})} - - - -Ajoute un nouvel article aux tableaux d\textquotesingle{}articles. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} -Cette fonction ajoute un nouvel article aux tableaux t\+Ref, t\+Poids, t\+Vol, et t\+Prix et incrémente la taille logique. - - -\begin{DoxyParams}{Parameters} -{\em t\+Ref} & Tableau des références d\textquotesingle{}articles. \\ -\hline -{\em t\+Poids} & Tableau des poids des articles. \\ -\hline -{\em t\+Vol} & Tableau des volumes des articles. \\ -\hline -{\em t\+Prix} & Tableau des prix unitaires des articles. \\ -\hline -{\em t\+Logique} & Taille logique des tableaux. \\ -\hline -{\em t\+Physique} & Taille physique des tableaux. \\ -\hline -{\em ref} & Référence du nouvel article. \\ -\hline -{\em poids} & Poids du nouvel article. \\ -\hline -{\em volume} & Volume du nouvel article. \\ -\hline -{\em prix} & Prix unitaire du nouvel article. \\ -\hline -\end{DoxyParams} -\begin{DoxyReturn}{Returns} -0 en cas de succès, -\/2 si le tableau est plein. -\end{DoxyReturn} -\Hypertarget{responsable_8h_a185476dbf2dae604d3deb6a3085580a2}\label{responsable_8h_a185476dbf2dae604d3deb6a3085580a2} -\index{responsable.h@{responsable.h}!ajouterClient@{ajouterClient}} -\index{ajouterClient@{ajouterClient}!responsable.h@{responsable.h}} -\doxysubsubsection{\texorpdfstring{ajouterClient()}{ajouterClient()}} -{\footnotesize\ttfamily void ajouter\+Client (\begin{DoxyParamCaption}\item[{int}]{t\+Num\+Client\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Cagnotte\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Sus\mbox{[}$\,$\mbox{]}, }\item[{int \texorpdfstring{$\ast$}{*}}]{t\+Logique, }\item[{int}]{t\+Physique }\end{DoxyParamCaption})} - - - -Ajoute un nouveau client aux tableaux de clients. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} -Cette fonction ajoute un nouveau client aux tableaux t\+Num\+Client, t\+Cagnotte et t\+Sus et incrémente la taille logique. - - -\begin{DoxyParams}{Parameters} -{\em t\+Num\+Client} & Tableau des numéros de client. \\ -\hline -{\em t\+Cagnotte} & Tableau des cagnottes des clients. \\ -\hline -{\em t\+Sus} & Tableau des états de suspension des clients. \\ -\hline -{\em t\+Logique} & Pointeur vers la taille logique des tableaux. \\ -\hline -{\em t\+Physique} & Taille physique des tableaux. \\ -\hline -\end{DoxyParams} -\Hypertarget{responsable_8h_a937ddfa15445cc5d2336130fb6567ce1}\label{responsable_8h_a937ddfa15445cc5d2336130fb6567ce1} -\index{responsable.h@{responsable.h}!chargementArticles@{chargementArticles}} -\index{chargementArticles@{chargementArticles}!responsable.h@{responsable.h}} -\doxysubsubsection{\texorpdfstring{chargementArticles()}{chargementArticles()}} -{\footnotesize\ttfamily int chargement\+Articles (\begin{DoxyParamCaption}\item[{int}]{t\+Ref\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Poids\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Vol\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Prix\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Physique }\end{DoxyParamCaption})} - - - -Charge les informations des articles à partir d\textquotesingle{}un fichier dans des tableaux. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} -Cette fonction lit les informations des articles à partir du fichier "{}donnee/articles.\+txt"{} et les stocke dans les tableaux t\+Ref, t\+Poids, t\+Vol, et t\+Prix. - - -\begin{DoxyParams}{Parameters} -{\em t\+Ref} & Tableau des références d\textquotesingle{}articles. \\ -\hline -{\em t\+Poids} & Tableau des poids des articles. \\ -\hline -{\em t\+Vol} & Tableau des volumes des articles. \\ -\hline -{\em t\+Prix} & Tableau des prix unitaires des articles. \\ -\hline -{\em t\+Physique} & Taille physique des tableaux. \\ -\hline -\end{DoxyParams} -\begin{DoxyReturn}{Returns} -Le nombre d\textquotesingle{}articles chargés avec succès ou -\/1 en cas d\textquotesingle{}erreur. -\end{DoxyReturn} -\Hypertarget{responsable_8h_ad21f0252145711b8da85feef17902fbc}\label{responsable_8h_ad21f0252145711b8da85feef17902fbc} -\index{responsable.h@{responsable.h}!dechiffrerCesar@{dechiffrerCesar}} -\index{dechiffrerCesar@{dechiffrerCesar}!responsable.h@{responsable.h}} -\doxysubsubsection{\texorpdfstring{dechiffrerCesar()}{dechiffrerCesar()}} -{\footnotesize\ttfamily void dechiffrer\+Cesar (\begin{DoxyParamCaption}\item[{char \texorpdfstring{$\ast$}{*}}]{texte, }\item[{int}]{decalage }\end{DoxyParamCaption})} - - - -Lis le mot de passe codé dans le fichier mdp.\+txt, le compare au mot de passe entré à laide de decodage\+MDP. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} - -\begin{DoxyParams}{Parameters} -{\em texte} & chaine de caractère comparé avec le mot de passe du fichier. \\ -\hline -{\em decalage} & entier qui sert de clé pour déchiffrer le mot de passe. \\ -\hline -\end{DoxyParams} -\Hypertarget{responsable_8h_aa02b66bb7f733cf9bcb6a7fc2b4598e0}\label{responsable_8h_aa02b66bb7f733cf9bcb6a7fc2b4598e0} -\index{responsable.h@{responsable.h}!decodageMDP@{decodageMDP}} -\index{decodageMDP@{decodageMDP}!responsable.h@{responsable.h}} -\doxysubsubsection{\texorpdfstring{decodageMDP()}{decodageMDP()}} -{\footnotesize\ttfamily int decodage\+MDP (\begin{DoxyParamCaption}\item[{char \texorpdfstring{$\ast$}{*}}]{mdp\+Enter }\end{DoxyParamCaption})} - - - -Décode le mot de passe du fichier mdp.\+txt pour le comparer avec le mdp entré. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} - -\begin{DoxyParams}{Parameters} -{\em mdp\+Enter} & Mot de passe entrer par l\textquotesingle{}utilisateur. \\ -\hline -\end{DoxyParams} -\Hypertarget{responsable_8h_ab02f9ff38b359630bc980bae859f7512}\label{responsable_8h_ab02f9ff38b359630bc980bae859f7512} -\index{responsable.h@{responsable.h}!modifierArticle@{modifierArticle}} -\index{modifierArticle@{modifierArticle}!responsable.h@{responsable.h}} -\doxysubsubsection{\texorpdfstring{modifierArticle()}{modifierArticle()}} -{\footnotesize\ttfamily void modifier\+Article (\begin{DoxyParamCaption}\item[{int}]{t\+Ref\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Poids\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Vol\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Prix\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Logique }\end{DoxyParamCaption})} - - - -Modifie les informations d\textquotesingle{}un article existant. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} -Cette fonction permet de modifier les informations (poids, volume, prix) d\textquotesingle{}un article existant. - - -\begin{DoxyParams}{Parameters} -{\em t\+Ref} & Tableau des références d\textquotesingle{}articles. \\ -\hline -{\em t\+Poids} & Tableau des poids des articles. \\ -\hline -{\em t\+Vol} & Tableau des volumes des articles. \\ -\hline -{\em t\+Prix} & Tableau des prix unitaires des articles. \\ -\hline -{\em t\+Logique} & Taille logique des tableaux. \\ -\hline -\end{DoxyParams} -\Hypertarget{responsable_8h_a33f342ec6aaff14efce87b42350d9bee}\label{responsable_8h_a33f342ec6aaff14efce87b42350d9bee} -\index{responsable.h@{responsable.h}!rechercheRefArticle@{rechercheRefArticle}} -\index{rechercheRefArticle@{rechercheRefArticle}!responsable.h@{responsable.h}} -\doxysubsubsection{\texorpdfstring{rechercheRefArticle()}{rechercheRefArticle()}} -{\footnotesize\ttfamily void recherche\+Ref\+Article (\begin{DoxyParamCaption}\item[{int}]{t\+Ref\mbox{[}$\,$\mbox{]}, }\item[{int}]{ref, }\item[{int \texorpdfstring{$\ast$}{*}}]{index, }\item[{int}]{t\+Logique }\end{DoxyParamCaption})} - - - -Recherche une référence d\textquotesingle{}article dans le tableau t\+Ref. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} -Cette fonction recherche une référence d\textquotesingle{}article dans le tableau t\+Ref et renvoie l\textquotesingle{}index si l\textquotesingle{}article est trouvé. - - -\begin{DoxyParams}{Parameters} -{\em t\+Ref} & Tableau des références d\textquotesingle{}articles. \\ -\hline -{\em ref} & Référence de l\textquotesingle{}article à rechercher. \\ -\hline -{\em index} & Pointeur vers la variable pour stocker l\textquotesingle{}index de l\textquotesingle{}article trouvé. \\ -\hline -{\em t\+Logique} & Taille logique des tableaux. \\ -\hline -\end{DoxyParams} -\Hypertarget{responsable_8h_ac9e79c89d04823f4b1b5572c9865e57d}\label{responsable_8h_ac9e79c89d04823f4b1b5572c9865e57d} -\index{responsable.h@{responsable.h}!sauvegardArticles@{sauvegardArticles}} -\index{sauvegardArticles@{sauvegardArticles}!responsable.h@{responsable.h}} -\doxysubsubsection{\texorpdfstring{sauvegardArticles()}{sauvegardArticles()}} -{\footnotesize\ttfamily void sauvegard\+Articles (\begin{DoxyParamCaption}\item[{int}]{t\+Ref\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Poids\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Vol\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Prix\mbox{[}$\,$\mbox{]}, }\item[{int}]{t\+Logique }\end{DoxyParamCaption})} - - - -Sauvegarde les informations des articles dans un fichier. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} -Cette fonction sauvegarde les informations des articles depuis les tableaux t\+Ref, t\+Poids, t\+Vol et t\+Prix dans le fichier "{}donnee/articles.\+txt"{}. - - -\begin{DoxyParams}{Parameters} -{\em t\+Ref} & Tableau des références d\textquotesingle{}articles. \\ -\hline -{\em t\+Poids} & Tableau des poids des articles. \\ -\hline -{\em t\+Vol} & Tableau des volumes des articles. \\ -\hline -{\em t\+Prix} & Tableau des prix unitaires des articles. \\ -\hline -{\em t\+Logique} & Taille logique des tableaux. \\ -\hline -\end{DoxyParams} -\Hypertarget{responsable_8h_a0f8076a332f73d1edca58cfaeb42167e}\label{responsable_8h_a0f8076a332f73d1edca58cfaeb42167e} -\index{responsable.h@{responsable.h}!supprimerArticle@{supprimerArticle}} -\index{supprimerArticle@{supprimerArticle}!responsable.h@{responsable.h}} -\doxysubsubsection{\texorpdfstring{supprimerArticle()}{supprimerArticle()}} -{\footnotesize\ttfamily void supprimer\+Article (\begin{DoxyParamCaption}\item[{int}]{t\+Ref\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Poids\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Vol\mbox{[}$\,$\mbox{]}, }\item[{float}]{t\+Prix\mbox{[}$\,$\mbox{]}, }\item[{int \texorpdfstring{$\ast$}{*}}]{t\+Logique }\end{DoxyParamCaption})} - - - -Supprime un article des tableaux d\textquotesingle{}articles. - -\begin{DoxyAuthor}{Author} -Yannis Doumir Fernandes -\end{DoxyAuthor} -Cette fonction supprime un article des tableaux t\+Ref, t\+Poids, t\+Vol, et t\+Prix et met à jour la taille logique. - - -\begin{DoxyParams}{Parameters} -{\em t\+Ref} & Tableau des références d\textquotesingle{}articles. \\ -\hline -{\em t\+Poids} & Tableau des poids des articles. \\ -\hline -{\em t\+Vol} & Tableau des volumes des articles. \\ -\hline -{\em t\+Prix} & Tableau des prix unitaires des articles. \\ -\hline -{\em t\+Logique} & Pointeur vers la taille logique des tableaux. \\ -\hline -\end{DoxyParams} diff --git a/docs/latex/responsable_8h_source.tex b/docs/latex/responsable_8h_source.tex deleted file mode 100644 index 0c4fdb2..0000000 --- a/docs/latex/responsable_8h_source.tex +++ /dev/null @@ -1,28 +0,0 @@ -\doxysection{responsable.\+h} -\hypertarget{responsable_8h_source}{}\label{responsable_8h_source}\index{src/app/core\_logic/responsable.h@{src/app/core\_logic/responsable.h}} -\mbox{\hyperlink{responsable_8h}{Go to the documentation of this file.}} -\begin{DoxyCode}{0} -\DoxyCodeLine{00001\ } -\DoxyCodeLine{00020\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{responsable_8h_a937ddfa15445cc5d2336130fb6567ce1}{chargementArticles}}(\textcolor{keywordtype}{int}\ tRef[],\ \textcolor{keywordtype}{float}\ tPoids[],\ \textcolor{keywordtype}{float}\ tVol[],\ \textcolor{keywordtype}{float}\ tPrix[],\ \textcolor{keywordtype}{int}\ tPhysique);} -\DoxyCodeLine{00021\ } -\DoxyCodeLine{00035\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{responsable_8h_ac9e79c89d04823f4b1b5572c9865e57d}{sauvegardArticles}}(\textcolor{keywordtype}{int}\ tRef[],\ \textcolor{keywordtype}{float}\ tPoids[],\ \textcolor{keywordtype}{float}\ tVol[],\ \textcolor{keywordtype}{float}\ tPrix[],\ \textcolor{keywordtype}{int}\ tLogique);} -\DoxyCodeLine{00036\ } -\DoxyCodeLine{00055\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{responsable_8h_abce68a203cf18b85ebdad34e468815f0}{ajouterArticle}}(\textcolor{keywordtype}{int}\ tRef[],\ \textcolor{keywordtype}{float}\ tPoids[],\ \textcolor{keywordtype}{float}\ tVol[],\ \textcolor{keywordtype}{float}\ tPrix[],\ \textcolor{keywordtype}{int}\ *tLogique,\ \textcolor{keywordtype}{int}\ tPhysique,\ \textcolor{keywordtype}{int}\ ref,\ \textcolor{keywordtype}{float}\ poids,\ \textcolor{keywordtype}{float}\ volume,\ \textcolor{keywordtype}{float}\ prix);} -\DoxyCodeLine{00056\ } -\DoxyCodeLine{00068\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{responsable_8h_a33f342ec6aaff14efce87b42350d9bee}{rechercheRefArticle}}(\textcolor{keywordtype}{int}\ tRef[],\ \textcolor{keywordtype}{int}\ ref,\ \textcolor{keywordtype}{int}\ *index,\ \textcolor{keywordtype}{int}\ tLogique);} -\DoxyCodeLine{00069\ } -\DoxyCodeLine{00082\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{responsable_8h_a0f8076a332f73d1edca58cfaeb42167e}{supprimerArticle}}(\textcolor{keywordtype}{int}\ tRef[],\ \textcolor{keywordtype}{float}\ tPoids[],\ \textcolor{keywordtype}{float}\ tVol[],\ \textcolor{keywordtype}{float}\ tPrix[],\ \textcolor{keywordtype}{int}\ *tLogique);} -\DoxyCodeLine{00083\ } -\DoxyCodeLine{00096\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{responsable_8h_ab02f9ff38b359630bc980bae859f7512}{modifierArticle}}(\textcolor{keywordtype}{int}\ tRef[],\ \textcolor{keywordtype}{float}\ tPoids[],\ \textcolor{keywordtype}{float}\ tVol[],\ \textcolor{keywordtype}{float}\ tPrix[],\ \textcolor{keywordtype}{int}\ tLogique);} -\DoxyCodeLine{00097\ } -\DoxyCodeLine{00110\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{responsable_8h_a185476dbf2dae604d3deb6a3085580a2}{ajouterClient}}(\textcolor{keywordtype}{int}\ tNumClient[],\ \textcolor{keywordtype}{float}\ tCagnotte[],\ \textcolor{keywordtype}{int}\ tSus[],\ \textcolor{keywordtype}{int}\ *tLogique,\ \textcolor{keywordtype}{int}\ tPhysique);} -\DoxyCodeLine{00111\ } -\DoxyCodeLine{00118\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{responsable_8h_aa02b66bb7f733cf9bcb6a7fc2b4598e0}{decodageMDP}}(\textcolor{keywordtype}{char}\ *mdpEnter);} -\DoxyCodeLine{00119\ } -\DoxyCodeLine{00127\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{responsable_8h_ad21f0252145711b8da85feef17902fbc}{dechiffrerCesar}}(\textcolor{keywordtype}{char}\ *texte,\ \textcolor{keywordtype}{int}\ decalage);} -\DoxyCodeLine{00128\ } -\DoxyCodeLine{00129\ \textcolor{keywordtype}{void}\ chiffrementCesar(\textcolor{keywordtype}{char}\ *mdp,\ \textcolor{keywordtype}{int}\ decalage);} -\DoxyCodeLine{00130\ \textcolor{keywordtype}{int}\ verifModifMDP(\textcolor{keywordtype}{char}\ *mdp,\ \textcolor{keywordtype}{char}\ *confirmMDP,\ \textcolor{keywordtype}{int}\ decalage);} -\DoxyCodeLine{00131\ \textcolor{keywordtype}{int}\ enregistrerMotDePasse(\textcolor{keywordtype}{char}\ *mdp,\ \textcolor{keywordtype}{int}\ decalage);} - -\end{DoxyCode} diff --git a/docs/latex/tabu_doxygen.sty b/docs/latex/tabu_doxygen.sty deleted file mode 100644 index 3f17d1d..0000000 --- a/docs/latex/tabu_doxygen.sty +++ /dev/null @@ -1,2557 +0,0 @@ -%% -%% This is file `tabu.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% tabu.dtx (with options: `package') -%% -%% This is a generated file. -%% Copyright (FC) 2010-2011 - lppl -%% -%% tabu : 2011/02/26 v2.8 - tabu : Flexible LaTeX tabulars -%% -%% ********************************************************************************************** -%% \begin{tabu} { preamble } => default target: \linewidth or \linegoal -%% \begin{tabu} to { preamble } => target specified -%% \begin{tabu} spread { preamble } => target relative to the ``natural width'' -%% -%% tabu works in text and in math modes. -%% -%% X columns: automatic width adjustment + horizontal and vertical alignment -%% \begin{tabu} { X[4c] X[1c] X[-2ml] } -%% -%% Horizontal lines and / or leaders: -%% \hline\hline => double horizontal line -%% \firsthline\hline => for nested tabulars -%% \lasthline\hline => for nested tabulars -%% \tabucline[line spec]{column-column} => ``funny'' lines (dash/leader) -%% Automatic lines / leaders : -%% \everyrow{\hline\hline} -%% -%% Vertical lines and / or leaders: -%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt blue] } -%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt on 2pt off 4pt blue] } -%% -%% Fixed vertical spacing adjustment: -%% \extrarowheight= \extrarowdepth= -%% or: \extrarowsep= => may be prefixed by \global -%% -%% Dynamic vertical spacing adjustment: -%% \abovetabulinesep= \belowtabulinesep= -%% or: \tabulinesep= => may be prefixed by \global -%% -%% delarray.sty shortcuts: in math and text modes -%% \begin{tabu} .... \({ preamble }\) -%% -%% Algorithms reports: -%% \tracingtabu=1 \tracingtabu=2 -%% -%% ********************************************************************************************** -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either -%% version 1.3 of this license or (at your option) any later -%% version. The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% -%% This work consists of the main source file tabu.dtx -%% and the derived files -%% tabu.sty, tabu.pdf, tabu.ins -%% -%% tabu : Flexible LaTeX tabulars -%% lppl copyright 2010-2011 by FC -%% - -\NeedsTeXFormat{LaTeX2e}[2005/12/01] -\ProvidesPackage{tabu_doxygen}[2011/02/26 v2.8 - flexible LaTeX tabulars (FC), frozen version for doxygen] -\RequirePackage{array}[2008/09/09] -\RequirePackage{varwidth}[2009/03/30] -\AtEndOfPackage{\tabu@AtEnd \let\tabu@AtEnd \@undefined} -\let\tabu@AtEnd\@empty -\def\TMP@EnsureCode#1={% - \edef\tabu@AtEnd{\tabu@AtEnd - \catcode#1 \the\catcode#1}% - \catcode#1=% -}% \TMP@EnsureCode -\TMP@EnsureCode 33 = 12 % ! -\TMP@EnsureCode 58 = 12 % : (for siunitx) -\TMP@EnsureCode124 = 12 % | -\TMP@EnsureCode 36 = 3 % $ = math shift -\TMP@EnsureCode 38 = 4 % & = tab alignment character -\TMP@EnsureCode 32 = 10 % space -\TMP@EnsureCode 94 = 7 % ^ -\TMP@EnsureCode 95 = 8 % _ -%% Constants -------------------------------------------------------- -\newcount \c@taburow \def\thetaburow {\number\c@taburow} -\newcount \tabu@nbcols -\newcount \tabu@cnt -\newcount \tabu@Xcol -\let\tabu@start \@tempcnta -\let\tabu@stop \@tempcntb -\newcount \tabu@alloc \tabu@alloc=\m@ne -\newcount \tabu@nested -\def\tabu@alloc@{\global\advance\tabu@alloc \@ne \tabu@nested\tabu@alloc} -\newdimen \tabu@target -\newdimen \tabu@spreadtarget -\newdimen \tabu@naturalX -\newdimen \tabucolX -\let\tabu@DELTA \@tempdimc -\let\tabu@thick \@tempdima -\let\tabu@on \@tempdimb -\let\tabu@off \@tempdimc -\newdimen \tabu@Xsum -\newdimen \extrarowdepth -\newdimen \abovetabulinesep -\newdimen \belowtabulinesep -\newdimen \tabustrutrule \tabustrutrule \z@ -\newtoks \tabu@thebody -\newtoks \tabu@footnotes -\newsavebox \tabu@box -\newsavebox \tabu@arstrutbox -\newsavebox \tabu@hleads -\newsavebox \tabu@vleads -\newif \iftabu@colortbl -\newif \iftabu@siunitx -\newif \iftabu@measuring -\newif \iftabu@spread -\newif \iftabu@negcoef -\newif \iftabu@everyrow -\def\tabu@everyrowtrue {\global\let\iftabu@everyrow \iftrue} -\def\tabu@everyrowfalse{\global\let\iftabu@everyrow \iffalse} -\newif \iftabu@long -\newif \iftabuscantokens -\def\tabu@rescan {\tabu@verbatim \scantokens } -%% Utilities (for internal usage) ----------------------------------- -\def\tabu@gobblespace #1 {#1} -\def\tabu@gobbletoken #1#2{#1} -\def\tabu@gobbleX{\futurelet\@let@token \tabu@gobblex} -\def\tabu@gobblex{\if ^^J\noexpand\@let@token \expandafter\@gobble - \else\ifx \@sptoken\@let@token - \expandafter\tabu@gobblespace\expandafter\tabu@gobbleX - \fi\fi -}% \tabu@gobblex -\def\tabu@X{^^J} -{\obeyspaces -\global\let\tabu@spxiii= % saves an active space (for \ifx) -\gdef\tabu@@spxiii{ }} -\def\tabu@ifenvir {% only for \multicolumn - \expandafter\tabu@if@nvir\csname\@currenvir\endcsname -}% \tabu@ifenvir -\def\tabu@if@nvir #1{\csname @\ifx\tabu#1first\else - \ifx\longtabu#1first\else - second\fi\fi oftwo\endcsname -}% \tabu@ifenvir -\def\tabu@modulo #1#2{\numexpr\ifnum\numexpr#1=\z@ 0\else #1-(#1-(#2-1)/2)/(#2)*(#2)\fi} -{\catcode`\&=3 -\gdef\tabu@strtrim #1{% #1 = control sequence to trim - \ifodd 1\ifx #1\@empty \else \ifx #1\space \else 0\fi \fi - \let\tabu@c@l@r \@empty \let#1\@empty - \else \expandafter \tabu@trimspaces #1\@nnil - \fi -}% \tabu@strtrim -\gdef\tabu@trimspaces #1\@nnil{\let\tabu@c@l@r=#2\tabu@firstspace .#1& }% -\gdef\tabu@firstspace #1#2#3 &{\tabu@lastspace #2#3&} -\gdef\tabu@lastspace #1{\def #3{#1}% - \ifx #3\tabu@c@l@r \def\tabu@c@l@r{\protect\color{#1}}\expandafter\remove@to@nnil \fi - \tabu@trimspaces #1\@nnil} -}% \catcode -\def\tabu@sanitizearg #1#2{{% - \csname \ifcsname if@safe@actives\endcsname % - @safe@activestrue\else - relax\fi \endcsname - \edef#2{#1}\tabu@strtrim#2\@onelevel@sanitize#2% - \expandafter}\expandafter\def\expandafter#2\expandafter{#2}% -}% \tabu@sanitizearg -\def\tabu@textbar #1{\begingroup \endlinechar\m@ne \scantokens{\def\:{|}}% - \expandafter\endgroup \expandafter#1\:% !!! semi simple group !!! -}% \tabu@textbar -\def\tabu@everyrow@bgroup{\iftabu@everyrow \begingroup \else \noalign{\ifnum0=`}\fi \fi} -\def\tabu@everyrow@egroup{% - \iftabu@everyrow \expandafter \endgroup \the\toks@ - \else \ifnum0=`{\fi}% - \fi -}% \tabu@everyrow@egroup -\def\tabu@arstrut {\global\setbox\@arstrutbox \hbox{\vrule - height \arraystretch \dimexpr\ht\strutbox+\extrarowheight - depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth - width \z@}% -}% \tabu@arstrut -\def\tabu@rearstrut {% - \@tempdima \arraystretch\dimexpr\ht\strutbox+\extrarowheight \relax - \@tempdimb \arraystretch\dimexpr\dp\strutbox+\extrarowdepth \relax - \ifodd 1\ifdim \ht\@arstrutbox=\@tempdima - \ifdim \dp\@arstrutbox=\@tempdimb 0 \fi\fi - \tabu@mkarstrut - \fi -}% \tabu@rearstrut -\def\tabu@@DBG #1{\ifdim\tabustrutrule>\z@ \color{#1}\fi} -\def\tabu@DBG@arstrut {\global\setbox\@arstrutbox - \hbox to\z@{\hbox to\z@{\hss - {\tabu@DBG{cyan}\vrule - height \arraystretch \dimexpr\ht\strutbox+\extrarowheight - depth \z@ - width \tabustrutrule}\kern-\tabustrutrule - {\tabu@DBG{pink}\vrule - height \z@ - depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth - width \tabustrutrule}}}% -}% \tabu@DBG@arstrut -\def\tabu@save@decl{\toks\count@ \expandafter{\the\toks\expandafter\count@ - \@nextchar}}% -\def\tabu@savedecl{\ifcat$\d@llarend\else - \let\save@decl \tabu@save@decl \fi % no inversion of tokens in text mode -}% \tabu@savedecl -\def\tabu@finalstrut #1{\unskip\ifhmode\nobreak\fi\vrule height\z@ depth\z@ width\z@} -\newcommand*\tabuDisableCommands {\g@addto@macro\tabu@trialh@@k } -\let\tabu@trialh@@k \@empty -\def\tabu@nowrite #1#{{\afterassignment}\toks@} -\let\tabu@write\write -\let\tabu@immediate\immediate -\def\tabu@WRITE{\begingroup - \def\immediate\write{\aftergroup\endgroup - \tabu@immediate\tabu@write}% -}% \tabu@WRITE -\expandafter\def\expandafter\tabu@GenericError\expandafter{% - \expandafter\tabu@WRITE\GenericError} -\def\tabu@warn{\tabu@WRITE\PackageWarning{tabu}} -\def\tabu@noxfootnote [#1]{\@gobble} -\def\tabu@nocolor #1#{\@gobble} -\newcommand*\tabu@norowcolor[2][]{} -\def\tabu@maybesiunitx #1{\def\tabu@temp{#1}% - \futurelet\@let@token \tabu@m@ybesiunitx} -\def\tabu@m@ybesiunitx #1{\def\tabu@m@ybesiunitx {% - \ifx #1\@let@token \let\tabu@cellleft \@empty \let\tabu@cellright \@empty \fi - \tabu@temp}% \tabu@m@ybesiunitx -}\expandafter\tabu@m@ybesiunitx \csname siunitx_table_collect_begin:Nn\endcsname -\def\tabu@celllalign@def #1{\def\tabu@celllalign{\tabu@maybesiunitx{#1}}}% -%% Fixed vertical spacing adjustment: \extrarowsep ------------------ -\newcommand*\extrarowsep{\edef\tabu@C@extra{\the\numexpr\tabu@C@extra+1}% - \iftabu@everyrow \aftergroup\tabu@Gextra - \else \aftergroup\tabu@n@Gextra - \fi - \@ifnextchar={\tabu@gobbletoken\tabu@extra} \tabu@extra -}% \extrarowsep -\def\tabu@extra {\@ifnextchar_% - {\tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}} - {\ifx ^\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}% - \else \let\tabu@temp \@empty - \afterassignment \tabu@setextrasep \extrarowdepth - \fi \tabu@temp}% -}% \tabu@extra -\def\tabu@setextra #1#2{\def\tabu@temp{\tabu@extr@#1#2}\afterassignment\tabu@temp#2} -\def\tabu@extr@ #1#2{\@ifnextchar^% - {\tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}} - {\ifx _\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}% - \else \let\tabu@temp \@empty - \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth - \fi \tabu@temp}% -}% \tabu@extr@ -\def\tabu@setextrasep {\extrarowheight=\extrarowdepth - \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth -}% \tabu@setextrasep -\def\tabu@Gextra{\ifx \tabu@G@extra\@empty \else {\tabu@Rextra}\fi} -\def\tabu@n@Gextra{\ifx \tabu@G@extra\@empty \else \noalign{\tabu@Rextra}\fi} -\def\tabu@Rextra{\tabu@Grestore \tabu@G@extra \tabu@C@extra} -\let\tabu@C@extra \z@ -\let\tabu@G@extra \@empty -%% Dynamic vertical spacing adjustment: \tabulinesep ---------------- -\newcommand*\tabulinesep{\edef\tabu@C@linesep{\the\numexpr\tabu@C@linesep+1}% - \iftabu@everyrow \aftergroup\tabu@Glinesep - \else \aftergroup\tabu@n@Glinesep - \fi - \@ifnextchar={\tabu@gobbletoken\tabu@linesep} \tabu@linesep -}% \tabulinesep -\def\tabu@linesep {\@ifnextchar_% - {\tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}} - {\ifx ^\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}% - \else \let\tabu@temp \@empty - \afterassignment \tabu@setlinesep \abovetabulinesep - \fi \tabu@temp}% -}% \tabu@linesep -\def\tabu@setsep #1#2{\def\tabu@temp{\tabu@sets@p#1#2}\afterassignment\tabu@temp#2} -\def\tabu@sets@p #1#2{\@ifnextchar^% - {\tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}} - {\ifx _\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}% - \else \let\tabu@temp \@empty - \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep - \fi \tabu@temp}% -}% \tabu@sets@p -\def\tabu@setlinesep {\belowtabulinesep=\abovetabulinesep - \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep -}% \tabu@setlinesep -\def\tabu@Glinesep{\ifx \tabu@G@linesep\@empty \else {\tabu@Rlinesep}\fi} -\def\tabu@n@Glinesep{\ifx \tabu@G@linesep\@empty \else \noalign{\tabu@Rlinesep}\fi} -\def\tabu@Rlinesep{\tabu@Grestore \tabu@G@linesep \tabu@C@linesep} -\let\tabu@C@linesep \z@ -\let\tabu@G@linesep \@empty -%% \global\extrarowsep and \global\tabulinesep ------------------- -\def\tabu@Gsave #1#2#3#4{\xdef#1{#1% - \toks#2{\toks\the\currentgrouplevel{\global#3\the#3\global#4\the#4}}}% -}% \tabu@Gsave -\def\tabu@Grestore#1#2{% - \toks#2{}#1\toks\currentgrouplevel\expandafter{\expandafter}\the\toks#2\relax - \ifcat$\the\toks\currentgrouplevel$\else - \global\let#1\@empty \global\let#2\z@ - \the\toks\currentgrouplevel - \fi -}% \tabu@Grestore -%% Setting code for every row --------------------------------------- -\newcommand*\everyrow{\tabu@everyrow@bgroup - \tabu@start \z@ \tabu@stop \z@ \tabu@evrstartstop -}% \everyrow -\def\tabu@evrstartstop {\@ifnextchar^% - {\afterassignment \tabu@evrstartstop \tabu@stop=}% - {\ifx ^\@let@token - \afterassignment\tabu@evrstartstop \tabu@start=% - \else \afterassignment\tabu@everyr@w \toks@ - \fi}% -}% \tabu@evrstartstop -\def\tabu@everyr@w {% - \xdef\tabu@everyrow{% - \noexpand\tabu@everyrowfalse - \let\noalign \relax - \noexpand\tabu@rowfontreset - \iftabu@colortbl \noexpand\tabu@rc@ \fi % \taburowcolors - \let\noexpand\tabu@docline \noexpand\tabu@docline@evr - \the\toks@ - \noexpand\tabu@evrh@@k - \noexpand\tabu@rearstrut - \global\advance\c@taburow \@ne}% - \iftabu@everyrow \toks@\expandafter - {\expandafter\def\expandafter\tabu@evr@L\expandafter{\the\toks@}\ignorespaces}% - \else \xdef\tabu@evr@G{\the\toks@}% - \fi - \tabu@everyrow@egroup -}% \tabu@everyr@w -\def\tabu@evr {\def\tabu@evrh@@k} % for internal use only -\tabu@evr{} -%% line style and leaders ------------------------------------------- -\newcommand*\newtabulinestyle [1]{% - {\@for \@tempa :=#1\do{\expandafter\tabu@newlinestyle \@tempa==\@nil}}% -}% \newtabulinestyle -\def\tabu@newlinestyle #1=#2=#3\@nil{\tabu@getline {#2}% - \tabu@sanitizearg {#1}\@tempa - \ifodd 1\ifx \@tempa\@empty \ifdefined\tabu@linestyle@ 0 \fi\fi - \global\expandafter\let - \csname tabu@linestyle@\@tempa \endcsname =\tabu@thestyle \fi -}% \tabu@newlinestyle -\newcommand*\tabulinestyle [1]{\tabu@everyrow@bgroup \tabu@getline{#1}% - \iftabu@everyrow - \toks@\expandafter{\expandafter \def \expandafter - \tabu@ls@L\expandafter{\tabu@thestyle}\ignorespaces}% - \gdef\tabu@ls@{\tabu@ls@L}% - \else - \global\let\tabu@ls@G \tabu@thestyle - \gdef\tabu@ls@{\tabu@ls@G}% - \fi - \tabu@everyrow@egroup -}% \tabulinestyle -\newcommand*\taburulecolor{\tabu@everyrow@bgroup \tabu@textbar \tabu@rulecolor} -\def\tabu@rulecolor #1{\toks@{}% - \def\tabu@temp #1##1#1{\tabu@ruledrsc{##1}}\@ifnextchar #1% - \tabu@temp - \tabu@rulearc -}% \tabu@rulecolor -\def\tabu@ruledrsc #1{\edef\tabu@temp{#1}\tabu@strtrim\tabu@temp - \ifx \tabu@temp\@empty \def\tabu@temp{\tabu@rule@drsc@ {}{}}% - \else \edef\tabu@temp{\noexpand\tabu@rule@drsc@ {}{\tabu@temp}}% - \fi - \tabu@temp -}% \tabu@ruledrsc@ -\def\tabu@ruledrsc@ #1#{\tabu@rule@drsc@ {#1}} -\def\tabu@rule@drsc@ #1#2{% - \iftabu@everyrow - \ifx \\#1#2\\\toks@{\let\CT@drsc@ \relax}% - \else \toks@{\def\CT@drsc@{\color #1{#2}}}% - \fi - \else - \ifx \\#1#2\\\global\let\CT@drsc@ \relax - \else \gdef\CT@drsc@{\color #1{#2}}% - \fi - \fi - \tabu@rulearc -}% \tabu@rule@drsc@ -\def\tabu@rulearc #1#{\tabu@rule@arc@ {#1}} -\def\tabu@rule@arc@ #1#2{% - \iftabu@everyrow - \ifx \\#1#2\\\toks@\expandafter{\the\toks@ \def\CT@arc@{}}% - \else \toks@\expandafter{\the\toks@ \def\CT@arc@{\color #1{#2}}}% - \fi - \toks@\expandafter{\the\toks@ - \let\tabu@arc@L \CT@arc@ - \let\tabu@drsc@L \CT@drsc@ - \ignorespaces}% - \else - \ifx \\#1#2\\\gdef\CT@arc@{}% - \else \gdef\CT@arc@{\color #1{#2}}% - \fi - \global\let\tabu@arc@G \CT@arc@ - \global\let\tabu@drsc@G \CT@drsc@ - \fi - \tabu@everyrow@egroup -}% \tabu@rule@arc@ -\def\taburowcolors {\tabu@everyrow@bgroup \@testopt \tabu@rowcolors 1} -\def\tabu@rowcolors [#1]#2#{\tabu@rowc@lors{#1}{#2}} -\def\tabu@rowc@lors #1#2#3{% - \toks@{}\@defaultunits \count@ =\number0#2\relax \@nnil - \@defaultunits \tabu@start =\number0#1\relax \@nnil - \ifnum \count@<\tw@ \count@=\tw@ \fi - \advance\tabu@start \m@ne - \ifnum \tabu@start<\z@ \tabu@start \z@ \fi - \tabu@rowcolorseries #3\in@..\in@ \@nnil -}% \tabu@rowcolors -\def\tabu@rowcolorseries #1..#2\in@ #3\@nnil {% - \ifx \in@#1\relax - \iftabu@everyrow \toks@{\def\tabu@rc@{}\let\tabu@rc@L \tabu@rc@}% - \else \gdef\tabu@rc@{}\global\let\tabu@rc@G \tabu@rc@ - \fi - \else - \ifx \\#2\\\tabu@rowcolorserieserror \fi - \tabu@sanitizearg{#1}\tabu@temp - \tabu@sanitizearg{#2}\@tempa - \advance\count@ \m@ne - \iftabu@everyrow - \def\tabu@rc@ ##1##2##3##4{\def\tabu@rc@{% - \ifnum ##2=\c@taburow - \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{##3}{##4}\fi - \ifnum \c@taburow<##2 \else - \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\z@ - \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi - \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% - \rowcolor{tabu@rc@\the\tabu@nested}\fi}% - }\edef\x{\noexpand\tabu@rc@ {\the\count@} - {\the\tabu@start} - {\tabu@temp} - {\@tempa}% - }\x - \toks@\expandafter{\expandafter\def\expandafter\tabu@rc@\expandafter{\tabu@rc@}}% - \toks@\expandafter{\the\toks@ \let\tabu@rc@L \tabu@rc@ \ignorespaces}% - \else % inside \noalign - \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{\tabu@temp}{\@tempa}% - \expandafter\resetcolorseries\expandafter[\the\count@]{tabu@rcseries@\the\tabu@nested}% - \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% - \let\noalign \relax \rowcolor{tabu@rc@\the\tabu@nested}% - \def\tabu@rc@ ##1##2{\gdef\tabu@rc@{% - \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\@ne - \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi - \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% - \rowcolor{tabu@rc@\the\tabu@nested}}% - }\edef\x{\noexpand\tabu@rc@{\the\count@}{\the\c@taburow}}\x - \global\let\tabu@rc@G \tabu@rc@ - \fi - \fi - \tabu@everyrow@egroup -}% \tabu@rowcolorseries -\tabuDisableCommands {\let\tabu@rc@ \@empty } -\def\tabu@rowcolorserieserror {\PackageError{tabu} - {Invalid syntax for \string\taburowcolors - \MessageBreak Please look at the documentation!}\@ehd -}% \tabu@rowcolorserieserror -\newcommand*\tabureset {% - \tabulinesep=\z@ \extrarowsep=\z@ \extratabsurround=\z@ - \tabulinestyle{}\everyrow{}\taburulecolor||{}\taburowcolors{}% -}% \tabureset -%% Parsing the line styles ------------------------------------------ -\def\tabu@getline #1{\begingroup - \csname \ifcsname if@safe@actives\endcsname % - @safe@activestrue\else - relax\fi \endcsname - \edef\tabu@temp{#1}\tabu@sanitizearg{#1}\@tempa - \let\tabu@thestyle \relax - \ifcsname tabu@linestyle@\@tempa \endcsname - \edef\tabu@thestyle{\endgroup - \def\tabu@thestyle{\expandafter\noexpand - \csname tabu@linestyle@\@tempa\endcsname}% - }\tabu@thestyle - \else \expandafter\tabu@definestyle \tabu@temp \@nil - \fi -}% \tabu@getline -\def\tabu@definestyle #1#2\@nil {\endlinechar \m@ne \makeatletter - \tabu@thick \maxdimen \tabu@on \maxdimen \tabu@off \maxdimen - \let\tabu@c@lon \@undefined \let\tabu@c@loff \@undefined - \ifodd 1\ifcat .#1\else\ifcat\relax #1\else 0\fi\fi % catcode 12 or non expandable cs - \def\tabu@temp{\tabu@getparam{thick}}% - \else \def\tabu@temp{\tabu@getparam{thick}\maxdimen}% - \fi - {% - \let\tabu@ \relax - \def\:{\obeyspaces \tabu@oXIII \tabu@commaXIII \edef\:}% (space active \: happy ;-)) - \scantokens{\:{\tabu@temp #1#2 \tabu@\tabu@}}% - \expandafter}\expandafter - \def\expandafter\:\expandafter{\:}% line spec rewritten now ;-) - \def\;{\def\:}% - \scantokens\expandafter{\expandafter\;\expandafter{\:}}% space is now inactive (catcode 10) - \let\tabu@ \tabu@getcolor \:% all arguments are ready now ;-) - \ifdefined\tabu@c@lon \else \let\tabu@c@lon\@empty \fi - \ifx \tabu@c@lon\@empty \def\tabu@c@lon{\CT@arc@}\fi - \ifdefined\tabu@c@loff \else \let\tabu@c@loff \@empty \fi - \ifdim \tabu@on=\maxdimen \ifdim \tabu@off<\maxdimen - \tabu@on \tabulineon \fi\fi - \ifdim \tabu@off=\maxdimen \ifdim \tabu@on<\maxdimen - \tabu@off \tabulineoff \fi\fi - \ifodd 1\ifdim \tabu@off=\maxdimen \ifdim \tabu@on=\maxdimen 0 \fi\fi - \in@true % - \else \in@false % - \fi - \ifdim\tabu@thick=\maxdimen \def\tabu@thick{\arrayrulewidth}% - \else \edef\tabu@thick{\the\tabu@thick}% - \fi - \edef \tabu@thestyle ##1##2{\endgroup - \def\tabu@thestyle{% - \ifin@ \noexpand\tabu@leadersstyle {\tabu@thick} - {\the\tabu@on}{##1} - {\the\tabu@off}{##2}% - \else \noexpand\tabu@rulesstyle - {##1\vrule width \tabu@thick}% - {##1\leaders \hrule height \tabu@thick \hfil}% - \fi}% - }\expandafter \expandafter - \expandafter \tabu@thestyle \expandafter - \expandafter \expandafter - {\expandafter\tabu@c@lon\expandafter}\expandafter{\tabu@c@loff}% -}% \tabu@definestyle -{\catcode`\O=\active \lccode`\O=`\o \catcode`\,=\active - \lowercase{\gdef\tabu@oXIII {\catcode`\o=\active \let O=\tabu@oxiii}} - \gdef\tabu@commaXIII {\catcode`\,=\active \let ,=\space} -}% \catcode -\def\tabu@oxiii #1{% - \ifcase \ifx n#1\z@ \else - \ifx f#1\@ne\else - \tw@ \fi\fi - \expandafter\tabu@onxiii - \or \expandafter\tabu@ofxiii - \else o% - \fi#1}% -\def\tabu@onxiii #1#2{% - \ifcase \ifx !#2\tw@ \else - \ifcat.\noexpand#2\z@ \else - \ifx \tabu@spxiii#2\@ne\else - \tw@ \fi\fi\fi - \tabu@getparam{on}#2\expandafter\@gobble - \or \expandafter\tabu@onxiii % (space is active) - \else o\expandafter\@firstofone - \fi{#1#2}}% -\def\tabu@ofxiii #1#2{% - \ifx #2f\expandafter\tabu@offxiii - \else o\expandafter\@firstofone - \fi{#1#2}} -\def\tabu@offxiii #1#2{% - \ifcase \ifx !#2\tw@ \else - \ifcat.\noexpand#2\z@ \else - \ifx\tabu@spxiii#2\@ne \else - \tw@ \fi\fi\fi - \tabu@getparam{off}#2\expandafter\@gobble - \or \expandafter\tabu@offxiii % (space is active) - \else o\expandafter\@firstofone - \fi{#1#2}} -\def\tabu@getparam #1{\tabu@ \csname tabu@#1\endcsname=} -\def\tabu@getcolor #1{% \tabu@ <- \tabu@getcolor after \edef - \ifx \tabu@#1\else % no more spec - \let\tabu@theparam=#1\afterassignment \tabu@getc@l@r #1\fi -}% \tabu@getcolor -\def\tabu@getc@l@r #1\tabu@ {% - \def\tabu@temp{#1}\tabu@strtrim \tabu@temp - \ifx \tabu@temp\@empty - \else%\ifcsname \string\color@\tabu@temp \endcsname % if the color exists - \ifx \tabu@theparam \tabu@off \let\tabu@c@loff \tabu@c@l@r - \else \let\tabu@c@lon \tabu@c@l@r - \fi - %\else \tabu@warncolour{\tabu@temp}% - \fi%\fi - \tabu@ % next spec -}% \tabu@getc@l@r -\def\tabu@warncolour #1{\PackageWarning{tabu} - {Color #1 is not defined. Default color used}% -}% \tabu@warncolour -\def\tabu@leadersstyle #1#2#3#4#5{\def\tabu@leaders{{#1}{#2}{#3}{#4}{#5}}% - \ifx \tabu@leaders\tabu@leaders@G \else - \tabu@LEADERS{#1}{#2}{#3}{#4}{#5}\fi -}% \tabu@leadersstyle -\def\tabu@rulesstyle #1#2{\let\tabu@leaders \@undefined - \gdef\tabu@thevrule{#1}\gdef\tabu@thehrule{#2}% -}% \tabu@rulesstyle -%% The leaders boxes ------------------------------------------------ -\def\tabu@LEADERS #1#2#3#4#5{%% width, dash, dash color, gap, gap color - {\let\color \tabu@color % => during trials -> \color = \tabu@nocolor - {% % but the leaders boxes should have colors ! - \def\@therule{\vrule}\def\@thick{height}\def\@length{width}% - \def\@box{\hbox}\def\@unbox{\unhbox}\def\@elt{\wd}% - \def\@skip{\hskip}\def\@ss{\hss}\def\tabu@leads{\tabu@hleads}% - \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% - \global\let\tabu@thehleaders \tabu@theleaders - }% - {% - \def\@therule{\hrule}\def\@thick{width}\def\@length{height}% - \def\@box{\vbox}\def\@unbox{\unvbox}\def\@elt{\ht}% - \def\@skip{\vskip}\def\@ss{\vss}\def\tabu@leads{\tabu@vleads}% - \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% - \global\let\tabu@thevleaders \tabu@theleaders - }% - \gdef\tabu@leaders@G{{#1}{#2}{#3}{#4}{#5}}% - }% -}% \tabu@LEADERS -\def\tabu@therule #1#2{\@therule \@thick#1\@length\dimexpr#2/2 \@depth\z@} -\def\tabu@l@@d@rs #1#2#3#4#5{%% width, dash, dash color, gap, gap color - \global\setbox \tabu@leads=\@box{% - {#3\tabu@therule{#1}{#2}}% - \ifx\\#5\\\@skip#4\else{#5\tabu@therule{#1}{#4*2}}\fi - {#3\tabu@therule{#1}{#2}}}% - \global\setbox\tabu@leads=\@box to\@elt\tabu@leads{\@ss - {#3\tabu@therule{#1}{#2}}\@unbox\tabu@leads}% - \edef\tabu@theleaders ##1{\def\noexpand\tabu@theleaders {% - {##1\tabu@therule{#1}{#2}}% - \xleaders \copy\tabu@leads \@ss - \tabu@therule{0pt}{-#2}{##1\tabu@therule{#1}{#2}}}% - }\tabu@theleaders{#3}% -}% \tabu@l@@d@rs -%% \tabu \endtabu \tabu* \longtabu \endlongtabu \longtabu* ---------- -\newcommand*\tabu {\tabu@longfalse - \ifmmode \def\tabu@ {\array}\def\endtabu {\endarray}% - \else \def\tabu@ {\tabu@tabular}\def\endtabu {\endtabular}\fi - \expandafter\let\csname tabu*\endcsname \tabu - \expandafter\def\csname endtabu*\endcsname{\endtabu}% - \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget -}% {tabu} -\let\tabu@tabular \tabular % -\expandafter\def\csname tabu*\endcsname{\tabuscantokenstrue \tabu} -\newcommand*\longtabu {\tabu@longtrue - \ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi - \def\tabu@{\longtable}\def\endlongtabu{\endlongtable}% - \LTchunksize=\@M - \expandafter\let\csname tabu*\endcsname \tabu - \expandafter\def\csname endlongtabu*\endcsname{\endlongtabu}% - \let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts } - \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget -}% {longtabu} -\expandafter\def\csname longtabu*\endcsname{\tabuscantokenstrue \longtabu} -\def\tabu@nolongtabu{\PackageError{tabu} - {longtabu requires the longtable package}\@ehd} -%% Read the target and then : \tabular or \@array ------------------ -\def\tabu@settarget {\futurelet\@let@token \tabu@sett@rget } -\def\tabu@sett@rget {\tabu@target \z@ - \ifcase \ifx \bgroup\@let@token \z@ \else - \ifx \@sptoken\@let@token \@ne \else - \if t\@let@token \tw@ \else - \if s\@let@token \thr@@\else - \z@\fi\fi\fi\fi - \expandafter\tabu@begin - \or \expandafter\tabu@gobblespace\expandafter\tabu@settarget - \or \expandafter\tabu@to - \or \expandafter\tabu@spread - \fi -}% \tabu@sett@rget -\def\tabu@to to{\def\tabu@halignto{to}\tabu@gettarget} -\def\tabu@spread spread{\tabu@spreadtrue\def\tabu@halignto{spread}\tabu@gettarget} -\def\tabu@gettarget {\afterassignment\tabu@linegoaltarget \tabu@target } -\def\tabu@linegoaltarget {\futurelet\tabu@temp \tabu@linegoalt@rget } -\def\tabu@linegoalt@rget {% - \ifx \tabu@temp\LNGL@setlinegoal - \LNGL@setlinegoal \expandafter \@firstoftwo \fi % @gobbles \LNGL@setlinegoal - \tabu@begin -}% \tabu@linegoalt@rget -\def\tabu@begin #1#{% - \iftabu@measuring \expandafter\tabu@nestedmeasure \fi - \ifdim \tabu@target=\z@ \let\tabu@halignto \@empty - \else \edef\tabu@halignto{\tabu@halignto\the\tabu@target}% - \fi - \@testopt \tabu@tabu@ \tabu@aligndefault #1\@nil -}% \tabu@begin -\long\def\tabu@tabu@ [#1]#2\@nil #3{\tabu@setup - \def\tabu@align {#1}\def\tabu@savedpream{\NC@find #3}% - \tabu@ [\tabu@align ]#2{#3\tabu@rewritefirst }% -}% \tabu@tabu@ -\def\tabu@nestedmeasure {% - \ifodd 1\iftabu@spread \else \ifdim\tabu@target=\z@ \else 0 \fi\fi\relax - \tabu@spreadtrue - \else \begingroup \iffalse{\fi \ifnum0=`}\fi - \toks@{}\def\tabu@stack{b}% - \expandafter\tabu@collectbody\expandafter\tabu@quickrule - \expandafter\endgroup - \fi -}% \tabu@nestedmeasure -\def\tabu@quickrule {\indent\vrule height\z@ depth\z@ width\tabu@target} -%% \tabu@setup \tabu@init \tabu@indent -\def\tabu@setup{\tabu@alloc@ - \ifcase \tabu@nested - \ifmmode \else \iftabu@spread\else \ifdim\tabu@target=\z@ - \let\tabu@afterendpar \par - \fi\fi\fi - \def\tabu@aligndefault{c}\tabu@init \tabu@indent - \else % - \def\tabu@aligndefault{t}\let\tabudefaulttarget \linewidth - \fi - \let\tabu@thetarget \tabudefaulttarget \let\tabu@restored \@undefined - \edef\tabu@NC@list{\the\NC@list}\NC@list{\NC@do \tabu@rewritefirst}% - \everycr{}\let\@startpbox \tabu@startpbox % for nested tabu inside longtabu... - \let\@endpbox \tabu@endpbox % idem " " " " " " - \let\@tabarray \tabu@tabarray % idem " " " " " " - \tabu@setcleanup \tabu@setreset -}% \tabu@setup -\def\tabu@init{\tabu@starttimer \tabu@measuringfalse - \edef\tabu@hfuzz {\the\dimexpr\hfuzz+1sp}\global\tabu@footnotes{}% - \let\firsthline \tabu@firsthline \let\lasthline \tabu@lasthline - \let\firstline \tabu@firstline \let\lastline \tabu@lastline - \let\hline \tabu@hline \let\@xhline \tabu@xhline - \let\color \tabu@color \let\@arstrutbox \tabu@arstrutbox - \iftabu@colortbl\else\let\LT@@hline \tabu@LT@@hline \fi - \tabu@trivlist % - \let\@footnotetext \tabu@footnotetext \let\@xfootnotetext \tabu@xfootnotetext - \let\@xfootnote \tabu@xfootnote \let\centering \tabu@centering - \let\raggedright \tabu@raggedright \let\raggedleft \tabu@raggedleft - \let\tabudecimal \tabu@tabudecimal \let\Centering \tabu@Centering - \let\RaggedRight \tabu@RaggedRight \let\RaggedLeft \tabu@RaggedLeft - \let\justifying \tabu@justifying \let\rowfont \tabu@rowfont - \let\fbox \tabu@fbox \let\color@b@x \tabu@color@b@x - \let\tabu@@everycr \everycr \let\tabu@@everypar \everypar - \let\tabu@prepnext@tokORI \prepnext@tok\let\prepnext@tok \tabu@prepnext@tok - \let\tabu@multicolumnORI\multicolumn \let\multicolumn \tabu@multicolumn - \let\tabu@startpbox \@startpbox % for nested tabu inside longtabu pfff !!! - \let\tabu@endpbox \@endpbox % idem " " " " " " " - \let\tabu@tabarray \@tabarray % idem " " " " " " " - \tabu@adl@fix \let\endarray \tabu@endarray % colortbl & arydshln (delarray) - \iftabu@colortbl\CT@everycr\expandafter{\expandafter\iftabu@everyrow \the\CT@everycr \fi}\fi -}% \tabu@init -\def\tabu@indent{% correction for indentation - \ifdim \parindent>\z@\ifx \linewidth\tabudefaulttarget - \everypar\expandafter{% - \the\everypar\everypar\expandafter{\the\everypar}% - \setbox\z@=\lastbox - \ifdim\wd\z@>\z@ \edef\tabu@thetarget - {\the\dimexpr -\wd\z@+\tabudefaulttarget}\fi - \box\z@}% - \fi\fi -}% \tabu@indent -\def\tabu@setcleanup {% saves last global assignments - \ifodd 1\ifmmode \else \iftabu@long \else 0\fi\fi\relax - \def\tabu@aftergroupcleanup{% - \def\tabu@aftergroupcleanup{\aftergroup\tabu@cleanup}}% - \else - \def\tabu@aftergroupcleanup{% - \aftergroup\aftergroup\aftergroup\tabu@cleanup - \let\tabu@aftergroupcleanup \relax}% - \fi - \let\tabu@arc@Gsave \tabu@arc@G - \let\tabu@arc@G \tabu@arc@L % - \let\tabu@drsc@Gsave \tabu@drsc@G - \let\tabu@drsc@G \tabu@drsc@L % - \let\tabu@ls@Gsave \tabu@ls@G - \let\tabu@ls@G \tabu@ls@L % - \let\tabu@rc@Gsave \tabu@rc@G - \let\tabu@rc@G \tabu@rc@L % - \let\tabu@evr@Gsave \tabu@evr@G - \let\tabu@evr@G \tabu@evr@L % - \let\tabu@celllalign@save \tabu@celllalign - \let\tabu@cellralign@save \tabu@cellralign - \let\tabu@cellleft@save \tabu@cellleft - \let\tabu@cellright@save \tabu@cellright - \let\tabu@@celllalign@save \tabu@@celllalign - \let\tabu@@cellralign@save \tabu@@cellralign - \let\tabu@@cellleft@save \tabu@@cellleft - \let\tabu@@cellright@save \tabu@@cellright - \let\tabu@rowfontreset@save \tabu@rowfontreset - \let\tabu@@rowfontreset@save\tabu@@rowfontreset - \let\tabu@rowfontreset \@empty - \edef\tabu@alloc@save {\the\tabu@alloc}% restore at \tabu@reset - \edef\c@taburow@save {\the\c@taburow}% - \edef\tabu@naturalX@save {\the\tabu@naturalX}% - \let\tabu@naturalXmin@save \tabu@naturalXmin - \let\tabu@naturalXmax@save \tabu@naturalXmax - \let\tabu@mkarstrut@save \tabu@mkarstrut - \edef\tabu@clarstrut{% - \extrarowheight \the\dimexpr \ht\@arstrutbox-\ht\strutbox \relax - \extrarowdepth \the\dimexpr \dp\@arstrutbox-\dp\strutbox \relax - \let\noexpand\@arraystretch \@ne \noexpand\tabu@rearstrut}% -}% \tabu@setcleanup -\def\tabu@cleanup {\begingroup - \globaldefs\@ne \tabu@everyrowtrue - \let\tabu@arc@G \tabu@arc@Gsave - \let\CT@arc@ \tabu@arc@G - \let\tabu@drsc@G \tabu@drsc@Gsave - \let\CT@drsc@ \tabu@drsc@G - \let\tabu@ls@G \tabu@ls@Gsave - \let\tabu@ls@ \tabu@ls@G - \let\tabu@rc@G \tabu@rc@Gsave - \let\tabu@rc@ \tabu@rc@G - \let\CT@do@color \relax - \let\tabu@evr@G \tabu@evr@Gsave - \let\tabu@celllalign \tabu@celllalign@save - \let\tabu@cellralign \tabu@cellralign@save - \let\tabu@cellleft \tabu@cellleft@save - \let\tabu@cellright \tabu@cellright@save - \let\tabu@@celllalign \tabu@@celllalign@save - \let\tabu@@cellralign \tabu@@cellralign@save - \let\tabu@@cellleft \tabu@@cellleft@save - \let\tabu@@cellright \tabu@@cellright@save - \let\tabu@rowfontreset \tabu@rowfontreset@save - \let\tabu@@rowfontreset \tabu@@rowfontreset@save - \tabu@naturalX =\tabu@naturalX@save - \let\tabu@naturalXmax \tabu@naturalXmax@save - \let\tabu@naturalXmin \tabu@naturalXmin@save - \let\tabu@mkarstrut \tabu@mkarstrut@save - \c@taburow =\c@taburow@save - \ifcase \tabu@nested \tabu@alloc \m@ne\fi - \endgroup % - \ifcase \tabu@nested - \the\tabu@footnotes \global\tabu@footnotes{}% - \tabu@afterendpar \tabu@elapsedtime - \fi - \tabu@clarstrut - \everyrow\expandafter {\tabu@evr@G}% -}% \tabu@cleanup -\let\tabu@afterendpar \relax -\def\tabu@setreset {% - \edef\tabu@savedparams {% \relax for \tabu@message@save - \ifmmode \col@sep \the\arraycolsep - \else \col@sep \the\tabcolsep \fi \relax - \arrayrulewidth \the\arrayrulewidth \relax - \doublerulesep \the\doublerulesep \relax - \extratabsurround \the\extratabsurround \relax - \extrarowheight \the\extrarowheight \relax - \extrarowdepth \the\extrarowdepth \relax - \abovetabulinesep \the\abovetabulinesep \relax - \belowtabulinesep \the\belowtabulinesep \relax - \def\noexpand\arraystretch{\arraystretch}% - \ifdefined\minrowclearance \minrowclearance\the\minrowclearance\relax\fi}% - \begingroup - \@temptokena\expandafter{\tabu@savedparams}% => only for \savetabu / \usetabu - \ifx \tabu@arc@L\relax \else \tabu@setsave \tabu@arc@L \fi - \ifx \tabu@drsc@L\relax \else \tabu@setsave \tabu@drsc@L \fi - \tabu@setsave \tabu@ls@L \tabu@setsave \tabu@evr@L - \expandafter \endgroup \expandafter - \def\expandafter\tabu@saved@ \expandafter{\the\@temptokena - \let\tabu@arc@G \tabu@arc@L - \let\tabu@drsc@G \tabu@drsc@L - \let\tabu@ls@G \tabu@ls@L - \let\tabu@rc@G \tabu@rc@L - \let\tabu@evr@G \tabu@evr@L}% - \def\tabu@reset{\tabu@savedparams - \tabu@everyrowtrue \c@taburow \z@ - \let\CT@arc@ \tabu@arc@L - \let\CT@drsc@ \tabu@drsc@L - \let\tabu@ls@ \tabu@ls@L - \let\tabu@rc@ \tabu@rc@L - \global\tabu@alloc \tabu@alloc@save - \everyrow\expandafter{\tabu@evr@L}}% -}% \tabu@reset -\def\tabu@setsave #1{\expandafter\tabu@sets@ve #1\@nil{#1}} -\long\def\tabu@sets@ve #1\@nil #2{\@temptokena\expandafter{\the\@temptokena \def#2{#1}}} -%% The Rewriting Process ------------------------------------------- -\def\tabu@newcolumntype #1{% - \expandafter\tabu@new@columntype - \csname NC@find@\string#1\expandafter\endcsname - \csname NC@rewrite@\string#1\endcsname - {#1}% -}% \tabu@newcolumntype -\def\tabu@new@columntype #1#2#3{% - \def#1##1#3{\NC@{##1}}% - \let#2\relax \newcommand*#2% -}% \tabu@new@columntype -\def\tabu@privatecolumntype #1{% - \expandafter\tabu@private@columntype - \csname NC@find@\string#1\expandafter\endcsname - \csname NC@rewrite@\string#1\expandafter\endcsname - \csname tabu@NC@find@\string#1\expandafter\endcsname - \csname tabu@NC@rewrite@\string#1\endcsname - {#1}% -}% \tabu@privatecolumntype -\def\tabu@private@columntype#1#2#3#4{% - \g@addto@macro\tabu@privatecolumns{\let#1#3\let#2#4}% - \tabu@new@columntype#3#4% -}% \tabu@private@columntype -\let\tabu@privatecolumns \@empty -\newcommand*\tabucolumn [1]{\expandafter \def \expandafter - \tabu@highprioritycolumns\expandafter{\tabu@highprioritycolumns - \NC@do #1}}% -\let\tabu@highprioritycolumns \@empty -%% The | ``column'' : rewriting process -------------------------- -\tabu@privatecolumntype |{\tabu@rewritevline} -\newcommand*\tabu@rewritevline[1][]{\tabu@vlinearg{#1}% - \expandafter \NC@find \tabu@rewritten} -\def\tabu@lines #1{% - \ifx|#1\else \tabu@privatecolumntype #1{\tabu@rewritevline}\fi - \NC@list\expandafter{\the\NC@list \NC@do #1}% -}% \tabu@lines@ -\def\tabu@vlinearg #1{% - \ifx\\#1\\\def\tabu@thestyle {\tabu@ls@}% - \else\tabu@getline {#1}% - \fi - \def\tabu@rewritten ##1{\def\tabu@rewritten{!{##1\tabu@thevline}}% - }\expandafter\tabu@rewritten\expandafter{\tabu@thestyle}% - \expandafter \tabu@keepls \tabu@thestyle \@nil -}% \tabu@vlinearg -\def\tabu@keepls #1\@nil{% - \ifcat $\@cdr #1\@nil $% - \ifx \relax#1\else - \ifx \tabu@ls@#1\else - \let#1\relax - \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer - \tabu@savels\noexpand#1}\fi\fi\fi -}% \tabu@keepls -\def\tabu@thevline {\begingroup - \ifdefined\tabu@leaders - \setbox\@tempboxa=\vtop to\dimexpr - \ht\@arstrutbox+\dp\@arstrutbox{{\tabu@thevleaders}}% - \ht\@tempboxa=\ht\@arstrutbox \dp\@tempboxa=\dp\@arstrutbox - \box\@tempboxa - \else - \tabu@thevrule - \fi \endgroup -}% \tabu@thevline -\def\tabu@savels #1{% - \expandafter\let\csname\string#1\endcsname #1% - \expandafter\def\expandafter\tabu@reset\expandafter{\tabu@reset - \tabu@resetls#1}}% -\def\tabu@resetls #1{\expandafter\let\expandafter#1\csname\string#1\endcsname}% -%% \multicolumn inside tabu environment ----------------------------- -\tabu@newcolumntype \tabu@rewritemulticolumn{% - \aftergroup \tabu@endrewritemulticolumn % after \@mkpream group - \NC@list{\NC@do *}\tabu@textbar \tabu@lines - \tabu@savedecl - \tabu@privatecolumns - \NC@list\expandafter{\the\expandafter\NC@list \tabu@NC@list}% - \let\tabu@savels \relax - \NC@find -}% \tabu@rewritemulticolumn -\def\tabu@endrewritemulticolumn{\gdef\tabu@mkpreambuffer{}\endgroup} -\def\tabu@multicolumn{\tabu@ifenvir \tabu@multic@lumn \tabu@multicolumnORI} -\long\def\tabu@multic@lumn #1#2#3{\multispan{#1}\begingroup - \tabu@everyrowtrue - \NC@list{\NC@do \tabu@rewritemulticolumn}% - \expandafter\@gobbletwo % gobbles \multispan{#1} - \tabu@multicolumnORI{#1}{\tabu@rewritemulticolumn #2}% - {\iftabuscantokens \tabu@rescan \else \expandafter\@firstofone \fi - {#3}}% -}% \tabu@multic@lumn -%% The X column(s): rewriting process ----------------------------- -\tabu@privatecolumntype X[1][]{\begingroup \tabu@siunitx{\endgroup \tabu@rewriteX {#1}}} -\def\tabu@nosiunitx #1{#1{}{}\expandafter \NC@find \tabu@rewritten } -\def\tabu@siunitx #1{\@ifnextchar \bgroup - {\tabu@rewriteX@Ss{#1}} - {\tabu@nosiunitx{#1}}} -\def\tabu@rewriteX@Ss #1#2{\@temptokena{}% - \@defaultunits \let\tabu@temp =#2\relax\@nnil - \ifodd 1\ifx S\tabu@temp \else \ifx s\tabu@temp \else 0 \fi\fi - \def\NC@find{\def\NC@find >####1####2<####3\relax{#1 {####1}{####3}% - }\expandafter\NC@find \the\@temptokena \relax - }\expandafter\NC@rewrite@S \@gobble #2\relax - \else \tabu@siunitxerror - \fi - \expandafter \NC@find \tabu@rewritten -}% \tabu@rewriteX@Ss -\def\tabu@siunitxerror {\PackageError{tabu}{Not a S nor s column ! - \MessageBreak X column can only embed siunitx S or s columns}\@ehd -}% \tabu@siunitxerror -\def\tabu@rewriteX #1#2#3{\tabu@Xarg {#1}{#2}{#3}% - \iftabu@measuring - \else \tabu@measuringtrue % first X column found in the preamble - \let\@halignto \relax \let\tabu@halignto \relax - \iftabu@spread \tabu@spreadtarget \tabu@target \tabu@target \z@ - \else \tabu@spreadtarget \z@ \fi - \ifdim \tabu@target=\z@ - \setlength\tabu@target \tabu@thetarget - \tabu@message{\tabu@message@defaulttarget}% - \else \tabu@message{\tabu@message@target}\fi - \fi -}% \tabu@rewriteX -\def\tabu@rewriteXrestore #1#2#3{\let\@halignto \relax - \def\tabu@rewritten{l}} -\def\tabu@Xarg #1#2#3{% - \advance\tabu@Xcol \@ne \let\tabu@Xlcr \@empty - \let\tabu@Xdisp \@empty \let\tabu@Xmath \@empty - \ifx\\#1\\% - \def\tabu@rewritten{p}\tabucolX \p@ % - \else - \let\tabu@rewritten \@empty \let\tabu@temp \@empty \tabucolX \z@ - \tabu@Xparse {}#1\relax - \fi - \tabu@Xrewritten{#2}{#3}% -}% \tabu@Xarg -\def\tabu@Xparse #1{\futurelet\@let@token \tabu@Xtest} -\expandafter\def\expandafter\tabu@Xparsespace\space{\tabu@Xparse{}} -\def\tabu@Xtest{% - \ifcase \ifx \relax\@let@token \z@ \else - \if ,\@let@token \m@ne\else - \if p\@let@token 1\else - \if m\@let@token 2\else - \if b\@let@token 3\else - \if l\@let@token 4\else - \if c\@let@token 5\else - \if r\@let@token 6\else - \if j\@let@token 7\else - \if L\@let@token 8\else - \if C\@let@token 9\else - \if R\@let@token 10\else - \if J\@let@token 11\else - \ifx \@sptoken\@let@token 12\else - \if .\@let@token 13\else - \if -\@let@token 13\else - \ifcat $\@let@token 14\else - 15\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax - \or \tabu@Xtype {p}% - \or \tabu@Xtype {m}% - \or \tabu@Xtype {b}% - \or \tabu@Xalign \raggedright\relax - \or \tabu@Xalign \centering\relax - \or \tabu@Xalign \raggedleft\relax - \or \tabu@Xalign \tabu@justify\relax - \or \tabu@Xalign \RaggedRight\raggedright - \or \tabu@Xalign \Centering\centering - \or \tabu@Xalign \RaggedLeft\raggedleft - \or \tabu@Xalign \justifying\tabu@justify - \or \expandafter \tabu@Xparsespace - \or \expandafter \tabu@Xcoef - \or \expandafter \tabu@Xm@th - \or \tabu@Xcoef{}% - \else\expandafter \tabu@Xparse - \fi -}% \tabu@Xtest -\def\tabu@Xalign #1#2{% - \ifx \tabu@Xlcr\@empty \else \PackageWarning{tabu} - {Duplicate horizontal alignment specification}\fi - \ifdefined#1\def\tabu@Xlcr{#1}\let#1\relax - \else \def\tabu@Xlcr{#2}\let#2\relax\fi - \expandafter\tabu@Xparse -}% \tabu@Xalign -\def\tabu@Xtype #1{% - \ifx \tabu@rewritten\@empty \else \PackageWarning{tabu} - {Duplicate vertical alignment specification}\fi - \def\tabu@rewritten{#1}\expandafter\tabu@Xparse -}% \tabu@Xtype -\def\tabu@Xcoef#1{\edef\tabu@temp{\tabu@temp#1}% - \afterassignment\tabu@Xc@ef \tabu@cnt\number\if-#10\fi -}% \tabu@Xcoef -\def\tabu@Xc@ef{\advance\tabucolX \tabu@temp\the\tabu@cnt\p@ - \tabu@Xparse{}% -}% \tabu@Xc@ef -\def\tabu@Xm@th #1{\futurelet \@let@token \tabu@Xd@sp} -\def\tabu@Xd@sp{\let\tabu@Xmath=$% - \ifx $\@let@token \def\tabu@Xdisp{\displaystyle}% - \expandafter\tabu@Xparse - \else \expandafter\tabu@Xparse\expandafter{\expandafter}% - \fi -}% \tabu@Xd@sp -\def\tabu@Xrewritten {% - \ifx \tabu@rewritten\@empty \def\tabu@rewritten{p}\fi - \ifdim \tabucolX<\z@ \tabu@negcoeftrue - \else\ifdim \tabucolX=\z@ \tabucolX \p@ - \fi\fi - \edef\tabu@temp{{\the\tabu@Xcol}{\tabu@strippt\tabucolX}}% - \edef\tabu@Xcoefs{\tabu@Xcoefs \tabu@ \tabu@temp}% - \edef\tabu@rewritten ##1##2{\def\noexpand\tabu@rewritten{% - >{\tabu@Xlcr \ifx$\tabu@Xmath$\tabu@Xdisp\fi ##1}% - \tabu@rewritten {\tabu@hsize \tabu@temp}% - <{##2\ifx$\tabu@Xmath$\fi}}% - }\tabu@rewritten -}% \tabu@Xrewritten -\def\tabu@hsize #1#2{% - \ifdim #2\p@<\z@ - \ifdim \tabucolX=\maxdimen \tabu@wd{#1}\else - \ifdim \tabu@wd{#1}<-#2\tabucolX \tabu@wd{#1}\else -#2\tabucolX\fi - \fi - \else #2\tabucolX - \fi -}% \tabu@hsize -%% \usetabu and \preamble: rewriting process --------------------- -\tabu@privatecolumntype \usetabu [1]{% - \ifx\\#1\\\tabu@saveerr{}\else - \@ifundefined{tabu@saved@\string#1} - {\tabu@saveerr{#1}} - {\let\tabu@rewriteX \tabu@rewriteXrestore - \csname tabu@saved@\string#1\expandafter\endcsname\expandafter\@ne}% - \fi -}% \NC@rewrite@\usetabu -\tabu@privatecolumntype \preamble [1]{% - \ifx\\#1\\\tabu@saveerr{}\else - \@ifundefined{tabu@saved@\string#1} - {\tabu@saveerr{#1}} - {\csname tabu@saved@\string#1\expandafter\endcsname\expandafter\z@}% - \fi -}% \NC@rewrite@\preamble -%% Controlling the rewriting process ------------------------------- -\tabu@newcolumntype \tabu@rewritefirst{% - \iftabu@long \aftergroup \tabu@longpream % - \else \aftergroup \tabu@pream - \fi - \let\tabu@ \relax \let\tabu@hsize \relax - \let\tabu@Xcoefs \@empty \let\tabu@savels \relax - \tabu@Xcol \z@ \tabu@cnt \tw@ - \gdef\tabu@mkpreambuffer{\tabu@{}}\tabu@measuringfalse - \global\setbox\@arstrutbox \box\@arstrutbox - \NC@list{\NC@do *}\tabu@textbar \tabu@lines - \NC@list\expandafter{\the\NC@list \NC@do X}% - \iftabu@siunitx % - \NC@list\expandafter{\the\NC@list \NC@do S\NC@do s}\fi - \NC@list\expandafter{\the\expandafter\NC@list \tabu@highprioritycolumns}% - \expandafter\def\expandafter\tabu@NC@list\expandafter{% - \the\expandafter\NC@list \tabu@NC@list}% % * | X S - \NC@list\expandafter{\expandafter \NC@do \expandafter\usetabu - \expandafter \NC@do \expandafter\preamble - \the\NC@list \NC@do \tabu@rewritemiddle - \NC@do \tabu@rewritelast}% - \tabu@savedecl - \tabu@privatecolumns - \edef\tabu@prev{\the\@temptokena}\NC@find \tabu@rewritemiddle -}% NC@rewrite@\tabu@rewritefirst -\tabu@newcolumntype \tabu@rewritemiddle{% - \edef\tabu@temp{\the\@temptokena}\NC@find \tabu@rewritelast -}% \NC@rewrite@\tabu@rewritemiddle -\tabu@newcolumntype \tabu@rewritelast{% - \ifx \tabu@temp\tabu@prev \advance\tabu@cnt \m@ne - \NC@list\expandafter{\tabu@NC@list \NC@do \tabu@rewritemiddle - \NC@do \tabu@rewritelast}% - \else \let\tabu@prev\tabu@temp - \fi - \ifcase \tabu@cnt \expandafter\tabu@endrewrite - \else \expandafter\NC@find \expandafter\tabu@rewritemiddle - \fi -}% \NC@rewrite@\tabu@rewritelast -%% Choosing the strategy -------------------------------------------- -\def\tabu@endrewrite {% - \let\tabu@temp \NC@find - \ifx \@arrayright\relax \let\@arrayright \@empty \fi - \count@=% - \ifx \@finalstrut\tabu@finalstrut \z@ % outer in mode 0 print - \iftabu@measuring - \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer - \tabu@target \csname tabu@\the\tabu@nested.T\endcsname - \tabucolX \csname tabu@\the\tabu@nested.X\endcsname - \edef\@halignto {\ifx\@arrayright\@empty to\tabu@target\fi}}% - \fi - \else\iftabu@measuring 4 % X columns - \xdef\tabu@mkpreambuffer{\tabu@{\tabu@mkpreambuffer - \tabu@target \the\tabu@target - \tabu@spreadtarget \the\tabu@spreadtarget}% - \def\noexpand\tabu@Xcoefs{\tabu@Xcoefs}% - \edef\tabu@halignto{\ifx \@arrayright\@empty to\tabu@target\fi}}% - \let\tabu@Xcoefs \relax - \else\ifcase\tabu@nested \thr@@ % outer, no X - \global\let\tabu@afterendpar \relax - \else \@ne % inner, no X, outer in mode 1 or 2 - \fi - \ifdefined\tabu@usetabu - \else \ifdim\tabu@target=\z@ - \else \let\tabu@temp \tabu@extracolsep - \fi\fi - \fi - \fi - \xdef\tabu@mkpreambuffer{\count@ \the\count@ \tabu@mkpreambuffer}% - \tabu@temp -}% \tabu@endrewrite -\def\tabu@extracolsep{\@defaultunits \expandafter\let - \expandafter\tabu@temp \expandafter=\the\@temptokena \relax\@nnil - \ifx \tabu@temp\@sptoken - \expandafter\tabu@gobblespace \expandafter\tabu@extracolsep - \else - \edef\tabu@temp{\noexpand\NC@find - \if |\noexpand\tabu@temp @% - \else\if !\noexpand\tabu@temp @% - \else !% - \fi\fi - {\noexpand\extracolsep\noexpand\@flushglue}}% - \fi - \tabu@temp -}% \tabu@extrac@lsep -%% Implementing the strategy ---------------------------------------- -\long\def\tabu@pream #1\@preamble {% - \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup - \NC@list\expandafter {\tabu@NC@list}% in case of nesting... - \ifdefined\tabu@usetabu \tabu@usetabu \tabu@target \z@ \fi - \let\tabu@savedpreamble \@preamble - \global\let\tabu@elapsedtime \relax - \tabu@thebody ={#1\tabu@aftergroupcleanup}% - \tabu@thebody =\expandafter{\the\expandafter\tabu@thebody - \@preamble}% - \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) - \tabu@select -}% \tabu@pream -\long\def\tabu@longpream #1\LT@bchunk #2\LT@bchunk{% - \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup - \NC@list\expandafter {\tabu@NC@list}% in case of nesting... - \let\tabu@savedpreamble \@preamble - \global\let\tabu@elapsedtime \relax - \tabu@thebody ={#1\LT@bchunk #2\tabu@aftergroupcleanup \LT@bchunk}% - \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) - \tabu@select -}% \tabu@longpream -\def\tabu@select {% - \ifnum\tabu@nested>\z@ \tabuscantokensfalse \fi - \ifnum \count@=\@ne \iftabu@measuring \count@=\tw@ \fi\fi - \ifcase \count@ - \global\let\tabu@elapsedtime \relax - \tabu@seteverycr - \expandafter \tabuthepreamble % vertical adjustment (inherited from outer) - \or % exit in vertical measure + struts per cell because no X and outer in mode 3 - \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% - \def\tabu@cellralign{\tabu@verticalspacing}% - \tabu@seteverycr - \expandafter \tabuthepreamble - \or % exit without measure because no X and outer in mode 4 - \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty - \tabu@seteverycr - \expandafter \tabuthepreamble - \else % needs trials - \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty - \tabu@savecounters - \expandafter \tabu@setstrategy - \fi -}% \tabu@select -\def\tabu@@ {\gdef\tabu@mkpreambuffer} -%% Protections to set up before trials ------------------------------ -\def\tabu@setstrategy {\begingroup % - \tabu@trialh@@k \tabu@cnt \z@ % number of trials - \hbadness \@M \let\hbadness \@tempcnta - \hfuzz \maxdimen \let\hfuzz \@tempdima - \let\write \tabu@nowrite\let\GenericError \tabu@GenericError - \let\savetabu \@gobble \let\tabudefaulttarget \linewidth - \let\@footnotetext \@gobble \let\@xfootnote \tabu@xfootnote - \let\color \tabu@nocolor\let\rowcolor \tabu@norowcolor - \let\tabu@aftergroupcleanup \relax % only after the last trial - \tabu@mkpreambuffer - \ifnum \count@>\thr@@ \let\@halignto \@empty \tabucolX@init - \def\tabu@lasttry{\m@ne\p@}\fi - \begingroup \iffalse{\fi \ifnum0=`}\fi - \toks@{}\def\tabu@stack{b}\iftabuscantokens \endlinechar=10 \obeyspaces \fi % - \tabu@collectbody \tabu@strategy % -}% \tabu@setstrategy -\def\tabu@savecounters{% - \def\@elt ##1{\csname c@##1\endcsname\the\csname c@##1\endcsname}% - \edef\tabu@clckpt {\begingroup \globaldefs=\@ne \cl@@ckpt \endgroup}\let\@elt \relax -}% \tabu@savecounters -\def\tabucolX@init {% \tabucolX <= \tabu@target / (sum coefs > 0) - \dimen@ \z@ \tabu@Xsum \z@ \tabucolX \z@ \let\tabu@ \tabu@Xinit \tabu@Xcoefs - \ifdim \dimen@>\z@ - \@tempdima \dimexpr \tabu@target *\p@/\dimen@ + \tabu@hfuzz\relax - \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi - \fi -}% \tabucolX@init -\def\tabu@Xinit #1#2{\tabu@Xcol #1 \advance \tabu@Xsum - \ifdim #2\p@>\z@ #2\p@ \advance\dimen@ #2\p@ - \else -#2\p@ \tabu@negcoeftrue - \@tempdima \dimexpr \tabu@target*\p@/\dimexpr-#2\p@\relax \relax - \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi - \tabu@wddef{#1}{0pt}% - \fi -}% \tabu@Xinit -%% Collecting the environment body ---------------------------------- -\long\def\tabu@collectbody #1#2\end #3{% - \edef\tabu@stack{\tabu@pushbegins #2\begin\end\expandafter\@gobble\tabu@stack}% - \ifx \tabu@stack\@empty - \toks@\expandafter{\expandafter\tabu@thebody\expandafter{\the\toks@ #2}% - \def\tabu@end@envir{\end{#3}}% - \iftabuscantokens - \iftabu@long \def\tabu@endenvir {\end{#3}\tabu@gobbleX}% - \else \def\tabu@endenvir {\let\endarray \@empty - \end{#3}\tabu@gobbleX}% - \fi - \else \def\tabu@endenvir {\end{#3}}\fi}% - \let\tabu@collectbody \tabu@endofcollect - \else\def\tabu@temp{#3}% - \ifx \tabu@temp\@empty \toks@\expandafter{\the\toks@ #2\end }% - \else \ifx\tabu@temp\tabu@@spxiii \toks@\expandafter{\the\toks@ #2\end #3}% - \else \ifx\tabu@temp\tabu@X \toks@\expandafter{\the\toks@ #2\end #3}% - \else \toks@\expandafter{\the\toks@ #2\end{#3}}% - \fi\fi\fi - \fi - \tabu@collectbody{#1}% -}% \tabu@collectbody -\long\def\tabu@pushbegins#1\begin#2{\ifx\end#2\else b\expandafter\tabu@pushbegins\fi}% -\def\tabu@endofcollect #1{\ifnum0=`{}\fi - \expandafter\endgroup \the\toks@ #1% -}% \tabu@endofcollect -%% The trials: switching between strategies ------------------------- -\def\tabu@strategy {\relax % stops \count@ assignment ! - \ifcase\count@ % case 0 = print with vertical adjustment (outer is finished) - \expandafter \tabu@endoftrials - \or % case 1 = exit in vertical measure (outer in mode 3) - \expandafter\xdef\csname tabu@\the\tabu@nested.T\endcsname{\the\tabu@target}% - \expandafter\xdef\csname tabu@\the\tabu@nested.X\endcsname{\the\tabucolX}% - \expandafter \tabu@endoftrials - \or % case 2 = exit with a rule replacing the table (outer in mode 4) - \expandafter \tabu@quickend - \or % case 3 = outer is in mode 3 because of no X - \begingroup - \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% - \def\tabu@cellralign{\tabu@verticalspacing}% - \expandafter \tabu@measuring - \else % case 4 = horizontal measure - \begingroup - \global\let\tabu@elapsedtime \tabu@message@etime - \long\def\multicolumn##1##2##3{\multispan{##1}}% - \let\tabu@startpboxORI \@startpbox - \iftabu@spread - \def\tabu@naturalXmax {\z@}% - \let\tabu@naturalXmin \tabu@naturalXmax - \tabu@evr{\global\tabu@naturalX \z@}% - \let\@startpbox \tabu@startpboxmeasure - \else\iftabu@negcoef - \let\@startpbox \tabu@startpboxmeasure - \else \let\@startpbox \tabu@startpboxquick - \fi\fi - \expandafter \tabu@measuring - \fi -}% \tabu@strategy -\def\tabu@measuring{\expandafter \tabu@trial \expandafter - \count@ \the\count@ \tabu@endtrial -}% \tabu@measuring -\def\tabu@trial{\iftabu@long \tabu@longtrial \else \tabu@shorttrial \fi} -\def\tabu@shorttrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr - \ifx \tabu@savecounters\relax \else - \let\tabu@savecounters \relax \tabu@clckpt \fi - $\iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi - \expandafter{\expandafter \tabuthepreamble - \the\tabu@thebody - \csname tabu@adl@endtrial\endcsname - \endarray}$\egroup % got \tabu@box -}% \tabu@shorttrial -\def\tabu@longtrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr - \ifx \tabu@savecounters\relax \else - \let\tabu@savecounters \relax \tabu@clckpt \fi - \iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi - \expandafter{\expandafter \tabuthepreamble - \the\tabu@thebody - \tabuendlongtrial}\egroup % got \tabu@box -}% \tabu@longtrial -\def\tabuendlongtrial{% no @ allowed for \scantokens - \LT@echunk \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne - \LT@get@widths -}% \tabuendlongtrial -\def\tabu@adl@endtrial{% - \crcr \noalign{\global\adl@ncol \tabu@nbcols}}% anything global is crap, junky and fails ! -\def\tabu@seteverycr {\tabu@reset - \everycr \expandafter{\the\everycr \tabu@everycr}% - \let\everycr \tabu@noeverycr % -}% \tabu@seteverycr -\def\tabu@noeverycr{{\aftergroup\tabu@restoreeverycr \afterassignment}\toks@} -\def\tabu@restoreeverycr {\let\everycr \tabu@@everycr} -\def\tabu@everycr {\iftabu@everyrow \noalign{\tabu@everyrow}\fi} -\def\tabu@endoftrials {% - \iftabuscantokens \expandafter\@firstoftwo - \else \expandafter\@secondoftwo - \fi - {\expandafter \tabu@closetrialsgroup \expandafter - \tabu@rescan \expandafter{% - \expandafter\tabuthepreamble - \the\expandafter\tabu@thebody - \iftabu@long \else \endarray \fi}} - {\expandafter\tabu@closetrialsgroup \expandafter - \tabuthepreamble - \the\tabu@thebody}% - \tabu@endenvir % Finish ! -}% \tabu@endoftrials -\def\tabu@closetrialsgroup {% - \toks@\expandafter{\tabu@endenvir}% - \edef\tabu@bufferX{\endgroup - \tabucolX \the\tabucolX - \tabu@target \the\tabu@target - \tabu@cnt \the\tabu@cnt - \def\noexpand\tabu@endenvir{\the\toks@}% - %Quid de \@halignto = \tabu@halignto ?? - }% \tabu@bufferX - \tabu@bufferX - \ifcase\tabu@nested % print out (outer in mode 0) - \global\tabu@cnt \tabu@cnt - \tabu@evr{\tabu@verticaldynamicadjustment}% - \tabu@celllalign@def{\everypar{}}\let\tabu@cellralign \@empty - \let\@finalstrut \tabu@finalstrut - \else % vertical measure of nested tabu - \tabu@evr{\tabu@verticalinit}% - \tabu@celllalign@def{\tabu@verticalmeasure}% - \def\tabu@cellralign{\tabu@verticalspacing}% - \fi - \tabu@clckpt \let\@halignto \tabu@halignto - \let\@halignto \@empty - \tabu@seteverycr - \ifdim \tabustrutrule>\z@ \ifnum\tabu@nested=\z@ - \setbox\@arstrutbox \box\voidb@x % force \@arstrutbox to be rebuilt (visible struts) - \fi\fi -}% \tabu@closetrialsgroup -\def\tabu@quickend {\expandafter \endgroup \expandafter - \tabu@target \the\tabu@target \tabu@quickrule - \let\endarray \relax \tabu@endenvir -}% \tabu@quickend -\def\tabu@endtrial {\relax % stops \count@ assignment ! - \ifcase \count@ \tabu@err % case 0 = impossible here - \or \tabu@err % case 1 = impossible here - \or \tabu@err % case 2 = impossible here - \or % case 3 = outer goes into mode 0 - \def\tabu@bufferX{\endgroup}\count@ \z@ - \else % case 4 = outer goes into mode 3 - \iftabu@spread \tabu@spreadarith % inner into mode 1 (outer in mode 3) - \else \tabu@arith % or 2 (outer in mode 4) - \fi - \count@=% - \ifcase\tabu@nested \thr@@ % outer goes into mode 3 - \else\iftabu@measuring \tw@ % outer is in mode 4 - \else \@ne % outer is in mode 3 - \fi\fi - \edef\tabu@bufferX{\endgroup - \tabucolX \the\tabucolX - \tabu@target \the\tabu@target}% - \fi - \expandafter \tabu@bufferX \expandafter - \count@ \the\count@ \tabu@strategy -}% \tabu@endtrial -\def\tabu@err{\errmessage{(tabu) Internal impossible error! (\count@=\the\count@)}} -%% The algorithms: compute the widths / stop or go on --------------- -\def\tabu@arithnegcoef {% - \@tempdima \z@ \dimen@ \z@ \let\tabu@ \tabu@arith@negcoef \tabu@Xcoefs -}% \tabu@arithnegcoef -\def\tabu@arith@negcoef #1#2{% - \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ % saturated by definition - \advance\@tempdima #2\tabucolX - \else - \ifdim -#2\tabucolX <\tabu@wd{#1}% c_i X < natural width <= \tabu@target-> saturated - \advance\dimen@ -#2\p@ - \advance\@tempdima -#2\tabucolX - \else - \advance\@tempdima \tabu@wd{#1}% natural width <= c_i X => neutralised - \ifdim \tabu@wd{#1}<\tabu@target \else % neutralised - \advance\dimen@ -#2\p@ % saturated (natural width = tabu@target) - \fi - \fi - \fi -}% \tabu@arith@negcoef -\def\tabu@givespace #1#2{% here \tabu@DELTA < \z@ - \ifdim \@tempdima=\z@ - \tabu@wddef{#1}{\the\dimexpr -\tabu@DELTA*\p@/\tabu@Xsum}% - \else - \tabu@wddef{#1}{\the\dimexpr \tabu@hsize{#1}{#2} - *(\p@ -\tabu@DELTA*\p@/\@tempdima)/\p@\relax}% - \fi -}% \tabu@givespace -\def\tabu@arith {\advance\tabu@cnt \@ne - \ifnum \tabu@cnt=\@ne \tabu@message{\tabu@titles}\fi - \tabu@arithnegcoef - \@tempdimb \dimexpr \wd\tabu@box -\@tempdima \relax % - \tabu@DELTA = \dimexpr \wd\tabu@box - \tabu@target \relax - \tabu@message{\tabu@message@arith}% - \ifdim \tabu@DELTA <\tabu@hfuzz - \ifdim \tabu@DELTA<\z@ % wd (tabu)<\tabu@target ? - \let\tabu@ \tabu@givespace \tabu@Xcoefs - \advance\@tempdima \@tempdimb \advance\@tempdima -\tabu@DELTA % for message - \else % already converged: nothing to do but nearly impossible... - \fi - \tabucolX \maxdimen - \tabu@measuringfalse - \else % need for narrower X columns - \tabucolX =\dimexpr (\@tempdima -\tabu@DELTA) *\p@/\tabu@Xsum \relax - \tabu@measuringtrue - \@whilesw \iftabu@measuring\fi {% - \advance\tabu@cnt \@ne - \tabu@arithnegcoef - \tabu@DELTA =\dimexpr \@tempdima+\@tempdimb -\tabu@target \relax % always < 0 here - \tabu@message{\tabu@header - \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ - \tabu@msgalign \@tempdima+\@tempdimb { }{ }{ }{ }{ }\@@ - \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ - \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ - \ifdim -\tabu@DELTA<\tabu@hfuzz \tabu@spaces target ok\else - \tabu@msgalign \dimexpr -\tabu@DELTA *\p@/\dimen@ {}{}{}{}{}\@@ - \fi}% - \ifdim -\tabu@DELTA<\tabu@hfuzz - \advance\@tempdima \@tempdimb % for message - \tabu@measuringfalse - \else - \advance\tabucolX \dimexpr -\tabu@DELTA *\p@/\dimen@ \relax - \fi - }% - \fi - \tabu@message{\tabu@message@reached}% - \edef\tabu@bufferX{\endgroup \tabu@cnt \the\tabu@cnt - \tabucolX \the\tabucolX - \tabu@target \the\tabu@target}% -}% \tabu@arith -\def\tabu@spreadarith {% - \dimen@ \z@ \@tempdima \tabu@naturalXmax \let\tabu@ \tabu@spread@arith \tabu@Xcoefs - \edef\tabu@naturalXmin {\the\dimexpr\tabu@naturalXmin*\dimen@/\p@}% - \@tempdimc =\dimexpr \wd\tabu@box -\tabu@naturalXmax+\tabu@naturalXmin \relax - \iftabu@measuring - \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax - \edef\tabu@bufferX{\endgroup \tabucolX \the\tabucolX \tabu@target\the\tabu@target}% - \else - \tabu@message{\tabu@message@spreadarith}% - \ifdim \dimexpr \@tempdimc+\tabu@spreadtarget >\tabu@target - \tabu@message{(tabu) spread - \ifdim \@tempdimc>\tabu@target useless here: default target used% - \else too large: reduced to fit default target\fi.}% - \else - \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax - \tabu@message{(tabu) spread: New target set to \the\tabu@target^^J}% - \fi - \begingroup \let\tabu@wddef \@gobbletwo - \@tempdimb \@tempdima - \tabucolX@init - \tabu@arithnegcoef - \wd\tabu@box =\dimexpr \wd\tabu@box +\@tempdima-\@tempdimb \relax - \expandafter\endgroup \expandafter\tabucolX \the\tabucolX - \tabu@arith - \fi -}% \tabu@spreadarith -\def\tabu@spread@arith #1#2{% - \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ - \else \advance\@tempdima \tabu@wd{#1}\relax - \fi -}% \tabu@spread@arith -%% Reporting in the .log file --------------------------------------- -\def\tabu@message@defaulttarget{% - \ifnum\tabu@nested=\z@^^J(tabu) Default target: - \ifx\tabudefaulttarget\linewidth \string\linewidth - \ifdim \tabu@thetarget=\linewidth \else - -\the\dimexpr\linewidth-\tabu@thetarget\fi = - \else\ifx\tabudefaulttarget\linegoal\string\linegoal= - \fi\fi - \else (tabu) Default target (nested): \fi - \the\tabu@target \on@line - \ifnum\tabu@nested=\z@ , page \the\c@page\fi} -\def\tabu@message@target {^^J(tabu) Target specified: - \the\tabu@target \on@line, page \the\c@page} -\def\tabu@message@arith {\tabu@header - \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ - \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{ }\@@ - \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ - \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ - \ifdim \tabu@DELTA<\tabu@hfuzz giving space\else - \tabu@msgalign \dimexpr (\@tempdima-\tabu@DELTA) *\p@/\tabu@Xsum -\tabucolX {}{}{}{}{}\@@ - \fi -}% \tabu@message@arith -\def\tabu@message@spreadarith {\tabu@spreadheader - \tabu@msgalign \tabu@spreadtarget { }{ }{ }{ }{}\@@ - \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{}\@@ - \tabu@msgalign -\tabu@naturalXmax { }{}{}{}{}\@@ - \tabu@msgalign \tabu@naturalXmin { }{ }{ }{ }{}\@@ - \tabu@msgalign \ifdim \dimexpr\@tempdimc>\tabu@target \tabu@target - \else \@tempdimc+\tabu@spreadtarget \fi - {}{}{}{}{}\@@} -\def\tabu@message@negcoef #1#2{ - \tabu@spaces\tabu@spaces\space * #1. X[\rem@pt#2]: - \space width = \tabu@wd {#1} - \expandafter\string\csname tabu@\the\tabu@nested.W\number#1\endcsname - \ifdim -\tabu@pt#2\tabucolX<\tabu@target - < \number-\rem@pt#2 X - = \the\dimexpr -\tabu@pt#2\tabucolX \relax - \else - <= \the\tabu@target\space < \number-\rem@pt#2 X\fi} -\def\tabu@message@reached{\tabu@header - ******* Reached Target: - hfuzz = \tabu@hfuzz\on@line\space *******} -\def\tabu@message@etime{\edef\tabu@stoptime{\the\pdfelapsedtime}% - \tabu@message{(tabu)\tabu@spaces Time elapsed during measure: - \the\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax sec - \the\numexpr\numexpr(\tabu@stoptime-\tabu@starttime) - -\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax*65536\relax - *1000/65536\relax ms \tabu@spaces(\the\tabu@cnt\space - cycle\ifnum\tabu@cnt>\@ne s\fi)^^J^^J}} -\def\tabu@message@verticalsp {% - \ifdim \@tempdima>\tabu@ht - \ifdim \@tempdimb>\tabu@dp - \expandafter\expandafter\expandafter\string\tabu@ht = - \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@ - \expandafter\expandafter\expandafter\string\tabu@dp = - \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J% - \else - \expandafter\expandafter\expandafter\string\tabu@ht = - \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@^^J% - \fi - \else\ifdim \@tempdimb>\tabu@dp - \tabu@spaces\tabu@spaces\tabu@spaces - \expandafter\expandafter\expandafter\string\tabu@dp = - \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J\fi - \fi -}% \tabu@message@verticalsp -\edef\tabu@spaces{\@spaces} -\def\tabu@strippt{\expandafter\tabu@pt\the} -{\@makeother\P \@makeother\T\lowercase{\gdef\tabu@pt #1PT{#1}}} -\def\tabu@msgalign{\expandafter\tabu@msg@align\the\dimexpr} -\def\tabu@msgalign@PT{\expandafter\tabu@msg@align\romannumeral-`\0\tabu@strippt} -\def\do #1{% - \def\tabu@msg@align##1.##2##3##4##5##6##7##8##9\@@{% - \ifnum##1<10 #1 #1\else - \ifnum##1<100 #1 \else - \ifnum##1<\@m #1\fi\fi\fi - ##1.##2##3##4##5##6##7##8#1}% - \def\tabu@header{(tabu) \ifnum\tabu@cnt<10 #1\fi\the\tabu@cnt) }% - \def\tabu@titles{\ifnum \tabu@nested=\z@ - (tabu) Try#1 #1 tabu X #1 #1 #1tabu Width #1 #1 Target - #1 #1 #1 Coefs #1 #1 #1 Update^^J\fi}% - \def\tabu@spreadheader{% - (tabu) Try#1 #1 Spread #1 #1 tabu Width #1 #1 #1 Nat. X #1 #1 #1 #1Nat. Min. - #1 New Target^^J% - (tabu) sprd} - \def\tabu@message@save {\begingroup - \def\x ####1{\tabu@msg@align ####1{ }{ }{ }{ }{}\@@} - \def\z ####1{\expandafter\x\expandafter{\romannumeral-`\0\tabu@strippt - \dimexpr####1\p@{ }{ }}}% - \let\color \relax \def\tabu@rulesstyle ####1####2{\detokenize{####1}}% - \let\CT@arc@ \relax \let\@preamble \@gobble - \let\tabu@savedpream \@firstofone - \let\tabu@savedparams \@firstofone - \def\tabu@target ####1\relax {(tabu) target #1 #1 #1 #1 #1 = \x{####1}^^J}% - \def\tabucolX ####1\relax {(tabu) X columns width#1 = \x{####1}^^J}% - \def\tabu@nbcols ####1\relax {(tabu) Number of columns: \z{####1}^^J}% - \def\tabu@aligndefault ####1{(tabu) Default alignment: #1 #1 ####1^^J}% - \def\col@sep ####1\relax {(tabu) column sep #1 #1 #1 = \x{####1}^^J}% - \def\arrayrulewidth ####1\relax{(tabu) arrayrulewidth #1 = \x{####1}}% - \def\doublerulesep ####1\relax { doublerulesep = \x{####1}^^J}% - \def\extratabsurround####1\relax{(tabu) extratabsurround = \x{####1}^^J}% - \def\extrarowheight ####1\relax{(tabu) extrarowheight #1 = \x{####1}}% - \def\extrarowdepth ####1\relax {extrarowdepth = \x{####1}^^J}% - \def\abovetabulinesep####1\relax{(tabu) abovetabulinesep=\x{####1} }% - \def\belowtabulinesep####1\relax{ belowtabulinesep=\x{####1}^^J}% - \def\arraystretch ####1{(tabu) arraystretch #1 #1 = \z{####1}^^J}% - \def\minrowclearance####1\relax{(tabu) minrowclearance #1 = \x{####1}^^J}% - \def\tabu@arc@L ####1{(tabu) taburulecolor #1 #1 = ####1^^J}% - \def\tabu@drsc@L ####1{(tabu) tabudoublerulecolor= ####1^^J}% - \def\tabu@evr@L ####1{(tabu) everyrow #1 #1 #1 #1 = \detokenize{####1}^^J}% - \def\tabu@ls@L ####1{(tabu) line style = \detokenize{####1}^^J}% - \def\NC@find ####1\@nil{(tabu) tabu preamble#1 #1 = \detokenize{####1}^^J}% - \def\tabu@wddef####1####2{(tabu) Natural width ####1 = \x{####2}^^J}% - \let\edef \@gobbletwo \let\def \@empty \let\let \@gobbletwo - \tabu@message{% - (tabu) \string\savetabu{\tabu@temp}: \on@line^^J% - \tabu@usetabu \@nil^^J}% - \endgroup} -}\do{ } -%% Measuring the natural width (varwidth) - store the results ------- -\def\tabu@startpboxmeasure #1{\bgroup % entering \vtop - \edef\tabu@temp{\expandafter\@secondoftwo \ifx\tabu@hsize #1\else\relax\fi}% - \ifodd 1\ifx \tabu@temp\@empty 0 \else % starts with \tabu@hsize ? - \iftabu@spread \else % if spread -> measure - \ifdim \tabu@temp\p@>\z@ 0 \fi\fi\fi% if coef>0 -> do not measure - \let\@startpbox \tabu@startpboxORI % restore immediately (nesting) - \tabu@measuringtrue % for the quick option... - \tabu@Xcol =\expandafter\@firstoftwo\ifx\tabu@hsize #1\fi - \ifdim \tabu@temp\p@>\z@ \ifdim \tabu@temp\tabucolX<\tabu@target - \tabu@target=\tabu@temp\tabucolX \fi\fi - \setbox\tabu@box \hbox \bgroup - \begin{varwidth}\tabu@target - \let\FV@ListProcessLine \tabu@FV@ListProcessLine % \hbox to natural width... - \narrowragged \arraybackslash \parfillskip \@flushglue - \ifdefined\pdfadjustspacing \pdfadjustspacing\z@ \fi - \bgroup \aftergroup\tabu@endpboxmeasure - \ifdefined \cellspacetoplimit \tabu@cellspacepatch \fi - \else \expandafter\@gobble - \tabu@startpboxquick{#1}% \@gobble \bgroup - \fi -}% \tabu@startpboxmeasure -\def\tabu@cellspacepatch{\def\bcolumn##1\@nil{}\let\ecolumn\@empty - \bgroup\color@begingroup} -\def\tabu@endpboxmeasure {% - \@finalstrut \@arstrutbox - \end{varwidth}\egroup % - \ifdim \tabu@temp\p@ <\z@ % neg coef - \ifdim \tabu@wd\tabu@Xcol <\wd\tabu@box - \tabu@wddef\tabu@Xcol {\the\wd\tabu@box}% - \tabu@debug{\tabu@message@endpboxmeasure}% - \fi - \else % spread coef>0 - \global\advance \tabu@naturalX \wd\tabu@box - \@tempdima =\dimexpr \wd\tabu@box *\p@/\dimexpr \tabu@temp\p@\relax \relax - \ifdim \tabu@naturalXmax <\tabu@naturalX - \xdef\tabu@naturalXmax {\the\tabu@naturalX}\fi - \ifdim \tabu@naturalXmin <\@tempdima - \xdef\tabu@naturalXmin {\the\@tempdima}\fi - \fi - \box\tabu@box \egroup % end of \vtop (measure) restore \tabu@target -}% \tabu@endpboxmeasure -\def\tabu@wddef #1{\expandafter\xdef - \csname tabu@\the\tabu@nested.W\number#1\endcsname} -\def\tabu@wd #1{\csname tabu@\the\tabu@nested.W\number#1\endcsname} -\def\tabu@message@endpboxmeasure{\tabu@spaces\tabu@spaces<-> % <-> save natural wd - \the\tabu@Xcol. X[\tabu@temp]: - target = \the\tabucolX \space - \expandafter\expandafter\expandafter\string\tabu@wd\tabu@Xcol - =\tabu@wd\tabu@Xcol -}% \tabu@message@endpboxmeasure -\def\tabu@startpboxquick {\bgroup - \let\@startpbox \tabu@startpboxORI % restore immediately - \let\tabu \tabu@quick % \begin is expanded before... - \expandafter\@gobble \@startpbox % gobbles \bgroup -}% \tabu@startpboxquick -\def\tabu@quick {\begingroup \iffalse{\fi \ifnum0=`}\fi - \toks@{}\def\tabu@stack{b}\tabu@collectbody \tabu@endquick -}% \tabu@quick -\def\tabu@endquick {% - \ifodd 1\ifx\tabu@end@envir\tabu@endtabu \else - \ifx\tabu@end@envir\tabu@endtabus \else 0\fi\fi\relax - \endgroup - \else \let\endtabu \relax - \tabu@end@envir - \fi -}% \tabu@quick -\def\tabu@endtabu {\end{tabu}} -\def\tabu@endtabus {\end{tabu*}} -%% Measuring the heights and depths - store the results ------------- -\def\tabu@verticalmeasure{\everypar{}% - \ifnum \currentgrouptype>12 % 14=semi-simple, 15=math shift group - \setbox\tabu@box =\hbox\bgroup - \let\tabu@verticalspacing \tabu@verticalsp@lcr - \d@llarbegin % after \hbox ... - \else - \edef\tabu@temp{\ifnum\currentgrouptype=5\vtop - \else\ifnum\currentgrouptype=12\vcenter - \else\vbox\fi\fi}% - \setbox\tabu@box \hbox\bgroup$\tabu@temp \bgroup - \let\tabu@verticalspacing \tabu@verticalsp@pmb - \fi -}% \tabu@verticalmeasure -\def\tabu@verticalsp@lcr{% - \d@llarend \egroup % - \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep - \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax - \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi - \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi - \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi - \noindent\vrule height\@tempdima depth\@tempdimb -}% \tabu@verticalsp@lcr -\def\tabu@verticalsp@pmb{% inserts struts as needed - \par \expandafter\egroup - \expandafter$\expandafter - \egroup \expandafter - \@tempdimc \the\prevdepth - \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep - \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax - \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi - \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi - \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi - \let\@finalstrut \@gobble - \hrule height\@tempdima depth\@tempdimb width\hsize -%% \box\tabu@box -}% \tabu@verticalsp@pmb - -\def\tabu@verticalinit{% - \ifnum \c@taburow=\z@ \tabu@rearstrut \fi % after \tabu@reset ! - \advance\c@taburow \@ne - \tabu@htdef{\the\ht\@arstrutbox}\tabu@dpdef{\the\dp\@arstrutbox}% - \advance\c@taburow \m@ne -}% \tabu@verticalinit -\def\tabu@htdef {\expandafter\xdef \csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} -\def\tabu@ht {\csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} -\def\tabu@dpdef {\expandafter\xdef \csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} -\def\tabu@dp {\csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} -\def\tabu@verticaldynamicadjustment {% - \advance\c@taburow \@ne - \extrarowheight \dimexpr\tabu@ht - \ht\strutbox - \extrarowdepth \dimexpr\tabu@dp - \dp\strutbox - \let\arraystretch \@empty - \advance\c@taburow \m@ne -}% \tabu@verticaldynamicadjustment -\def\tabuphantomline{\crcr \noalign{% - {\globaldefs \@ne - \setbox\@arstrutbox \box\voidb@x - \let\tabu@@celllalign \tabu@celllalign - \let\tabu@@cellralign \tabu@cellralign - \let\tabu@@cellleft \tabu@cellleft - \let\tabu@@cellright \tabu@cellright - \let\tabu@@thevline \tabu@thevline - \let\tabu@celllalign \@empty - \let\tabu@cellralign \@empty - \let\tabu@cellright \@empty - \let\tabu@cellleft \@empty - \let\tabu@thevline \relax}% - \edef\tabu@temp{\tabu@multispan \tabu@nbcols{\noindent &}}% - \toks@\expandafter{\tabu@temp \noindent\tabu@everyrowfalse \cr - \noalign{\tabu@rearstrut - {\globaldefs\@ne - \let\tabu@celllalign \tabu@@celllalign - \let\tabu@cellralign \tabu@@cellralign - \let\tabu@cellleft \tabu@@cellleft - \let\tabu@cellright \tabu@@cellright - \let\tabu@thevline \tabu@@thevline}}}% - \expandafter}\the\toks@ -}% \tabuphantomline -%% \firsthline and \lasthline corrections --------------------------- -\def\tabu@firstline {\tabu@hlineAZ \tabu@firsthlinecorrection {}} -\def\tabu@firsthline{\tabu@hlineAZ \tabu@firsthlinecorrection \hline} -\def\tabu@lastline {\tabu@hlineAZ \tabu@lasthlinecorrection {}} -\def\tabu@lasthline {\tabu@hlineAZ \tabu@lasthlinecorrection \hline} -\def\tabu@hline {% replaces \hline if no colortbl (see \AtBeginDocument) - \noalign{\ifnum0=`}\fi - {\CT@arc@\hrule height\arrayrulewidth}% - \futurelet \tabu@temp \tabu@xhline -}% \tabu@hline -\def\tabu@xhline{% - \ifx \tabu@temp \hline - {\ifx \CT@drsc@\relax \vskip - \else\ifx \CT@drsc@\@empty \vskip - \else \CT@drsc@\hrule height - \fi\fi - \doublerulesep}% - \fi - \ifnum0=`{\fi}% -}% \tabu@xhline -\def\tabu@hlineAZ #1#2{\noalign{\ifnum0=`}\fi \dimen@ \z@ \count@ \z@ - \toks@{}\def\tabu@hlinecorrection{#1}\def\tabu@temp{#2}% - \tabu@hlineAZsurround -}% \tabu@hlineAZ -\newcommand*\tabu@hlineAZsurround[1][\extratabsurround]{% - \extratabsurround #1\let\tabucline \tabucline@scan - \let\hline \tabu@hlinescan \let\firsthline \hline - \let\cline \tabu@clinescan \let\lasthline \hline - \expandafter \futurelet \expandafter \tabu@temp - \expandafter \tabu@nexthlineAZ \tabu@temp -}% \tabu@hlineAZsurround -\def\tabu@hlinescan {\tabu@thick \arrayrulewidth \tabu@xhlineAZ \hline} -\def\tabu@clinescan #1{\tabu@thick \arrayrulewidth \tabu@xhlineAZ {\cline{#1}}} -\def\tabucline@scan{\@testopt \tabucline@sc@n {}} -\def\tabucline@sc@n #1[#2]{\tabu@xhlineAZ {\tabucline[{#1}]{#2}}} -\def\tabu@nexthlineAZ{% - \ifx \tabu@temp\hline \else - \ifx \tabu@temp\cline \else - \ifx \tabu@temp\tabucline \else - \tabu@hlinecorrection - \fi\fi\fi -}% \tabu@nexthlineAZ -\def\tabu@xhlineAZ #1{% - \toks@\expandafter{\the\toks@ #1}% - \@tempdimc \tabu@thick % The last line width - \ifcase\count@ \@tempdimb \tabu@thick % The first line width - \else \advance\dimen@ \dimexpr \tabu@thick+\doublerulesep \relax - \fi - \advance\count@ \@ne \futurelet \tabu@temp \tabu@nexthlineAZ -}% \tabu@xhlineAZ -\def\tabu@firsthlinecorrection{% \count@ = number of \hline -1 - \@tempdima \dimexpr \ht\@arstrutbox+\dimen@ - \edef\firsthline{% - \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule - height \the\dimexpr\@tempdima+\extratabsurround - depth \dp\@arstrutbox - width \tabustrutrule}\hss}\cr - \noalign{\vskip -\the\dimexpr \@tempdima+\@tempdimb - +\dp\@arstrutbox \relax}% - \the\toks@ - }\ifnum0=`{\fi - \expandafter}\firsthline % we are then ! -}% \tabu@firsthlinecorrection -\def\tabu@lasthlinecorrection{% - \@tempdima \dimexpr \dp\@arstrutbox+\dimen@+\@tempdimb+\@tempdimc - \edef\lasthline{% - \the\toks@ - \noalign{\vskip -\the\dimexpr\dimen@+\@tempdimb+\dp\@arstrutbox}% - \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule - depth \the\dimexpr \dp\@arstrutbox+\@tempdimb+\dimen@ - +\extratabsurround-\@tempdimc - height \z@ - width \tabustrutrule}\hss}\cr - }\ifnum0=`{\fi - \expandafter}\lasthline % we are then ! -}% \tabu@lasthlinecorrection -\def\tabu@LT@@hline{% - \ifx\LT@next\hline - \global\let\LT@next \@gobble - \ifx \CT@drsc@\relax - \gdef\CT@LT@sep{% - \noalign{\penalty-\@medpenalty\vskip\doublerulesep}}% - \else - \gdef\CT@LT@sep{% - \multispan\LT@cols{% - \CT@drsc@\leaders\hrule\@height\doublerulesep\hfill}\cr}% - \fi - \else - \global\let\LT@next\empty - \gdef\CT@LT@sep{% - \noalign{\penalty-\@lowpenalty\vskip-\arrayrulewidth}}% - \fi - \ifnum0=`{\fi}% - \multispan\LT@cols - {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr - \CT@LT@sep - \multispan\LT@cols - {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr - \noalign{\penalty\@M}% - \LT@next -}% \tabu@LT@@hline -%% Horizontal lines : \tabucline ------------------------------------ -\let\tabu@start \@tempcnta -\let\tabu@stop \@tempcntb -\newcommand*\tabucline{\noalign{\ifnum0=`}\fi \tabu@cline} -\newcommand*\tabu@cline[2][]{\tabu@startstop{#2}% - \ifnum \tabu@stop<\z@ \toks@{}% - \else \tabu@clinearg{#1}\tabu@thestyle - \edef\tabucline{\toks@{% - \ifnum \tabu@start>\z@ \omit - \tabu@multispan\tabu@start {\span\omit}&\fi - \omit \tabu@multispan\tabu@stop {\span\omit}% - \tabu@thehline\cr - }}\tabucline - \tabu@tracinglines{(tabu:tabucline) Style: #1^^J\the\toks@^^J^^J}% - \fi - \futurelet \tabu@temp \tabu@xcline -}% \tabu@cline -\def\tabu@clinearg #1{% - \ifx\\#1\\\let\tabu@thestyle \tabu@ls@ - \else \@defaultunits \expandafter\let\expandafter\@tempa - \romannumeral-`\0#1\relax \@nnil - \ifx \hbox\@tempa \tabu@clinebox{#1}% - \else\ifx \box\@tempa \tabu@clinebox{#1}% - \else\ifx \vbox\@tempa \tabu@clinebox{#1}% - \else\ifx \vtop\@tempa \tabu@clinebox{#1}% - \else\ifx \copy\@tempa \tabu@clinebox{#1}% - \else\ifx \leaders\@tempa \tabu@clineleads{#1}% - \else\ifx \cleaders\@tempa \tabu@clineleads{#1}% - \else\ifx \xleaders\@tempa \tabu@clineleads{#1}% - \else\tabu@getline {#1}% - \fi\fi\fi\fi\fi\fi\fi\fi - \fi -}% \tabu@clinearg -\def\tabu@clinebox #1{\tabu@clineleads{\xleaders#1\hss}} -\def\tabu@clineleads #1{% - \let\tabu@thestyle \relax \let\tabu@leaders \@undefined - \gdef\tabu@thehrule{#1}} -\def\tabu@thehline{\begingroup - \ifdefined\tabu@leaders - \noexpand\tabu@thehleaders - \else \noexpand\tabu@thehrule - \fi \endgroup -}% \tabu@thehline -\def\tabu@xcline{% - \ifx \tabu@temp\tabucline - \toks@\expandafter{\the\toks@ \noalign - {\ifx\CT@drsc@\relax \vskip - \else \CT@drsc@\hrule height - \fi - \doublerulesep}}% - \fi - \tabu@docline -}% \tabu@xcline -\def\tabu@docline {\ifnum0=`{\fi \expandafter}\the\toks@} -\def\tabu@docline@evr {\xdef\tabu@doclineafter{\the\toks@}% - \ifnum0=`{\fi}\aftergroup\tabu@doclineafter} -\def\tabu@multispan #1#2{% - \ifnum\numexpr#1>\@ne #2\expandafter\tabu@multispan - \else \expandafter\@gobbletwo - \fi {#1-1}{#2}% -}% \tabu@multispan -\def\tabu@startstop #1{\tabu@start@stop #1\relax 1-\tabu@nbcols \@nnil} -\def\tabu@start@stop #1-#2\@nnil{% - \@defaultunits \tabu@start\number 0#1\relax \@nnil - \@defaultunits \tabu@stop \number 0#2\relax \@nnil - \tabu@stop \ifnum \tabu@start>\tabu@nbcols \m@ne - \else\ifnum \tabu@stop=\z@ \tabu@nbcols - \else\ifnum \tabu@stop>\tabu@nbcols \tabu@nbcols - \else \tabu@stop - \fi\fi\fi - \advance\tabu@start \m@ne - \ifnum \tabu@start>\z@ \advance\tabu@stop -\tabu@start \fi -}% \tabu@start@stop -%% Numbers: siunitx S columns (and \tabudecimal) ------------------- -\def\tabu@tabudecimal #1{% - \def\tabu@decimal{#1}\@temptokena{}% - \let\tabu@getdecimal@ \tabu@getdecimal@ignorespaces - \tabu@scandecimal -}% \tabu@tabudecimal -\def\tabu@scandecimal{\futurelet \tabu@temp \tabu@getdecimal@} -\def\tabu@skipdecimal#1{#1\tabu@scandecimal} -\def\tabu@getdecimal@ignorespaces{% - \ifcase 0\ifx\tabu@temp\ignorespaces\else - \ifx\tabu@temp\@sptoken1\else - 2\fi\fi\relax - \let\tabu@getdecimal@ \tabu@getdecimal - \expandafter\tabu@skipdecimal - \or \expandafter\tabu@gobblespace\expandafter\tabu@scandecimal - \else \expandafter\tabu@skipdecimal - \fi -}% \tabu@getdecimal@ignorespaces -\def\tabu@get@decimal#1{\@temptokena\expandafter{\the\@temptokena #1}% - \tabu@scandecimal} -\def\do#1{% - \def\tabu@get@decimalspace#1{% - \@temptokena\expandafter{\the\@temptokena #1}\tabu@scandecimal}% -}\do{ } -\let\tabu@@tabudecimal \tabu@tabudecimal -\def\tabu@getdecimal{% - \ifcase 0\ifx 0\tabu@temp\else - \ifx 1\tabu@temp\else - \ifx 2\tabu@temp\else - \ifx 3\tabu@temp\else - \ifx 4\tabu@temp\else - \ifx 5\tabu@temp\else - \ifx 6\tabu@temp\else - \ifx 7\tabu@temp\else - \ifx 8\tabu@temp\else - \ifx 9\tabu@temp\else - \ifx .\tabu@temp\else - \ifx ,\tabu@temp\else - \ifx -\tabu@temp\else - \ifx +\tabu@temp\else - \ifx e\tabu@temp\else - \ifx E\tabu@temp\else - \ifx\tabu@cellleft\tabu@temp1\else - \ifx\ignorespaces\tabu@temp1\else - \ifx\@sptoken\tabu@temp2\else - 3\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax - \expandafter\tabu@get@decimal - \or \expandafter\tabu@skipdecimal - \or \expandafter\tabu@get@decimalspace - \else\expandafter\tabu@printdecimal - \fi -}% \tabu@getdecimal -\def\tabu@printdecimal{% - \edef\tabu@temp{\the\@temptokena}% - \ifx\tabu@temp\@empty\else - \ifx\tabu@temp\space\else - \expandafter\tabu@decimal\expandafter{\the\@temptokena}% - \fi\fi -}% \tabu@printdecimal -%% Verbatim inside X columns ---------------------------------------- -\def\tabu@verbatim{% - \let\verb \tabu@verb - \let\FV@DefineCheckEnd \tabu@FV@DefineCheckEnd -}% \tabu@verbatim -\let\tabu@ltx@verb \verb -\def\tabu@verb{\@ifstar {\tabu@ltx@verb*} \tabu@ltx@verb} -\def\tabu@fancyvrb {% - \def\tabu@FV@DefineCheckEnd ##1{% - \def\tabu@FV@DefineCheckEnd{% - ##1% - \let\FV@CheckEnd \tabu@FV@CheckEnd - \let\FV@@CheckEnd \tabu@FV@@CheckEnd - \let\FV@@@CheckEnd \tabu@FV@@@CheckEnd - \edef\FV@EndScanning{% - \def\noexpand\next{\noexpand\end{\FV@EnvironName}}% - \global\let\noexpand\FV@EnvironName\relax - \noexpand\next}% - \xdef\FV@EnvironName{\detokenize\expandafter{\FV@EnvironName}}}% - }\expandafter\tabu@FV@DefineCheckEnd\expandafter{\FV@DefineCheckEnd} -}% \tabu@fancyvrb -\def\tabu@FV@CheckEnd #1{\expandafter\FV@@CheckEnd \detokenize{#1\end{}}\@nil} -\edef\tabu@FV@@@CheckEnd {\detokenize{\end{}}} -\begingroup -\catcode`\[1 \catcode`\]2 -\@makeother\{ \@makeother\} - \edef\x[\endgroup - \def\noexpand\tabu@FV@@CheckEnd ##1\detokenize[\end{]##2\detokenize[}]##3% - ]\x \@nil{\def\@tempa{#2}\def\@tempb{#3}} -\def\tabu@FV@ListProcessLine #1{% - \hbox {%to \hsize{% - \kern\leftmargin - \hbox {%to \linewidth{% - \FV@LeftListNumber - \FV@LeftListFrame - \FancyVerbFormatLine{#1}\hss -%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on) -%% \FV@RightListFrame}% - \FV@RightListFrame - \FV@RightListNumber}% -%% DG/SR modification end - \hss}} -%% \savetabu -------------------------------------------------------- -\newcommand*\savetabu[1]{\noalign{% - \tabu@sanitizearg{#1}\tabu@temp - \ifx \tabu@temp\@empty \tabu@savewarn{}{The tabu will not be saved}\else - \@ifundefined{tabu@saved@\tabu@temp}{}{\tabu@savewarn{#1}{Overwriting}}% - \ifdefined\tabu@restored \expandafter\let - \csname tabu@saved@\tabu@temp \endcsname \tabu@restored - \else {\tabu@save}% - \fi - \fi}% -}% \savetabu -\def\tabu@save {% - \toks0\expandafter{\tabu@saved@}% - \iftabu@negcoef - \let\tabu@wddef \relax \let\tabu@ \tabu@savewd \edef\tabu@savewd{\tabu@Xcoefs}% - \toks0\expandafter{\the\toks\expandafter0\tabu@savewd}\fi - \toks1\expandafter{\tabu@savedpream}% - \toks2\expandafter{\tabu@savedpreamble}% - \let\@preamble \relax - \let\tabu@savedpream \relax \let\tabu@savedparams \relax - \edef\tabu@preamble{% - \def\noexpand\tabu@aligndefault{\tabu@align}% - \def\tabu@savedparams {\noexpand\the\toks0}% - \def\tabu@savedpream {\noexpand\the\toks1}}% - \edef\tabu@usetabu{% - \def\@preamble {\noexpand\the\toks2}% - \tabu@target \the\tabu@target \relax - \tabucolX \the\tabucolX \relax - \tabu@nbcols \the\tabu@nbcols \relax - \def\noexpand\tabu@aligndefault{\tabu@align}% - \def\tabu@savedparams {\noexpand\the\toks0}% - \def\tabu@savedpream {\noexpand\the\toks1}}% - \let\tabu@aligndefault \relax \let\@sharp \relax - \edef\@tempa{\noexpand\tabu@s@ved - {\tabu@usetabu} - {\tabu@preamble} - {\the\toks1}}\@tempa - \tabu@message@save -}% \tabu@save -\long\def\tabu@s@ved #1#2#3{% - \def\tabu@usetabu{#1}% - \expandafter\gdef\csname tabu@saved@\tabu@temp\endcsname ##1{% - \ifodd ##1% \usetabu - \tabu@measuringfalse \tabu@spreadfalse % Just in case... - \gdef\tabu@usetabu {% - \ifdim \tabu@target>\z@ \tabu@warn@usetabu \fi - \global\let\tabu@usetabu \@undefined - \def\@halignto {to\tabu@target}% - #1% - \ifx \tabu@align\tabu@aligndefault@text - \ifnum \tabu@nested=\z@ - \let\tabu@align \tabu@aligndefault \fi\fi}% - \else % \preamble - \gdef\tabu@preamble {% - \global\let\tabu@preamble \@undefined - #2% - \ifx \tabu@align\tabu@aligndefault@text - \ifnum \tabu@nested=\z@ - \let\tabu@align \tabu@aligndefault \fi\fi}% - \fi - #3}% -}% \tabu@s@ved -\def\tabu@aligndefault@text {\tabu@aligndefault}% -\def\tabu@warn@usetabu {\PackageWarning{tabu} - {Specifying a target with \string\usetabu\space is useless - \MessageBreak The target cannot be changed!}} -\def\tabu@savewd #1#2{\ifdim #2\p@<\z@ \tabu@wddef{#1}{\tabu@wd{#1}}\fi} -\def\tabu@savewarn#1#2{\PackageInfo{tabu} - {User-name `#1' already used for \string\savetabu - \MessageBreak #2}}% -\def\tabu@saveerr#1{\PackageError{tabu} - {User-name `#1' is unknown for \string\usetabu - \MessageBreak I cannot restore an unknown preamble!}\@ehd} -%% \rowfont --------------------------------------------------------- -\newskip \tabu@cellskip -\def\tabu@rowfont{\ifdim \baselineskip=\z@\noalign\fi - {\ifnum0=`}\fi \tabu@row@font} -\newcommand*\tabu@row@font[2][]{% - \ifnum7=\currentgrouptype - \global\let\tabu@@cellleft \tabu@cellleft - \global\let\tabu@@cellright \tabu@cellright - \global\let\tabu@@celllalign \tabu@celllalign - \global\let\tabu@@cellralign \tabu@cellralign - \global\let\tabu@@rowfontreset\tabu@rowfontreset - \fi - \global\let\tabu@rowfontreset \tabu@rowfont@reset - \expandafter\gdef\expandafter\tabu@cellleft\expandafter{\tabu@cellleft #2}% - \ifcsname tabu@cell@#1\endcsname % row alignment - \csname tabu@cell@#1\endcsname \fi - \ifnum0=`{\fi}% end of group / noalign group -}% \rowfont -\def\tabu@ifcolorleavevmode #1{\let\color \tabu@leavevmodecolor #1\let\color\tabu@color}% -\def\tabu@rowfont@reset{% - \global\let\tabu@rowfontreset \tabu@@rowfontreset - \global\let\tabu@cellleft \tabu@@cellleft - \global\let\tabu@cellright \tabu@@cellright - \global\let\tabu@cellfont \@empty - \global\let\tabu@celllalign \tabu@@celllalign - \global\let\tabu@cellralign \tabu@@cellralign -}% \tabu@@rowfontreset -\let\tabu@rowfontreset \@empty % overwritten \AtBeginDocument if colortbl -%% \tabu@prepnext@tok ----------------------------------------------- -\newif \iftabu@cellright -\def\tabu@prepnext@tok{% - \ifnum \count@<\z@ % - \@tempcnta \@M % - \tabu@nbcols\z@ - \let\tabu@fornoopORI \@fornoop - \tabu@cellrightfalse - \else - \ifcase \numexpr \count@-\@tempcnta \relax % (case 0): prev. token is left - \advance \tabu@nbcols \@ne - \iftabu@cellright % before-previous token is right and is finished - \tabu@cellrightfalse % - \tabu@righttok - \fi - \tabu@lefttok - \or % (case 1) previous token is right - \tabu@cellrighttrue \let\@fornoop \tabu@lastnoop - \else % special column: do not change the token - \iftabu@cellright % before-previous token is right - \tabu@cellrightfalse - \tabu@righttok - \fi - \fi % \ifcase - \fi - \tabu@prepnext@tokORI -}% \tabu@prepnext@tok -\long\def\tabu@lastnoop#1\@@#2#3{\tabu@lastn@@p #2\@nextchar \in@\in@@} -\def\tabu@lastn@@p #1\@nextchar #2#3\in@@{% - \ifx \in@#2\else - \let\@fornoop \tabu@fornoopORI - \xdef\tabu@mkpreambuffer{\tabu@nbcols\the\tabu@nbcols \tabu@mkpreambuffer}% - \toks0\expandafter{\expandafter\tabu@everyrowtrue \the\toks0}% - \expandafter\prepnext@tok - \fi -}% \tabu@lastnoop -\def\tabu@righttok{% - \advance \count@ \m@ne - \toks\count@\expandafter {\the\toks\count@ \tabu@cellright \tabu@cellralign}% - \advance \count@ \@ne -}% \tabu@righttok -\def\tabu@lefttok{\toks\count@\expandafter{\expandafter\tabu@celllalign - \the\toks\count@ \tabu@cellleft}% after because of $ -}% \tabu@lefttok -%% Neutralisation of glues ------------------------------------------ -\let\tabu@cellleft \@empty -\let\tabu@cellright \@empty -\tabu@celllalign@def{\tabu@cellleft}% -\let\tabu@cellralign \@empty -\def\tabu@cell@align #1#2#3{% - \let\tabu@maybesiunitx \toks@ \tabu@celllalign - \global \expandafter \tabu@celllalign@def \expandafter {\the\toks@ #1}% - \toks@\expandafter{\tabu@cellralign #2}% - \xdef\tabu@cellralign{\the\toks@}% - \toks@\expandafter{\tabu@cellleft #3}% - \xdef\tabu@cellleft{\the\toks@}% -}% \tabu@cell@align -\def\tabu@cell@l{% force alignment to left - \tabu@cell@align - {\tabu@removehfil \raggedright \tabu@cellleft}% left - {\tabu@flush1\tabu@ignorehfil}% right - \raggedright -}% \tabu@cell@l -\def\tabu@cell@c{% force alignment to center - \tabu@cell@align - {\tabu@removehfil \centering \tabu@flush{.5}\tabu@cellleft} - {\tabu@flush{.5}\tabu@ignorehfil} - \centering -}% \tabu@cell@c -\def\tabu@cell@r{% force alignment to right - \tabu@cell@align - {\tabu@removehfil \raggedleft \tabu@flush1\tabu@cellleft} - \tabu@ignorehfil - \raggedleft -}% \tabu@cell@r -\def\tabu@cell@j{% force justification (for p, m, b columns) - \tabu@cell@align - {\tabu@justify\tabu@cellleft} - {} - \tabu@justify -}% \tabu@cell@j -\def\tabu@justify{% - \leftskip\z@skip \@rightskip\leftskip \rightskip\@rightskip - \parfillskip\@flushglue -}% \tabu@justify -%% ragged2e settings -\def\tabu@cell@L{% force alignment to left (ragged2e) - \tabu@cell@align - {\tabu@removehfil \RaggedRight \tabu@cellleft} - {\tabu@flush 1\tabu@ignorehfil} - \RaggedRight -}% \tabu@cell@L -\def\tabu@cell@C{% force alignment to center (ragged2e) - \tabu@cell@align - {\tabu@removehfil \Centering \tabu@flush{.5}\tabu@cellleft} - {\tabu@flush{.5}\tabu@ignorehfil} - \Centering -}% \tabu@cell@C -\def\tabu@cell@R{% force alignment to right (ragged2e) - \tabu@cell@align - {\tabu@removehfil \RaggedLeft \tabu@flush 1\tabu@cellleft} - \tabu@ignorehfil - \RaggedLeft -}% \tabu@cell@R -\def\tabu@cell@J{% force justification (ragged2e) - \tabu@cell@align - {\justifying \tabu@cellleft} - {} - \justifying -}% \tabu@cell@J -\def\tabu@flush#1{% - \iftabu@colortbl % colortbl uses \hfill rather than \hfil - \hskip \ifnum13<\currentgrouptype \stretch{#1}% - \else \ifdim#1pt<\p@ \tabu@cellskip - \else \stretch{#1} - \fi\fi \relax - \else % array.sty - \ifnum 13<\currentgrouptype - \hfil \hskip1sp \relax \fi - \fi -}% \tabu@flush -\let\tabu@hfil \hfil -\let\tabu@hfill \hfill -\let\tabu@hskip \hskip -\def\tabu@removehfil{% - \iftabu@colortbl - \unkern \tabu@cellskip =\lastskip - \ifnum\gluestretchorder\tabu@cellskip =\tw@ \hskip-\tabu@cellskip - \else \tabu@cellskip \z@skip - \fi - \else - \ifdim\lastskip=1sp\unskip\fi - \ifnum\gluestretchorder\lastskip =\@ne - \hfilneg % \hfilneg for array.sty but not for colortbl... - \fi - \fi -}% \tabu@removehfil -\def\tabu@ignorehfil{\aftergroup \tabu@nohfil} -\def\tabu@nohfil{% \hfil -> do nothing + restore original \hfil - \def\hfil{\let\hfil \tabu@hfil}% local to (alignment template) group -}% \tabu@nohfil -\def\tabu@colortblalignments {% if colortbl - \def\tabu@nohfil{% - \def\hfil {\let\hfil \tabu@hfil}% local to (alignment template) group - \def\hfill {\let\hfill \tabu@hfill}% (colortbl uses \hfill) pfff... - \def\hskip ####1\relax{\let\hskip \tabu@hskip}}% local -}% \tabu@colortblalignments -%% Taking care of footnotes and hyperfootnotes ---------------------- -\long\def\tabu@footnotetext #1{% - \edef\@tempa{\the\tabu@footnotes - \noexpand\footnotetext [\the\csname c@\@mpfn\endcsname]}% - \global\tabu@footnotes\expandafter{\@tempa {#1}}}% -\long\def\tabu@xfootnotetext [#1]#2{% - \global\tabu@footnotes\expandafter{\the\tabu@footnotes - \footnotetext [{#1}]{#2}}} -\let\tabu@xfootnote \@xfootnote -\long\def\tabu@Hy@ftntext{\tabu@Hy@ftntxt {\the \c@footnote }} -\long\def\tabu@Hy@xfootnote [#1]{% - \begingroup - \value\@mpfn #1\relax - \protected@xdef \@thefnmark {\thempfn}% - \endgroup - \@footnotemark \tabu@Hy@ftntxt {#1}% -}% \tabu@Hy@xfootnote -\long\def\tabu@Hy@ftntxt #1#2{% - \edef\@tempa{% - \the\tabu@footnotes - \begingroup - \value\@mpfn #1\relax - \noexpand\protected@xdef\noexpand\@thefnmark {\noexpand\thempfn}% - \expandafter \noexpand \expandafter - \tabu@Hy@footnotetext \expandafter{\Hy@footnote@currentHref}% - }% - \global\tabu@footnotes\expandafter{\@tempa {#2}% - \endgroup}% -}% \tabu@Hy@ftntxt -\long\def\tabu@Hy@footnotetext #1#2{% - \H@@footnotetext{% - \ifHy@nesting - \hyper@@anchor {#1}{#2}% - \else - \Hy@raisedlink{% - \hyper@@anchor {#1}{\relax}% - }% - \def\@currentHref {#1}% - \let\@currentlabelname \@empty - #2% - \fi - }% -}% \tabu@Hy@footnotetext -%% No need for \arraybackslash ! ------------------------------------ -\def\tabu@latextwoe {% -\def\tabu@temp##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} -\tabu@temp \tabu@centering \centering \arraybackslash -\tabu@temp \tabu@raggedleft \raggedleft \arraybackslash -\tabu@temp \tabu@raggedright \raggedright \arraybackslash -}% \tabu@latextwoe -\def\tabu@raggedtwoe {% -\def\tabu@temp ##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} -\tabu@temp \tabu@Centering \Centering \arraybackslash -\tabu@temp \tabu@RaggedLeft \RaggedLeft \arraybackslash -\tabu@temp \tabu@RaggedRight \RaggedRight \arraybackslash -\tabu@temp \tabu@justifying \justifying \arraybackslash -}% \tabu@raggedtwoe -\def\tabu@normalcrbackslash{\let\\\@normalcr} -\def\tabu@trivlist{\expandafter\def\expandafter\@trivlist\expandafter{% - \expandafter\tabu@normalcrbackslash \@trivlist}} -%% Utilities: \fbox \fcolorbox and \tabudecimal ------------------- -\def\tabu@fbox {\leavevmode\afterassignment\tabu@beginfbox \setbox\@tempboxa\hbox} -\def\tabu@beginfbox {\bgroup \kern\fboxsep - \bgroup\aftergroup\tabu@endfbox} -\def\tabu@endfbox {\kern\fboxsep\egroup\egroup - \@frameb@x\relax} -\def\tabu@color@b@x #1#2{\leavevmode \bgroup - \def\tabu@docolor@b@x{#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}% - \afterassignment\tabu@begincolor@b@x \setbox\z@ \hbox -}% \tabu@color@b@x -\def\tabu@begincolor@b@x {\kern\fboxsep \bgroup - \aftergroup\tabu@endcolor@b@x \set@color} -\def\tabu@endcolor@b@x {\kern\fboxsep \egroup - \dimen@\ht\z@ \advance\dimen@ \fboxsep \ht\z@ \dimen@ - \dimen@\dp\z@ \advance\dimen@ \fboxsep \dp\z@ \dimen@ - \tabu@docolor@b@x \egroup -}% \tabu@endcolor@b@x -%% Corrections (arydshln, delarray, colortbl) ----------------------- -\def\tabu@fix@arrayright {%% \@arrayright is missing from \endarray - \iftabu@colortbl - \ifdefined\adl@array % - \def\tabu@endarray{% - \adl@endarray \egroup \adl@arrayrestore \CT@end \egroup % - \@arrayright % - \gdef\@preamble{}}% - \else % - \def\tabu@endarray{% - \crcr \egroup \egroup % - \@arrayright % - \gdef\@preamble{}\CT@end}% - \fi - \else - \ifdefined\adl@array % - \def\tabu@endarray{% - \adl@endarray \egroup \adl@arrayrestore \egroup % - \@arrayright % - \gdef\@preamble{}}% - \else % - \PackageWarning{tabu} - {\string\@arrayright\space is missing from the - \MessageBreak definition of \string\endarray. - \MessageBreak Compatibility with delarray.sty is broken.}% - \fi\fi -}% \tabu@fix@arrayright -\def\tabu@adl@xarraydashrule #1#2#3{% - \ifnum\@lastchclass=\adl@class@start\else - \ifnum\@lastchclass=\@ne\else - \ifnum\@lastchclass=5 \else % @-arg (class 5) and !-arg (class 1) - \adl@leftrulefalse \fi\fi % must be treated the same - \fi - \ifadl@zwvrule\else \ifadl@inactive\else - \@addtopreamble{\vrule\@width\arrayrulewidth - \@height\z@ \@depth\z@}\fi \fi - \ifadl@leftrule - \@addtopreamble{\adl@vlineL{\CT@arc@}{\adl@dashgapcolor}% - {\number#1}#3}% - \else \@addtopreamble{\adl@vlineR{\CT@arc@}{\adl@dashgapcolor}% - {\number#2}#3} - \fi -}% \tabu@adl@xarraydashrule -\def\tabu@adl@act@endpbox {% - \unskip \ifhmode \nobreak \fi \@finalstrut \@arstrutbox - \egroup \egroup - \adl@colhtdp \box\adl@box \hfil -}% \tabu@adl@act@endpbox -\def\tabu@adl@fix {% - \let\adl@xarraydashrule \tabu@adl@xarraydashrule % arydshln - \let\adl@act@endpbox \tabu@adl@act@endpbox % arydshln - \let\adl@act@@endpbox \tabu@adl@act@endpbox % arydshln - \let\@preamerror \@preamerr % arydshln -}% \tabu@adl@fix -%% Correction for longtable' \@startbox definition ------------------ -%% => \everypar is ``missing'' : TeX should be in vertical mode -\def\tabu@LT@startpbox #1{% - \bgroup - \let\@footnotetext\LT@p@ftntext - \setlength\hsize{#1}% - \@arrayparboxrestore - \everypar{% - \vrule \@height \ht\@arstrutbox \@width \z@ - \everypar{}}% -}% \tabu@LT@startpbox -%% \tracingtabu and the package options ------------------ -\DeclareOption{delarray}{\AtEndOfPackage{\RequirePackage{delarray}}} -\DeclareOption{linegoal}{% - \AtEndOfPackage{% - \RequirePackage{linegoal}[2010/12/07]% - \let\tabudefaulttarget \linegoal% \linegoal is \linewidth if not pdfTeX -}} -\DeclareOption{scantokens}{\tabuscantokenstrue} -\DeclareOption{debugshow}{\AtEndOfPackage{\tracingtabu=\tw@}} -\def\tracingtabu {\begingroup\@ifnextchar=% - {\afterassignment\tabu@tracing\count@} - {\afterassignment\tabu@tracing\count@1\relax}} -\def\tabu@tracing{\expandafter\endgroup - \expandafter\tabu@tr@cing \the\count@ \relax -}% \tabu@tracing -\def\tabu@tr@cing #1\relax {% - \ifnum#1>\thr@@ \let\tabu@tracinglines\message - \else \let\tabu@tracinglines\@gobble - \fi - \ifnum#1>\tw@ \let\tabu@DBG \tabu@@DBG - \def\tabu@mkarstrut {\tabu@DBG@arstrut}% - \tabustrutrule 1.5\p@ - \else \let\tabu@DBG \@gobble - \def\tabu@mkarstrut {\tabu@arstrut}% - \tabustrutrule \z@ - \fi - \ifnum#1>\@ne \let\tabu@debug \message - \else \let\tabu@debug \@gobble - \fi - \ifnum#1>\z@ - \let\tabu@message \message - \let\tabu@tracing@save \tabu@message@save - \let\tabu@starttimer \tabu@pdftimer - \else - \let\tabu@message \@gobble - \let\tabu@tracing@save \@gobble - \let\tabu@starttimer \relax - \fi -}% \tabu@tr@cing -%% Setup \AtBeginDocument -\AtBeginDocument{\tabu@AtBeginDocument} -\def\tabu@AtBeginDocument{\let\tabu@AtBeginDocument \@undefined - \ifdefined\arrayrulecolor \tabu@colortbltrue % - \tabu@colortblalignments % different glues are used - \else \tabu@colortblfalse \fi - \ifdefined\CT@arc@ \else \let\CT@arc@ \relax \fi - \ifdefined\CT@drsc@\else \let\CT@drsc@ \relax \fi - \let\tabu@arc@L \CT@arc@ \let\tabu@drsc@L \CT@drsc@ - \ifodd 1\ifcsname siunitx_table_collect_begin:Nn\endcsname % - \expandafter\ifx - \csname siunitx_table_collect_begin:Nn\endcsname\relax 0\fi\fi\relax - \tabu@siunitxtrue - \else \let\tabu@maybesiunitx \@firstofone % - \let\tabu@siunitx \tabu@nosiunitx - \tabu@siunitxfalse - \fi - \ifdefined\adl@array % - \else \let\tabu@adl@fix \relax - \let\tabu@adl@endtrial \@empty \fi - \ifdefined\longtable % - \else \let\longtabu \tabu@nolongtabu \fi - \ifdefined\cellspacetoplimit \tabu@warn@cellspace\fi - \csname\ifcsname ifHy@hyperfootnotes\endcsname % - ifHy@hyperfootnotes\else iffalse\fi\endcsname - \let\tabu@footnotetext \tabu@Hy@ftntext - \let\tabu@xfootnote \tabu@Hy@xfootnote \fi - \ifdefined\FV@DefineCheckEnd% - \tabu@fancyvrb \fi - \ifdefined\color % - \let\tabu@color \color - \def\tabu@leavevmodecolor ##1{% - \def\tabu@leavevmodecolor {\leavevmode ##1}% - }\expandafter\tabu@leavevmodecolor\expandafter{\color}% - \else - \let\tabu@color \tabu@nocolor - \let\tabu@leavevmodecolor \@firstofone \fi - \tabu@latextwoe - \ifdefined\@raggedtwoe@everyselectfont % - \tabu@raggedtwoe - \else - \let\tabu@cell@L \tabu@cell@l - \let\tabu@cell@R \tabu@cell@r - \let\tabu@cell@C \tabu@cell@c - \let\tabu@cell@J \tabu@cell@j \fi - \expandafter\in@ \expandafter\@arrayright \expandafter{\endarray}% - \ifin@ \let\tabu@endarray \endarray - \else \tabu@fix@arrayright \fi% - \everyrow{}% -}% \tabu@AtBeginDocument -\def\tabu@warn@cellspace{% - \PackageWarning{tabu}{% - Package cellspace has some limitations - \MessageBreak And redefines some macros of array.sty. - \MessageBreak Please use \string\tabulinesep\space to control - \MessageBreak vertical spacing of lines inside tabu environment}% -}% \tabu@warn@cellspace -%% tabu Package initialisation -\tabuscantokensfalse -\let\tabu@arc@G \relax -\let\tabu@drsc@G \relax -\let\tabu@evr@G \@empty -\let\tabu@rc@G \@empty -\def\tabu@ls@G {\tabu@linestyle@}% -\let\tabu@@rowfontreset \@empty % -\let\tabu@@celllalign \@empty -\let\tabu@@cellralign \@empty -\let\tabu@@cellleft \@empty -\let\tabu@@cellright \@empty -\def\tabu@naturalXmin {\z@} -\def\tabu@naturalXmax {\z@} -\let\tabu@rowfontreset \@empty -\def\tabulineon {4pt}\let\tabulineoff \tabulineon -\tabu@everyrowtrue -\ifdefined\pdfelapsedtime % - \def\tabu@pdftimer {\xdef\tabu@starttime{\the\pdfelapsedtime}}% -\else \let\tabu@pdftimer \relax \let\tabu@message@etime \relax -\fi -\tracingtabu=\z@ -\newtabulinestyle {=\maxdimen}% creates the 'factory' settings \tabu@linestyle@ -\tabulinestyle{} -\taburowcolors{} -\let\tabudefaulttarget \linewidth -\ProcessOptions* % \ProcessOptions* is quicker ! -\endinput -%% -%% End of file `tabu.sty'. diff --git a/donnee/client.txt b/donnee/client.txt index 6bf8547..6ddbd8a 100644 --- a/donnee/client.txt +++ b/donnee/client.txt @@ -1,4 +1,4 @@ 32 3.20 1 -660 56.00 0 +660 73.00 0 5079 75.50 0 53 0.00 0 diff --git a/src/app/core_logic/client.c b/src/app/core_logic/client.c index 3b35a11..4d65be1 100644 --- a/src/app/core_logic/client.c +++ b/src/app/core_logic/client.c @@ -3,7 +3,7 @@ #define MAX_ARTICLES 100 #define MAX_CLIENTS 100 -int charger_clients(int numeros[], float cagnottes[], int suspendues[], int tPhysique) { +int charger_clients(int tNumCLient[], float tCagnotte[], int tSus[], int tPhysique) { int i = 0, numero, suspendue; float cagnotte; FILE *fe; @@ -17,66 +17,67 @@ int charger_clients(int numeros[], float cagnottes[], int suspendues[], int tPhy fprintf(stderr, "Tableau plein"); break; } - numeros[i] = numero; - cagnottes[i] = cagnotte; - suspendues[i] = suspendue; + tNumCLient[i] = numero; + tCagnotte[i] = cagnotte; + tSus[i] = suspendue; i++; } fclose(fe); return i; } -void sauvegarde_clients(int numeros[], float cagnottes[], int suspendus[], int nombreClients) { +void sauvegarde_clients(int tNumClient[], float tCagnotte[], int tSus[], int tLogClient) { FILE *fe; fe = fopen("donnee/client.txt", "w"); if (fe == NULL) { perror("fopen"); return; } - for (int i = 0; i < nombreClients; i++) { - fprintf(fe, "%d %.2f %d\n", numeros[i], cagnottes[i], suspendus[i]); + for (int i = 0; i < tLogClient; i++) { + fprintf(fe, "%d %.2f %d\n", tNumClient[i], tCagnotte[i], tSus[i]); } fclose(fe); } -int trouver_index_article(int reference, int references[], int nombreArticles) { - for (int i = 0; i < nombreArticles; i++) { - if (references[i] == reference) { +int trouver_index_article(int reference, int tRef[], int tLogArticle) { + for (int i = 0; i < tLogArticle; i++) { + if (tRef[i] == reference) { return i; } } return -1; } -int trouver_index_client(int numeroClient, int numeros[], int nombreClients) { - for (int i = 0; i < nombreClients; i++) { - if (numeros[i] == numeroClient) { +int trouver_index_client(int numClient, int tNumClient[], int tLogClient) { + for (int i = 0; i < tLogClient; i++) { + if (tNumClient[i] == numClient) { return i; } } return -1; } -void supprimer_article(int panier[], int quantites[], int *taillePanier, int reference, int numeroClient, int numeros[], int nombreClients, int references[], float prixUnitaire[], float cagnottes[]) { +void supprimer_article(int tPanier[], int tQuantite[], int *tLogPanier, int reference, int numClient, int tNumClient[], + int tLogClient, int tRef[], float tPrixUnitaire[], float tCagnotte[]) { int articleIndex, clientIndex, quantite = 0; - articleIndex = trouver_index_article(reference, references, MAX_ARTICLES); - for (int i = 0; i < *taillePanier; i++) { - if (panier[i] == reference) { - quantite = quantites[i]; - for (int j = i; j < *taillePanier - 1; j++) { - panier[j] = panier[j + 1]; - quantites[j] = quantites[j + 1]; + articleIndex = trouver_index_article(reference, tRef, MAX_ARTICLES); + for (int i = 0; i < *tLogPanier; i++) { + if (tPanier[i] == reference) { + quantite = tQuantite[i]; + for (int j = i; j < *tLogPanier - 1; j++) { + tPanier[j] = tPanier[j + 1]; + tQuantite[j] = tQuantite[j + 1]; } break; } } - (*taillePanier)--; + (*tLogPanier)--; - clientIndex = trouver_index_client(numeroClient, numeros, nombreClients); + clientIndex = trouver_index_client(numClient, tNumClient, tLogClient); if (clientIndex != -1) { - float montantTotal = prixUnitaire[articleIndex] * quantite; - cagnottes[clientIndex] -= 0.1 * montantTotal; + float montantTotal = tPrixUnitaire[articleIndex] * quantite; + tCagnotte[clientIndex] -= 0.1 * montantTotal; } } diff --git a/src/app/core_logic/client.h b/src/app/core_logic/client.h index 4cc46f1..5c06c04 100644 --- a/src/app/core_logic/client.h +++ b/src/app/core_logic/client.h @@ -17,61 +17,62 @@ /** * @brief Charger les données des clients depuis un fichier. * - * @param numeros - Un tableau de numéros de clients. - * @param cagnottes - Un tableau de cagnottes des clients. - * @param suspendues - Un tableau d'état des clients suspendus. + * @param tNumClient - Un tableau de numéros de clients. + * @param tCagnotte - Un tableau de cagnottes des clients. + * @param tSus - Un tableau d'état des clients suspendus. * @param tPhysique - La taille physique du tableau des clients. * * @return Le nombre de clients chargés depuis le fichier. */ -int charger_clients(int numeros[], float cagnottes[], int suspendues[], int tPhysique); +int charger_clients(int tNumClient[], float tCagnotte[], int tSus[], int tPhysique); /** * @brief Sauvegarder les données des clients dans un fichier. * - * @param numeros - Un tableau de numéros de clients. - * @param cagnottes - Un tableau de cagnottes des clients. - * @param suspendus - Un tableau d'état des clients suspendus. - * @param nombreClients - Le nombre total de clients. + * @param tNumClient - Un tableau de numéros de clients. + * @param tCagnotte - Un tableau de cagnottes des clients. + * @param tSus - Un tableau d'état des clients suspendus. + * @param tLogClient - Le nombre total de clients. */ -void sauvegarde_clients(int numeros[], float cagnottes[], int suspendus[], int nombreClients); - -/** - * @brief Supprimer un article du panier du client. - * - * @param panier - Le panier d'achat du client. - * @param quantites - Un tableau de quantités d'articles dans le panier. - * @param[out] taillePanier - Un pointeur pour stocker la taille du panier. - * @param reference - La référence de l'article à supprimer. - * @param numeroClient - Le numéro du client. - * @param numeros - Un tableau de numéros de clients. - * @param nombreClients - Le nombre total de clients. - * @param references - Un tableau de références d'articles. - * @param prixUnitaire - Un tableau de prix unitaires d'articles. - * @param cagnottes - Un tableau de cagnottes des clients. - */ -void supprimer_article(int panier[], int quantites[], int *taillePanier, int reference, int numeroClient, int numeros[], int nombreClients, int references[], float prixUnitaire[], float cagnottes[]); +void sauvegarde_clients(int tNumClient[], float tCagnotte[], int tSus[], int tLogClient); /** * @brief Trouver l'index d'une référence d'article dans un tableau. * * @param reference - La référence de l'article à rechercher. - * @param references - Un tableau de références d'articles. - * @param nombreArticles - Le nombre total d'articles. + * @param tRef - Un tableau de références d'articles. + * @param tLogArticle - Le nombre total d'articles. * * @return L'index de la référence dans le tableau ou -1 si la référence n'est pas trouvée. */ -int trouver_index_article(int reference, int references[], int nombreArticles); +int trouver_index_article(int reference, int tRef[], int tLogArticle); /** * @brief Trouver l'index d'un numéro de client dans un tableau. * - * @param numeroClient - Le numéro de client à rechercher. - * @param numeros - Un tableau de numéros de clients. - * @param nombreClients - Le nombre total de clients. + * @param numClient - Le numéro de client à rechercher. + * @param tNumClient - Un tableau de numéros de clients. + * @param tLogClient - Le nombre total de clients. * * @return L'index du numéro de client dans le tableau ou -1 si le numéro de client n'est pas trouvé. */ -int trouver_index_client(int numeroClient, int numeros[], int nombreClients); +int trouver_index_client(int numClient, int tNumClient[], int tLogClient); + +/** + * @brief Supprimer un article du panier du client. + * + * @param tPanier - Le panier d'achat du client. + * @param tQuantite - Un tableau de quantités d'articles dans le panier. + * @param[out] tLogPanier - Un pointeur pour stocker la taille du panier. + * @param reference - La référence de l'article à supprimer. + * @param numClient - Le numéro du client. + * @param tNumClient - Un tableau de numéros de clients. + * @param tLogClient - Le nombre total de clients. + * @param tRef - Un tableau de références d'articles. + * @param tPrixUnitaire - Un tableau de prix unitaires d'articles. + * @param tCagnotte - Un tableau de cagnottes des clients. + */ +void supprimer_article(int tPanier[], int tQuantite[], int *tLogPanier, int reference, int numClient, int tNumClient[], int tLogClient, int tRef[], float tPrixUnitaire[], float tCagnotte[]); + #endif // CLIENT_H diff --git a/src/app/interface/interface_client.c b/src/app/interface/interface_client.c index 141f343..c3b7d01 100644 --- a/src/app/interface/interface_client.c +++ b/src/app/interface/interface_client.c @@ -21,9 +21,9 @@ void affiche_client(void) { } -void ajouter_article_au_panier(int numeroClient, int references[], float poids[], float volume[], float prixUnitaire[], - int numeros[], float cagnottes[], int suspendues[], int nombreArticles, int nombreClients, - float volumeCoffre, float chargeMaximale, int panier[], int quantites[], int *taillePanier, float budget) { +void ajouter_article_au_panier(int numClient, int tRef[], float tPoids[], float tVol[], float tPrixUnitaire[], + int tNumClient[], float tCagnotte[], int tSus[], int tLogArticle, int tLogClient, + float volumeCoffre, float chargeMaximale, int tPanier[], int tQuantite[], int *tLogPanier, float budget) { int reference, quantite, articleIndex, clientIndex; float poidsTotal, montantTotal, volumeTotal, depassementCharge = 0, depassementVolume, depassementBudget = 0; @@ -36,7 +36,7 @@ void ajouter_article_au_panier(int numeroClient, int references[], float poids[] } while (getchar() != '\n'); - articleIndex = trouver_index_article(reference, references, nombreArticles); + articleIndex = trouver_index_article(reference, tRef, tLogArticle); while (articleIndex == -1) { printf("ERREUR : Article non trouvé. Veuillez entrer une référence valide : "); @@ -44,7 +44,7 @@ void ajouter_article_au_panier(int numeroClient, int references[], float poids[] while (getchar() != '\n'); printf("ERREUR : Veuillez entrer une référence valide (nombre) : "); } - articleIndex = trouver_index_article(reference, references, nombreArticles); + articleIndex = trouver_index_article(reference, tRef, tLogArticle); } printf("Entrez la quantité : "); @@ -54,9 +54,9 @@ void ajouter_article_au_panier(int numeroClient, int references[], float poids[] } while (getchar() != '\n'); - poidsTotal = poids[articleIndex] * quantite; - volumeTotal = volume[articleIndex] * quantite; - montantTotal = prixUnitaire[articleIndex] * quantite; + poidsTotal = tPoids[articleIndex] * quantite; + volumeTotal = tVol[articleIndex] * quantite; + montantTotal = tPrixUnitaire[articleIndex] * quantite; if (poidsTotal > chargeMaximale) { depassementCharge = poidsTotal - chargeMaximale; @@ -84,21 +84,21 @@ void ajouter_article_au_panier(int numeroClient, int references[], float poids[] printf("\n"); } - montantTotal = prixUnitaire[articleIndex] * quantite; + montantTotal = tPrixUnitaire[articleIndex] * quantite; - clientIndex = trouver_index_client(numeroClient, numeros, nombreClients); + clientIndex = trouver_index_client(numClient, tNumClient, tLogClient); if (clientIndex != -1) { - cagnottes[clientIndex] += 0.1 * montantTotal; + tCagnotte[clientIndex] += 0.1 * montantTotal; } - panier[*taillePanier] = reference; - quantites[*taillePanier] = quantite; - (*taillePanier)++; + tPanier[*tLogPanier] = reference; + tQuantite[*tLogPanier] = quantite; + (*tLogPanier)++; printf("Contenu du panier : "); - for (int i = 0; i < *taillePanier; i++) { - printf("%d ", panier[i]); + for (int i = 0; i < *tLogPanier; i++) { + printf("%d ", tPanier[i]); } printf("\n"); @@ -106,11 +106,11 @@ void ajouter_article_au_panier(int numeroClient, int references[], float poids[] printf("Récap :\n"); printf("Réf Qté Poids Vol PrixU PoidsTot VolTot PrixTot Cagnotte\n"); printf("%d %d %.2f %.2f %.2f %.2f %.2f %.2f %.2f\n", - reference, quantite, poids[articleIndex], volume[articleIndex], - prixUnitaire[articleIndex], poidsTotal, volumeTotal, montantTotal, - cagnottes[clientIndex]); + reference, quantite, tPoids[articleIndex], tVol[articleIndex], + tPrixUnitaire[articleIndex], poidsTotal, volumeTotal, montantTotal, + tCagnotte[clientIndex]); printf("Prix total à payer: %.2f euros\n", montantTotal); - printf("Cagnotte totale : %.2f euros\n", cagnottes[clientIndex]); + printf("Cagnotte totale : %.2f euros\n", tCagnotte[clientIndex]); printf("Volume utilise : %.2f litres\n", volumeTotal); printf("Volume restant : %.2f litres\n", volumeCoffre - volumeTotal); printf("Charge Actuelle: %.2f kg\n", poidsTotal); @@ -119,7 +119,7 @@ void ajouter_article_au_panier(int numeroClient, int references[], float poids[] } -void supprimer_article_du_panier(int panier[], int quantites[], int *taillePanier, float cagnottes[], int numeroClient, int numeros[], int nombreClients, int references[], float prixUnitaire[]) { +void supprimer_article_du_panier(int tPanier[], int tQuantite[], int *tLogPanier, float tCagnotte[], int numClient, int tNumClient[], int tLogClient, int tRef[], float tPrixUnitaire[]) { int reference, articleIndex; printf("Entrez la référence de l'article à supprimer : "); while (scanf("%d", &reference) != 1) { @@ -128,7 +128,7 @@ void supprimer_article_du_panier(int panier[], int quantites[], int *taillePanie } while (getchar() != '\n'); - articleIndex = trouver_index_article(reference, references, MAX_ARTICLES); + articleIndex = trouver_index_article(reference, tRef, MAX_ARTICLES); while (articleIndex == -1) { printf("Article non trouvé dans le panier. Veuillez entrer une référence valide : "); @@ -136,40 +136,40 @@ void supprimer_article_du_panier(int panier[], int quantites[], int *taillePanie while (getchar() != '\n'); printf("ERREUR : Veuillez entrer une référence valide (nombre) : "); } - articleIndex = trouver_index_article(reference, references, MAX_ARTICLES); + articleIndex = trouver_index_article(reference, tRef, MAX_ARTICLES); } - supprimer_article(panier, quantites, taillePanier, reference, numeroClient, numeros, nombreClients, references, prixUnitaire, cagnottes); + supprimer_article(tPanier, tQuantite, tLogPanier, reference, numClient, tNumClient, tLogClient, tRef, tPrixUnitaire, tCagnotte); printf("Article supprimé du panier avec succès.\n"); } -void affiche_recap_panier(int panier[], int taillePanier, int references[], float poids[], float volume[], - float prixUnitaire[], int quantites[], float cagnottes[], int numeroClient, - int numeros[], int nombreClients, float volumeCoffre, float chargeMaximale, float budget) { +void affiche_recap_panier(int tPanier[], int tLogPanier, int tRef[], float tPoid[], float tVol[], + float tPrixUnitaire[], int tQuantite[], float tCagnotte[], int numClient, + int tNumClient[], int tLogClient, float volumeCoffre, float chargeMaximale, float budget) { int reference, articleIndex, quantite, clientIndex; float poidsTotal = 0, volumeTotal = 0, montantTotal = 0, prixArticle = 0, poidsArticle = 0, volumeArticle = 0; char attentionDepassement[200] = ""; printf("Contenu du panier : "); - for (int i = 0; i < taillePanier; i++) { - printf("%d ", panier[i]); + for (int i = 0; i < tLogPanier; i++) { + printf("%d ", tPanier[i]); } printf("\n"); printf("Récap :\n"); printf("Réf Qté Poids Vol PrixU PoidsTot VolTot PrixTot\n"); - for (int i = 0; i < taillePanier; i++) { - reference = panier[i]; - articleIndex = trouver_index_article(reference, references, MAX_ARTICLES); + for (int i = 0; i < tLogPanier; i++) { + reference = tPanier[i]; + articleIndex = trouver_index_article(reference, tRef, MAX_ARTICLES); - poidsArticle = poids[articleIndex]; - volumeArticle = volume[articleIndex]; - prixArticle = prixUnitaire[articleIndex]; - quantite = quantites[i]; + poidsArticle = tPoid[articleIndex]; + volumeArticle = tVol[articleIndex]; + prixArticle = tPrixUnitaire[articleIndex]; + quantite = tQuantite[i]; printf("%d\t %d\t %.2f\t %.2f\t %.2f\t %.2f\t %.2f\t %.2f\n", reference, quantite, poidsArticle, volumeArticle, @@ -199,10 +199,10 @@ void affiche_recap_panier(int panier[], int taillePanier, int references[], floa } } - clientIndex = trouver_index_client(numeroClient, numeros, nombreClients); + clientIndex = trouver_index_client(numClient, tNumClient, tLogClient); printf("Prix total à payer: %.2f euros\n", montantTotal); - printf("Cagnotte totale : %.2f euros\n", cagnottes[clientIndex]); + printf("Cagnotte totale : %.2f euros\n", tCagnotte[clientIndex]); printf("Volume utilise : %.2f litres\n", volumeTotal); printf("Charge Actuelle: %.2f kg\n", poidsTotal); @@ -211,24 +211,24 @@ void affiche_recap_panier(int panier[], int taillePanier, int references[], floa } } -void configurer_session_client(int numeros[], int suspendus[], int nombreClients, double *budget, float *volumeCoffre, float *chargeMaximale, int *numeroClient) { +void configurer_session_client(int tNumClient[], int tLogClient, double *budget, float *volumeCoffre, float *chargeMaximale, int *numClient) { int indexClient, choixBudget = 0; printf("Veuillez saisir votre numéro de client : "); - while (scanf("%d", numeroClient) != 1) { + while (scanf("%d", numClient) != 1) { while (getchar() != '\n'); printf("ERREUR : Veuillez entrer un numéro de client valide : "); } - indexClient = trouver_index_client(*numeroClient, numeros, nombreClients); + indexClient = trouver_index_client(*numClient, tNumClient, tLogClient); while (indexClient == -1) { printf("ERREUR : Veuillez entrer un numéro de client valide : "); - while (scanf("%d", numeroClient) != 1) { + while (scanf("%d", numClient) != 1) { while (getchar() != '\n'); printf("ERREUR : Veuillez entrer un numéro de client valide : "); } - indexClient = trouver_index_client(*numeroClient, numeros, nombreClients); + indexClient = trouver_index_client(*numClient, tNumClient, tLogClient); } @@ -259,7 +259,7 @@ void configurer_session_client(int numeros[], int suspendus[], int nombreClients } } -void modifier_quantite_article_panier(int panier[], int quantites[], int *taillePanier, float cagnottes[], int numeroClient, float prixUnitaire[], int references[], int nombreClients, int numeros[]) { +void modifier_quantite_article_panier(int tPanier[], int tQuantite[], int *tLogPanier, float tCagnotte[], int numClient, float tPrixUnitaire[], int tRef[], int tLogClient, int tNumClient[]) { int reference, quantite, articleIndex, clientIndex; float prixArticle = 0, ancienneQuantite = 0; @@ -271,7 +271,7 @@ void modifier_quantite_article_panier(int panier[], int quantites[], int *taille } while (getchar() != '\n'); - articleIndex = trouver_index_article(reference, panier, *taillePanier); + articleIndex = trouver_index_article(reference, tPanier, *tLogPanier); while (articleIndex == -1) { printf("Article non trouvé dans le panier. Veuillez entrer une référence valide : "); @@ -280,7 +280,7 @@ void modifier_quantite_article_panier(int panier[], int quantites[], int *taille printf("ERREUR : Veuillez entrer une référence valide (nombre) : "); } - articleIndex = trouver_index_article(reference, panier, *taillePanier); + articleIndex = trouver_index_article(reference, tPanier, *tLogPanier); } printf("Entrez la quantité : "); @@ -291,27 +291,27 @@ void modifier_quantite_article_panier(int panier[], int quantites[], int *taille while (getchar() != '\n'); // Mettre à jour la cagnotte en fonction du changement de quantité - prixArticle = prixUnitaire[trouver_index_article(reference, references, MAX_ARTICLES)]; - clientIndex = trouver_index_client(numeroClient, numeros, nombreClients); - ancienneQuantite = quantites[articleIndex]; - cagnottes[clientIndex] -= (ancienneQuantite - quantite) * prixArticle * 0.1; + prixArticle = tPrixUnitaire[trouver_index_article(reference, tRef, MAX_ARTICLES)]; + clientIndex = trouver_index_client(numClient, tNumClient, tLogClient); + ancienneQuantite = tQuantite[articleIndex]; + tCagnotte[clientIndex] -= (ancienneQuantite - quantite) * prixArticle * 0.1; - quantites[articleIndex] = quantite; + tQuantite[articleIndex] = quantite; printf("Quantité modifiée avec succès.\n"); } -void reinitialiser_panier(int panier[], int quantites[], int *taillePanier, float cagnottes[], int numeroClient, int numeros[], int nombreClients, int references[], float prixUnitaire[]) { - for (int i = 0; i < *taillePanier; i++) { - supprimer_article(panier, quantites, taillePanier, panier[i], numeroClient, numeros, nombreClients, references, prixUnitaire, cagnottes); +void reinitialiser_panier(int tPanier[], int tQuantite[], int *tLogPanier, float tCagnotte[], int numClient, int tNumClient[], int tLogClient, int tRef[], float tPrixUnitaire[]) { + for (int i = 0; i < *tLogPanier; i++) { + supprimer_article(tPanier, tQuantite, tLogPanier, tPanier[i], numClient, tNumClient, tLogClient, tRef, tPrixUnitaire, tCagnotte); } - *taillePanier = 0; + *tLogPanier = 0; } -void deduire_cagnotte(int numeroClient, float montant, int numeros[], float cagnottes[], int nombreClients, int suspendus[]) { +void deduire_cagnotte(int numClient, float montant, int tNumClient[], float tCagnotte[], int tLogClient, int tSus[]) { int clientIndex = -1; - for (int i = 0; i < nombreClients; i++) { - if (numeros[i] == numeroClient) { + for (int i = 0; i < tLogClient; i++) { + if (tNumClient[i] == numClient) { clientIndex = i; break; } @@ -322,30 +322,30 @@ void deduire_cagnotte(int numeroClient, float montant, int numeros[], float cagn return; } - if (cagnottes[clientIndex] < montant) { + if (tCagnotte[clientIndex] < montant) { printf("Cagnotte insuffisante. Impossible de déduire la cagnotte.\n"); return; } - cagnottes[clientIndex] -= montant; + tCagnotte[clientIndex] -= montant; printf("Montant déduit de la cagnotte avec succès.\n"); } -void quitter_application(int panier[], int taillePanier, int references[], float poids[], float volume[], - float prixUnitaire[], int quantites[], float cagnottes[], int numeroClient, - int numeros[], int nombreClients, float budget, int suspendus[]) { +void quitter_application(int tPanier[], int tLogPanier, int tRef[], float tPoid[], float tVol[], + float tPrixUnitaire[], int tQuantite[], float tCagnotte[], int numClient, + int tNumClient[], int tLogClient, float budget, int tSus[]) { int reference, articleIndex, quantite, clientIndex, choixCagnotte = 0; float montantTotal = 0, prixArticle = 0, montantDeduction = 0; char attentionDepassement[200] = ""; - for (int i = 0; i < taillePanier; i++) { - reference = panier[i]; - articleIndex = trouver_index_article(reference, references, MAX_ARTICLES); + for (int i = 0; i < tLogPanier; i++) { + reference = tPanier[i]; + articleIndex = trouver_index_article(reference, tRef, MAX_ARTICLES); - prixArticle = prixUnitaire[articleIndex]; - quantite = quantites[i]; + prixArticle = tPrixUnitaire[articleIndex]; + quantite = tQuantite[i]; montantTotal += prixArticle * quantite; @@ -357,9 +357,9 @@ void quitter_application(int panier[], int taillePanier, int references[], float } } - clientIndex = trouver_index_client(numeroClient, numeros, nombreClients); + clientIndex = trouver_index_client(numClient, tNumClient, tLogClient); - if (suspendus[clientIndex] == 1) { + if (tSus[clientIndex] == 1) { printf("Vous ne pourrez pas utiliser votre cagnotte car votre carte est suspendu.\n"); } @@ -369,16 +369,16 @@ void quitter_application(int panier[], int taillePanier, int references[], float printf("Budget : %.2f euros\n", budget); } - if (budget > 0 && montantTotal > budget && cagnottes[clientIndex] < (montantTotal - budget)) { + if (budget > 0 && montantTotal > budget && tCagnotte[clientIndex] < (montantTotal - budget)) { printf("Attention : %s", attentionDepassement); printf("Vous ne pourrez pas payer. De plus vous n'avez pas assez dans votre cagnotte pour la déduire et payer\n"); - printf("Montant de votre cagnotte %.2f\n", cagnottes[clientIndex]); + printf("Montant de votre cagnotte %.2f\n", tCagnotte[clientIndex]); } - if (budget > 0 && montantTotal > budget && montantTotal < budget + cagnottes[clientIndex]) { + if (budget > 0 && montantTotal > budget && montantTotal < budget + tCagnotte[clientIndex]) { printf("Attention : %s", attentionDepassement); printf("Vous ne pourrez pas payer, mais vous avez suffisamment dans votre cagnotte pour payer.\n"); - printf("Montant de votre cagnotte %.2f\n", cagnottes[clientIndex]); + printf("Montant de votre cagnotte %.2f\n", tCagnotte[clientIndex]); printf("Voulez-vous déduire de votre cagnotte avant de quitter ? (1 pour Oui, 0 pour Non) : "); while (scanf("%d", &choixCagnotte) != 1 || (choixCagnotte != 0 && choixCagnotte != 1)) { while (getchar() != '\n'); @@ -404,9 +404,9 @@ void quitter_application(int panier[], int taillePanier, int references[], float while (getchar() != '\n'); } - deduire_cagnotte(numeroClient, montantDeduction, numeros, cagnottes, nombreClients, suspendus); + deduire_cagnotte(numClient, montantDeduction, tNumClient, tCagnotte, tLogClient, tSus); printf("Le montant a été déduit de votre cagnotte.\n"); - printf("Il vous reste %.2f euros dans votre cagnotte.\n", cagnottes[clientIndex]); + printf("Il vous reste %.2f euros dans votre cagnotte.\n", tCagnotte[clientIndex]); } } } @@ -414,55 +414,55 @@ void quitter_application(int panier[], int taillePanier, int references[], float void menu_client(int *choix) { affiche_client(); printf("Vous choisissez: "); - while (scanf("%d", choix) != 1 || *choix < 0 || *choix > 9 || (*choix > 5 && *choix < 9)) { + while (scanf("%d", choix) != 1 || *choix < 0 || *choix > 9 || (*choix > 6 && *choix < 9)) { while (getchar() != '\n'); printf("ERREUR : Veuillez entrer un choix valide : "); } } void global_client(void) { - int choix, references[MAX_ARTICLES], numeros[MAX_CLIENTS], suspendus[MAX_CLIENTS], nombreArticles, - nombreClients, numeroClient, quantites[MAX_ARTICLES], panier[MAX_ARTICLES], taillePanier = 0; + int choix, tRef[MAX_ARTICLES], tNumClient[MAX_CLIENTS], tSus[MAX_CLIENTS], tLogArticle, tLogClient, + numClient, tQuantite[MAX_ARTICLES], tPanier[MAX_ARTICLES], tLogPanier = 0; - float poids[MAX_ARTICLES], volume[MAX_ARTICLES], prixUnitaire[MAX_ARTICLES], cagnottes[MAX_CLIENTS], + float tPoids[MAX_ARTICLES], tVol[MAX_ARTICLES], tPrixUnitaire[MAX_ARTICLES], tCagnotte[MAX_CLIENTS], volumeCoffre, chargeMaximale; double budget = -1.0; - nombreArticles = chargementArticles(references, poids, volume, prixUnitaire, MAX_ARTICLES); - nombreClients = charger_clients(numeros, cagnottes, suspendus, MAX_CLIENTS); - configurer_session_client(numeros, suspendus, nombreClients, &budget, &volumeCoffre, &chargeMaximale, &numeroClient); + tLogArticle = chargementArticles(tRef, tPoids, tVol, tPrixUnitaire, MAX_ARTICLES); + tLogClient = charger_clients(tNumClient, tCagnotte, tSus, MAX_CLIENTS); + configurer_session_client(tNumClient, tLogClient, &budget, &volumeCoffre, &chargeMaximale, &numClient); do { menu_client(&choix); switch (choix) { case 1: - affiche_recap_panier(panier, taillePanier, references, poids, volume, prixUnitaire, quantites, cagnottes, - numeroClient, numeros, nombreClients, volumeCoffre, chargeMaximale, budget); + affiche_recap_panier(tPanier, tLogPanier, tRef, tPoids, tVol, tPrixUnitaire, tQuantite, tCagnotte, + numClient, tNumClient, tLogClient, volumeCoffre, chargeMaximale, budget); break; case 2: - affichArticles(references, poids, volume, prixUnitaire, nombreArticles); + affichArticles(tRef, tPoids, tVol, tPrixUnitaire, tLogArticle); break; case 3: - ajouter_article_au_panier(numeroClient, references, poids, volume, prixUnitaire, numeros, cagnottes, - suspendus, nombreArticles, nombreClients, volumeCoffre, chargeMaximale, panier, quantites, &taillePanier, budget); + ajouter_article_au_panier(numClient, tRef, tPoids, tVol, tPrixUnitaire, tNumClient, tCagnotte, + tSus, tLogArticle, tLogClient, volumeCoffre, chargeMaximale, tPanier, tQuantite, &tLogPanier, budget); break; case 4: - supprimer_article_du_panier(panier, quantites, &taillePanier, cagnottes, numeroClient, numeros, nombreClients, references, prixUnitaire); - affiche_recap_panier(panier, taillePanier, references, poids, volume, prixUnitaire, quantites, cagnottes, - numeroClient, numeros, nombreClients, volumeCoffre, chargeMaximale, budget); + supprimer_article_du_panier(tPanier, tQuantite, &tLogPanier, tCagnotte, numClient, tNumClient, tLogClient, tRef, tPrixUnitaire); + affiche_recap_panier(tPanier, tLogPanier, tRef, tPoids, tVol, tPrixUnitaire, tQuantite, tCagnotte, + numClient, tNumClient, tLogClient, volumeCoffre, chargeMaximale, budget); break; case 5: - modifier_quantite_article_panier(panier, quantites, &taillePanier, cagnottes, numeroClient, prixUnitaire, references, nombreClients, numeros); + modifier_quantite_article_panier(tPanier, tQuantite, &tLogPanier, tCagnotte, numClient, tPrixUnitaire, tRef, tLogClient, tNumClient); break; case 6: - reinitialiser_panier(panier, quantites, &taillePanier, cagnottes, numeroClient, numeros, nombreClients, references, prixUnitaire); + reinitialiser_panier(tPanier, tQuantite, &tLogPanier, tCagnotte, numClient, tNumClient, tLogClient, tRef, tPrixUnitaire); printf("Le panier a été réinitialisé.\n"); break; case 9: - quitter_application(panier, taillePanier, references, poids, volume, prixUnitaire, quantites, cagnottes, numeroClient, numeros, nombreClients, budget, suspendus); - sauvegarde_clients(numeros, cagnottes, suspendus, nombreClients); + quitter_application(tPanier, tLogPanier, tRef, tPoids, tVol, tPrixUnitaire, tQuantite, tCagnotte, numClient, tNumClient, tLogClient, budget, tSus); + sauvegarde_clients(tNumClient, tCagnotte, tSus, tLogClient); printf("Au revoir !\n"); return; } diff --git a/src/app/interface/interface_client.h b/src/app/interface/interface_client.h index 4ecb053..e1ee5aa 100644 --- a/src/app/interface/interface_client.h +++ b/src/app/interface/interface_client.h @@ -22,149 +22,148 @@ */ void affiche_client(void); -/** - * @brief Afficher le menu du client et enregistrer le choix de l'utilisateur. - * - * @param[out] choix - Un pointeur pour stocker le choix de l'utilisateur. - */ -void menu_client(int *choix); - /** * @brief Ajouter des articles au panier du client. * - * @param numeroClient - Le numéro du client. - * @param references - Un tableau de références d'articles. - * @param poids - Un tableau de poids d'articles. - * @param volume - Un tableau de volumes d'articles. - * @param prixUnitaire - Un tableau de prix unitaires d'articles. - * @param numeros - Un tableau de numéros d'articles. - * @param cagnottes - Un tableau de cagnottes. - * @param suspendues - Un tableau d'articles suspendus. - * @param nombreArticles - Le nombre total d'articles disponibles. - * @param nombreClients - Le nombre total de clients. + * @param numClient - Le numéro du client. + * @param tRef - Un tableau de références d'articles. + * @param tPoids - Un tableau de poids d'articles. + * @param tVol - Un tableau de volumes d'articles. + * @param tPrixUnitaire - Un tableau de prix unitaires d'articles. + * @param tNumClient - Un tableau de numéros d'articles. + * @param tCagnotte - Un tableau de cagnottes. + * @param tSus - Un tableau d'articles suspendus. + * @param tLogArticle - Le nombre total d'articles disponibles. + * @param tLogClient - Le nombre total de clients. * @param volumeCoffre - La limite de volume pour le panier du client. * @param chargeMaximale - La limite de poids pour le panier du client. - * @param panier - Le panier d'achat du client. - * @param quantites - Un tableau de quantités d'articles dans le panier. - * @param[out] taillePanier - Un pointeur pour stocker la taille du panier. + * @param tPanier - Le panier d'achat du client. + * @param tQuantite - Un tableau de quantités d'articles dans le panier. + * @param[out] tLogPanier - Un pointeur pour stocker la taille du panier. * @param budget - Le budget du client. */ -void ajouter_article_au_panier(int numeroClient, int references[], float poids[], float volume[], float prixUnitaire[], - int numeros[], float cagnottes[], int suspendues[], int nombreArticles, int nombreClients, - float volumeCoffre, float chargeMaximale, int panier[], int quantites[], int *taillePanier, float budget); +void ajouter_article_au_panier(int numClient, int tRef[], float tPoids[], float tVol[], float tPrixUnitaire[], + int tNumClient[], float tCagnotte[], int tSus[], int tLogArticle, int tLogClient, + float volumeCoffre, float chargeMaximale, int tPanier[], int tQuantite[], int *tLogPanier, float budget); /** * @brief Supprimer un article du panier du client. * - * @param panier - Le panier d'achat du client. - * @param quantites - Un tableau de quantités d'articles dans le panier. - * @param[out] taillePanier - Un pointeur pour stocker la taille du panier. - * @param cagnottes - Un tableau de cagnottes. - * @param numeroClient - Le numéro du client. - * @param numeros - Un tableau de numéros d'articles. - * @param nombreClients - Le nombre total de clients. - * @param references - Un tableau de références d'articles. - * @param prixUnitaire - Un tableau de prix unitaires d'articles. + * @param tPanier - Le panier d'achat du client. + * @param tQuantite - Un tableau de quantités d'articles dans le panier. + * @param[out] tLogPanier - Un pointeur pour stocker la taille du panier. + * @param tCagnotte - Un tableau de cagnottes. + * @param numClient - Le numéro du client. + * @param tNumClient - Un tableau de numéros d'articles. + * @param tLogClient - Le nombre total de clients. + * @param tRef - Un tableau de références d'articles. + * @param tPrixUnitaire - Un tableau de prix unitaires d'articles. */ -void supprimer_article_du_panier(int panier[], int quantites[], int *taillePanier, float cagnottes[], int numeroClient, int numeros[], int nombreClients, int references[], float prixUnitaire[]); +void supprimer_article_du_panier(int tPanier[], int tQuantite[], int *tLogPanier, float tCagnotte[], int numClient, int tNumClient[], int tLogClient, int tRef[], float tPrixUnitaire[]); /** * @brief Afficher un récapitulatif du panier du client. * - * @param panier - Le panier d'achat du client. - * @param taillePanier - La taille du panier. - * @param references - Un tableau de références d'articles. - * @param poids - Un tableau de poids d'articles. - * @param volume - Un tableau de volumes d'articles. - * @param prixUnitaire - Un tableau de prix unitaires d'articles. - * @param quantites - Un tableau de quantités d'articles dans le panier. - * @param cagnottes - Un tableau de cagnottes. - * @param numeroClient - Le numéro du client. - * @param numeros - Un tableau de numéros d'articles. - * @param nombreClients - Le nombre total de clients. + * @param tPanier - Le panier d'achat du client. + * @param tLogPanier - La taille du panier. + * @param tRef - Un tableau de références d'articles. + * @param tPoid - Un tableau de poids d'articles. + * @param tVol - Un tableau de volumes d'articles. + * @param tPrixUnitaire - Un tableau de prix unitaires d'articles. + * @param tQuantite - Un tableau de quantités d'articles dans le panier. + * @param tCagnotte - Un tableau de cagnottes. + * @param numClient - Le numéro du client. + * @param tNumClient - Un tableau de numéros d'articles. + * @param tLogClient - Le nombre total de clients. * @param volumeCoffre - La limite de volume pour le panier du client. * @param chargeMaximale - La limite de poids pour le panier du client. * @param budget - Le budget du client. */ -void affiche_recap_panier(int panier[], int taillePanier, int references[], float poids[], float volume[], - float prixUnitaire[], int quantites[], float cagnottes[], int numeroClient, - int numeros[], int nombreClients, float volumeCoffre, float chargeMaximale, float budget); +void affiche_recap_panier(int tPanier[], int tLogPanier, int tRef[], float tPoid[], float tVol[], + float tPrixUnitaire[], int tQuantite[], float tCagnotte[], int numClient, + int tNumClient[], int tLogClient, float volumeCoffre, float chargeMaximale, float budget); /** * @brief Configurer la session client. * - * @param numeros - Un tableau de numéros de clients. - * @param suspendus - Un tableau d'état des clients suspendus. - * @param nombreClients - Le nombre total de clients. + * @param tNumClient - Un tableau de numéros de clients. + * @param tLogClient - Le nombre total de clients. * @param[out] budget - Un pointeur pour stocker le budget du client. * @param[out] volumeCoffre - Un pointeur pour stocker la limite de volume du panier du client. * @param[out] chargeMaximale - Un pointeur pour stocker la limite de poids du panier du client. - * @param[out] numeroClient - Un pointeur pour stocker le numéro du client. + * @param[out] numClient - Un pointeur pour stocker le numéro du client. */ -void configurer_session_client(int numeros[], int suspendus[], int nombreClients, double *budget, float *volumeCoffre, float *chargeMaximale, int *numeroClient); +void configurer_session_client(int tNumClient[], int tLogClient, double *budget, float *volumeCoffre, float *chargeMaximale, int *numClient); /** * @brief Modifier la quantité d'un article dans le panier du client. * - * @param panier - Le panier d'achat du client. - * @param quantites - Un tableau de quantités d'articles dans le panier. - * @param[out] taillePanier - Un pointeur pour stocker la taille du panier. - * @param cagnottes - Un tableau de cagnottes. - * @param numeroClient - Le numéro du client. - * @param prixUnitaire - Un tableau de prix unitaires d'articles. - * @param references - Un tableau de références d'articles. - * @param nombreClients - Le nombre total de clients. - * @param numeros - Un tableau de numéros d'articles. + * @param tPanier - Le panier d'achat du client. + * @param tQuantite - Un tableau de quantités d'articles dans le panier. + * @param[out] tLogPanier - Un pointeur pour stocker la taille du panier. + * @param tCagnotte - Un tableau de cagnottes. + * @param numClient - Le numéro du client. + * @param tPrixUnitaire - Un tableau de prix unitaires d'articles. + * @param tRef - Un tableau de références d'articles. + * @param tLogClient - Le nombre total de clients. + * @param tNumClient - Un tableau de numéros client. */ -void modifier_quantite_article_panier(int panier[], int quantites[], int *taillePanier, float cagnottes[], int numeroClient, float prixUnitaire[], int references[], int nombreClients, int numeros[]); +void modifier_quantite_article_panier(int tPanier[], int tQuantite[], int *tLogPanier, float tCagnotte[], int numClient, float tPrixUnitaire[], int tRef[], int tLogClient, int tNumClient[]); /** * @brief Réinitialiser le panier du client. * - * @param panier - Le panier d'achat du client. - * @param quantites - Un tableau de quantités d'articles dans le panier. - * @param[out] taillePanier - Un pointeur pour stocker la taille du panier. - * @param cagnottes - Un tableau de cagnottes. - * @param numeroClient - Le numéro du client. - * @param numeros - Un tableau de numéros d'articles. - * @param nombreClients - Le nombre total de clients. - * @param references - Un tableau de références d'articles. - * @param prixUnitaire - Un tableau de prix unitaires d'articles. + * @param tPanier - Le panier d'achat du client. + * @param tQuantite - Un tableau de quantités d'articles dans le panier. + * @param[out] tLogPanier - Un pointeur pour stocker la taille du panier. + * @param tCagnotte - Un tableau de cagnottes. + * @param numClient - Le numéro du client. + * @param tNumClient - Un tableau de numéros de client. + * @param tLogClient - Le nombre total de clients. + * @param tRef - Un tableau de références d'articles. + * @param tPrixUnitaire - Un tableau de prix unitaires d'articles. */ -void reinitialiser_panier(int panier[], int quantites[], int *taillePanier, float cagnottes[], int numeroClient, int numeros[], int nombreClients, int references[], float prixUnitaire[]); +void reinitialiser_panier(int tPanier[], int tQuantite[], int *tLogPanier, float tCagnotte[], int numClient, int tNumClient[], int tLogClient, int tRef[], float tPrixUnitaire[]); /** * @brief Déduire un montant de la cagnotte du client. * - * @param numeroClient - Le numéro du client. + * @param numClient - Le numéro du client. * @param montant - Le montant à déduire de la cagnotte. - * @param numeros - Un tableau de numéros de clients. - * @param cagnottes - Un tableau de cagnottes. - * @param nombreClients - Le nombre total de clients. - * @param suspendus - Un tableau d'état des clients suspendus. + * @param tNumClient - Un tableau de numéros de clients. + * @param tCagnotte - Un tableau de cagnottes. + * @param tLogClient - Le nombre total de clients. + * @param tSus - Un tableau d'état des clients suspendus. */ -void deduire_cagnotte(int numeroClient, float montant, int numeros[], float cagnottes[], int nombreClients, int suspendus[]); +void deduire_cagnotte(int numClient, float montant, int tNumClient[], float tCagnotte[], int tLogClient, int tSus[]); /** * @brief Quitter l'application client. * - * @param panier - Le panier d'achat du client. - * @param taillePanier - La taille du panier. - * @param references - Un tableau de références d'articles. - * @param poids - Un tableau de poids d'articles. - * @param volume - Un tableau de volumes d'articles. - * @param prixUnitaire - Un tableau de prix unitaires d'articles. - * @param quantites - Un tableau de quantités d'articles dans le panier. - * @param cagnottes - Un tableau de cagnottes. - * @param numeroClient - Le numéro du client. - * @param numeros - Un tableau de numéros d'articles. - * @param nombreClients - Le nombre total de clients. + * @param tPanier - Le panier d'achat du client. + * @param tLogPanier - La taille du panier. + * @param tRef - Un tableau de références d'articles. + * @param tPoid - Un tableau de poids d'articles. + * @param tVol - Un tableau de volumes d'articles. + * @param tPrixUnitaire - Un tableau de prix unitaires d'articles. + * @param tQuantite - Un tableau de quantités d'articles dans le panier. + * @param tCagnotte - Un tableau de cagnottes. + * @param numClient - Le numéro du client. + * @param tNumClient - Un tableau de numéros de clients. + * @param tLogClient - Le nombre total de clients. * @param budget - Le budget du client. - * @param suspendus - Un tableau d'état des clients suspendus. + * @param tSus - Un tableau d'état des clients suspendus. */ -void quitter_application(int panier[], int taillePanier, int references[], float poids[], float volume[], - float prixUnitaire[], int quantites[], float cagnottes[], int numeroClient, - int numeros[], int nombreClients, float budget, int suspendus[]); +void quitter_application(int tPanier[], int tLogPanier, int tRef[], float tPoid[], float tVol[], + float tPrixUnitaire[], int tQuantite[], float tCagnotte[], int numClient, + int tNumClient[], int tLogClient, float budget, int tSus[]); + +/** + * @brief Afficher le menu du client et enregistrer le choix de l'utilisateur. + * + * @param[out] choix - Un pointeur pour stocker le choix de l'utilisateur. + */ +void menu_client(int *choix); /** * @brief Exécute l'ensemble des fonctions de l'interface client.