bb.donnay-software.com

Donnay Software Web Forums
It is currently Sat Aug 17, 2019 2:21 pm

All times are UTC - 7 hours




Post new topic Reply to topic  [ 6 posts ] 
Author Message
 Post subject: CodeJock ToolBar
PostPosted: Sun Nov 04, 2018 7:23 am 
Offline
User avatar

Joined: Thu Feb 11, 2010 1:39 pm
Posts: 456
Hi Roger

In the sample program below, Is it possible to add a dropdown menu to the toolbar button ?

Thanks

Joe

#INCLUDE "dcdialog.CH"
#INCLUDE "XCodeJock.CH"
#INCLUDE "CommandBars.CH"
#INCLUDE "Definitions.CH"
#INCLUDE "Appevent.CH"
#INCLUDE "fileio.CH"
#INCLUDE "dcbitmap.CH"

#DEFINE TRUE .t.
#DEFINE FALSE .f.

FUNCTION Main()

LOCAL Getlist[0], Getoptions, oCommandBars, oStatic, nTheme, oDlg, nHandle, ;
aDir := Directory(), oBrowse

nHandle := DllLoad('..\..\..\BIN19\DCRES.DLL')
DC_BitmapResourceFile( nHandle )

nTheme := xtpThemeWhidbey

CJCOMMANDBARS oCommandBars ;
VISUALTHEME nTheme ;
SHOWTEXTBELOWICONS TRUE ;
SCALEMODE xtpScalePixel

@0,0 DCSAY '' OBJECT oStatic COLOR GRA_CLR_RED, GRA_CLR_WHITE ;
SIZE 120, 20 ;
FONT '16.Arial Bold' SAYWORDBREAK ;
SAYOPTIONS XBPSTATIC_TEXT_VCENTER + XBPSTATIC_TEXT_CENTER + XBPSTATIC_TEXT_WORDBREAK ;
EVAL {|o|o:setCaption('Mini Toolbar Test Program')}
*/
@ 2.5,0 DCBROWSE oBrowse DATA aDir PARENT oStatic ;
FONT '10.Lucida Console';
SIZE DCGUI_PARENTWIDTH, DCGUI_PARENTHEIGHT-2.5 PIXEL //;
// RESIZE DCGUI_RESIZE_RESIZEONLY

DCBROWSECOL ELEMENT 1 HEADER 'File Name' WIDTH 25 PARENT oBrowse //250
DCBROWSECOL ELEMENT 2 HEADER 'File Size' WIDTH 10 PARENT oBrowse //100
DCBROWSECOL ELEMENT 3 HEADER 'File Date' WIDTH 10 PARENT oBrowse //100
DCBROWSECOL ELEMENT 4 HEADER 'File Time' WIDTH 10 PARENT oBrowse //100

DCBROWSECOL ELEMENT 5 HEADER 'File Time 1' WIDTH 10 PARENT oBrowse //100
DCBROWSECOL ELEMENT 6 HEADER 'File Time 2' WIDTH 10 PARENT oBrowse //100


DCGETOPTIONS; // PIXEL
CLOSEQUERY MSG {||SaveState(oCommandBars),.t.} ;
COLOR GRA_CLR_WHITE RESIZEDEFAULT DCGUI_RESIZE_RESIZEONLY;
HIDE

DCREAD GUI TITLE 'CodeJock Command Bar w/ToolBar' OPTIONS GetOptions ;
EVAL {|o|oDlg := o, ;
BuildToolBar( oCommandBars, oDlg, GetList ), ;
o:show()} ;
SETAPPWINDOW

RETURN nil

* -----------

PROC appsys ; RETURN

* -----------

STATIC FUNCTION BuildToolbar( oCommandBars, oDlg, GetList )

LOCAL oControl, oMenuBar, iCount, cIconPath, aIconArray[5], oOptions, ;
oToolBar1, oToolBar2, oImageManager

oOptions := oCommandBars:getProperty("options")
// Re-Add the Menu Bar
CJADDTOOLBAR oToolBar1 NAME 'ToolBar1' PARENT oCommandBars ;
ALIGN xtpBarTop ICONSIZE 16,16 ; // 32,32
ShowGripper TRUE ;
TEXTORIENTATION xtpBarTextHorizontal

