Page 2 of 2

Re: Is it possible to have 2 rows of BUTTONBAR?

Posted: Tue Oct 29, 2013 4:06 pm
by James Bott
Alejandro,

Thanks for the sample. I will take a look at it.

I found a simpler example using a panel object in my old notes.

James

Code: Select all

/*
Purpose  : Use panel to attach extra buttonbar, browse, and tabs.
Date     : 02/16/01
Author   : James Bott
Language : Clipper 5.2e/Fivewin 2.0a
Revised  :
Notes    :
*/

#include "fivewin.ch"

function main()
   local oWnd,oBar1,oPanel,oBar2,oTabs,oBrw

   define window oWnd title "Testing Panel Class"

   define buttonbar oBar1 of oWnd 3d size 26,28
   define button of oBar1
   define button of oBar1
   define button of oBar1

   oPanel:= TPanel():new(,,,,oWnd)

   @ 205,300 tabs oTabs prompts "Charges","Contacts","Documents";
      of oPanel pixel
   oPanel:oBottom:=oTabs

   define buttonbar oBar2 of oPanel 3d size 26,28
   define button of oBar2

   use customer alias "cust"
   @ 0,0 XBROWSE oBrw of oPanel ALIAS "CUST"
   oBrw:CreateFromCode()

   oPanel:oClient:= oBrw

   set message of oWnd to "Right-click on the toolbars to move them."

   activate window oWnd ;
     on resize  oPanel:adjclient()

return nil

Re: Is it possible to have 2 rows of BUTTONBAR?

Posted: Tue Oct 29, 2013 4:32 pm
by betoncu
A sample from FWH\Samples

Code: Select all

#INCLUDE "FiveWin.ch"

FUNCTION Main()

   local oWnd, oReBar, oToolBar1, oImageList1, oToolBar2, oImageList2

   DEFINE WINDOW oWnd PIXEL FROM 0, 0 TO 600,650

   DEFINE STATUSBAR OF oWnd PROMPT ""

   DEFINE IMAGELIST oImageList1 SIZE 32, 32
   DEFINE IMGBITMAP OF oImageList1 NAME "BTN_NEW"    COLOR nRGB( 255, 0, 255 )
   DEFINE IMGBITMAP OF oImageList1 NAME "BTN_OPEN"   COLOR nRGB( 255, 0, 255 )
   DEFINE IMGBITMAP OF oImageList1 NAME "BTN_SEARCH" COLOR nRGB( 255, 0, 255 )


   DEFINE IMAGELIST oImageList2 SIZE 32, 32
   DEFINE IMGBITMAP OF oImageList2 NAME "BTN_PRINT"    COLOR nRGB( 255, 0, 255 )
   DEFINE IMGBITMAP OF oImageList2 NAME "BTN_INTERNET" COLOR nRGB( 255, 0, 255 )
   DEFINE IMGBITMAP OF oImageList2 NAME "BTN_KEYS"     COLOR nRGB( 255, 0, 255 )

   oReBar = TReBar():New( oWnd )

   oToolBar1 = TToolBar():New( oReBar, 50, 35, oImageList1 )
   DEFINE TBBUTTON OF oToolBar1 ACTION MsgInfo(1)
   DEFINE TBBUTTON OF oToolBar1 ACTION MsgInfo(2)
   DEFINE TBBUTTON OF oToolBar1 ACTION MsgInfo(3)

   oToolBar2 = TToolBar():New( oReBar, 50, 35, oImageList2 )
   DEFINE TBBUTTON OF oToolBar2 ACTION MsgInfo(4)
   DEFINE TBBUTTON OF oToolBar2 ACTION MsgInfo(5)
   DEFINE TBBUTTON OF oToolBar2 ACTION MsgInfo(6)

   oReBar:InsertBand( oToolBar1 )
   oReBar:InsertBand( oToolBar2 )

   ACTIVATE WINDOW oWnd VALID (oImageList1:End(), oImageList2:End(), .T. )

RETURN NIL
 
.RC File

Code: Select all

#ifdef __FLAT__
   1 24 "./WinXP/WindowsXP.Manifest"
#endif

#ifdef __64__
   1 24 "WinXP/WindowsXP.Manifest64"
#endif 

BTN_NEW      BITMAP "../bitmaps/32x32/new.bmp"
BTN_OPEN     BITMAP "../bitmaps/32x32/open.bmp"
BTN_SEARCH   BITMAP "../bitmaps/32x32/search.bmp"
BTN_PRINT    BITMAP "../bitmaps/32x32/print.bmp"
BTN_INTERNET BITMAP "../bitmaps/32x32/internet.bmp"
BTN_KEYS     BITMAP "../bitmaps/32x32/keys.bmp"
 
Regards,
Birol Betoncu

Re: Is it possible to have 2 rows of BUTTONBAR?

Posted: Tue Oct 29, 2013 5:48 pm
by cnavarro
James Bott wrote:As I mentioned in a previous message in this thread, there is a problem using two buttonbars in a window if you are using oWnd:oClient. The oClient control is painted over the second buttonbar. See the example below.

James
Can be also creating two ButtonBar within a window ButtonBar
So, yes respects OCLIENT area.

Code: Select all

FUNCTION MAIN()

    LOCAL oWnd
    Local oBr

    LOCAL oBar1, oBar2, oBar3, oBar4
    Local oBrw
    Local aData  := {}

    aadd(aData,"100")
    aadd(aData,"200")
    aadd(aData,"300")
    aadd(aData,"400")

    cName1 := "Test"

    DEFINE BRUSH oBr COLOR CLR_WHITE

    DEFINE WINDOW oWnd

    DEFINE BUTTONBAR OF oWnd 2007 ;
           SIZE 1610, 67

    @ -1, 0 BUTTONBAR oBar1 OF oWnd:oBar;
             SIZE 1600, 34;
             BUTTONSIZE 60, 33 //;

    oBar1:l2007 = .F.

    DEFINE BUTTON OF oBar1;
           FILE "C:\FWH\BITMAPS\SAVE.BMP";
           ACTION MSGINFO( "Second bar Ok!" )

    @ 33, 0 BUTTONBAR oBar2 OF oWnd:oBar;
             SIZE 1600, 34;
             BUTTONSIZE 60, 33 //;

    oBar2:l2007 = .F.

    DEFINE BUTTON OF oBar2;
           FILE "C:\FWH\BITMAPS\OPEN.BMP";
           ACTION MSGINFO( "Tercer bar Ok!" )

    @ 0,0 XBROWSE oBrw OF oWnd ARRAY aData

    oBrw:CreateFromCode()

    oWnd:oClient:= oBrw



    ACTIVATE WINDOW oWnd 

    RETURN NIL

//----------------------------------------------------------------------------//
 
Image

Re: Is it possible to have 2 rows of BUTTONBAR?

Posted: Tue Oct 29, 2013 8:28 pm
by James Bott
Wow, four different solutions! I like options. Good work everyone.

James