RbBFBlokProjPSIVStrn2005.04 ACnmStrnAChpStrnACsvStrnVer1Strn1 Ver2Strn0 Ver3Strn0 RelsStrn0 NnRlStrn0 RegnStrn0 SVerStrnLVerStrnIVerStrnaiviInt DVewInt i1,prTpInt DLanInt CLanInt DEncInt BflgInt IconGrup EndGInt  MacCStrnBMacStrnMy App (Classic)BCarStrnsssp-client.app BCMOStrnsssp-client.app BSizInt @BMSzInt BSzSStrn4096BMSSStrn2048MDIcStrnBWinStrnsssp-client.exe BMDIInt BL86Strn sssp-client PadnPadn********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpObjsENameStrnApp ContInt paswStrnbClsInt SuprStrn Application bNtrInt bApOInt CompStrnMethGrup nameStrn decodeImage CompStrnsorcGrup  EncoInt srclStrn4Function decodeImage(imageData as string) As picturesrclStrndim gw as GWorldMBS srclStrngw = new GWorldMBS srclStrn%gw.TIFFdata = DecodeBase64(imageData) srclStrnreturn gw.CopyPicture srclStrnsrclStrn End FunctionEndGInt  EncoInt AlasStrnflagInt parmStrnimageData as string rsltStrnpicture EndGInt  PDefGrup$ nameStrnMenuBar PValInt n_EndGInt  VwBhGrup EndGInt  CnstGrup EncoInt nameStrnkFileQuitShortcut typeInt defnStrnflagInt CInsGrup0 pltfInt langInt defnStrnCmd+Q EndGInt  EndGInt  CnstGrup EncoInt nameStrn kFileQuit typeInt defnStrnQuitflagInt CInsGrup0 pltfInt langInt defnStrnE&xit EndGInt  CInsGrup0 pltfInt langInt defnStrnE&xit EndGInt  EndGInt  CnstGrup EncoInt nameStrn kEditClear typeInt defnStrnClear flagInt CInsGrup0 pltfInt langInt defnStrn&Delete EndGInt  CInsGrup0 pltfInt langInt defnStrn&Delete EndGInt  EndGInt  PadnPadn********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpVewi1,NameStrnWindow1 ContInt paswStrnbClsInt SuprStrnWindow bNtrInt CompStrnMnuHGrup nameStrn UntitledMenu0 CompStrnsorcGrupd EncoInt srclStrn#Function UntitledMenu0() As Boolean srclStrnsrclStrn End FunctionEndGInt  EndGInt  MethGrupP nameStrn doConnect CompStrnsorcGrup EncoInt srclStrn-Sub doConnect(host as string,port as integer) srclStrnconn.Address = host srclStrnconn.port = portsrclStrn conn.ConnectsrclStrnEnd Sub EndGInt  EncoInt AlasStrnflagInt parmStrnhost as string,port as integer rsltStrnEndGInt  MethGrup nameStrnaddToTranscript CompStrnsorcGrup| EncoInt srclStrn Sub addToTranscript(t as string)srclStrn transcript.SelText = t+EndOfLinesrclStrnEnd Sub EndGInt  EncoInt AlasStrnflagInt parmStrn t as string rsltStrnEndGInt  MethGrup nameStrn doDisconnectCompStrnsorcGrup EncoInt srclStrnSub doDisconnect() srclStrnconn.Disconnect srclStrnnicklist.DeleteAllRows srclStrnEnd Sub EndGInt  EncoInt AlasStrnflagInt parmStrnrsltStrnEndGInt  MethGrup  nameStrnrefreshUserList CompStrnsorcGrup EncoInt srclStrnSub refreshUserList() srclStrnnicklist.DeleteAllRows srclStrnDim k,v as string srclStrnfor each k in client.keys srclStrnif k.Left(5) = "nick/" then srclStrnv = client.Value(k)srclStrnif v.left(2) = "on" thensrclStrnnicklist.AddRow(k.Mid(6)) srclStrnend srclStrnend srclStrn nicklist.Sort srclStrnNextsrclStrnsrclStrnEnd Sub EndGInt  EncoInt AlasStrnflagInt parmStrnrsltStrnEndGInt  MethGrup nameStrndoWrite CompStrnsorcGrupx EncoInt srclStrnSub doWrite(str as string) srclStrnconn.Write(str+chr(13)+chr(10)) srclStrnEnd Sub EndGInt  EncoInt AlasStrnflagInt !parmStrn str as string rsltStrnEndGInt  MethGrup nameStrndoRequestChangeSet CompStrnsorcGrup EncoInt srclStrnGSub doRequestChangeSet(meta as string, addr as string, value as string) srclStrn meta = "xx" srclStrnYdoWrite("req_c "+meta.replaceall(" ","%20")+" set "+addr.replaceall(" ","%20")+" "+value) srclStrnsrclStrnEnd Sub EndGInt  EncoInt AlasStrnflagInt parmStrn/meta as string, addr as string, value as string rsltStrnEndGInt  MethGrupT nameStrndoRequestChangeDelete CompStrnsorcGrup EncoInt srclStrn9Sub doRequestChangeDelete(meta as string, addr as string) srclStrn&doWrite("req_c "+meta+" delete "+addr) srclStrnsrclStrnEnd Sub EndGInt  EncoInt AlasStrnflagInt parmStrnmeta as string, addr as string rsltStrnEndGInt  MethGrupH nameStrndoHandleDisconnect CompStrnsorcGrup EncoInt srclStrnSub doHandleDisconnect()srclStrn client = nilsrclStrn"self.PushButton1.caption="Connect" srclStrnPlaySpace.Close srclStrn chat.Close srclStrnEnd Sub EndGInt  EncoInt AlasStrnflagInt parmStrnrsltStrnEndGInt  MethGrup nameStrn doSendImage CompStrnsorcGrupP EncoInt srclStrnSub doSendImage(img as picture) srclStrndim g as GWorldMBS srclStrng = new GWorldMBS srclStrnDif client <> nil and img <> nil and g.NewGWorldFromPicture(img) thensrclStrnSdoRequestChangeSet("","nick/"+self.nickname.Text+"/img",EncodeBase64(g.TIFFdata,0)) srclStrnend srclStrnEnd Sub EndGInt  EncoInt AlasStrnflagInt parmStrnimg as picture rsltStrnEndGInt  MethGrup nameStrndoSendBackgroundCompStrnsorcGrup8 EncoInt srclStrn$Sub doSendBackground(img as picture)srclStrndim g as GWorldMBS srclStrng = new GWorldMBS srclStrnDif client <> nil and img <> nil and g.NewGWorldFromPicture(img) thensrclStrn6doRequestChangeSet("","bg",EncodeBase64(g.TIFFdata,0)) srclStrnend srclStrnEnd Sub EndGInt  EncoInt AlasStrnflagInt parmStrnimg as picture rsltStrnEndGInt  PropGrup< EncoInt declStrnclient As ssspClientflagInt EndGInt  PropGrup8 EncoInt declStrnbuffer As stringflagInt EndGInt  PDefGrup0 nameStrnMenuBar PValStrn 460198751 EndGInt  PDefGrup( nameStrn MacProcID PValInt EndGInt  PDefGrup4 nameStrn BalloonHelp EncoInt PValStrnEndGInt  PDefGrup0 nameStrnMinimizeButton PValStrnTrueEndGInt  PDefGrup0 nameStrnMaximizeButton PValStrnTrueEndGInt  PDefGrup, nameStrn LiveResize PValStrnTrueEndGInt  PDefGrup, nameStrn Resizeable PValStrnTrueEndGInt  PDefGrup, nameStrn CloseButton PValStrnTrueEndGInt  PDefGrup0 nameStrnMenuBarVisible PValStrnTrueEndGInt  PDefGrup0 nameStrn FullScreen PValStrnFalse EndGInt  PDefGrup( nameStrnVisible PValStrnTrueEndGInt  PDefGrup< nameStrnTitle EncoInt PValStrn sssp client EndGInt  PDefGrup$ nameStrnBackdropPValStrnEndGInt  PDefGrup( nameStrn BackColor PValInt EndGInt  PDefGrup0 nameStrn HasBackColorPValStrnFalse EndGInt  PDefGrup0 nameStrn Composite PValStrnFalse EndGInt  PDefGrup$ nameStrnFrame PValInt EndGInt  PDefGrup( nameStrn MaxHeight PValInt }EndGInt  PDefGrup$ nameStrnMaxWidthPValInt }EndGInt  PDefGrup( nameStrn MinHeight PValInt @EndGInt  PDefGrup$ nameStrnMinWidthPValInt @EndGInt  PDefGrup$ nameStrnHeight PValInt EndGInt  PDefGrup$ nameStrnWidth PValInt EndGInt  PDefGrup( nameStrn Placement PValInt EndGInt  VwBhGrup l VwPrGrup0 NameStrnNameVsblInt PrGpStrnID EndGInt  VwPrGrup8 NameStrn Interfaces VsblInt PrGpStrnID EndGInt  VwPrGrup4 NameStrnSuper VsblInt PrGpStrnID EndGInt  VwPrGrupL NameStrn Placement VsblInt PrGpStrnPositionPValStrn0 EndGInt  VwPrGrupH NameStrnWidth VsblInt PrGpStrnPositionPValStrn300 EndGInt  VwPrGrupH NameStrnHeight VsblInt PrGpStrnPositionPValStrn300 EndGInt  VwPrGrupH NameStrnMinWidthVsblInt PrGpStrnPositionPValStrn64 EndGInt  VwPrGrupL NameStrn MinHeight VsblInt PrGpStrnPositionPValStrn64 EndGInt  VwPrGrupL NameStrnMaxWidthVsblInt PrGpStrnPositionPValStrn32000 EndGInt  VwPrGrupP NameStrn MaxHeight VsblInt PrGpStrnPositionPValStrn32000 EndGInt  VwPrGrupL NameStrnFrame VsblInt PrGpStrn Appearance PValStrn0 EndGInt  VwPrGrupT NameStrn Composite VsblInt PrGpStrn Appearance PValStrnFalse EndGInt  VwPrGrupT NameStrn HasBackColorVsblInt PrGpStrn Appearance PValStrnFalse EndGInt  VwPrGrupT NameStrn BackColor VsblInt PrGpStrn Appearance PValStrn&hFFFFFFEndGInt  VwPrGrup< NameStrnBackdropVsblInt PrGpStrn Appearance EndGInt  VwPrGrupP NameStrnTitle VsblInt PrGpStrn Appearance PValStrnUntitledEndGInt  VwPrGrupL NameStrnVisible VsblInt PrGpStrn Appearance PValStrnTrueEndGInt  VwPrGrupT NameStrn FullScreen VsblInt PrGpStrn Appearance PValStrnFalse EndGInt  VwPrGrupT NameStrnMenuBarVisible VsblInt PrGpStrn Appearance PValStrnTrueEndGInt  VwPrGrupP NameStrn CloseButton VsblInt PrGpStrn Appearance PValStrnTrueEndGInt  VwPrGrupT NameStrn Resizeable VsblInt PrGpStrn Appearance PValStrnFalse EndGInt  VwPrGrupT NameStrn LiveResize VsblInt PrGpStrn Appearance PValStrnFalse EndGInt  VwPrGrupX NameStrnMaximizeButton VsblInt PrGpStrn Appearance PValStrnFalse EndGInt  VwPrGrupT NameStrnMinimizeButton VsblInt PrGpStrn Appearance PValStrnTrueEndGInt  VwPrGrup@ NameStrn BalloonHelp VsblInt PrGpStrn Appearance EndGInt  VwPrGrupP NameStrn MacProcID VsblInt PrGpStrn Appearance PValStrn0 EndGInt  VwPrGrup< NameStrnMenuBar VsblInt PrGpStrn Appearance EndGInt  EndGInt  CBhvGrupD SuprStrn EditField HInsGrup nameStrnOpenCompStrnsorcGrup EncoInt srclStrn Sub Open() srclStrn(if OSUserName = "Eric Harris-Braun" thensrclStrnme.Text = "127.0.0.1" srclStrnelsesrclStrnme.Text = "hbe.mine.nu" srclStrnend srclStrnEnd Sub EndGInt  EndGInt  EndGInt  CBhvGrup SuprStrn StaticText EndGInt  CBhvGrup SuprStrn EditField EndGInt  CBhvGrup SuprStrn StaticText EndGInt  CBhvGrup@SuprStrn PushButton HInsGrup nameStrnAction CompStrnsorcGrupEncoInt srclStrn Sub Action()srclStrnif me.Caption = "Connect" then srclStrn"doConnect(host.Text,port.text.val) srclStrnelsesrclStrn doDisconnectsrclStrnend srclStrnEnd Sub EndGInt EndGInt EndGInt CBhvGrupSuprStrn EditField EndGInt CBhvGrupSuprStrn TCPSocket HInsGrupnameStrn Connected CompStrnsorcGrupEncoInt srclStrnSub Connected() srclStrn8addToTranscript("connected to server "+me.RemoteAddress)srclStrnclient = new ssspClient srclStrn%self.PushButton1.caption="Disconnect" srclStrn:doRequestChangeSet("","nick/"+self.nickname.Text+"/","on") srclStrnUdoWrite("req_i CLOSE set nick/"+self.nickname.Text.replaceall(" ","%20")+"/"+" off") srclStrndoWrite("req_s ") srclStrnPlaySpace.Show srclStrn chat.Show srclStrnEnd Sub EndGInt EndGInt HInsGrupnameStrn DataAvailable CompStrnsorcGrupEncoInt srclStrnSub DataAvailable() srclStrndim v as string srclStrndim pos as integer srclStrnbuffer = buffer + me.ReadAllsrclStrndo srclStrn#pos = InStr(buffer,chr(13)+chr(10)) srclStrnif pos > 0 then srclStrnv = buffer.left(pos)srclStrnbuffer = Mid(buffer,pos+2) srclStrnaddToTranscript(v.left(80)) srclStrnclient.process(v) srclStrnend srclStrnloop until pos = 0 srclStrnEnd Sub EndGInt EndGInt HInsGrupL nameStrnError CompStrnsorcGrup EncoInt srclStrn Sub Error() srclStrniaddToTranscript("error: "+str(me.LastErrorCode)+" address was:"+me.Address+" and port was:"+str(me.port)) srclStrnif me.IsConnected = false then srclStrndoHandleDisconnect srclStrnend srclStrnEnd Sub EndGInt  EndGInt  EndGInt CBhvGrup< SuprStrn EditField HInsGrup nameStrnOpenCompStrnsorcGrup EncoInt srclStrn Sub Open() srclStrn(if OSUserName = "Eric Harris-Braun" thensrclStrnme.Text = "zippy" srclStrnelsesrclStrnme.Text = OSUserNamesrclStrnend srclStrnEnd Sub EndGInt  EndGInt  EndGInt  CBhvGrupSuprStrn StaticText EndGInt CBhvGrupSuprStrnListBox EndGInt CBhvGrupSuprStrn StaticText EndGInt CBhvGrupPSuprStrn EditField HInsGrupnameStrnKeyDown CompStrnsorcGrupEncoInt srclStrn*Function KeyDown(Key As String) As Boolean srclStrnif key = EndOfLine then srclStrndoWrite(me.Text)srclStrn me.text = ""srclStrn return falsesrclStrnend srclStrn End FunctionEndGInt EndGInt EndGInt CtrlGrup cclsStrn EditField nameStrn EditField PDefGrup8nameStrn InitialParent EncoInt PValStrnEndGInt PDefGrup4nameStrn DataField EncoInt PValStrnEndGInt PDefGrup4nameStrn DataSource EncoInt PValStrnEndGInt PDefGrup(nameStrn Alignment PValInt EndGInt PDefGrup(nameStrn AcceptTabs PValStrnEndGInt PDefGrup(nameStrn LimitText PValInt EndGInt PDefGrup$nameStrnReadOnlyPValStrnEndGInt PDefGrup,nameStrnMaskEncoInt PValStrnEndGInt PDefGrup8nameStrnTextEncoInt PValStrn 127.0.0.1 EndGInt PDefGrup(nameStrn Underline PValStrnEndGInt PDefGrup$nameStrnItalic PValStrnEndGInt PDefGrup  nameStrnBoldPValStrnEndGInt  PDefGrup$!nameStrnTextSizePValInt EndGInt !PDefGrup8"nameStrnTextFontEncoInt PValStrnSystem EndGInt "PDefGrup0#nameStrnAutoDeactivate PValStrnTrueEndGInt #PDefGrup0$nameStrnHelpTag EncoInt PValStrnEndGInt $PDefGrup(%nameStrnVisible PValStrnTrueEndGInt %PDefGrup0&nameStrnFormat EncoInt PValStrnEndGInt &PDefGrup('nameStrnEnabled PValStrnTrueEndGInt 'PDefGrup((nameStrn BackColor PValInt EndGInt (PDefGrup()nameStrn TextColor PValInt EndGInt )PDefGrup,*nameStrn UseFocusRingPValStrnTrueEndGInt *PDefGrup$+nameStrnPasswordPValStrnEndGInt +PDefGrup$,nameStrnStyled PValStrnEndGInt ,PDefGrup4-nameStrnScrollbarVertical PValStrnTrueEndGInt -PDefGrup0.nameStrnScrollbarHorizontal PValStrnEndGInt .PDefGrup(/nameStrn Multiline PValStrnEndGInt /PDefGrup(0nameStrnBorder PValStrnTrueEndGInt 0PDefGrup,1nameStrn TabPanelIndex PValInt EndGInt 1PDefGrup(2nameStrn LockBottom PValStrnEndGInt 2PDefGrup(3nameStrn LockRight PValStrnEndGInt 3PDefGrup$4nameStrnLockTop PValStrnEndGInt 4PDefGrup$5nameStrnLockLeftPValStrnEndGInt 5PDefGrup$6nameStrnHeight PValInt EndGInt 6PDefGrup$7nameStrnWidth PValInt PEndGInt 7PDefGrup 8nameStrnTop PValInt EndGInt 8PDefGrup 9nameStrnLeftPValInt TEndGInt 9PDefGrup8:nameStrn ControlOrderEncoInt PValStrn0 EndGInt :PDefGrup<;nameStrnSuper EncoInt PValStrn EditField EndGInt ;PDefGrup$cclsStrn StaticText nameStrn StaticText PDefGrup8?nameStrn InitialParent EncoInt PValStrnEndGInt ?PDefGrup4@nameStrn DataField EncoInt PValStrnEndGInt @PDefGrup4AnameStrn DataSource EncoInt PValStrnEndGInt APDefGrup(BnameStrn Underline PValStrnEndGInt BPDefGrup$CnameStrnItalic PValStrnEndGInt CPDefGrup DnameStrnBoldPValStrnEndGInt DPDefGrup$EnameStrnTextSizePValInt EndGInt EPDefGrup8FnameStrnTextFontEncoInt PValStrnSystem EndGInt FPDefGrup0GnameStrnAutoDeactivate PValStrnTrueEndGInt GPDefGrup0HnameStrnHelpTag EncoInt PValStrnEndGInt HPDefGrup(InameStrnVisible PValStrnTrueEndGInt IPDefGrup(JnameStrnEnabled PValStrnTrueEndGInt JPDefGrup(KnameStrn Multiline PValStrnEndGInt KPDefGrup(LnameStrn TextColor PValInt EndGInt LPDefGrup(MnameStrn TextAlign PValInt EndGInt MPDefGrup4NnameStrnTextEncoInt PValStrnServer: EndGInt NPDefGrup,OnameStrn TabPanelIndex PValInt EndGInt OPDefGrup(PnameStrn LockBottom PValStrnEndGInt PPDefGrup(QnameStrn LockRight PValStrnEndGInt QPDefGrup$RnameStrnLockTop PValStrnEndGInt RPDefGrup$SnameStrnLockLeftPValStrnEndGInt SPDefGrup$TnameStrnHeight PValInt EndGInt TPDefGrup$UnameStrnWidth PValInt 6EndGInt UPDefGrup VnameStrnTop PValInt EndGInt VPDefGrup WnameStrnLeftPValInt EndGInt WPDefGrup8XnameStrn ControlOrderEncoInt PValStrn1 EndGInt XPDefGrup<YnameStrnSuper EncoInt PValStrn StaticText EndGInt YPDefGrup$ZnameStrnIndex PValInt EndGInt ZPDefGrup8[nameStrnNameEncoInt PValStrn StaticText1 EndGInt [CBixInt EndGInt >CtrlGrup \cclsStrn EditField nameStrn EditField PDefGrup8]nameStrn InitialParent EncoInt PValStrnEndGInt ]PDefGrup4^nameStrn DataField EncoInt PValStrnEndGInt ^PDefGrup4_nameStrn DataSource EncoInt PValStrnEndGInt _PDefGrup(`nameStrn Alignment PValInt EndGInt `PDefGrup(anameStrn AcceptTabs PValStrnEndGInt aPDefGrup(bnameStrn LimitText PValInt EndGInt bPDefGrup$cnameStrnReadOnlyPValStrnEndGInt cPDefGrup,dnameStrnMaskEncoInt PValStrnEndGInt dPDefGrup0enameStrnTextEncoInt PValStrn8080EndGInt ePDefGrup(fnameStrn Underline PValStrnEndGInt fPDefGrup$gnameStrnItalic PValStrnEndGInt gPDefGrup hnameStrnBoldPValStrnEndGInt hPDefGrup$inameStrnTextSizePValInt EndGInt iPDefGrup8jnameStrnTextFontEncoInt PValStrnSystem EndGInt jPDefGrup0knameStrnAutoDeactivate PValStrnTrueEndGInt kPDefGrup0lnameStrnHelpTag EncoInt PValStrnEndGInt lPDefGrup(mnameStrnVisible PValStrnTrueEndGInt mPDefGrup0nnameStrnFormat EncoInt PValStrnEndGInt nPDefGrup(onameStrnEnabled PValStrnTrueEndGInt oPDefGrup(pnameStrn BackColor PValInt EndGInt pPDefGrup(qnameStrn TextColor PValInt EndGInt qPDefGrup,rnameStrn UseFocusRingPValStrnTrueEndGInt rPDefGrup$snameStrnPasswordPValStrnEndGInt sPDefGrup$tnameStrnStyled PValStrnEndGInt tPDefGrup4unameStrnScrollbarVertical PValStrnTrueEndGInt uPDefGrup0vnameStrnScrollbarHorizontal PValStrnEndGInt vPDefGrup(wnameStrn Multiline PValStrnEndGInt wPDefGrup(xnameStrnBorder PValStrnTrueEndGInt xPDefGrup,ynameStrn TabPanelIndex PValInt EndGInt yPDefGrup(znameStrn LockBottom PValStrnEndGInt zPDefGrup({nameStrn LockRight PValStrnEndGInt {PDefGrup$|nameStrnLockTop PValStrnEndGInt |PDefGrup$}nameStrnLockLeftPValStrnEndGInt }PDefGrup$~nameStrnHeight PValInt EndGInt ~PDefGrup$nameStrnWidth PValInt PEndGInt PDefGrup nameStrnTop PValInt EndGInt PDefGrup nameStrnLeftPValInt EndGInt PDefGrup8nameStrn ControlOrderEncoInt PValStrn2 EndGInt PDefGrup<nameStrnSuper EncoInt PValStrn EditField EndGInt PDefGrup$nameStrnIndex PValInt EndGInt PDefGrup0nameStrnNameEncoInt PValStrnportEndGInt CBixInt EndGInt \CtrlGrupcclsStrn StaticText nameStrn StaticText PDefGrup8nameStrn InitialParent EncoInt PValStrnEndGInt PDefGrup4nameStrn DataField EncoInt PValStrnEndGInt PDefGrup4nameStrn DataSource EncoInt PValStrnEndGInt PDefGrup(nameStrn Underline PValStrnEndGInt PDefGrup$nameStrnItalic PValStrnEndGInt PDefGrup nameStrnBoldPValStrnEndGInt PDefGrup$nameStrnTextSizePValInt EndGInt PDefGrup8nameStrnTextFontEncoInt PValStrnSystem EndGInt PDefGrup0nameStrnAutoDeactivate PValStrnTrueEndGInt PDefGrup0nameStrnHelpTag EncoInt PValStrnEndGInt PDefGrup(nameStrnVisible PValStrnTrueEndGInt PDefGrup(nameStrnEnabled PValStrnTrueEndGInt PDefGrup(nameStrn Multiline PValStrnEndGInt PDefGrup(nameStrn TextColor PValInt EndGInt PDefGrup(nameStrn TextAlign PValInt EndGInt PDefGrup4nameStrnTextEncoInt PValStrnPort: EndGInt PDefGrup,nameStrn TabPanelIndex PValInt EndGInt PDefGrup(nameStrn LockBottom PValStrnEndGInt PDefGrup(nameStrn LockRight PValStrnEndGInt PDefGrup$nameStrnLockTop PValStrnEndGInt PDefGrup$nameStrnLockLeftPValStrnEndGInt PDefGrup$nameStrnHeight PValInt EndGInt PDefGrup$nameStrnWidth PValInt #EndGInt PDefGrup nameStrnTop PValInt EndGInt PDefGrup nameStrnLeftPValInt EndGInt PDefGrup8nameStrn ControlOrderEncoInt PValStrn3 EndGInt PDefGrup<nameStrnSuper EncoInt PValStrn StaticText EndGInt PDefGrup$nameStrnIndex PValInt EndGInt PDefGrup8nameStrnNameEncoInt PValStrn StaticText2 EndGInt CBixInt EndGInt CtrlGrupcclsStrn PushButton nameStrn PushButton PDefGrup8nameStrn InitialParent EncoInt PValStrnEndGInt PDefGrup(nameStrn Underline PValStrnEndGInt PDefGrup$nameStrnItalic PValStrnEndGInt PDefGrup nameStrnBoldPValStrnEndGInt PDefGrup$nameStrnTextSizePValInt EndGInt PDefGrup8nameStrnTextFontEncoInt PValStrnSystem EndGInt PDefGrup0nameStrnAutoDeactivate PValStrnTrueEndGInt PDefGrup0nameStrnHelpTag EncoInt PValStrnEndGInt PDefGrup(nameStrnVisible PValStrnTrueEndGInt PDefGrup(nameStrnEnabled PValStrnTrueEndGInt PDefGrup$nameStrnCancel PValStrnEndGInt PDefGrup$nameStrnDefault PValStrnEndGInt PDefGrup8nameStrnCaption EncoInt PValStrnConnect EndGInt PDefGrup,nameStrn TabPanelIndex PValInt EndGInt PDefGrup(nameStrn LockBottom PValStrnEndGInt PDefGrup(nameStrn LockRight PValStrnEndGInt PDefGrup$nameStrnLockTop PValStrnEndGInt PDefGrup$nameStrnLockLeftPValStrnEndGInt PDefGrup$nameStrnHeight PValInt EndGInt PDefGrup$nameStrnWidth PValInt bEndGInt PDefGrup nameStrnTop PValInt EndGInt PDefGrup nameStrnLeftPValInt nameStrn DataField EncoInt PValStrnEndGInt >PDefGrup4?nameStrn DataSource EncoInt PValStrnEndGInt ?PDefGrup,@nameStrnColumnsResizablePValStrnEndGInt @PDefGrup,AnameStrn SelectionType PValInt EndGInt APDefGrup0BnameStrnRequiresSelection PValStrnEndGInt BPDefGrup0CnameStrnEnableDragReorder PValStrnEndGInt CPDefGrup0DnameStrn EnableDrag PValStrnFalse EndGInt DPDefGrup(EnameStrn HierarchicalPValStrnEndGInt EPDefGrup(FnameStrn Underline PValStrnEndGInt FPDefGrup$GnameStrnItalic PValStrnEndGInt GPDefGrup HnameStrnBoldPValStrnEndGInt HPDefGrup$InameStrnTextSizePValInt EndGInt IPDefGrup8JnameStrnTextFontEncoInt PValStrnSystem EndGInt JPDefGrup,KnameStrnDefaultRowHeightPValInt EndGInt KPDefGrup0LnameStrnGridLinesVertical PValInt EndGInt LPDefGrup0MnameStrnGridLinesHorizontal PValInt EndGInt MPDefGrup4NnameStrnScrollBarVertical PValStrnTrueEndGInt NPDefGrup0OnameStrnScrollbarHorizontal PValStrnEndGInt OPDefGrup(PnameStrn HeadingIndexPValInt EndGInt PPDefGrup4QnameStrn InitialValueEncoInt PValStrnEndGInt QPDefGrup,RnameStrn UseFocusRingPValStrnTrueEndGInt RPDefGrup(SnameStrn HasHeading PValStrnEndGInt SPDefGrup4TnameStrn ColumnWidthsEncoInt PValStrnEndGInt TPDefGrup(UnameStrn ColumnCount PValInt EndGInt UPDefGrup(VnameStrnEnabled PValStrnTrueEndGInt VPDefGrup0WnameStrnAutoDeactivate PValStrnTrueEndGInt WPDefGrup0XnameStrnHelpTag EncoInt PValStrnEndGInt XPDefGrup(YnameStrnVisible PValStrnTrueEndGInt YPDefGrup,ZnameStrn TabPanelIndex PValInt EndGInt ZPDefGrup,[nameStrn LockBottom PValStrnTrueEndGInt [PDefGrup,\nameStrn LockRight PValStrnTrueEndGInt \PDefGrup(]nameStrnLockTop PValStrnTrueEndGInt ]PDefGrup(^nameStrnLockLeftPValStrnTrueEndGInt ^PDefGrup$_nameStrnHeight PValInt EndGInt _PDefGrup$`nameStrnWidth PValInt EndGInt `PDefGrup anameStrnTop PValInt TEndGInt aPDefGrup bnameStrnLeftPValInt kEndGInt bPDefGrup8cnameStrn ControlOrderEncoInt PValStrn9 EndGInt cPDefGrup8dnameStrnSuper EncoInt PValStrnListBox EndGInt dPDefGrup$enameStrnIndex PValInt EndGInt ePDefGrup4fnameStrnNameEncoInt PValStrnnicklistEndGInt fCBixInt EndGInt  nil thensrclStrni = i.BitmapMBS srclStrnend srclStrnreturn isrclStrn End FunctionEndGInt EncoInt AlasStrnflagInt parmStrnobj as DragItem rsltStrnpicture EndGInt MethGrup<nameStrn setBackground CompStrnsorcGrupEncoInt srclStrn$Sub setBackground(imgData as string)srclStrn)space.Backdrop = app.decodeImage(imgData) srclStrn space.Refresh srclStrnEnd Sub EndGInt EncoInt AlasStrnflagInt parmStrnimgData as string rsltStrnEndGInt MethGrupnameStrnssspSet CompStrnsorcGrup<EncoInt srclStrn0 thensrclStrnname = addr.Left(i-1) srclStrnextra = addr.Mid(i+1) srclStrnelsesrclStrn name = addr srclStrnend srclStrnif avatars.HasKey(name) thensrclStrnDMsgBox("whoa! avatar allready exists, I shouldn't be being called!")srclStrna = avatars.value(name) srclStrnelsesrclStrna = new avatar(space,name) srclStrnavatars.Value(addr) = a srclStrnend srclStrn"a.ssspSet(prefix+name,extra,value) srclStrnend srclStrnEnd Sub EndGInt EncoInt AlasStrnflagInt parmStrn/prefix as string,addr as string,value as string rsltStrnEndGInt PropGrup@EncoInt declStrnavatars As dictionary flagInt EndGInt PDefGrup$nameStrnMenuBar PValStrnEndGInt PDefGrup(nameStrn MacProcID PValInt EndGInt PDefGrup4nameStrn BalloonHelp EncoInt PValStrnEndGInt PDefGrup0nameStrnMinimizeButton PValStrnTrueEndGInt PDefGrup0nameStrnMaximizeButton PValStrnTrueEndGInt PDefGrup,nameStrn LiveResize PValStrnTrueEndGInt PDefGrup,nameStrn Resizeable PValStrnTrueEndGInt PDefGrup,nameStrn CloseButton PValStrnTrueEndGInt PDefGrup0nameStrnMenuBarVisible PValStrnTrueEndGInt PDefGrup0nameStrn FullScreen PValStrnFalse EndGInt PDefGrup(nameStrnVisible PValStrnTrueEndGInt PDefGrup<nameStrnTitle EncoInt PValStrn PlaySpace EndGInt PDefGrup$nameStrnBackdropPValStrnEndGInt PDefGrup(nameStrn BackColor PValInt EndGInt PDefGrup0nameStrn HasBackColorPValStrnFalse EndGInt PDefGrup0nameStrn Composite PValStrnFalse EndGInt PDefGrup$nameStrnFrame PValInt EndGInt PDefGrup(nameStrn MaxHeight PValInt }EndGInt PDefGrup$nameStrnMaxWidthPValInt }EndGInt PDefGrup(nameStrn MinHeight PValInt @EndGInt PDefGrup$nameStrnMinWidthPValInt @EndGInt PDefGrup$nameStrnHeight PValInt EndGInt PDefGrup$nameStrnWidth PValInt EndGInt PDefGrup(nameStrn Placement PValInt EndGInt VwBhGrup lVwPrGrup0NameStrnNameVsblInt PrGpStrnID EndGInt VwPrGrup8NameStrn Interfaces VsblInt PrGpStrnID EndGInt VwPrGrup4NameStrnSuper VsblInt PrGpStrnID EndGInt VwPrGrupLNameStrn Placement VsblInt PrGpStrnPositionPValStrn0 EndGInt VwPrGrupHNameStrnWidth VsblInt PrGpStrnPositionPValStrn300 EndGInt VwPrGrupHNameStrnHeight VsblInt PrGpStrnPositionPValStrn300 EndGInt VwPrGrupHNameStrnMinWidthVsblInt PrGpStrnPositionPValStrn64 EndGInt VwPrGrupLNameStrn MinHeight VsblInt PrGpStrnPositionPValStrn64 EndGInt VwPrGrupLNameStrnMaxWidthVsblInt PrGpStrnPositionPValStrn32000 EndGInt VwPrGrupPNameStrn MaxHeight VsblInt PrGpStrnPositionPValStrn32000 EndGInt VwPrGrupLNameStrnFrame VsblInt PrGpStrn Appearance PValStrn0 EndGInt VwPrGrupTNameStrn Composite VsblInt PrGpStrn Appearance PValStrnFalse EndGInt VwPrGrupTNameStrn HasBackColorVsblInt PrGpStrn Appearance PValStrnFalse EndGInt VwPrGrupTNameStrn BackColor VsblInt PrGpStrn Appearance PValStrn&hFFFFFFEndGInt VwPrGrup<NameStrnBackdropVsblInt PrGpStrn Appearance EndGInt VwPrGrupPNameStrnTitle VsblInt PrGpStrn Appearance PValStrnUntitledEndGInt VwPrGrupLNameStrnVisible VsblInt PrGpStrn Appearance PValStrnTrueEndGInt VwPrGrupTNameStrn FullScreen VsblInt PrGpStrn Appearance PValStrnFalse EndGInt VwPrGrupT NameStrnMenuBarVisible VsblInt PrGpStrn Appearance PValStrnTrueEndGInt  VwPrGrupP NameStrn CloseButton VsblInt PrGpStrn Appearance PValStrnTrueEndGInt  VwPrGrupT NameStrn Resizeable VsblInt PrGpStrn Appearance PValStrnFalse EndGInt  VwPrGrupT NameStrn LiveResize VsblInt PrGpStrn Appearance PValStrnFalse EndGInt  VwPrGrupX NameStrnMaximizeButton VsblInt PrGpStrn Appearance PValStrnFalse EndGInt  VwPrGrupTNameStrnMinimizeButton VsblInt PrGpStrn Appearance PValStrnTrueEndGInt VwPrGrup@NameStrn BalloonHelp VsblInt PrGpStrn Appearance EndGInt VwPrGrupPNameStrn MacProcID VsblInt PrGpStrn Appearance PValStrn0 EndGInt VwPrGrup<NameStrnMenuBar VsblInt PrGpStrn Appearance EndGInt EndGInt CBhvGrup<SuprStrn EditField HInsGrupnameStrnKeyDown CompStrnsorcGrupEncoInt srclStrn*Function KeyDown(Key As String) As Boolean srclStrnif key = EndOfLine then srclStrndoUpdateTitleText srclStrn return falsesrclStrnend srclStrn End FunctionEndGInt EndGInt EndGInt CBhvGrupSuprStrn StaticText EndGInt CBhvGrupSuprStrn PushButton HInsGrupnameStrnAction CompStrnsorcGrup\EncoInt srclStrn Sub Action()srclStrndoUpdateTitleText srclStrnEnd Sub EndGInt EndGInt EndGInt CBhvGrupSuprStrn ImageWell HInsGrupnameStrnOpenCompStrnsorcGrupEncoInt srclStrn Sub Open() srclStrnme.AcceptPictureDropsrclStrn Me.AcceptFileDrop("image/x-bmp")srclStrnMe.AcceptFileDrop("image/png") srclStrnEnd Sub EndGInt EndGInt HInsGruppnameStrn DropObject CompStrnsorcGrup0EncoInt srclStrnSub DropObject(obj As DragItem) srclStrndim i as PicturesrclStrni = handleDropImage(obj)srclStrnif i <> nil thensrclStrni = i.MakeThumbnailPictureMBS srclStrn me.Image = isrclStrnwindow1.doSendImage(i) srclStrnend srclStrnsrclStrnEnd Sub EndGInt EndGInt EndGInt CBhvGrupSuprStrn Rectangle EndGInt CBhvGrupSuprStrnCanvas HInsGrup nameStrn MouseMove CompStrnsorcGrup!EncoInt srclStrn)Sub MouseMove(X As Integer, Y As Integer) srclStrnif System.MouseDown thensrclStrndoUpdatePos(x,y)srclStrnend srclStrnEnd Sub EndGInt !EndGInt  HInsGrup"nameStrnPaint CompStrnsorcGrupP#EncoInt srclStrnSub Paint(g As Graphics)srclStrndim a as avatar srclStrn'g.ForeColor=&cffffff srclStrn#'g.FillRect(0,0,me.Width,me.Height) srclStrn1'g.DrawPicture(background,0,0,me.Width,me.Height) srclStrnsrclStrnFor Each a In avatars.ValuessrclStrna.draw srclStrnNextsrclStrnEnd Sub EndGInt #EndGInt "HInsGrup$nameStrnOpenCompStrnsorcGrup%EncoInt srclStrn Sub Open() srclStrnme.AcceptPictureDropsrclStrn Me.AcceptFileDrop("image/x-bmp")srclStrnMe.AcceptFileDrop("image/png") srclStrnEnd Sub EndGInt %EndGInt $HInsGrup0&nameStrn DropObject CompStrnsorcGrup'EncoInt srclStrnSub DropObject(obj As DragItem) srclStrndim i as PicturesrclStrni = handleDropImage(obj)srclStrnif i <> nil thensrclStrnwindow1.doSendBackground(i) srclStrnend srclStrnsrclStrnEnd Sub EndGInt 'EndGInt &HInsGrup(nameStrn MouseDown CompStrnsorcGrup)EncoInt srclStrn9Function MouseDown(X As Integer, Y As Integer) As Boolean srclStrndoUpdatePos(x,y)srclStrnsrclStrn End FunctionEndGInt )EndGInt (EndGInt CtrlGrup*cclsStrn Rectangle nameStrn Rectangle PDefGrup8+nameStrn InitialParent EncoInt PValStrnEndGInt +PDefGrup,,nameStrnBottomRightColorPValInt EndGInt ,PDefGrup(-nameStrn TopLeftColorPValInt EndGInt -PDefGrup(.nameStrn BorderWidth PValInt EndGInt .PDefGrup(/nameStrn FillColor PValInt EndGInt /PDefGrup(0nameStrnEnabled PValStrnTrueEndGInt 0PDefGrup01nameStrnAutoDeactivate PValStrnTrueEndGInt 1PDefGrup02nameStrnHelpTag EncoInt PValStrnEndGInt 2PDefGrup(3nameStrnVisible PValStrnTrueEndGInt 3PDefGrup,4nameStrn TabPanelIndex PValInt EndGInt 4PDefGrup,5nameStrn LockBottom PValStrnTrueEndGInt 5PDefGrup,6nameStrn LockRight PValStrnTrueEndGInt 6PDefGrup(7nameStrnLockTop PValStrnTrueEndGInt 7PDefGrup(8nameStrnLockLeftPValStrnTrueEndGInt 8PDefGrup$9nameStrnHeight PValInt EndGInt 9PDefGrup$:nameStrnWidth PValInt EndGInt :PDefGrup ;nameStrnTop PValInt GEndGInt ;PDefGrup nameStrnSuper EncoInt PValStrn Rectangle EndGInt >PDefGrup$?nameStrnIndex PValInt EndGInt ?PDefGrup8@nameStrnNameEncoInt PValStrn Rectangle1 EndGInt @CBixInt EndGInt *CtrlGrup AcclsStrn EditField nameStrn EditField PDefGrup8BnameStrn InitialParent EncoInt PValStrnEndGInt BPDefGrup4CnameStrn DataField EncoInt PValStrnEndGInt CPDefGrup4DnameStrn DataSource EncoInt PValStrnEndGInt DPDefGrup(EnameStrn Alignment PValInt EndGInt EPDefGrup(FnameStrn AcceptTabs PValStrnEndGInt FPDefGrup(GnameStrn LimitText PValInt EndGInt GPDefGrup$HnameStrnReadOnlyPValStrnEndGInt HPDefGrup,InameStrnMaskEncoInt PValStrnEndGInt IPDefGrup,JnameStrnTextEncoInt PValStrnEndGInt JPDefGrup(KnameStrn Underline PValStrnEndGInt KPDefGrup$LnameStrnItalic PValStrnEndGInt LPDefGrup MnameStrnBoldPValStrnEndGInt MPDefGrup$NnameStrnTextSizePValInt EndGInt NPDefGrup8OnameStrnTextFontEncoInt PValStrnSystem EndGInt OPDefGrup0PnameStrnAutoDeactivate PValStrnTrueEndGInt PPDefGrup0QnameStrnHelpTag EncoInt PValStrnEndGInt QPDefGrup(RnameStrnVisible PValStrnTrueEndGInt RPDefGrup0SnameStrnFormat EncoInt PValStrnEndGInt SPDefGrup(TnameStrnEnabled PValStrnTrueEndGInt TPDefGrup(UnameStrn BackColor PValInt EndGInt UPDefGrup(VnameStrn TextColor PValInt EndGInt VPDefGrup,WnameStrn UseFocusRingPValStrnTrueEndGInt WPDefGrup$XnameStrnPasswordPValStrnEndGInt XPDefGrup$YnameStrnStyled PValStrnEndGInt YPDefGrup4ZnameStrnScrollbarVertical PValStrnTrueEndGInt ZPDefGrup0[nameStrnScrollbarHorizontal PValStrnEndGInt [PDefGrup(\nameStrn Multiline PValStrnEndGInt \PDefGrup(]nameStrnBorder PValStrnTrueEndGInt ]PDefGrup,^nameStrn TabPanelIndex PValInt EndGInt ^PDefGrup0_nameStrn LockBottom PValStrnFalse EndGInt _PDefGrup(`nameStrn LockRight PValStrnEndGInt `PDefGrup$anameStrnLockTop PValStrnEndGInt aPDefGrup$bnameStrnLockLeftPValStrnEndGInt bPDefGrup$cnameStrnHeight PValInt EndGInt cPDefGrup$dnameStrnWidth PValInt EndGInt dPDefGrup enameStrnTop PValInt EndGInt ePDefGrup fnameStrnLeftPValInt jEndGInt fPDefGrup8gnameStrn ControlOrderEncoInt PValStrn1 EndGInt gPDefGrup<hnameStrnSuper EncoInt PValStrn EditField EndGInt hPDefGrup$inameStrnIndex PValInt EndGInt iPDefGrup0jnameStrnNameEncoInt PValStrnwordEndGInt jCBixInt EndGInt ACtrlGrupkcclsStrn StaticText nameStrn StaticText PDefGrup8lnameStrn InitialParent EncoInt PValStrnEndGInt lPDefGrup4mnameStrn DataField EncoInt PValStrnEndGInt mPDefGrup4nnameStrn DataSource EncoInt PValStrnEndGInt nPDefGrup(onameStrn Underline PValStrnEndGInt oPDefGrup$pnameStrnItalic PValStrnEndGInt pPDefGrup qnameStrnBoldPValStrnEndGInt qPDefGrup$rnameStrnTextSizePValInt EndGInt rPDefGrup8snameStrnTextFontEncoInt PValStrnSystem EndGInt sPDefGrup0tnameStrnAutoDeactivate PValStrnTrueEndGInt tPDefGrup0unameStrnHelpTag EncoInt PValStrnEndGInt uPDefGrup(vnameStrnVisible PValStrnTrueEndGInt vPDefGrup(wnameStrnEnabled PValStrnTrueEndGInt wPDefGrup(xnameStrn Multiline PValStrnEndGInt xPDefGrup(ynameStrn TextColor PValInt EndGInt yPDefGrup(znameStrn TextAlign PValInt EndGInt zPDefGrup8{nameStrnTextEncoInt PValStrn Title Text: EndGInt {PDefGrup,|nameStrn TabPanelIndex PValInt EndGInt |PDefGrup0}nameStrn LockBottom PValStrnFalse EndGInt }PDefGrup(~nameStrn LockRight PValStrnEndGInt ~PDefGrup$nameStrnLockTop PValStrnEndGInt PDefGrup$nameStrnLockLeftPValStrnEndGInt PDefGrup$nameStrnHeight PValInt EndGInt PDefGrup$nameStrnWidth PValInt AEndGInt PDefGrup nameStrnTop PValInt EndGInt PDefGrup nameStrnLeftPValInt EndGInt PDefGrup8nameStrn ControlOrderEncoInt PValStrn2 EndGInt PDefGrup<nameStrnSuper EncoInt PValStrn StaticText EndGInt PDefGrup$nameStrnIndex PValInt EndGInt PDefGrup8nameStrnNameEncoInt PValStrn StaticText1 EndGInt CBixInt EndGInt kCtrlGrupHcclsStrnCanvas nameStrnCanvas PDefGrupDnameStrn InitialParent EncoInt PValStrn Rectangle1 EndGInt PDefGrup0nameStrnEraseBackground PValStrnTrueEndGInt PDefGrup(nameStrn AcceptTabs PValStrnEndGInt PDefGrup(nameStrn AcceptFocus PValStrnEndGInt PDefGrup$nameStrnBackdropPValStrnEndGInt PDefGrup,nameStrn UseFocusRingPValStrnTrueEndGInt PDefGrup(nameStrnEnabled PValStrnTrueEndGInt PDefGrup0nameStrnAutoDeactivate PValStrnTrueEndGInt PDefGrup0nameStrnHelpTag EncoInt PValStrnEndGInt PDefGrup(nameStrnVisible PValStrnTrueEndGInt PDefGrup,nameStrn TabPanelIndex PValInt EndGInt PDefGrup,nameStrn LockBottom PValStrnTrueEndGInt PDefGrup,nameStrn LockRight PValStrnTrueEndGInt PDefGrup(nameStrnLockTop PValStrnTrueEndGInt PDefGrup(nameStrnLockLeftPValStrnTrueEndGInt PDefGrup$nameStrnHeight PValInt EndGInt PDefGrup$nameStrnWidth PValInt EndGInt PDefGrup nameStrnTop PValInt IEndGInt PDefGrup nameStrnLeftPValInt EndGInt PDefGrup8nameStrn ControlOrderEncoInt PValStrn3 EndGInt PDefGrup8nameStrnSuper EncoInt PValStrnCanvas EndGInt PDefGrup$nameStrnIndex PValInt EndGInt PDefGrup4nameStrnNameEncoInt PValStrnspace EndGInt CBixInt EndGInt CtrlGrupcclsStrn PushButton nameStrn PushButton PDefGrup8nameStrn InitialParent EncoInt PValStrnEndGInt PDefGrup(nameStrn Underline PValStrnEndGInt PDefGrup$nameStrnItalic PValStrnEndGInt PDefGrup nameStrnBoldPValStrnEndGInt PDefGrup$nameStrnTextSizePValInt EndGInt PDefGrup8nameStrnTextFontEncoInt PValStrnSystem EndGInt PDefGrup0nameStrnAutoDeactivate PValStrnTrueEndGInt PDefGrup0nameStrnHelpTag EncoInt PValStrnEndGInt PDefGrup(nameStrnVisible PValStrnTrueEndGInt PDefGrup(nameStrnEnabled PValStrnTrueEndGInt PDefGrup$nameStrnCancel PValStrnEndGInt PDefGrup$nameStrnDefault PValStrnEndGInt PDefGrup8nameStrnCaption EncoInt PValStrnUpdate EndGInt PDefGrup,nameStrn TabPanelIndex PValInt EndGInt PDefGrup(nameStrn LockBottom PValStrnEndGInt PDefGrup(nameStrn LockRight PValStrnEndGInt PDefGrup$nameStrnLockTop PValStrnEndGInt PDefGrup$nameStrnLockLeftPValStrnEndGInt PDefGrup$nameStrnHeight PValInt EndGInt PDefGrup$nameStrnWidth PValInt PEndGInt PDefGrup nameStrnTop PValInt EndGInt PDefGrup nameStrnLeftPValInt EndGInt PDefGrup8nameStrn ControlOrderEncoInt PValStrn4 EndGInt PDefGrup<nameStrnSuper EncoInt PValStrn PushButton EndGInt PDefGrup$nameStrnIndex PValInt EndGInt PDefGrup8nameStrnNameEncoInt PValStrn PushButton1 EndGInt CBixInt EndGInt CtrlGrup<cclsStrn ImageWell nameStrn ImageWell PDefGrup$nameStrnImage PValStrnEndGInt PDefGrup(nameStrnEnabled PValStrnTrueEndGInt PDefGrup0nameStrnAutoDeactivate PValStrnTrueEndGInt PDefGrup0nameStrnHelpTag EncoInt PValStrnEndGInt PDefGrup(nameStrnVisible PValStrnTrueEndGInt PDefGrup8nameStrn InitialParent EncoInt PValStrnEndGInt PDefGrup,nameStrn TabPanelIndex PValInt EndGInt PDefGrup(nameStrn LockBottom PValStrnEndGInt PDefGrup,nameStrn LockRight PValStrnTrueEndGInt PDefGrup,nameStrnLockTop PValStrnFalse EndGInt PDefGrup$nameStrnLockLeftPValStrnEndGInt PDefGrup$nameStrnHeight PValInt 0EndGInt PDefGrup$nameStrnWidth PValInt 0EndGInt PDefGrup nameStrnTop PValInt EndGInt PDefGrup nameStrnLeftPValInt EndGInt PDefGrup8nameStrn ControlOrderEncoInt PValStrn5 EndGInt PDefGrup<nameStrnSuper EncoInt PValStrn ImageWell EndGInt PDefGrup$nameStrnIndex PValInt EndGInt PDefGrup8nameStrnNameEncoInt PValStrn ImageWell1 EndGInt CBixInt EndGInt PadnPadn@****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpObj3NameStrnavatar ContInt paswStrnbClsInt IntrStrn ssspHandler bNtrInt CompStrnMethGrupnameStrn constructor CompStrnsorcGrup(EncoInt srclStrn(Sub constructor(s as canvas,n as string)srclStrn space = s srclStrng = s.Graphics srclStrnname = nsrclStrn updateWidthssrclStrnx=20srclStrny=20srclStrn5Window1.client.registerHandler("nick/"+name+"/",self) srclStrnsrclStrnEnd Sub EndGInt EncoInt AlasStrnflagInt parmStrns as canvas,n as string rsltStrnEndGInt MethGrupnameStrndrawCompStrnsorcGrup EncoInt srclStrn Sub draw() srclStrn$'erase the text string area to whitesrclStrng.ForeColor=&cffffffsrclStrn/g.FillRect(x-2,y-g.TextHeight,width+4,height+4) srclStrnsrclStrnif not present then srclStrng.ForeColor=&cFF0000srclStrnelsesrclStrng.ForeColor=&c000000srclStrnend srclStrng.DrawString(getTitle,x,y) srclStrn/g.DrawRect(x-2,y-g.TextHeight,width+4,height+4) srclStrnif img <> nil then srclStrng.DrawPicture(img,x,y+3)srclStrnend srclStrnEnd Sub EndGInt EncoInt AlasStrnflagInt parmStrnrsltStrnEndGInt MethGruptnameStrnerase CompStrnsorcGrupEncoInt srclStrn Sub erase() srclStrng.ForeColor=&cffffffsrclStrn/g.FillRect(x-2,y-g.TextHeight,width+4,height+4) srclStrnif img <> nil then srclStrn&g.FillRect(x,y+3,img.Width,img.Height) srclStrnend srclStrnEnd Sub EndGInt EncoInt AlasStrnflagInt parmStrnrsltStrnEndGInt MethGrup$nameStrnmoveCompStrnsorcGrupEncoInt srclStrn*Sub move(newx as integer, newy as integer) srclStrnx = newxsrclStrny = newysrclStrnsrclStrnEnd Sub EndGInt EncoInt AlasStrnflagInt parmStrn newx as integer, newy as integerrsltStrnEndGInt MethGrupHnameStrn updateWidthsCompStrnsorcGrupEncoInt srclStrnSub updateWidths() srclStrndim t as string srclStrn t = getTitlesrclStrnwidth = g.StringWidth(t)srclStrn#height = g.StringHeight(t,width+10) srclStrnEnd Sub EndGInt EncoInt AlasStrnflagInt !parmStrnrsltStrnEndGInt MethGruphnameStrngetTitleCompStrnsorcGrupEncoInt srclStrnFunction getTitle() As string srclStrndim t as string srclStrnt = namesrclStrnif text <> "" then srclStrnt = t + ": "+text srclStrnend srclStrnreturn tsrclStrn End FunctionEndGInt EncoInt AlasStrnflagInt parmStrnrsltStrnstring EndGInt MethGrupnameStrnsetText CompStrnsorcGruptEncoInt srclStrnSub setText(t as string)srclStrntext = tsrclStrn updateWidthssrclStrnEnd Sub EndGInt EncoInt AlasStrnflagInt parmStrn t as string rsltStrnEndGInt MethGrup4nameStrnssspSet CompStrnsorcGrupEncoInt srclStrnEncoInt srclStrn*Function KeyDown(Key As String) As Boolean srclStrnif key = EndOfLine then srclStrnsendLinesrclStrn return falsesrclStrnend srclStrn End FunctionEndGInt >EndGInt =EndGInt