RbBFBlokProjPSIVStrn2005.03 ACnmStrnAChpStrnACsvStrnVer1Strn1 Ver2Strn0 Ver3Strn0 RelsStrn0 NnRlStrn0 RegnStrnSVerStrnLVerStrnIVerStrnaiviInt DVewInt pprTpInt DLanInt CLanInt DEncInt BflgInt IconGrup)EndGInt )MacCStrnBMacStrnMy App (Classic)BCarStrnMy Application BCMOStrnMy Application BSizInt @BMSzInt BSzSStrn4096BMSSStrn2048MDIcStrnBWinStrnMy Application.exe BMDIInt BL86Strn MyApplication PadnPadn****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpObjw NameStrnApp ContInt paswStrnbClsInt SuprStrn Application bNtrInt bApOInt CompStrnHInsGrupd*nameStrnOpenCompStrnsorcGrup,+EncoInt srclStrn Sub Open() srclStrnSystem.DebugLog( "Open Event" ) srclStrnsrclStrn-mMutex = new Mutex( "My Spiffy Application" ) srclStrn*mIPCSocketSubclass = new MySpiffyIPCSocket srclStrnsrclStrnif mMutex.TryEnter then srclStrnmIPCSocketSubclass.Listen srclStrnelsesrclStrnmIPCSocketSubclass.Connect srclStrnsrclStrnQwhile not mIPCSocketSubclass.IsConnected and mIPCSocketSubclass.LastErrorCode = 0 srclStrnmIPCSocketSubclass.Poll srclStrnwendsrclStrnend if srclStrnEnd Sub EndGInt +EndGInt *HInsGrup,nameStrn OpenDocumentCompStrnsorcGrup-EncoInt srclStrn$Sub OpenDocument(item As FolderItem)srclStrn=System.DebugLog( "OpenDocument Event: " + item.AbsolutePath ) srclStrnsrclStrn>if mIPCSocketSubclass.IsConnected and not mMutex.TryEnter then srclStrn+System.DebugLog( "Send data to other app" ) srclStrn-mIPCSocketSubclass.Write( item.AbsolutePath ) srclStrnend if srclStrnEnd Sub EndGInt -EndGInt ,HInsGrup.nameStrn NewDocument CompStrnsorcGrupP/EncoInt srclStrnSub NewDocument() srclStrn'System.DebugLog( "New Document Event" ) srclStrn>if mIPCSocketSubclass.IsConnected and not mMutex.TryEnter then srclStrn8System.DebugLog( "Tell other app to come to the front" )srclStrn%mIPCSocketSubclass.Write( "?front?" ) srclStrnend if srclStrnEnd Sub EndGInt /EndGInt .PropGrup80EncoInt declStrnmMutex As Mutex flagInt EndGInt 0PropGrupP1EncoInt declStrn'mIPCSocketSubclass As MySpiffyIPCSocket flagInt EndGInt 1PDefGrup$2nameStrnMenuBar PValInt pEndGInt 2CnstGrup3EncoInt nameStrnkFileQuitShortcut typeInt defnStrnflagInt CInsGrup04pltfInt langInt defnStrnCmd+Q EndGInt 4EndGInt 3CnstGrup5EncoInt nameStrn kFileQuit typeInt defnStrnQuitflagInt CInsGrup06pltfInt langInt defnStrnE&xit EndGInt 6CInsGrup07pltfInt langInt defnStrnE&xit EndGInt 7EndGInt 5CnstGrup8EncoInt nameStrn kEditClear typeInt defnStrnClear flagInt CInsGrup09pltfInt langInt defnStrn&Delete EndGInt 9CInsGrup0:pltfInt langInt defnStrn&Delete EndGInt :EndGInt 8PadnPadn****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpVewpNameStrnWindow1 ContInt paswStrnbClsInt SuprStrnWindow bNtrInt CompStrnPDefGrup0;nameStrnMenuBar PValStrn 359663615 EndGInt ;PDefGrup(nameStrnMinimizeButton PValStrnTrueEndGInt >PDefGrup4?nameStrnMaximizeButton PValStrnFalse EndGInt ?PDefGrup0@nameStrn LiveResize PValStrnFalse EndGInt @PDefGrup0AnameStrn Resizeable PValStrnFalse EndGInt APDefGrup,BnameStrn CloseButton PValStrnTrueEndGInt BPDefGrup0CnameStrnMenuBarVisible PValStrnTrueEndGInt CPDefGrup0DnameStrn FullScreen PValStrnFalse EndGInt DPDefGrup(EnameStrnVisible PValStrnTrueEndGInt EPDefGrup8FnameStrnTitle EncoInt PValStrnUntitledEndGInt FPDefGrup$GnameStrnBackdropPValStrnEndGInt GPDefGrup(HnameStrn BackColor PValInt EndGInt HPDefGrup0InameStrn HasBackColorPValStrnFalse EndGInt IPDefGrup0JnameStrn Composite PValStrnFalse EndGInt JPDefGrup$KnameStrnFrame PValInt EndGInt KPDefGrup(LnameStrn MaxHeight PValInt }EndGInt LPDefGrup$MnameStrnMaxWidthPValInt }EndGInt MPDefGrup(NnameStrn MinHeight PValInt @EndGInt NPDefGrup$OnameStrnMinWidthPValInt @EndGInt OPDefGrup$PnameStrnHeight PValInt ,EndGInt PPDefGrup$QnameStrnWidth PValInt ,EndGInt QPDefGrup(RnameStrn Placement PValInt EndGInt RPadnPadn********************************************************************************************************************************************************************************************************************************************************************************************BlokpMnup NameStrnMenuBar1ContInt paswStrnMItmGruppSspmuInt nameStrnFileMenutextStrn&File indxInt scutStrnmaEnInt EncoInt flagInt SuprStrnMenuItemMItmGrupTspmuInt nameStrnFileQuittextStrn#App.kFileQuit indxInt scutStrn#App.kFileQuitShortcut MiSKStrn#App.kFileQuitShortcut maEnInt EncoInt flagInt SuprStrn QuitMenuItemEndGInt TEndGInt SMItmGrup<UspmuInt nameStrnEditMenutextStrn&Edit indxInt scutStrnmaEnInt EncoInt flagInt SuprStrnMenuItemMItmGrupVspmuInt nameStrnEditUndotextStrn&Undo indxInt scutStrnCmd+Z MiSKStrnZ MiMkInt maEnInt EncoInt flagInt SuprStrnMenuItemEndGInt VMItmGrup|WspmuInt nameStrntextStrn- indxInt scutStrnmaEnInt EncoInt flagInt SuprStrnMenuItemEndGInt WMItmGrupXspmuInt nameStrnEditCut textStrnCu&tindxInt scutStrnCmd+X MiSKStrnX MiMkInt maEnInt EncoInt flagInt SuprStrnMenuItemEndGInt XMItmGrupYspmuInt nameStrnEditCopytextStrn&Copy indxInt scutStrnCmd+C MiSKStrnC MiMkInt maEnInt EncoInt flagInt SuprStrnMenuItemEndGInt YMItmGrupZspmuInt nameStrn EditPaste textStrn&Paste indxInt scutStrnCmd+V MiSKStrnV MiMkInt maEnInt EncoInt flagInt SuprStrnMenuItemEndGInt ZMItmGrup[spmuInt nameStrn EditClear textStrn#App.kEditClear indxInt scutStrnmaEnInt EncoInt flagInt SuprStrnMenuItemEndGInt [MItmGrup|\spmuInt nameStrntextStrn- indxInt scutStrnmaEnInt EncoInt flagInt SuprStrnMenuItemEndGInt \MItmGrup]spmuInt nameStrn EditSelectAll textStrn Select &All indxInt scutStrnCmd+A MiSKStrnA MiMkInt maEnInt EncoInt flagInt SuprStrnMenuItemEndGInt ]EndGInt UPadnPadn************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpObjNameStrnMySpiffyIPCSocket ContInt paswStrnbClsInt SuprStrn IPCSocket bNtrInt CompStrnHInsGrupL^nameStrn DataAvailable CompStrnsorcGrup_EncoInt srclStrnSub DataAvailable() srclStrn*System.DebugLog( "Data: " + me.Lookahead ) srclStrnsrclStrndim data as String = me.ReadAll srclStrnif data = "?quit?" then srclStrnmQuitter = true srclStrnQuitsrclStrnelseif data = "?front?" thensrclStrnSystem.DebugLog( "?front?" )srclStrn Window1.ShowsrclStrnme.Write( "?quit?" )srclStrnelsesrclStrn)App.OpenDocument( GetFolderItem( data ) ) srclStrnme.Write( "?quit?" )srclStrnend if srclStrnEnd Sub EndGInt _EndGInt ^HInsGrup`nameStrnError CompStrnsorcGrupaEncoInt srclStrn Sub Error() srclStrn*// We want to go ahead and re-listen here. srclStrnif not mQuitter thensrclStrn me.Listen srclStrnend if srclStrnEnd Sub EndGInt aEndGInt `MethGrupbnameStrn Constructor CompStrnsorcGruptcEncoInt srclStrnSub Constructor() srclStrn$me.Path = "/tmp/MySpiffyApplication"srclStrnEnd Sub EndGInt cEncoInt AlasStrnflagInt parmStrnrsltStrnEndGInt bPropGrup<dEncoInt declStrnmQuitter As Boolean flagInt !EndGInt dPadnPadn****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpUIsWnStGrupeOTabGrupfContInt eSptInt EndGInt fOTabGrupgContInt wEndGInt gOTabGruphContInt EndGInt hLsLcStrnApp.OpenrEdtRectVEndGInt ePadnPadn********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************EOF!