' 3 graphics panels, 2 splitters
'
$TYPECHECK ON
$INCLUDE "RAPIDQ.INC"

CONST CANVAS_WIDTH  = 380
CONST CANVAS_HEIGHT = 80

DIM canvas_rect AS QRect
    canvas_rect.Left   = 1
    canvas_rect.Top    = 1
    canvas_rect.Right  = CANVAS_WIDTH
    canvas_rect.Bottom = CANVAS_HEIGHT

DIM canvas2_rect AS QRect
    canvas2_rect.Left   = 1
    canvas2_rect.Top    = 1
    canvas2_rect.Right  = CANVAS_WIDTH
    canvas2_rect.Bottom = CANVAS_HEIGHT

DIM canvas3_rect AS QRect
    canvas3_rect.Left   = 1
    canvas3_rect.Top    = 1
    canvas3_rect.Right  = CANVAS_WIDTH
    canvas3_rect.Bottom = CANVAS_HEIGHT


DECLARE SUB Canvas1Paint (Sender AS QCanvas)
DECLARE SUB Canvas2Paint (Sender AS QCanvas)
DECLARE SUB Canvas3Paint (Sender AS QCanvas)
DECLARE SUB LiukuChanged (Sender AS QTrackBar)

CREATE Form AS QFORM
    Caption = "Splitter test"
    Width = 800
    Height = 550
    Center
    Visible = 1                  '-- Required
    Visible = 0                  '-- trick    

    ' Status bar
    CREATE StatusBar AS QStatusBar
        Align = alBottom
        SimplePanel = TRUE
        SimpleText = " Splitter test 0.06,  © 2006 Pauli Lindgren"
    END CREATE
    
    CREATE LiukuPanel AS QPANEL
	Align = alBottom
	BevelOuter = bvNone
	height = 22

	CREATE LeftPanel4 AS QPANEL
	    Align = alLeft
	    Width = 50
	    BevelOuter = bvNone
	
	    CREATE FrameNumEdit AS QEDIT
	       Left = 10
	       Top = 2
	       Width = 35
	       Height = 18
	       AutoSize = FALSE
	       TabOrder = 1
	       EditText = "    0"
	    END CREATE
	END CREATE

	' Frame select 
	CREATE Liukusaadin AS QTrackBar
	    Align = alClient
	    Height = 10
	    Max = 100
	    PageSize = 12
	    TickMarks = tmTopLeft
	    TabOrder = 0
	    OnChange = LiukuChanged
	END CREATE
    END CREATE
    
    CREATE AltiPanel AS QPANEL
	Align = alTop         	'-- Below TopPanel
	Height = Form.Height * 0.22
	'BevelOuter = bvNone

	CREATE LeftPanel1 AS QPANEL
	    Align = alLeft
	    Width = 50
	    BevelOuter = bvNone

	    CREATE AltiLabel AS QLABEL
		Alignment = taCenter
		Left = 2
		Top = 4
		Caption = "Altitude"
	    END CREATE
	END CREATE

	CREATE Canvas1 AS QCANVAS
	    Align = alClient
	    OnPaint = Canvas1Paint
	END CREATE
    END CREATE

    CREATE TopPanel AS QPANEL
	Align = alTop            '-- Fill top portion of form
	Height = 125
	Caption = "Top Panel"
    END CREATE  ' TopPanel
    
    CREATE BottomPanel AS QPANEL
        Align = alClient         '-- Fill rest of form
	BevelOuter = bvNone

	CREATE PitchPanel AS QPANEL
	    Align = alTop		'-- Middle graphics panel
	    Height = Form.Height * 0.22
	    BevelOuter = bvNone

	    CREATE LeftPanel2 AS QPANEL
		Align = alLeft
		Width = 50
		BevelOuter = bvNone

		CREATE PitchLabel AS QLABEL
		    Left = 2
		    Top = 4
		    Alignment = taCenter
		    Caption = "Pitch"
		END CREATE
	    END CREATE

	    CREATE Canvas2 AS QCANVAS
		Align = alClient         '-- Fill rest of BottomPanel
		OnPaint = Canvas2Paint
	    END CREATE
	END CREATE

	CREATE BankingPanel AS QPANEL
	    Align = alClient         '-- Fill rest of BottomPanel
	    BevelOuter = bvNone

	    CREATE LeftPanel3 AS QPANEL
		Align = alLeft
		Width = 50
		BevelOuter = bvNone

		CREATE FrameLabel AS QLABEL
		    Align = alBottom
		    Alignment = taCenter
		    Caption = "Frame:"
		END CREATE

		CREATE BankingLabel AS QLABEL
		    Left = 2
		    Top = 4
		    Alignment = taCenter
		    Caption = "Banking"
		END CREATE
	    END CREATE

	    CREATE Canvas3 AS QCANVAS
		Align = alClient         '-- Fill rest of BottomPanel
		OnPaint = Canvas3Paint
	    END CREATE
	END CREATE

    END CREATE  ' BottomPanel

    CREATE Splitter1 AS QSPLITTER  '-- Note position
	Align = alTop
	Cursor = crVSplit
	Height = 6
	Color = clGreen
	'Parent = BankingPanel
    END CREATE

    CREATE Splitter2 AS QSPLITTER  '-- Note position
	Align = alBottom 'alTop
	Cursor = crVSplit
	Height = 6
	Color = clRed
	'Parent = BottomPanel
    END CREATE

END CREATE  ' Form


' Create bitmap for off-screen use
DIM BitMap1 AS QBITMAP
    BitMap1.Width  = CANVAS_WIDTH
    BitMap1.Height = CANVAS_HEIGHT
    BitMap1.PixelFormat = pfDevice

DIM BitMap2 AS QBITMAP
    BitMap2.Width  = CANVAS_WIDTH
    BitMap2.Height = CANVAS_HEIGHT
    BitMap2.PixelFormat = pfDevice

DIM BitMap3 AS QBITMAP
    BitMap3.Width  = CANVAS_WIDTH
    BitMap3.Height = CANVAS_HEIGHT
    BitMap3.PixelFormat = pfDevice


SUB Canvas1Paint (Sender AS QCanvas)
    canvas_rect.Right  = Sender.Width-2
    canvas_rect.Bottom = Sender.Height-2
    Sender.StretchDraw(canvas_rect, BitMap1.BMP)
END SUB

SUB Canvas2Paint (Sender AS QCanvas)
    canvas2_rect.Right  = Sender.Width-2
    canvas2_rect.Bottom = Sender.Height-2
    Sender.StretchDraw(canvas2_rect, Bitmap2.BMP)
END SUB

SUB Canvas3Paint (Sender AS QCanvas)
    canvas3_rect.Right  = Sender.Width-2
    canvas3_rect.Bottom = Sender.Height-2
    Sender.StretchDraw(canvas3_rect, Bitmap3.BMP)
END SUB


SUB LiukuChanged (Sender AS QTrackBar)
    FrameNumEdit.EditText = FORMAT$("%5d", Sender.Position)
END SUB

Bitmap1.TextOut 100,20,"Bitmap1",0,-1
Bitmap2.TextOut 100,20,"Bitmap2",&H0000ff,-1
Bitmap3.TextOut 100,20,"Bitmap3",&Hff0000,-1

Form.ShowModal    '-- Display form and wait