// oToolBar1:enableDocking(xtpFlagStretchedShared)
// oOptions:showExpandButtonAlways := .t.

cIconPath := '.\icons\'

//Add buttons
FOR iCount := ID_STANDARD_1 TO ID_STANDARD_19

CJADDTOOLBUTTON oControl ;
ID iCount ;
PARENT oToolBar1 ;
CATEGORY "Standard" ;
TOOLTIP 'Standard Button ' + Alltrim(Str(iCount)) ;
CAPTION "Standard " + Alltrim(Str(iCount)) ;
ACTION ActionBlock(iCount,oCommandBars,oDlg) ;
ICON cIconPath + "standard_" + Alltrim(Str(iCount - 500)) + ".ico" ;
DESCRIPTIONTEXT 'Just Testing' ;
STYLE xtpButtonIconAndCaptionBelow

NEXT

CJADDTOOLBAR oToolBar2 NAME 'ToolBar 2' PARENT oCommandBars ALIGN xtpBarBottom ICONSIZE 24,16 ShowGripper TRUE
oToolBar2:enableDocking(xtpFlagStretchedShared)

FOR iCount := ID_STANDARD_16 TO ID_STANDARD_19

CJADDTOOLBUTTON oControl ;
ID iCount ;
PARENT oToolBar2 ;
CATEGORY "Small" ;
TOOLTIP 'Small Button ' + Alltrim(Str(iCount)) ;
CAPTION "Small " + Alltrim(Str(iCount)) ;
ACTION ActionBlock(iCount,oCommandBars,oDlg) ;
ICON cIconPath + "standard_" + Alltrim(Str(iCount - 500)) + ".ico"

NEXT

CJADDTOOLBUTTON oControl ;
ID BITMAP_BUG_M ;
PARENT oToolBar1 ;
CATEGORY "Small" ;
TOOLTIP "I am a normal Bug" ;
CAPTION "Bug" ;
HOTKEY 0, VK_F12 ;
ACTION {||DC_WinAlert('test')} ;
ICON BITMAP_BUG_M

CJADDTOOLBUTTON oControl ;
ID BITMAP_OBJECT_M ;
PARENT oToolBar2 ;
CATEGORY "Small" ;
TOOLTIP "I am a small Object" ;
CAPTION "Small Object" ;
HOTKEY FSHIFT + FCONTROL, Asc('Z') ;
ACTION {||DC_SpawnUrl('http://donnay-software.com')} ;
ICON BITMAP_OBJECT_M

aIconArray[1] := ID_STANDARD_15
aIconArray[2] := ID_STANDARD_16
aIconArray[3] := ID_STANDARD_17
aIconArray[4] := ID_STANDARD_18
aIconArray[5] := ID_STANDARD_19

CJLoadBitmap cIconPath + 'usertools.bmp' ;
ID aIconArray STATE xtpImageNormal PARENT oCommandBars:icons

oOptions:UseDisabledIcons := .T.

oCommandBars:EnableCustomization(.T.)

oOptions:updatePeriod := 1000
oCommandBars:update := {||oCommandBars:ResizeDrawingArea(oDlg,.t.,GetList)}

RestoreState(oCommandBars)
oMenuBar := oCommandBars:AddMenuBar("Menu")
oMenuBar:visible := .f.

oCommandBars:recalcLayout()
oCommandBars:ResizeDrawingArea(oDlg,.t.,GetList)

RETURN nil

* ---------------

STATIC FUNCTION ActionBlock( nId, oCommandBars, oDlg )

RETURN {||DC_MsgBox('You clicked on ' + Alltrim(Str(nId))), ;
oCommandBars:resizeDrawingArea(oDlg)}

