/* Module guestControl 2.0 - part Server */ /* by iri : info@irizone.net - 02/2004 */ /* utilisation : licence type BSD */ /* 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. */ typeof fileHelp = S;; /* fichier texte ou image */ typeof bmpBG = S;; /* path du bitmap de fond */ typeof bmpButton = S;; /* path du bitmap des boutons */ typeof colorTitle = S;; /* couleur de l'intitulé des boutons */ typeof listNameButton = [S r1];; /* noms des boutons */ fun mystrcmp(a,b)= a!=nil && !strcmp a b;; fun _comevent(cli, c, param)= if c==nil then nil else if nil!=search_in_list listNameButton @mystrcmp c then (_DMSevent this cli c param nil; 0) else 0;; fun __command(action, param)= _comevent DMSsender action param;; fun __register()= _DMSevent this DMSsender "shown" nil nil ;; fun __clic()= _DMSeventTag this nil "click" nil nil nil;; fun RSreg(l)= let lineextr l -> [PbmpBG[PbmpButton _]] in ( _RSregister this PbmpBG 1 PbmpBG; _RSregister this PbmpButton 1 PbmpButton );; fun activate(from,cli,action,param,rep)= if !strcmp action "start" then (RSreg linebuild (bmpBG)::(bmpButton)::nil; _DMScreateClientDMI this cli linebuild (fileHelp)::(bmpBG)::(bmpButton)::(colorTitle)::(strbuild listNameButton::nil)::nil; _DMSevent this cli "started" nil nil) else if !strcmp action "destroy" then (_DMSdelClientDMI this cli; _DMSevent this cli "destroyed" nil nil) else nil;; fun getControl(l)= if l==nil then nil else let l->[q n] in if !strcmp hd q "control" then let hd tl q->c in (if c==nil then "" else c)::getControl n else getControl n;; fun IniDMI(file)= let strextr _getpack _checkpack file ->l in ( set fileHelp = getInfo l "filehelp"; set bmpBG = getInfo l "bmpBG"; set bmpButton = getInfo l "bmpButton"; set colorTitle = getInfo l "colorTitle"; set listNameButton = getControl l; 0 ); _DMSregisterDMI this @activate nil nil nil;;