#include "FiveWin.ch"
#define xtpControlError 0
#define xtpControlButton 1
#define xtpControlPopup 2
#define xtpControlButtonPopup 3
#define xtpControlSplitButtonPopup 4
#define xtpControlComboBox 5
#define xtpControlEdit 6
#define xtpControlCustom 7
#define xtpControlLabel 8
#define xtpControlCheckBox 9
#define xtpControlGallery 10
#define xtpControlRadioButton 11
#define xtpImageNormal 0
#define xtpImageDisabled 1
#define xtpImageHot 2
#define xtpImageChecked 3
#define xtpImagePressed 4
function Main()
local oWnd, oAct, oRb, oTabFiles, oTabEdit, oTabBuild, oIcons
local oGroup1, oGroup2, oButton1, oButton2, aButtons := {}
local oButton3, oButton4, oBmp1, oBmp2, oBmp3
DEFINE WINDOW oWnd
obmp1 := TBitmap():Define( , "..\bitmaps\16x16\new2.bmp", oWnd )
obmp2 := TBitmap():Define( , "..\bitmaps\16x16\open2.bmp", oWnd )
obmp3 := TBitmap():Define( , "..\bitmaps\alphabmp\explorer.bmp", oWnd )
@ 0, 0 ACTIVEX oAct PROGID "Codejock.CommandBarsFrame.12.1.1" OF oWnd
oAct:bOnEvent = { | cEvent, aParams, pParams | RibbonBarEvent( cEvent, aParams, pParams, aButtons ) }
oAct:Do( "AttachToWindow", oWnd:hWnd )
oIcons := oAct:Do( "icons" )
oIcons:AddBitmap( oBmp1:hBitmap,1,xtpImageNormal,.f. )
oIcons:AddBitmap( oBmp2:hBitmap,2,xtpImageNormal,.f. )
oIcons:AddBitmap( oBmp3:hBitmap,3,xtpImageNormal,.t. ) // 4th param, Bool to Alpha Channel Support
oIcons:LoadBitmap( "..\bitmaps\32x32\edit.bmp",4, xtpImageNormal)
oAct:Hide()
oRb = oAct:Do( "AddRibbonBar", "fwh" )
oTabFiles = oRb:InsertTab( 0, "&Files" )
oTabEdit = oRb:InsertTab( 1, "&Edit" )
oTabBuild = oRb:InsertTab( 2, "&Build" )
oGroup1 = oTabFiles:Groups:AddGroup( "Test 1", 0 )
oGroup1:ShowOptionButton = .T.
oGroup2 = oTabFiles:Groups:AddGroup( "Test 2", 1 )
oButton1 = oGroup1:Add( xtpControlButton, 2, "First" )
oButton2 = oGroup1:Add( xtpControlButton, 1, "Second" )
oButton3 = oGroup2:Add( xtpControlButton, 4, NIL )
oButton4 = oGroup2:Add( xtpControlButton, 3, NIL )
oButton4:SetIconSize( 64,64 )
oButton4:Width = 70
oButton4:Height = 70
AAdd( aButtons, oButton1 )
AAdd( aButtons, oButton2 )
oButton1:Caption = "FiveWin power!"
oButton1:TooltipText = "Ribbonbar for FWH"
ACTIVATE WINDOW oWnd
return nil
function RibbonBarEvent( cEvent, aParams, pParams, aButtons )
do case
case cEvent == "Execute" .and. Len( aButtons ) > 0
do case
case aButtons[ 1 ]:hObj == aParams[ 1 ]
MsgInfo( "Button 1" )
case aButtons[ 2 ]:hObj == aParams[ 1 ]
MsgInfo( "Button 2" )
endcase
endcase
return nil