28.01.09
From: "Roger Donnay" <
rogerdonnay@donnay-software.com>
Ok, I now understand what you are trying to do.
Here is some updated code that uses all PIXEL coordinates.
It is much easier to do what you want when not using the FIT clause of DCREAD GUI and instead using the WINDOWHEIGHT clause of DCGETOPTIONS.
///////////////////////////////////////////////////////////////////////////////
//
// Ribbonbar / StatusBar with Xbase++ and eXPress++ // // Notes:
//
///////////////////////////////////////////////////////////////////////////////
#INCLUDE "dcdialog.CH"
#INCLUDE "XCodeJock.CH"
#INCLUDE "CommandBars.CH"
#define ID_INDICATOR_CAPS 59137
#define ID_INDICATOR_NUM 59138
#define ID_INDICATOR_SCRL 59139
PROC appsys ; RETURN
* -----------
FUNCTION Main()
LOCAL Getlist[0], Getoptions, oCommandBar, oStatic
DCCJCOMMANDBARS oCommandbar ;
VISUALTHEME xtpThemeOfficeXP ;
EXECUTE {|o|_Execute(o,oStatic)} ;
EVAL {|o|_BuildRibbon(o)} ;
RESIZE DCGUI_RESIZE_REPOSONLY_Y
@ 175,0 DCSAY '' OBJECT oStatic COLOR GRA_CLR_RED, GRA_CLR_WHITE ;
SIZE 500, 275 FONT '24.Arial Bold' SAYWORDBREAK ;
RESIZE DCGUI_RESIZE_RESIZEONLY
DCGETOPTIONS RESIZE WINDOWHEIGHT 500 WINDOWWIDTH 500 PIXEL
DCREAD GUI TITLE 'CodeJock Command Bar w/Ribbon' OPTIONS GetOptions // FIT
RETURN nil
* -----------
STATIC FUNCTION _BuildRibbon( oCommandBar )
Local oRibbonBar, oCommandBarControl, oPopUp, oTab1, oTab2, oCommandBarPopup, ;
oPane, oSBar
oCommandBar:add('commandbar',xtpBarTop)
CJAddRibbonBar oRibbonBar NAME 'RibbonBar1' PARENT oCommandBar
oRibbonBar:enableDocking(xtpFlagStretched)
oCommandBarPopup := oRibbonBar:AddSystemButton() oCommandBarPopup:IconId := 0 oCommandBarPopup:Caption := "&File"
oCommandBarPopup:CommandBar:Controls:Add( xtpControlButton, 10, "&New" ) oCommandBarPopup:CommandBar:Controls:Add( xtpControlButton, 11, "&Open..." ) oCommandBarPopup:CommandBar:Controls:Add( xtpControlButton, 12, "&Save" ) oCommandBarPopup:CommandBar:Controls:Add( xtpControlButton, 13, "Save &As..." )
oCommandBarControl := oRibbonBar:Controls:Add(xtpControlPopup, -1, "&Popup ONE", 1)
oPopUp := oCommandBarControl:CommandBar:Controls
oPopUp:Add(xtpControlButton, 1, "&New")
oPopUp:Add(xtpControlButton, 2, "&Edit")
oCommandBarControl := oPopUP:Add(xtpControlButton, 3, "&Save") oCommandBarControl:BeginGroup := .T.
oTab1 := oRibbonBar:InsertTab(0, "&Write")
oTab2 := oRibbonBar:InsertTab(0, "&Read")
* --- Status Bar ---
oSBar := oRibbonBar:CommandBars:StatusBar()
oSBar:Visible := .T.
oPane := oSBar:AddPane(0)
oPane:Style := SBPS_STRETCH // Or SBPS_NOBORDERS oPane:Text := "Ready"
oPane:Width := 0 // Auto Size
// Adds the special Caps lock indicator pane oSBar:AddPane (ID_INDICATOR_CAPS) // Adds the special Num lock indicator pane oSBar:AddPane (ID_INDICATOR_NUM ) // Adds the special Scroll lock indicator pane oSBar:AddPane (ID_INDICATOR_SCRL)
return nil
* ------------
STATIC FUNCTION _execute( oPopup, oStatic )
LOCAL cMessage
IF oPopup:id == 1
cMessage := 'New from Popup'
ELSEIF oPopup:id == 2
cMessage := 'Edit from Popup'
ELSEIF oPopup:id == 3
cMessage := 'Save from Popup'
ELSEIF oPopup:id == 10
cMessage := 'New from System Menu'
ELSEIF oPopup:id == 11
cMessage := 'Open from System Menu'
ELSEIF oPopup:id == 12
cMessage := 'Save from System Menu'
ELSEIF oPopup:id == 13
cMessage := 'SaveAs from System Menu'
ENDIF
IF !Empty(cMessage) .AND. Valtype(oStatic) == 'O'
oStatic:setCAption('You selected: ' + cMessage) ENDIF
RETURN nil