' WINFBE FORM
' WINFBE VERSION 2.1.7
' LOCKCONTROLS=False
' SNAPLINES=True
' WINFBE FORM_START
' WINFBE CONTROL_START Form
'   PROPERTIES_START
'     PROP_NAME=Name
'     PROP_VALUE=Form1
'     PROP_NAME=Left
'     PROP_VALUE=10
'     PROP_NAME=Top
'     PROP_VALUE=10
'     PROP_NAME=Width
'     PROP_VALUE=500
'     PROP_NAME=Height
'     PROP_VALUE=300
'     PROP_NAME=ChildForm
'     PROP_VALUE=False
'     PROP_NAME=Text
'     PROP_VALUE=Form1
'     PROP_NAME=WindowState
'     PROP_VALUE=FormWindowState.Normal
'     PROP_NAME=StartPosition
'     PROP_VALUE=FormStartPosition.Manual
'     PROP_NAME=BorderStyle
'     PROP_VALUE=FormBorderStyle.Sizable
'     PROP_NAME=MinimizeBox
'     PROP_VALUE=True
'     PROP_NAME=MaximizeBox
'     PROP_VALUE=True
'     PROP_NAME=ControlBox
'     PROP_VALUE=True
'     PROP_NAME=Enabled
'     PROP_VALUE=True
'     PROP_NAME=Visible
'     PROP_VALUE=True
'     PROP_NAME=BackColor
'     PROP_VALUE=SYSTEM|Control
'     PROP_NAME=AcceptButton
'     PROP_VALUE=
'     PROP_NAME=AllowDrop
'     PROP_VALUE=False
'     PROP_NAME=KeyPreview
'     PROP_VALUE=False
'     PROP_NAME=CancelButton
'     PROP_VALUE=
'     PROP_NAME=Icon
'     PROP_VALUE=
'     PROP_NAME=Locked
'     PROP_VALUE=False
'     PROP_NAME=MaximumHeight
'     PROP_VALUE=0
'     PROP_NAME=MaximumWidth
'     PROP_VALUE=0
'     PROP_NAME=MinimumHeight
'     PROP_VALUE=0
'     PROP_NAME=MinimumWidth
'     PROP_VALUE=0
'     PROP_NAME=Tag
'     PROP_VALUE=
'   PROPERTIES_END
'   EVENTS_START
'     EVENT_NAME=Load
'   EVENTS_END
' WINFBE CONTROL_END
' WINFBE CONTROL_START ListBox
'   PROPERTIES_START
'     PROP_NAME=Name
'     PROP_VALUE=List1
'     PROP_NAME=Left
'     PROP_VALUE=18
'     PROP_NAME=Top
'     PROP_VALUE=10
'     PROP_NAME=Width
'     PROP_VALUE=192
'     PROP_NAME=Height
'     PROP_VALUE=229
'     PROP_NAME=AllowDrop
'     PROP_VALUE=False
'     PROP_NAME=BackColor
'     PROP_VALUE=SYSTEM|Window
'     PROP_NAME=BackColorHot
'     PROP_VALUE=SYSTEM|Window
'     PROP_NAME=BackColorSelected
'     PROP_VALUE=SYSTEM|Highlight
'     PROP_NAME=BorderStyle
'     PROP_VALUE=ControlBorderStyle.Fixed3D
'     PROP_NAME=ColumnWidth
'     PROP_VALUE=0
'     PROP_NAME=Enabled
'     PROP_VALUE=True
'     PROP_NAME=Font
'     PROP_VALUE=Segoe UI,9,400,0,0,0,1
'     PROP_NAME=ForeColor
'     PROP_VALUE=SYSTEM|WindowText
'     PROP_NAME=ForeColorHot
'     PROP_VALUE=SYSTEM|WindowText
'     PROP_NAME=ForeColorSelected
'     PROP_VALUE=SYSTEM|HighlightText
'     PROP_NAME=HorizontalExtent
'     PROP_VALUE=0
'     PROP_NAME=IntegralHeight
'     PROP_VALUE=False
'     PROP_NAME=ItemHeight
'     PROP_VALUE=28
'     PROP_NAME=Locked
'     PROP_VALUE=False
'     PROP_NAME=MultiColumn
'     PROP_VALUE=False
'     PROP_NAME=ScrollAlwaysVisible
'     PROP_VALUE=False
'     PROP_NAME=SelectionMode
'     PROP_VALUE=ListSelectionMode.One
'     PROP_NAME=Sorted
'     PROP_VALUE=False
'     PROP_NAME=TabIndex
'     PROP_VALUE=1
'     PROP_NAME=TabStop
'     PROP_VALUE=True
'     PROP_NAME=Tag
'     PROP_VALUE=
'     PROP_NAME=ToolTip
'     PROP_VALUE=
'     PROP_NAME=ToolTipBalloon
'     PROP_VALUE=False
'     PROP_NAME=TextAlign
'     PROP_VALUE=LabelAlignment.MiddleLeft
'     PROP_NAME=UseTabStops
'     PROP_VALUE=True
'     PROP_NAME=Visible
'     PROP_VALUE=True
'   PROPERTIES_END
'   EVENTS_START
'   EVENTS_END
' WINFBE CONTROL_END
' WINFBE CONTROL_START Button
'   PROPERTIES_START
'     PROP_NAME=Name
'     PROP_VALUE=cmdNext
'     PROP_NAME=Left
'     PROP_VALUE=237
'     PROP_NAME=Top
'     PROP_VALUE=130
'     PROP_NAME=Width
'     PROP_VALUE=100
'     PROP_NAME=Height
'     PROP_VALUE=36
'     PROP_NAME=AllowDrop
'     PROP_VALUE=False
'     PROP_NAME=BackColor
'     PROP_VALUE=SYSTEM|Control
'     PROP_NAME=BackColorDown
'     PROP_VALUE=SYSTEM|Control
'     PROP_NAME=BackColorHot
'     PROP_VALUE=SYSTEM|Control
'     PROP_NAME=Font
'     PROP_VALUE=Segoe UI,9,400,0,0,0,1
'     PROP_NAME=TextForeColor
'     PROP_VALUE=SYSTEM|ControlText
'     PROP_NAME=TextBackColor
'     PROP_VALUE=SYSTEM|Control
'     PROP_NAME=TextForeColorDown
'     PROP_VALUE=SYSTEM|ControlText
'     PROP_NAME=TextBackColorDown
'     PROP_VALUE=SYSTEM|Control
'     PROP_NAME=Image
'     PROP_VALUE=
'     PROP_NAME=ImageWidth
'     PROP_VALUE=16
'     PROP_NAME=ImageHeight
'     PROP_VALUE=16
'     PROP_NAME=ImageMargin
'     PROP_VALUE=4
'     PROP_NAME=ImageHighDPI
'     PROP_VALUE=True
'     PROP_NAME=Text
'     PROP_VALUE=Next
'     PROP_NAME=TextAlign
'     PROP_VALUE=ButtonAlignment.MiddleCenter
'     PROP_NAME=TextMargin
'     PROP_VALUE=4
'     PROP_NAME=UseMnemonic
'     PROP_VALUE=True
'     PROP_NAME=ThemeSupport
'     PROP_VALUE=True
'     PROP_NAME=ToggleMode
'     PROP_VALUE=False
'     PROP_NAME=Enabled
'     PROP_VALUE=True
'     PROP_NAME=TabIndex
'     PROP_VALUE=3
'     PROP_NAME=TabStop
'     PROP_VALUE=True
'     PROP_NAME=Locked
'     PROP_VALUE=False
'     PROP_NAME=Tag
'     PROP_VALUE=
'     PROP_NAME=ToolTip
'     PROP_VALUE=
'     PROP_NAME=ToolTipBalloon
'     PROP_VALUE=False
'     PROP_NAME=Visible
'     PROP_VALUE=True
'   PROPERTIES_END
'   EVENTS_START
'     EVENT_NAME=Click
'   EVENTS_END
' WINFBE CONTROL_END
' WINFBE CONTROL_START Button
'   PROPERTIES_START
'     PROP_NAME=Name
'     PROP_VALUE=cmdPrev
'     PROP_NAME=Left
'     PROP_VALUE=237
'     PROP_NAME=Top
'     PROP_VALUE=69
'     PROP_NAME=Width
'     PROP_VALUE=100
'     PROP_NAME=Height
'     PROP_VALUE=36
'     PROP_NAME=AllowDrop
'     PROP_VALUE=False
'     PROP_NAME=BackColor
'     PROP_VALUE=SYSTEM|Control
'     PROP_NAME=BackColorDown
'     PROP_VALUE=SYSTEM|Control
'     PROP_NAME=BackColorHot
'     PROP_VALUE=SYSTEM|Control
'     PROP_NAME=Font
'     PROP_VALUE=Segoe UI,9,400,0,0,0,1
'     PROP_NAME=TextForeColor
'     PROP_VALUE=SYSTEM|ControlText
'     PROP_NAME=TextBackColor
'     PROP_VALUE=SYSTEM|Control
'     PROP_NAME=TextForeColorDown
'     PROP_VALUE=SYSTEM|ControlText
'     PROP_NAME=TextBackColorDown
'     PROP_VALUE=SYSTEM|Control
'     PROP_NAME=Image
'     PROP_VALUE=
'     PROP_NAME=ImageWidth
'     PROP_VALUE=16
'     PROP_NAME=ImageHeight
'     PROP_VALUE=16
'     PROP_NAME=ImageMargin
'     PROP_VALUE=4
'     PROP_NAME=ImageHighDPI
'     PROP_VALUE=True
'     PROP_NAME=Text
'     PROP_VALUE=Previous
'     PROP_NAME=TextAlign
'     PROP_VALUE=ButtonAlignment.MiddleCenter
'     PROP_NAME=TextMargin
'     PROP_VALUE=4
'     PROP_NAME=UseMnemonic
'     PROP_VALUE=True
'     PROP_NAME=ThemeSupport
'     PROP_VALUE=True
'     PROP_NAME=ToggleMode
'     PROP_VALUE=False
'     PROP_NAME=Enabled
'     PROP_VALUE=True
'     PROP_NAME=TabIndex
'     PROP_VALUE=2
'     PROP_NAME=TabStop
'     PROP_VALUE=True
'     PROP_NAME=Locked
'     PROP_VALUE=False
'     PROP_NAME=Tag
'     PROP_VALUE=
'     PROP_NAME=ToolTip
'     PROP_VALUE=
'     PROP_NAME=ToolTipBalloon
'     PROP_VALUE=False
'     PROP_NAME=Visible
'     PROP_VALUE=True
'   PROPERTIES_END
'   EVENTS_START
'     EVENT_NAME=Click
'   EVENTS_END
' WINFBE CONTROL_END
' WINFBE FORM_END
' WINFBE_CODEGEN_START
#if 0
Declare Function Form1_Load( ByRef sender As wfxForm, ByRef e As EventArgs ) As LRESULT
Declare Function Form1_cmdNext_Click( ByRef sender As wfxButton, ByRef e As EventArgs ) As LRESULT
Declare Function Form1_cmdPrev_Click( ByRef sender As wfxButton, ByRef e As EventArgs ) As LRESULT

