Public Class Form1
    Inherits System.Windows.Forms.Form

    ' members...
    Public Favorites As New Favorites()

    Private _loadCalled As Boolean = False

#Region " Windows Form Designer generated code "

        Public Sub New()
            MyBase.New()

            'This call is required by the Windows Form Designer.
            InitializeComponent()

            'Add any initialization after the InitializeComponent() call

        End Sub

        'Form overrides dispose to clean up the component list.
        Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
            If disposing Then
                If Not (components Is Nothing) Then
                    components.Dispose()
                End If
            End If
            MyBase.Dispose(disposing)
        End Sub

        'Required by the Windows Form Designer
        Private components As System.ComponentModel.IContainer

        'NOTE: The following procedure is required by the Windows Form Designer
        'It can be modified using the Windows Form Designer.  
        'Do not modify it using the code editor.
        Friend WithEvents icnNotify As System.Windows.Forms.NotifyIcon
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.components = New System.ComponentModel.Container()
        Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(Form1))
        Me.icnNotify = New System.Windows.Forms.NotifyIcon(Me.components)
        '
        'icnNotify
        '
        Me.icnNotify.Icon = CType(resources.GetObject("icnNotify.Icon"), System.Drawing.Icon)
        Me.icnNotify.Text = "Right-click me to view Favorites…."
        Me.icnNotify.Visible = True
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(292, 273)
        Me.Name = "Form1"
        Me.ShowInTaskbar = False
        Me.Text = "Form1"
        Me.WindowState = System.Windows.Forms.FormWindowState.Minimized

    End Sub

#End Region


    Protected Overrides Sub OnVisibleChanged(ByVal e As System.EventArgs)
        If _loadCalled = False Then
            Return
        End If
        ' if the user can see us, hide us...
        If Me.Visible = True Then Me.Visible = False
    End Sub

    Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
        ' load the favorites...
        Favorites.ScanFavorites()

        ' create a new context menu...
        Dim menu As New ContextMenu()

        ' go through each favorite...
        Dim favorite As WebFavorite
        For Each favorite In Favorites.Favorites

            ' create a menu item and add it to the menu...
            Dim item As New WebFavoriteMenuItem(favorite)
            menu.MenuItems.Add(item)

        Next
        ' add a separator...
        menu.MenuItems.Add("-")

        ' then, add an exit option...
        menu.MenuItems.Add(New ExitMenuItem())

        ' finally, tell the tray icon to use this menu...
        icnNotify.ContextMenu = menu

        ' Set load flag
        _loadCalled = True
        Me.Hide()

    End Sub

End Class