/*
* ---------------

STATIC FUNCTION SaveState( oCommandBars )

LOCAL cXml, nHandle

cXml := oCommandBars:SaveStateToXmlString( 'ToolBar1')

nHandle := FCreate('ToolbarDemo.Xml')
FWrite(nHandle,cXml )
FClose(nHandle)

RETURN nil

* ---------------

STATIC FUNCTION RestoreState( oCommandBars )

LOCAL cXml, cFileName

cFileName := 'ToolbarDemo.Xml'
IF Fexists(cFileName)
cXml := MemoRead(cFileName)
oCommandBars:LoadStateFromXmlString('ToolBar1',cXml)
ENDIF

RETURN nil
*/

* ------------

STATIC FUNCTION SaveState( oCommandBars )

LOCAL cTxt, nHandle

cTxt := oCommandBars:SaveStateToString( .t.,.t.,.t.)
nHandle := FCreate('ToolbarDemo.txt')
FWrite(nHandle,cTxt )
FClose(nHandle)

RETURN nil

* ---------------

STATIC FUNCTION RestoreState( oCommandBars, oRibbonbar )

LOCAL cTxt, cFileName

cFileName := 'ToolbarDemo.txt'
IF Fexists(cFileName)
cTxt := MemoRead(cFileName)
oCommandBars:LoadStateFromString(cTxt ,.t.,.t.,.t.)
ENDIF

RETURN nil


Top
 Profile  
 
 Post subject: Re: CodeJock ToolBar
PostPosted: Sun Nov 04, 2018 8:52 am 
Offline
User avatar

Joined: Thu Jan 28, 2010 12:59 am
Posts: 742
Location: Berlin, Germany
DCPUSHBUTTONXP has a menu (dropdown) option. Use that instead of CJ!

And please use the "code" tag to mark the code in your messages, Joe. It's much easier to read then.

_________________
Best regards,
Tom

"Did I offend you?"
"No."
"Okay, give me a second chance."


Top
 Profile  
 
 Post subject: Re: CodeJock ToolBar
PostPosted: Sun Nov 04, 2018 10:20 am 
Offline
User avatar

Joined: Thu Feb 11, 2010 1:39 pm
Posts: 456
I use DCPUSHBUTTONXP extensively and I am aware of that feature but just want to know if Donnay implemented it in Codejock Toolbar.

Joe


Top
 Profile  
 
 Post subject: Re: CodeJock ToolBar
PostPosted: Sun Nov 04, 2018 3:45 pm 
Offline
User avatar

Joined: Wed Feb 24, 2010 3:44 pm
Posts: 1133
hi,

i wonder why you want to use Codejock Toolbar and not XbpToolbar while both are same ("ToolbarWindow32") :?:

Quote:
Is it possible to add a dropdown menu to the toolbar button ?
Yes ... but i don't know how with Codejock

Xbase++ XbpToolbar() have XbpToolBarButtonMenuItem()
native DXE_Toolbar use same Constante XBPTOOLBAR_BUTTON_DROPDOWN and Snytax.

p.s. DXE LIB also have REBAR() to enhance Toolbar(s)
Attachment:
DXE_Rebar.jpg
DXE_Rebar.jpg [ 59.71 KiB | Viewed 3344 times ]

_________________
greetings by OHR
Jimmy


Top
 Profile  
 
 Post subject: Re: CodeJock ToolBar
PostPosted: Mon Nov 05, 2018 7:30 am 
Offline
Site Admin
User avatar

Joined: Wed Jan 27, 2010 6:58 pm
Posts: 3957
Location: Boise, Idaho USA
I haven't done anything with XCodeJock in a long time.

I found that just about any kind of GUI look or function could be written using DC* commands in Xbase++.

This requires no ActiveX.

I always hated command bars.
They are complicated to write and maintain and have always seemed to be convuluted and

Most likely, a menu can be added because you can add anything to a push button.
Look at \exp20\samples\menu\buttonmenu.prg

_________________
The eXpress train is coming - and it has more cars.


Top
 Profile  
 
 Post subject: Re: CodeJock ToolBar
PostPosted: Mon Nov 05, 2018 12:21 pm 
Offline
User avatar

Joined: Thu Feb 11, 2010 1:39 pm
Posts: 456
Thanks all

I examined the xcodejock.ch and made ONE line modification and I got it working as shown below.

Attachment:
CJToolbar.png
CJToolbar.png [ 163.99 KiB | Viewed 3316 times ]


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group