type Form1Type extends wfxForm
   private:
      temp as byte
   public:
      declare static function FormInitializeComponent( byval pForm as Form1Type ptr ) as LRESULT
      declare constructor
      ' Controls
      List1 As wfxListBox
      cmdNext As wfxButton
      cmdPrev As wfxButton
end type


function Form1Type.FormInitializeComponent( byval pForm as Form1Type ptr ) as LRESULT
   dim as long nClientOffset

   pForm->Name = "Form1"
   pForm->Text = "Form1"
   pForm->SetBounds(10,10,500,300)
   pForm->OnLoad = @Form1_Load
   pForm->List1.Parent = pForm
   pForm->List1.Name = "List1"
   pForm->List1.SetBounds(18,10-nClientOffset,192,229)
   pForm->cmdNext.Parent = pForm
   pForm->cmdNext.Name = "cmdNext"
   pForm->cmdNext.Text = "Next"
   pForm->cmdNext.SetBounds(237,130-nClientOffset,100,36)
   pForm->cmdNext.OnClick = @Form1_cmdNext_Click
   pForm->cmdPrev.Parent = pForm
   pForm->cmdPrev.Name = "cmdPrev"
   pForm->cmdPrev.Text = "Previous"
   pForm->cmdPrev.SetBounds(237,69-nClientOffset,100,36)
   pForm->cmdPrev.OnClick = @Form1_cmdPrev_Click
   pForm->Controls.Add(ControlType.ListBox, @(pForm->List1))
   pForm->Controls.Add(ControlType.Button, @(pForm->cmdPrev))
   pForm->Controls.Add(ControlType.Button, @(pForm->cmdNext))
   Application.Forms.Add(ControlType.Form, pForm)
   function = 0
