/* Module guestControl 2.0 - part Client */ /* by iri : info@irizone.net - 02/2004 */ /* utilisation : licence type GNU/GPL */ /* code repris à 0 depuis les versions 1.x */ /* Copyright (c) 2004 iri. Ce fichier fait partie du plugin "guestControl". guestControl est un programme libre; vous pouvez le redistribuer et/ou le modifier selon les termes de la GNU General Public License (Licence Publique Générale GNU) telle qu'elle a été publiée par la Free Software Foundation : soit la version 2 de la licence, soit (comme vous le souhaitez) toute version ultérieure. guestControl est distribué dans l'espoir qu'il sera utile, mais SANS LA MOINDRE GARANTIE; pas même la garantie implicite de COMMERCIABILITE ou d'ADEQUATION A UN BUT PARTICULIER. Voir la GNU General Public License pour plus de détails. Vous devriez avoir reçu une copie de la GNU General Public License en même temps que ce programme (fichier "COPYING", version 2 de la GNU General Public License); sinon, merci d'écrire à la Free Software Foundation, Inc, 59 Temple Place, Suite 330, Boston, MA02111-1307 USA. De plus, guestControl peut être intégré à toute distribution de tout ou partie du SCS (Set Construction Set) et basé sur la technologie Scol, à l'exclusion de toute distribution complète ou partielle payante (autre que le prix d'envoi ou d'édition du support de la distribution). Vous devez respecter la GNU General Public License à tous les égards. Si vous modifiez ce fichier, vous pouvez étendre cette exception à votre version du fichier, mais n'êtes pas obligé de le faire. Si vous ne souhaitez pas le faire, supprimez cette déclaration l'exception de votre version. */ defcom Cregister = register;; defcom Ccommand = command S S;; defcom Cclic = clic;; typeof sHelp = S;; typeof nButtons = I;; typeof bmpBG = P;; typeof bmpButton = P;; typeof colorTitle = I;; typeof win = ObjWin;; typeof txtAide = ObjText;; typeof saisie = ObjText;; typeof listNameButton = [S r1];; typeof sImg = P;; typeof bool = S;; typeof cptBmp = I;; fun cbButton(a, b)= _DMSsend this Ccommand [b _GETtext saisie];; fun _img(a, b)= _DMSsend this Cclic [];; fun _end(b)= _DMSdelete this;; fun _destroyE(a,b)= _DMSdelete this;; fun _resize(x,s)= let x->[wn x y w h] in _SIZEwindow win w h x y; 0;; fun _resizeE(a,b,w,h)= if (h<100)||(w<20) then nil else (_SIZEtext txtAide w-(135+5) h-5-20-5-5 5 5; _SIZEtext saisie w-10 20 5 h-20-5);; fun _paintE(win, u)= let _GETwindowPositionSize win -> [x y w h] in let _LDjpeg _channel bmpBG -> bg in let _GETbitmapSize bg -> [bw bh] in _STBLTbitmap win 0 0 w h bg 0 0 bw bh;; fun iniWin(wn, x, y, w, h, listButton)= set win = _CRwindow _channel wn x y w h if wn==nil then WN_MENU+WN_MINBOX else WN_CHILDINSIDE|WN_NOCAPTION|WN_NOBORDER strcat "GuestControl : " _DMSgetName this; _CBwinDestroy win @_destroyE 0; _CBwinSize win @_resizeE 0; _CBwinPaint win @_paintE 0; if !strcmp bool "txt" then (set txtAide = _CRtext _channel win 5 5 w-(135+5) h-5-20-5-5 ET_DOWN|ET_ALIGN_LEFT|ET_AVSCROLL|ET_VSCROLL|ET_TABFOCUS sHelp; 0) else (let _LDjpeg _channel sImg -> img in _CBbutton _CRbuttonBitmap _channel win img 5 5 w-(135+5) h-5-20-5-5 0 @_img 0; 0); set saisie = _CReditLine _channel win 5 h-20-5 w-10 20 ET_DOWN|ET_ALIGN_LEFT|ET_TABFOCUS|ET_AHSCROLL ""; let 1 -> i in let _CRfont _channel 16 0 0 "Arial" -> font in while nButtons >= i do ( let _LDjpeg _channel bmpButton -> bmp in let nth_list listNameButton (i-1)-> name in let _DRAWtext bmp font 60 0 TD_CENTER colorTitle name -> bmp in _CBbutton _CRbuttonBitmap _channel win bmp w-125 ((i*5)+((i-1)*20)) 120 20 PB_TABFOCUS @cbButton name; set i = i+1 ); let _LDjpeg _channel bmpBG -> bg in let _GETbitmapSize bg -> [bw bh] in _STBLTbitmap win 0 0 w h bg 0 0 bw bh; _SETtextFocus saisie; 0;; fun downOk(i)= set cptBmp = cptBmp + i; if cptBmp == 5 then _DMSsend this Cregister [] else nil;; fun cbEndDownloadBmp1(s) = downOk 1;0;; fun cbEndDownloadBmp2(s) = downOk 1;0;; fun IniDMI(param)= let lineextr param -> [PfileHelp[PbmpBG[PbmpButton[PcolorTitle[PlistNameButton _]]]]] in ( if PfileHelp == nil then (set sHelp = _getpack _checkpack "dms/admin/guestcontrol/res/aide.txt"; set bool = "txt") else let substr PfileHelp (strlen PfileHelp)-3 3 -> ext in if !strcmp ext "txt" then (set sHelp = _getpack _checkpack PfileHelp; set bool = "txt") else (set sImg = _checkpack PfileHelp; set bool = "jpg"); if PbmpBG == nil then set bmpBG = _checkpack "dms/admin/guestcontrol/res/bg.jpg" else set bmpBG = _checkpack PbmpBG; if PbmpButton == nil then set bmpButton = _checkpack "dms/admin/guestcontrol/res/bmp.jpg" else set bmpButton = _checkpack PbmpButton; if PcolorTitle == nil then set colorTitle = 0 else set colorTitle = atoi PcolorTitle; set listNameButton = hd strextr PlistNameButton; set nButtons = sizelist listNameButton; set cptBmp = 0; _RSCdownload this PbmpBG PbmpBG @cbEndDownloadBmp1 0; _RSCdownload this PbmpButton PbmpButton @cbEndDownloadBmp2 1; let _DMSgetZone this "Control" @_end @_resize @_end ->[wn x y w h] in let if nButtons < 8 then 210 else ((20*nButtons)+(5*(nButtons+1))+20+5) -> h2 in if wn!=nil then iniWin wn x y w h listNameButton else iniWin nil nil nil 300 h2 listNameButton; 0 ) ;;