RbBFBlokProjPSIVStrn2008.031ACnmStrnAChpStrnACsvStrnVer1Strn1 Ver2Strn0 Ver3Strn0 RelsStrn0 NnRlStrn0 RegnStrnSVerStrnLVerStrnIVerStrnaiviInt DVewInt bQ5prTpInt DLanInt CLanInt DEncInt BflgInt IconGrupEndGInt MacCStrnBCarStrnMy Application BCMOStrnMy Application BunIStrnBSizInt BMSzInt BSzSStrnBMSSStrnMDIcStrnBWinStrnMy Application.exe BMDIInt WcmNStrnWpNmStrnWiNmStrnBL86Strn MyApplication DgCLStrnPadnPadn****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpObjNameStrnESURL ContInt paswStrnbClsInt SuprStrnCanvas flagInt bNtrInt CompStrnHInsGrupnameStrn MouseDrag CompStrnVsblInt sorcGrupHEncoInt srclStrn)Sub MouseDrag(X As Integer, Y As Integer) srclStrnsrclStrn// useful iff dragdrop = false srclStrnsrclStrnif active then srclStrnif ok(x,y) <> status then srclStrnstatus = ok(x,y)srclStrnmyPaint srclStrn end if srclStrnend if srclStrnsrclStrnEnd Sub EndGInt EndGInt HInsGrup<nameStrn MouseExit CompStrnVsblInt sorcGrupEncoInt srclStrnSub MouseExit() srclStrnsrclStrnif active then srclStrnif normalCursor <> nil then srclStrnSelf.MouseCursor = normalCursor srclStrnend if srclStrnend if srclStrnsrclStrnEnd Sub EndGInt EndGInt HInsGrupnameStrnMouseUp CompStrnVsblInt sorcGrupEncoInt srclStrn'Sub MouseUp(X As Integer, Y As Integer) srclStrnsrclStrnif active then srclStrnif status then srclStrnstatus = false srclStrnmyPaint srclStrnsrclStrnif URL = "" thensrclStrn URL = Text srclStrnend if srclStrnsrclStrnif Me.ok(x,y) then srclStrn ShowURL URL srclStrnend if srclStrnend if srclStrnend if srclStrnsrclStrnEnd Sub EndGInt EndGInt HInsGrup nameStrn MouseDown CompStrnVsblInt sorcGrupEncoInt srclStrn9Function MouseDown(X As Integer, Y As Integer) As Boolean srclStrnDim d as DragItem srclStrnsrclStrn if active then // are we active?srclStrnif ok(x,y) then srclStrnif IsContextualClick then srclStrn// handle CMM ClickssrclStrnif MyCM <> nil then srclStrnif buildCM(myCM) then srclStrn MyCM.open srclStrn return true srclStrnelsesrclStrn return falsesrclStrnend if srclStrn return true srclStrnelse srclStrn return falsesrclStrnend if srclStrnelsesrclStrn// handle normal clicks srclStrnstatus = true srclStrnmyPaint srclStrnsrclStrnif dragdrop thensrclStrn//////////// Drag & DropsrclStrn // Paranoia srclStrnGraphics.TextFont = fontsrclStrnGraphics.TextSize = fontSizesrclStrnsrclStrnSd=NewDragItem(Left+Border(true),Top,Graphics.StringWidth(Text),Graphics.TextHeight) srclStrnsrclStrn"// if no URL is available, set URL srclStrnif URL = "" thensrclStrn URL = Text srclStrnend if srclStrnsrclStrnif URL <> "" then srclStrnif dragCursor <> nil then srclStrnd.MouseCursor = dragCursor srclStrnend if srclStrn // set TEXT resource of clippingsrclStrnif useURLAsDragText thensrclStrn d.Text = URLsrclStrnelsesrclStrn d.Text = Text srclStrnend if srclStrn // set url resource of clippingsrclStrnd.MacData("url ") = URL srclStrn-// if available, specify filename of clipping srclStrn3if clippingName <> "" AND Len(clippingName)<32 then srclStrn d.MacData("clfn") = clippingNamesrclStrnelsesrclStrn!d.MacData("clfn") = Left(Text,31) srclStrnend if srclStrn// call the drag Hook srclStrnif NOT dragHook(d) then srclStrnd.Drag srclStrnend if srclStrnend if srclStrnsrclStrnend if // dragdrop srclStrn end if srclStrn return status srclStrnend if // CMM srclStrnend if // activesrclStrn End FunctionEndGInt EndGInt HInsGrupnameStrnPaint CompStrnVsblInt sorcGrupEncoInt srclStrnSub Paint(g As Graphics)srclStrnsrclStrnclear srclStrnmyPaint srclStrnsrclStrnEnd Sub EndGInt EndGInt HInsGrupnameStrnOpenCompStrnVsblInt sorcGrup\EncoInt srclStrn Sub Open() srclStrninitsrclStrnOpensrclStrnEnd Sub EndGInt EndGInt HInsGrupLnameStrn MouseMove CompStrnVsblInt sorcGrupEncoInt srclStrn)Sub MouseMove(X As Integer, Y As Integer) srclStrnsrclStrnif active then srclStrnif ok(x,y) then srclStrn>if Self.MouseCursor <> aboveCursor AND aboveCursor <> nil then srclStrnSelf.MouseCursor = aboveCursor srclStrnend if srclStrnelsesrclStrnAif Self.MouseCursor <> normalCursor AND normalCursor <> nil then srclStrnSelf.MouseCursor = normalCursor srclStrnend if srclStrnend if srclStrnend if srclStrnsrclStrnEnd Sub EndGInt EndGInt MethGrupnameStrnmyPaint CompStrnVsblInt sorcGrup,EncoInt srclStrn Sub myPaint() srclStrnsrclStrn // Paranoia srclStrnGraphics.TextFont = fontsrclStrnGraphics.TextSize = fontSizesrclStrnsrclStrnif active then srclStrnif status then srclStrn#Graphics.ForeColor = selectedColour srclStrnelsesrclStrn!Graphics.ForeColor = normalColour srclStrnend if srclStrnelsesrclStrn#Graphics.ForeColor = inactiveColour srclStrnend if srclStrnsrclStrn9Graphics.DrawString Text,Border(true),Graphics.TextAscent srclStrnsrclStrnEnd Sub EndGInt EncoInt AlasStrnflagInt shrdInt parmStrnrsltStrnEndGInt MethGrupnameStrnok CompStrnVsblInt sorcGrupTEncoInt srclStrn2Function ok(x as integer, y as integer) As Boolean srclStrnsrclStrn // Paranoia srclStrnGraphics.TextFont = fontsrclStrnGraphics.TextSize = fontSizesrclStrnsrclStrnWreturn Border(true) <= x AND x <= Border(false) AND y >= 0 AND y <= Graphics.TextHeight srclStrnsrclStrn End FunctionEndGInt EncoInt AlasStrnflagInt shrdInt parmStrnx as integer, y as integer rsltStrnBoolean EndGInt MethGrup`nameStrnsetFont CompStrnVsblInt sorcGrupEncoInt srclStrn+Function setFont(name as String) As Boolean srclStrn'// checks wether the font is available. srclStrnsrclStrnDim i as IntegersrclStrnDim b as BooleansrclStrnsrclStrnif font <> name thensrclStrnsrclStrn b = false srclStrnsrclStrnFor i=0 to FontCount-1 srclStrnIf Font(i) = name Then srclStrnb = truesrclStrnexitsrclStrnEnd If srclStrnNextsrclStrnsrclStrn if b then srclStrn font = name srclStrnelsesrclStrnfont = "Geneva" srclStrnend if srclStrnsrclStrn // redraw srclStrnclear srclStrnmyPaint srclStrnsrclStrnend if srclStrnsrclStrn End FunctionEndGInt EncoInt AlasStrnflagInt shrdInt parmStrnname as String rsltStrnBoolean EndGInt MethGrupnameStrninitCompStrnVsblInt sorcGrup4EncoInt srclStrn Sub init() srclStrn // font & size of displayed TextsrclStrnfont = "Geneva" srclStrn fontSize = 9srclStrn#// colour of text when clicked: red srclStrnselectedColour = RGB(255,0,0) srclStrn(// colour of text when not clicked: bluesrclStrnnormalColour = RGB(0,0,255) srclStrn,// colour of text when inactive: middle greysrclStrn!inactiveColour = RGB(136,136,136) srclStrn.// colour of background the text is drawn onto srclStrn6// defaults to light grey = colour of active Tab-Panel srclStrnbgColour = FillColorsrclStrn// alignment of text: srclStrn0// 0 = flush left, 1 = flush right, 2 = centeredsrclStrn align = 1 srclStrn// enable Drag&Drop capabilites srclStrn&dragdrop = true // Drag & Drop is cool srclStrnsrclStrn#if TargetMacOS thensrclStrn2// load MickeyMouse-style HandCursors from System srclStrn/dragCursor = App.ResourceFork.GetCursor(-20875) srclStrn0aboveCursor = App.ResourceFork.GetCursor(-20877)srclStrn#endif srclStrnsrclStrn3// cursor that is displayed outside the text's area srclStrnnormalCursor = ArrowCursor srclStrnsrclStrn// srclStrnuseURLAsDragText = falsesrclStrnsrclStrn// 3, 2, 1, .... ignition srclStrnactivatesrclStrnsrclStrnEnd Sub EndGInt EncoInt AlasStrnflagInt shrdInt parmStrnrsltStrnEndGInt MethGrupnameStrnBorder CompStrnVsblInt sorcGrupEncoInt srclStrn5Function Border(isLeftHandSide as Boolean) As Integer srclStrnsrclStrn // Paranoia srclStrnGraphics.TextFont = fontsrclStrnGraphics.TextSize = fontSizesrclStrnsrclStrnif isLeftHandSide then srclStrn// return the left hand sidesrclStrnselect case align srclStrncase 0 //flush left srclStrnreturn 0srclStrncase 1 // flush right srclStrn'return Width-Graphics.StringWidth(Text) srclStrncase 2 // centered srclStrn)return Width-Graphics.StringWidth(Text)\2 srclStrn end select srclStrnelsesrclStrn// return the right hand side srclStrnselect case align srclStrncase 0 //flush left srclStrn!return Graphics.StringWidth(Text) srclStrncase 1 // flush right srclStrn return WidthsrclStrncase 2 // centered srclStrnDreturn Width-Graphics.StringWidth(Text)\2+Graphics.StringWidth(Text)srclStrn end select srclStrnend if srclStrnsrclStrn End FunctionEndGInt EncoInt AlasStrnflagInt shrdInt parmStrnisLeftHandSide as Boolean rsltStrnInteger EndGInt MethGruplnameStrn AAA_ReadMe CompStrnVsblInt sorcGrupEncoInt srclStrnSub AAA_ReadMe()srclStrn'URL class 1.2.2 19-06-99 by srclStrn4' earthlingsoft (http://earthlingsoft.net/) aliassrclStrn+' . Sven-S. Porst (ssp@earthling.net) and srclStrn'' . Steffen Kamp (styv@earthling.net) srclStrn' srclStrn,'Use this class freely and at your own risk.srclStrn' srclStrn9'This class provides a readymade mechanism for displaying srclStrn*'and handling clickable URLs. It features: srclStrn*' . URL Display in colour of your choice srclStrn)' . change of URL colour on user clicks srclStrnB' . tracking of mouse-movements and appropriate change of colour srclStrn9' . dragging and dropping of URLs (can be switched off) srclStrn' . support for CM (optional) srclStrnJ' . change of displayed cursor (automatic in MacOS ≥8.5, customizable) srclStrn' srclStrn3'Please Read Procedure 'AAA Usage' for instructions srclStrnsrclStrnEnd Sub EndGInt EncoInt AlasStrnflagInt shrdInt parmStrnrsltStrnEndGInt MethGrup*xnameStrn AAA_Usage CompStrnVsblInt sorcGrup)EncoInt srclStrnSub AAA_Usage() srclStrn' srclStrn' srclStrn'••• Usage Notes srclStrnK'I hope all the necessary information for the basic use of the URL class is srclStrnJ'contained in the first few notes. Take a look at the Methods, Events and srclStrnN'Variables sections (or the code itself) for more detailed information. To set srclStrnN'display related properties (e.g. the font used) use the associated 'setXXXX' srclStrn 'method. srclStrn' srclStrn:'° Getting Started: To start, follow the following steps: srclStrn3' . Include an URL-class object in your window. srclStrn'' . In the URL-object's Open-event: srclStrnD' - set the 'Text' property to the text you want to displaysrclStrn*' using the 'SetText' method srclStrn>' (e.g. "My Homepage" or "http://bounce.to/ssp") srclStrnK' In case you display the URL you want to be called, you are done. srclStrnL' In case you don't display it (in favour of more descriptive textssrclStrnG' as "My homepage" or for not displaying the "mailto:" or srclStrn+' "http:" part of the URL, do srclStrnD' - set the 'URL' property to the URL you want to be calledsrclStrnJ' (e.g. "http://bounce.to/earthling" or "ssp@earthling.net") srclStrnN' In case you want to display the URL itself, the 'URL' property srclStrn"' may be left blank. srclStrn' . There you are! srclStrn' srclStrnH'° Drag & Drop support: By default d&d support is activated. It can be srclStrn?' deactivated by setting the 'dragdrop' property to false. srclStrnI' [When an URL is dragged to the desktop by default its name will be srclStrnB' determined by the 'Text' property. This can be overridden by srclStrnR' setting the 'clippingName' property to the name you prefer (<32 characters). srclStrnL' Please note that this feature doesn't work as the Finder isn't willingsrclStrnI' to let applications determine an internet-address clipping's name.] srclStrnL' In case you want to add additional information to the DragItem createdsrclStrnP' by the URL class, use the 'drag' property passed to the 'dragHook' event. srclStrnO' In case you return from 'dragHook' with 'true' the drag will be cancelled srclStrn' srclStrnH'° Contextual Menu support: To use CMs with the URL class, you have to:srclStrnA' . Set the myCM property to the CM-Control you want to use. srclStrnA' . Handle the 'buildCM' event appropriately returning true. srclStrn' srclStrn' srclStrn'••• Methods srclStrnI'The URL class will do most of its work automagically - hence most of the srclStrn#'methods are for internal use only. srclStrn' srclStrn%'° AAA ***<_____: Documentation only srclStrn' srclStrnR'° activate: Used to set the 'activate' property to 'true' and initiate a redraw. srclStrn' srclStrnC'° Border: Used for determining the borders of the text displayed. srclStrn' (internal use only) srclStrn' srclStrnC'° clear: Fills the entire rect of the URL's canvas with bgColour. srclStrn' (internal use only) srclStrn' srclStrnU'° deActivate: Used to set the 'activate' property to 'false' and initiate a redraw. srclStrn' srclStrnL'° init: Used to initialize most of the variables (see below). It is calledsrclStrnK' automatically before the open event and will set initialize some srclStrn.' properties to their default Values. srclStrn' srclStrn<'° myPaint: Does the necessary drawing. (internal use only)srclStrn' srclStrnG'° ok: Used to determine, whether the cursor is within the drawn text. srclStrn' (internal use only) srclStrn' srclStrnP'° setFont: Use this method to change the font. It will check whether the givensrclStrnT' font is available on the current system prior to changing it. In case it srclStrnC' isn't available, it will default to Geneva. (Stolen from srclStrnG' RB's online reference). The text will be updated afterwards. srclStrn' srclStrnQ'° setFontSize: Use this method to set the 'fontSize' property. After the font's srclStrn<' size has been changed a redraw will be performed.srclStrn' srclStrnS'° setText: Used to set the 'Text' property, i.e. to determine the text displayed. srclStrnN' Note: In case you change the 'Text' property using this method and srclStrnO' the 'URL' property is the same as the 'Text' property the URL class srclStrn/' will change der 'URL' property, too. srclStrn' srclStrn'••• Events srclStrnK'Using the events provided the behaviour of the URL-class can be customized srclStrn)'without having to edit the class itself. srclStrn' srclStrnP'° buildCM: The URL class will call this event when it received a CM-click and srclStrn?' a CM is stored in the myCM variable. It passes you a srclStrnT' ContextualMenu, which you are supposed to build. In case you built the CMsrclStrnR' successfully return true. Then the URL-class will open the CM otherwise srclStrn(' the CM-click will be ignored.srclStrn' srclStrnN'° dragHook: To customize the URL class' Drag&Drop behaviour use this event. srclStrnT' You can manipulate the passed DragItem 'drag' that is going to be dragged.srclStrnO' In case you return 'true', the drag will be cancelled. (For a general srclStrn>' prohibition of Drag&Drop use the dragdrop property). srclStrn' srclStrn' srclStrn'••• Properties srclStrnL'The URL class features numerous properties some of which are initialized bysrclStrnG'the 'init' method. If a property is initialized by the 'init' method, srclStrn/'its default value will be given in brackets [] srclStrn' srclStrn+'° String properties (all of type String): srclStrn>' . Text: The clickable string displayed by the URL class. srclStrn7' This property is essential to the URL class. srclStrn0' Just in case you didn't figure out...srclStrn9' Use the 'setText' method to set this property. srclStrn@' . URL: The URL associated to the URL class. In case it is srclStrnL' equal to the string in the 'Text' property, it can be left blank.srclStrnL' . clippingName: If a clipping is generated containing the URL, it willsrclStrn=' be named this way. [see note on Drag&Drop support] srclStrn' srclStrn'° Status properties: srclStrnI' . active (Boolean): The URL class will only work when the 'active' srclStrnV' property is 'true'. Otherwise 'Text' will be displayed in 'inactiveColour'. srclStrnW' The 'init' method will set the 'active' property to 'true'. This property is srclStrnX' for internal use only. Use the 'activate' and 'deActivate' methods to set it.srclStrnM' . align (Integer): The alignment setting of the displayed line of text. srclStrnB' 0 -> flush left 1 -> flush right 2 -> centered srclStrn' [1 = flush right]srclStrnD' . dragdrop (Boolean): Determines whether the URL class allows srclStrnK' dragging of URLs. By default the DragItem will contain a "TEXT" srclStrnR' item filled with the 'Text' or the 'URL' property as determined by the srclStrnD' 'useURLAsText' property and an "url " resource containingsrclStrnP' the 'URL' property (or the 'Text' property in case the 'URL' propertysrclStrnQ' is left blank). In case the drag ends in the Finder, the clipping file srclStrnJ' will be called 'clippingName' if available or 'Text' otherwise. srclStrn' [true] srclStrn0' . status (Boolean): for internal use only.srclStrnK' . useURLAsDragText (Boolean): Determines whether the string stored in srclStrnR' the 'Text' property or the string stored in the 'URL' property is used srclStrn2' for the 'TEXT' resource of a DragItem. srclStrn' [false] srclStrn' srclStrn'° Font properties:srclStrnG' . font (String): The name of the font used to display the 'Text'. srclStrnG' You cannot change the font property directly. Please use the srclStrn%' setFont method to do this. srclStrn' ["Geneva"] srclStrnM' . fontSize (Integer): The size of the font used to display the 'Text'. srclStrnD' This property cannot be changed directly, please use the srclStrn,' 'setFontSize' method to do this. srclStrn' [9] srclStrn' srclStrn&'° Colour properties (of type Color): srclStrn:' . bgColour: The background of the URL class' canvas srclStrn)' will be drawn in this colour. srclStrn' [FillColor] srclStrnM' . inactiveColour: When inactive, the text will be drawn in this colour. srclStrn2' [RGB(136,136,136) = some shade of grey] srclStrn@' . normalColour: When active, the (unclicked) text will be srclStrn ' drawn in this colour.srclStrn' [RGB(255,0,0) = red] srclStrnI' . selectedColour: The clicked URL will be displayed in this colour. srclStrn ' [RGB(0,0,255) = blue]srclStrn' srclStrn>'° Cursor properties (of type - take a guess! - MouseCursor): srclStrnE' (Note: the default cursors may only be available in MacOS ≥8.5) srclStrnG' . aboveCursor: shown when the cursor is above the text displayed. srclStrn2' [pointing hand (ID -20877 from Finder)] srclStrn4' . dragCursor: shown while a drag is performed.srclStrn2' [grabbing hand (ID -20875 from Finder)] srclStrnF' . normalCursor: shown when the cursor leaves the text displayed. srclStrn' [arrowCursor]srclStrn' srclStrn '° Extras: srclStrnG' . myCM (ContextualMenu): As MouseDown events are processed by the srclStrnL' URL class, you won't be able to access them directly for you CMs.srclStrnH' CMs can be handled anyway using the 'buildCM' event and this srclStrnM' variable. Set this property to the CM associated to the URL class. srclStrnEnd Sub EndGInt EncoInt AlasStrnflagInt shrdInt parmStrnrsltStrnEndGInt MethGrupnameStrnAAA_Version_History CompStrnVsblInt sorcGrupTEncoInt srclStrnSub AAA_Version_History() srclStrn' srclStrn'1.0. (March 1999): srclStrn' . first release srclStrn' srclStrn'1.1. (24-05-1999): srclStrn' . Added Documentation srclStrn4' . Added named clippings *** DOES NOT WORK ***srclStrn' . Added dragHook srclStrn4' . Added 'active' & 'inactiveColour' propertiessrclStrn)' . Added 'useURLAsDragText' property srclStrn' srclStrn'1.2. (25-05-1999) srclStrn1' . Added 'activate' and 'deActivate' methods srclStrn3' . moved erasing of canvas into 'clear' method srclStrn:' . no more direct changes of Text and font properties srclStrn' srclStrn'1.2.1 (29-05-1999) srclStrnB' . bgColour will now default to FillColor when init is called srclStrn1' which is more Appearance Manager savvy srclStrn' srclStrn'1.2.2 (19-06-1999) srclStrnG' . The 'init' method is now automatically called in the Open-Event srclStrn8' so there is no more need to call it manually.srclStrnEnd Sub EndGInt EncoInt AlasStrnflagInt shrdInt parmStrnrsltStrnEndGInt MethGrupnameStrnactivateCompStrnVsblInt sorcGruppEncoInt srclStrnSub activate() srclStrn active = true srclStrnmyPaint srclStrnEnd Sub EndGInt EncoInt AlasStrnflagInt shrdInt parmStrnrsltStrnEndGInt MethGrup nameStrn deActivate CompStrnVsblInt sorcGrupp EncoInt srclStrnSub deActivate()srclStrnactive = false srclStrnmyPaint srclStrnEnd Sub EndGInt  EncoInt AlasStrnflagInt shrdInt parmStrnrsltStrnEndGInt  MethGrupp nameStrnclear CompStrnVsblInt sorcGrup EncoInt srclStrn Sub clear() srclStrn;// used to fill the entire rect of the Canvas with bgColour srclStrnGraphics.ForeColor = bgColour srclStrn"Graphics.FillRect 0,0,Width,Height srclStrnEnd Sub EndGInt  EncoInt AlasStrnflagInt shrdInt parmStrnrsltStrnEndGInt  MethGrup nameStrn setFontSize CompStrnVsblInt sorcGrup EncoInt srclStrn Sub setFontSize(size as Integer)srclStrnsrclStrnif size <> fontSize thensrclStrnsrclStrnfontSize = size srclStrnsrclStrn // redraw srclStrnclear srclStrnmyPaint srclStrnsrclStrnend if srclStrnsrclStrnEnd Sub EndGInt EncoInt AlasStrnflagInt shrdInt parmStrnsize as Integer rsltStrnEndGInt  MethGrupdnameStrnsetText CompStrnVsblInt sorcGrupEncoInt srclStrnSub setText(newText as String) srclStrnsrclStrnif newText <> Text then srclStrnsrclStrn%// in case URL = Text update URL, too srclStrn!if Text = URL AND Text <> "" then srclStrnURL = newText srclStrnend if srclStrnsrclStrnText = newText srclStrnsrclStrn // redraw srclStrnclear srclStrnmyPaint srclStrnsrclStrnend if srclStrnsrclStrnEnd Sub EndGInt EncoInt AlasStrnflagInt shrdInt parmStrnnewText as String rsltStrnEndGInt HookGruppnameStrnbuildCM EncoInt flagInt !SySFInt parmStrnCM as ContextualMenursltStrnBoolean EndGInt HookGruplnameStrndragHookEncoInt flagInt !SySFInt parmStrndrag as DragItemrsltStrnBoolean EndGInt HookGrupPnameStrnOpenEncoInt flagInt !SySFInt parmStrnrsltStrnEndGInt PropGrupnameStrnTextCompStrnVsblInt sorcGrup8EncoInt srclStrnText As string srclStrnEndGInt EncoInt declStrnText As string flagInt shrdInt EndGInt PropGrupnameStrnstatus CompStrnVsblInt sorcGrup<EncoInt srclStrnstatus As boolean srclStrnEndGInt EncoInt declStrnstatus As boolean flagInt shrdInt EndGInt PropGrupnameStrnURL CompStrnVsblInt sorcGrup8EncoInt srclStrn URL As String srclStrnEndGInt EncoInt declStrn URL As String flagInt shrdInt EndGInt PropGrupnameStrn normalColourCompStrnVsblInt sorcGrup@EncoInt srclStrnnormalColour As Color srclStrnEndGInt EncoInt declStrnnormalColour As Color flagInt shrdInt EndGInt PropGrupnameStrnselectedColour CompStrnVsblInt sorcGrup@EncoInt srclStrnselectedColour As Color srclStrnEndGInt EncoInt declStrnselectedColour As Color flagInt shrdInt EndGInt PropGrupnameStrnbgColourCompStrnVsblInt sorcGrup<EncoInt srclStrnbgColour As Color srclStrnEndGInt EncoInt declStrnbgColour As Color flagInt shrdInt EndGInt PropGrup nameStrnfontCompStrnVsblInt sorcGrup8!EncoInt srclStrnfont As String srclStrnEndGInt !EncoInt declStrnfont As String flagInt shrdInt EndGInt  PropGrup"nameStrnfontSizeCompStrnVsblInt sorcGrup<#EncoInt srclStrnfontSize As Integer srclStrnEndGInt #EncoInt declStrnfontSize As Integer flagInt shrdInt EndGInt "PropGrup$nameStrnalign CompStrnVsblInt sorcGrup8%EncoInt srclStrnalign As IntegersrclStrnEndGInt %EncoInt declStrnalign As IntegerflagInt shrdInt EndGInt $PropGrup&nameStrndragdropCompStrnVsblInt sorcGrup<'EncoInt srclStrndragdrop As Boolean srclStrnEndGInt 'EncoInt declStrndragdrop As Boolean flagInt shrdInt EndGInt &PropGrup(nameStrn aboveCursor CompStrnVsblInt sorcGrupD)EncoInt srclStrnaboveCursor As MouseCursor srclStrnEndGInt )EncoInt declStrnaboveCursor As MouseCursor flagInt shrdInt EndGInt (PropGrup*nameStrn dragCursor CompStrnVsblInt sorcGrupD+EncoInt srclStrndragCursor As MouseCursor srclStrnEndGInt +EncoInt declStrndragCursor As MouseCursor flagInt shrdInt EndGInt *PropGrup,nameStrn normalCursorCompStrnVsblInt sorcGrupD-EncoInt srclStrnnormalCursor As MouseCursor srclStrnEndGInt -EncoInt declStrnnormalCursor As MouseCursor flagInt shrdInt EndGInt ,PropGrup.nameStrnmyCMCompStrnVsblInt sorcGrup@/EncoInt srclStrnmyCM As ContextualMenu srclStrnEndGInt /EncoInt declStrnmyCM As ContextualMenu flagInt shrdInt EndGInt .PropGrup0nameStrn clippingNameCompStrnVsblInt sorcGrup@1EncoInt srclStrnclippingName As String srclStrnEndGInt 1EncoInt declStrnclippingName As String flagInt shrdInt EndGInt 0PropGrup2nameStrnactive CompStrnVsblInt sorcGrup<3EncoInt srclStrnactive As Boolean srclStrnEndGInt 3EncoInt declStrnactive As Boolean flagInt shrdInt EndGInt 2PropGrup4nameStrninactiveColour CompStrnVsblInt sorcGrup@5EncoInt srclStrninactiveColour As Color srclStrnEndGInt 5EncoInt declStrninactiveColour As Color flagInt shrdInt EndGInt 4PropGrup6nameStrnuseURLAsDragTextCompStrnVsblInt sorcGrupD7EncoInt srclStrnuseURLAsDragText As Boolean srclStrnEndGInt 7EncoInt declStrnuseURLAsDragText As Boolean flagInt shrdInt EndGInt 6VwBhGrupX8VwPrGrupX9NameStrnNameVsblInt PrGpStrnID typeStrnString CPifStrnCanvas EndGInt 9VwPrGrup\:NameStrnIndex VsblInt PrGpStrnID typeStrnInteger CPifStrnCanvas EndGInt :VwPrGrupH;NameStrnSuper VsblInt PrGpStrnID CPifStrnCanvas EndGInt ;VwPrGrup\NameStrnWidth VsblInt PrGpStrnPositionPValStrn100 typeStrnInteger CPifStrnCanvas EndGInt >VwPrGrupp?NameStrnHeight VsblInt PrGpStrnPositionPValStrn100 typeStrnInteger CPifStrnCanvas EndGInt ?VwPrGrup`@NameStrnLockLeftVsblInt PrGpStrnPositiontypeStrnBoolean CPifStrnCanvas EndGInt @VwPrGrup`ANameStrnLockTop VsblInt PrGpStrnPositiontypeStrnBoolean CPifStrnCanvas EndGInt AVwPrGrupdBNameStrn LockRight VsblInt PrGpStrnPositiontypeStrnBoolean CPifStrnCanvas EndGInt BVwPrGrupdCNameStrn LockBottom VsblInt PrGpStrnPositiontypeStrnBoolean CPifStrnCanvas EndGInt CVwPrGruplDNameStrn TabPanelIndex PrGpStrnPositionPValStrn0 typeStrnInteger CPifStrnCanvas EndGInt DVwPrGruppENameStrnTabIndexVsblInt PrGpStrnPositionPValStrn0 typeStrnInteger CPifStrnCanvas EndGInt EVwPrGruptFNameStrnVisible VsblInt PrGpStrn Appearance PValStrnTruetypeStrnBoolean CPifStrnCanvas EndGInt FVwPrGrupGNameStrnHelpTag VsblInt PrGpStrn Appearance typeStrnString vbETStrnMultiLineEditor CPifStrnCanvas EndGInt GVwPrGrup|HNameStrnAutoDeactivate VsblInt PrGpStrn Appearance PValStrnTruetypeStrnBoolean CPifStrnCanvas EndGInt HVwPrGruptINameStrnEnabled VsblInt PrGpStrn Appearance PValStrnTruetypeStrnBoolean CPifStrnCanvas EndGInt IVwPrGrupxJNameStrn UseFocusRingVsblInt PrGpStrn Appearance PValStrnTruetypeStrnBoolean CPifStrnCanvas EndGInt JVwPrGrupxKNameStrnBackdropVsblInt PrGpStrn Appearance typeStrnPicture vbETStrnPicture CPifStrnCanvas EndGInt KVwPrGrupdLNameStrn AcceptFocus VsblInt PrGpStrnBehaviortypeStrnBoolean CPifStrnCanvas EndGInt LVwPrGrupdMNameStrn AcceptTabs VsblInt PrGpStrnBehaviortypeStrnBoolean CPifStrnCanvas EndGInt MVwPrGrupxNNameStrnEraseBackground VsblInt PrGpStrnBehaviorPValStrnTruetypeStrnBoolean CPifStrnCanvas EndGInt NVwPrGrup4ONameStrn InitialParent CPifStrnCanvas EndGInt OVwPrGrupXPNameStrnURL PrGpStrnBehaviortypeStrnString vbETStrnMultiLineEditor EndGInt PVwPrGrupXQNameStrn normalColourPrGpStrnBehaviorPValStrn&h000000typeStrnColor EndGInt QVwPrGrup\RNameStrnselectedColour PrGpStrnBehaviorPValStrn&h000000typeStrnColor EndGInt RVwPrGrupTSNameStrnbgColourPrGpStrnBehaviorPValStrn&h000000typeStrnColor EndGInt SVwPrGrupPTNameStrnalign PrGpStrnBehaviorPValStrn0 typeStrnInteger EndGInt TVwPrGrupPUNameStrndragdropPrGpStrnBehaviorPValStrn0 typeStrnBoolean EndGInt UVwPrGrup`VNameStrn clippingNamePrGpStrnBehaviortypeStrnString vbETStrnMultiLineEditor EndGInt VVwPrGrup\WNameStrninactiveColour PrGpStrnBehaviorPValStrn&h000000typeStrnColor EndGInt WVwPrGrupXXNameStrnuseURLAsDragTextPrGpStrnBehaviorPValStrn0 typeStrnBoolean EndGInt XEndGInt 8PadnPadn************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpObj7yUNameStrnApp ContInt paswStrnbClsInt SuprStrn Application flagInt bNtrInt bApOInt CompStrnPDefGrup$YnameStrnMenuBar PValInt EndGInt YVwBhGrupZEndGInt ZPadnPadn************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpVewbQ5,NameStrnWindow1 ContInt paswStrnbClsInt SuprStrnWindow flagInt bNtrInt CompStrnPDefGrup<[nameStrnImplicitInstanceEncoInt PValStrnTrueEndGInt [PDefGrup$\nameStrnMenuBar PValStrnEndGInt \PDefGrup(]nameStrn MacProcID PValInt EndGInt ]PDefGrup0^nameStrnMinimizeButton PValStrnTrueEndGInt ^PDefGrup4_nameStrnMaximizeButton PValStrnFalse EndGInt _PDefGrup,`nameStrn LiveResize PValStrnTrueEndGInt `PDefGrup0anameStrn Resizeable PValStrnFalse EndGInt aPDefGrup,bnameStrn CloseButton PValStrnTrueEndGInt bPDefGrup0cnameStrnMenuBarVisible PValStrnTrueEndGInt cPDefGrup0dnameStrn FullScreen PValStrnFalse EndGInt dPDefGrup(enameStrnVisible PValStrnTrueEndGInt ePDefGrup<fnameStrnTitle EncoInt PValStrn ESURL Demo EndGInt 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 lEndGInt qPDefGrup(rnameStrn Placement PValInt EndGInt rVwBhGrupsVwPrGrupDtNameStrnNameVsblInt PrGpStrnID CPifStrnWindow EndGInt tVwPrGrupLuNameStrn Interfaces VsblInt PrGpStrnID CPifStrnWindow EndGInt uVwPrGrupHvNameStrnSuper VsblInt PrGpStrnID CPifStrnWindow EndGInt vVwPrGrup0wNameStrn Placement VsblInt PrGpStrnPositionPValStrn0 typeStrnInteger vbETStrnEnumCPifStrnWindow EnumGrupxdefnStrn 0 - Default defnStrn1 - Parent Window defnStrn2 - Main Screen defnStrn3 - Parent Window ScreendefnStrn 4 - Stagger EndGInt xEndGInt wVwPrGruppyNameStrnWidth VsblInt PrGpStrnPositionPValStrn300 typeStrnInteger CPifStrnWindow EndGInt yVwPrGruppzNameStrnHeight VsblInt PrGpStrnPositionPValStrn300 typeStrnInteger CPifStrnWindow EndGInt zVwPrGrupp{NameStrnMinWidthVsblInt PrGpStrnPositionPValStrn64 typeStrnInteger CPifStrnWindow EndGInt {VwPrGrupt|NameStrn MinHeight VsblInt PrGpStrnPositionPValStrn64 typeStrnInteger CPifStrnWindow EndGInt |VwPrGrupt}NameStrnMaxWidthVsblInt PrGpStrnPositionPValStrn32000 typeStrnInteger CPifStrnWindow EndGInt }VwPrGrupx~NameStrn MaxHeight VsblInt PrGpStrnPositionPValStrn32000 typeStrnInteger CPifStrnWindow EndGInt ~VwPrGrup NameStrnFrame VsblInt PrGpStrn Appearance PValStrn0 typeStrnInteger vbETStrnEnumCPifStrnWindow EnumGruppȀdefnStrn 0 - DocumentdefnStrn1 - Movable Modal defnStrn2 - Modal DialogdefnStrn3 - Floating Window defnStrn 4 - Plain Box defnStrn5 - Shadowed BoxdefnStrn6 - Rounded Window defnStrn7 - Global Floating Window defnStrn8 - Sheet WindowdefnStrn9 - Metal WindowdefnStrn10 - Drawer Window defnStrn11 - Modeless DialogEndGInt ȀEndGInt VwPrGrup|ȁNameStrn Composite VsblInt PrGpStrn Appearance PValStrnFalse typeStrnBoolean CPifStrnWindow EndGInt ȁVwPrGrup|ȂNameStrn HasBackColorVsblInt PrGpStrn Appearance PValStrnFalse typeStrnBoolean CPifStrnWindow EndGInt ȂVwPrGrup|ȃNameStrn BackColor VsblInt PrGpStrn Appearance PValStrn&hFFFFFFtypeStrnColor CPifStrnWindow EndGInt ȃVwPrGrupxȄNameStrnBackdropVsblInt PrGpStrn Appearance typeStrnPicture vbETStrnPicture CPifStrnWindow EndGInt ȄVwPrGrupxȅNameStrnTitle VsblInt PrGpStrn Appearance PValStrnUntitledtypeStrnString CPifStrnWindow EndGInt ȅVwPrGruptȆNameStrnVisible VsblInt PrGpStrn Appearance PValStrnTruetypeStrnBoolean CPifStrnWindow EndGInt ȆVwPrGrup|ȇNameStrn FullScreen VsblInt PrGpStrn Appearance PValStrnFalse typeStrnBoolean CPifStrnWindow EndGInt ȇVwPrGrup|ȈNameStrnMenuBarVisible VsblInt PrGpStrn Appearance PValStrnTruetypeStrnBoolean CPifStrnWindow EndGInt ȈVwPrGrupxȉNameStrn CloseButton VsblInt PrGpStrn Appearance PValStrnTruetypeStrnBoolean CPifStrnWindow EndGInt ȉVwPrGrup|ȊNameStrn Resizeable VsblInt PrGpStrn Appearance PValStrnFalse typeStrnBoolean CPifStrnWindow EndGInt ȊVwPrGrupxȋNameStrn LiveResize VsblInt PrGpStrn Appearance PValStrnTruetypeStrnBoolean CPifStrnWindow EndGInt ȋVwPrGrupȌNameStrnMaximizeButton VsblInt PrGpStrn Appearance PValStrnFalse typeStrnBoolean CPifStrnWindow EndGInt ȌVwPrGrup|ȍNameStrnMinimizeButton VsblInt PrGpStrn Appearance PValStrnTruetypeStrnBoolean CPifStrnWindow EndGInt ȍVwPrGrupxȎNameStrn MacProcID VsblInt PrGpStrn Appearance PValStrn0 typeStrnInteger CPifStrnWindow EndGInt ȎVwPrGrupxȏNameStrnMenuBar VsblInt PrGpStrn Appearance typeStrnMenuBar vbETStrnMenuBar CPifStrnWindow EndGInt ȏVwPrGrup|ȐNameStrnImplicitInstanceVsblInt PrGpStrn Appearance PValStrnTruevbETStrnBoolean CPifStrnWindow EndGInt ȐEndGInt sCBhvGrup8ȑSuprStrnESURL HInsGrupȒnameStrnOpenCompStrnVsblInt sorcGrupȓEncoInt srclStrn Sub Open() srclStrn"Me.normalColour =HSV(0.086,0.99,1) srclStrnMe.SetText "earthlingsoft" srclStrn"Me.URL= "http://earthlingsoft.net" srclStrnEnd Sub EndGInt ȓEndGInt ȒEndGInt ȑCBhvGrupȔSuprStrn StaticText EndGInt ȔCtrlGrupȕcclsStrnESURL nameStrnESURL PDefGrup0ȖnameStrnuseURLAsDragTextPValStrn0 EndGInt ȖPDefGrup,ȗnameStrninactiveColour PValInt EndGInt ȗPDefGrup(ȘnameStrndragdropPValStrn0 EndGInt ȘPDefGrup$șnameStrnbgColourPValInt EndGInt șPDefGrup,ȚnameStrnselectedColour PValInt EndGInt ȚPDefGrup(țnameStrn normalColourPValInt EndGInt țPDefGrup8ȜnameStrn InitialParent EncoInt PValStrnEndGInt ȜPDefGrup0ȝnameStrnEraseBackground PValStrnTrueEndGInt ȝPDefGrup(ȞnameStrn AcceptTabs PValStrnEndGInt ȞPDefGrup(ȟnameStrn AcceptFocus PValStrnEndGInt ȟPDefGrup$ȠnameStrnBackdropPValStrnEndGInt ȠPDefGrup,ȡnameStrn UseFocusRingPValStrnTrueEndGInt ȡPDefGrup(ȢnameStrnEnabled PValStrnTrueEndGInt ȢPDefGrup0ȣnameStrnAutoDeactivate PValStrnTrueEndGInt ȣPDefGrup0ȤnameStrnHelpTag EncoInt PValStrnEndGInt ȤPDefGrup(ȥnameStrnVisible PValStrnTrueEndGInt ȥPDefGrup$ȦnameStrnTabIndexPValInt 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 0EndGInt ȮPDefGrup ȯnameStrnLeftPValInt DEndGInt ȯPDefGrup(ȰnameStrnScope PValStrn0 EndGInt ȰPDefGrup8ȱnameStrnSuper EncoInt PValStrnESURL EndGInt ȱPDefGrup$ȲnameStrnIndex PValInt EndGInt ȲPDefGrup4ȳnameStrnNameEncoInt PValStrnCanvas1 EndGInt ȳCBixInt EndGInt ȕCtrlGrup$ȴcclsStrn StaticText nameStrn StaticText PDefGrup8ȵnameStrn InitialParent EncoInt PValStrnEndGInt ȵPDefGrup4ȶnameStrn DataField EncoInt PValStrnEndGInt ȶPDefGrup4ȷnameStrn DataSource EncoInt PValStrnEndGInt ȷ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 ȿPDefGrup(nameStrnEnabled PValStrnTrueEndGInt PDefGrup(nameStrn Multiline PValStrnEndGInt PDefGrup(nameStrn TextColor PValInt EndGInt PDefGrup(nameStrn TextAlign PValInt EndGInt PDefGrupTnameStrnTextEncoInt PValStrn'Check the source code for documentation EndGInt PDefGrup$nameStrnTabIndexPValInt 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 PDefGrup(nameStrnScope PValStrn0 EndGInt PDefGrup<nameStrnSuper EncoInt PValStrn StaticText EndGInt PDefGrup$nameStrnIndex PValInt EndGInt PDefGrup8nameStrnNameEncoInt PValStrn StaticText1 EndGInt CBixInt EndGInt ȴPadnPadnL************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpUIsWnStGrup\OTabGrupContInt eSptInt EndGInt OTabGrupdContInt bQ5LSptInt RSptInt ScrXInt ScrYInt lstHInt @lstVInt @CtrlInt EndGInt OTabGrup@ContInt bQ5AltEInt LSptInt EEstInt ciIDInt EndGInt OTabGrupEndGInt LsLcStrnWindow1 Layout rEdtRect;_2}EndGInt PadnPadn`********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************EOF!