end function

constructor Form1Type
   InitializeComponent = cast( any ptr, @FormInitializeComponent )
   this.FormInitializeComponent( @this )
end constructor

dim shared Form1 as Form1Type
#endif
' WINFBE_CODEGEN_END
' You should always include a resource file that references a valid manifest.xml
' file otherwise your application will not properly display Windows themed controls.
' Sample resource.rc and manifest.xml files can be found in the WinFBE \Settings folder.
' The following WinFBE directive includes the resource in your application. Simply
' uncomment the line.
' If you are using WinFBE's project management features then delete the following line
' because a resource file will be generated automatically.
'     '#RESOURCE "resource.rc"


''
''  Remove the following Application.Run code if it used elsewhere in your application.
Application.Run(Form1)

''
''
Function Form1_Load( ByRef sender As wfxForm, ByRef e As EventArgs ) As LRESULT
   ' Load some dummy data into the listbox
   for i as long = 1 to 5
      Form1.List1.Items.Add( "Item " & i )
   next
   Form1.List1.SelectedIndex = 0
   Function = 0
End Function

''
''
Function Form1_cmdNext_Click( ByRef sender As wfxButton, ByRef e As EventArgs ) As LRESULT
   dim as long index = Form1.List1.SelectedIndex
   index += 1
   if index > Form1.List1.Items.Count - 1 then index = 0
   Form1.List1.SelectedIndex = index
   Function = 0
End Function

''
''
Function Form1_cmdPrev_Click( ByRef sender As wfxButton, ByRef e As EventArgs ) As LRESULT
   dim as long index = Form1.List1.SelectedIndex
   index -= 1
   if index < 0 then index = Form1.List1.Items.Count - 1 
   Form1.List1.SelectedIndex = index
   Function = 0
End Function

