Page 1 of 2

RIBBONBAR GROUP Resize ?

Posted: Sun Feb 22, 2015 8:39 pm
by avista
Hi all

How to resize GROUP of RibbonBar when group is focused od some button of the group is pressed ?
On some ITEMS of RibbonBar i have more groups than can be showed so resizing can help

Best regards,

Re: RIBBONBAR GROUP Resize ?

Posted: Thu Feb 26, 2015 8:33 am
by avista
Anyone ?

Re: RIBBONBAR GROUP Resize ?

Posted: Fri Feb 27, 2015 7:59 am
by Antonio Linares
Could you provide a screenshot ? thanks

Re: RIBBONBAR GROUP Resize ?

Posted: Sat Feb 28, 2015 2:48 pm
by avista
This is my original ribbon bar
Image
I want to make it like this ... only first part of the group to be visible
Image
But i need to resize GROUP when focused
Image

Best regards,

Re: RIBBONBAR GROUP Resize ?

Posted: Sun Mar 01, 2015 2:11 am
by Daniel Garcia-Gil
Hello

try this way

Code: Select all | Expand


#include "fivewin.ch"
#include "ribbon.ch"

function main()
  local oRBar, oLastG
  local oWnd, oGr1, oGr2
  DEFINE WINDOW oWnd TITLE "RibbonBar Test " + FWVERSION from 1,1 to 600,600 pixel //brush oBrush1
   
  DEFINE RIBBONBAR oRBar WINDOW oWnd PROMPT "Config", "Files"  HEIGHT 133 TOPMARGIN 25

  ADD GROUP oGr1 RIBBON oRBar TO OPTION 1 PROMPT "Clipboard" width 60
  oGr1:Cargo = { "STRETCH" => 215, "NORMAL" => 60}
  ADD GROUP oGr2 RIBBON oRBar TO OPTION 1 PROMPT "Font" width 60
  oGr2:Cargo = { "STRETCH" => 215, "NORMAL" => 60}

  oRBar:aDialogs[1]:bMMoved = {||
    local oControl
    for each oControl in oRBar:aDialogs[1]:aControls
      if oControl:isKindof( "TRBGROUP")
        if oControl:nWidth == oControl:Cargo["STRETCH"] .AND. ! oControl:lMOver
          oControl:SetSize( oControl:Cargo["NORMAL"], oControl:nHeight )
        endif
      endif
    next
    oRBar:Refresh()
    return 0
    }

  oGr1:bMMoved = BuildCodeBlockMMoved( oGr1 )

  oGr2:bMMoved = BuildCodeBlockMMoved( oGr2 )

  ACTIVATE WINDOW oWnd MAXIMIZED
   
  oRBar:End()
   
return nil

function BuildCodeBlockMMoved( oGroup )
return {| nRow, nCol|
    Eval( oGroup:oRB:aDialogs[1]:bMMoved )
    oGroup:MouseHover(nRow, nCol)
    if oGroup:nWidth != oGroup:Cargo["STRETCH"]
       oGroup:setSize( oGroup:Cargo["STRETCH"], oGroup:nHeight)
       oGroup:Refresh()
    endif
    return 0
   }
 

Re: RIBBONBAR GROUP Resize ?

Posted: Sun Mar 01, 2015 6:20 pm
by avista
Daniel,
Thanks for reply

But this sample dont work.
Check it please ?


ribbon5.prg(17) Error E0020 Incomplete statement or unbalanced delimiters
ribbon5.prg(18) Error E0004 LOCAL declaration follows executable statement
ribbon5.prg(28) Error E0030 Syntax error: "syntax error at '}'"
ribbon5.prg(41) Error E0020 Incomplete statement or unbalanced delimiters
ribbon5.prg(43) Warning W0001 Ambiguous reference: 'NROW'
ribbon5.prg(43) Warning W0001 Ambiguous reference: 'NCOL'
ribbon5.prg(49) Error E0030 Syntax error: "syntax error at '}'"

Re: RIBBONBAR GROUP Resize ?

Posted: Sun Mar 01, 2015 6:29 pm
by horacio
I've compiled and works perfectly.

regards

Re: RIBBONBAR GROUP Resize ?

Posted: Sun Mar 01, 2015 6:37 pm
by Daniel Garcia-Gil
Hello

what compiler are you using?

Re: RIBBONBAR GROUP Resize ?

Posted: Sun Mar 01, 2015 6:39 pm
by Daniel Garcia-Gil
Avista

try to move the conde inside the oRBar:aDialogs[1]:bMMoved to a funcion

oRBar:aDialogs[1]:bMMoved = {|| myFunction( oRB ) } //example

Re: RIBBONBAR GROUP Resize ?

Posted: Sun Mar 01, 2015 6:42 pm
by avista
I use

xHarbour 1.2.3 Intl. (SimpLex) (Build 20141124)
fwh 14.12

Regards,

Re: RIBBONBAR GROUP Resize ?

Posted: Sun Mar 01, 2015 6:45 pm
by nageswaragunupudi
I guess he is using xHarbour which does not accept { | | .. } for multiline codeblocks. He should replace with < |nRow,nCol| and end with > in the last line.

Re: RIBBONBAR GROUP Resize ?

Posted: Sun Mar 01, 2015 9:12 pm
by avista
Mr Rao
Thanks this sample working good with your sugestion compiled with xHarbour.
Mr Daniel
Thanks for nice idea.

That is realluy what i need (and others i think)
But unfortunatly dont working good. :(

Image

Please compile this sample and see the results.

Code: Select all | Expand



#include "fivewin.ch"
#include "ribbon.ch"

function main()
  local oRBar, oLastG
  local oWnd, oGr1, oGr2, oGr3, oGr4, oGr5, oGr6, oGr7, oGr8, oGr9
  local oBtn
  DEFINE WINDOW oWnd TITLE "RibbonBar Test " + FWVERSION from 1,1 to 600,600 pixel //brush oBrush1

  DEFINE RIBBONBAR oRBar WINDOW oWnd ;
         PROMPT "Test1", "Test2"     ;
         HEIGHT 133 TOPMARGIN 25

  ADD GROUP oGr1 RIBBON oRBar TO OPTION 1 PROMPT "Group1" width 60
  oGr1:Cargo = { "STRETCH" => 215, "NORMAL" => 60}

  ADD GROUP oGr2 RIBBON oRBar TO OPTION 1 PROMPT "Group2" width 60
  oGr2:Cargo = { "STRETCH" => 215, "NORMAL" => 60}

  ADD GROUP oGr3 RIBBON oRBar TO OPTION 1 PROMPT "Group3" width 60
  oGr3:Cargo = { "STRETCH" => 215, "NORMAL" => 60}

  ADD GROUP oGr4 RIBBON oRBar TO OPTION 1 PROMPT "Group4" width 60
  oGr4:Cargo = { "STRETCH" => 215, "NORMAL" => 60}

  ADD GROUP oGr5 RIBBON oRBar TO OPTION 1 PROMPT "Group5" width 60
  oGr5:Cargo = { "STRETCH" => 215, "NORMAL" => 60}

  ADD GROUP oGr6 RIBBON oRBar TO OPTION 1 PROMPT "Group6" width 60
  oGr6:Cargo = { "STRETCH" => 215, "NORMAL" => 60}

  ADD GROUP oGr7 RIBBON oRBar TO OPTION 1 PROMPT "Group7" width 60
  oGr7:Cargo = { "STRETCH" => 215, "NORMAL" => 60}

  ADD GROUP oGr8 RIBBON oRBar TO OPTION 1 PROMPT "Group8" width 60
  oGr8:Cargo = { "STRETCH" => 215, "NORMAL" => 60}

  ADD GROUP oGr9 RIBBON oRBar TO OPTION 1 PROMPT "Group9" width 60
  oGr9:Cargo = { "STRETCH" => 215, "NORMAL" => 60}

  oRBar:aDialogs[1]:bMMoved = <||
    local oControl
    for each oControl in oRBar:aDialogs[1]:aControls
      if oControl:isKindof( "TRBGROUP")
        if oControl:nWidth == oControl:Cargo["STRETCH"] .AND. ! oControl:lMOver
          oControl:SetSize( oControl:Cargo["NORMAL"], oControl:nHeight )
        endif
      endif
    next
    oRBar:Refresh()
    return 0
    >

  oGr1:bMMoved = BuildCodeBlockMMoved( oGr1 )
  oGr2:bMMoved = BuildCodeBlockMMoved( oGr2 )
  oGr3:bMMoved = BuildCodeBlockMMoved( oGr3 )
  oGr4:bMMoved = BuildCodeBlockMMoved( oGr4 )
  oGr5:bMMoved = BuildCodeBlockMMoved( oGr5 )
  oGr6:bMMoved = BuildCodeBlockMMoved( oGr6 )
  oGr7:bMMoved = BuildCodeBlockMMoved( oGr7 )
  oGr8:bMMoved = BuildCodeBlockMMoved( oGr8 )
  oGr9:bMMoved = BuildCodeBlockMMoved( oGr9 )

  @ 10, 5 ADD BUTTON oBtn PROMPT "Users1" BITMAP "..\bitmaps\users.bmp" ;
          GROUP oGr1 SPLITPOPUP ROUND SIZE 50,65
  @ 10,65 ADD BUTTON oBtn PROMPT "Add user Group1"    BITMAP "..\bitmaps\addrec.bmp";
          GROUP oGr1 MOSTLEFT ROUND SIZE 135,20
  @ 30,65 ADD BUTTON oBtn PROMPT "Edit user Group1"   BITMAP "..\bitmaps\edit.bmp"  ;
          GROUP oGr1 MOSTLEFT ROUND SIZE 135,20
  @ 50,65 ADD BUTTON oBtn PROMPT "Remove user Group1" BITMAP "..\bitmaps\delrec.bmp";
          GROUP oGr1 MOSTLEFT ROUND SIZE 135,20

  @ 10, 5 ADD BUTTON oBtn PROMPT "Users2" BITMAP "..\bitmaps\users.bmp" ;
          GROUP oGr2 SPLITPOPUP ROUND SIZE 50,65
  @ 10,65 ADD BUTTON oBtn PROMPT "Add user Group2"    BITMAP "..\bitmaps\addrec.bmp";
          GROUP oGr2 MOSTLEFT ROUND SIZE 135,20
  @ 30,65 ADD BUTTON oBtn PROMPT "Edit user Group2"   BITMAP "..\bitmaps\edit.bmp"  ;
          GROUP oGr2 MOSTLEFT ROUND SIZE 135,20
  @ 50,65 ADD BUTTON oBtn PROMPT "Remove user Group2" BITMAP "..\bitmaps\delrec.bmp";
          GROUP oGr2 MOSTLEFT ROUND SIZE 135,20

  @ 10, 5 ADD BUTTON oBtn PROMPT "Users3" BITMAP "..\bitmaps\users.bmp" ;
          GROUP oGr3 SPLITPOPUP ROUND SIZE 50,65
  @ 10,65 ADD BUTTON oBtn PROMPT "Add user Group3"    BITMAP "..\bitmaps\addrec.bmp";
          GROUP oGr3 MOSTLEFT ROUND SIZE 135,20
  @ 30,65 ADD BUTTON oBtn PROMPT "Edit user Group3"   BITMAP "..\bitmaps\edit.bmp"  ;
          GROUP oGr3 MOSTLEFT ROUND SIZE 135,20
  @ 50,65 ADD BUTTON oBtn PROMPT "Remove user Group3" BITMAP "..\bitmaps\delrec.bmp";
          GROUP oGr3 MOSTLEFT ROUND SIZE 135,20

  @ 10, 5 ADD BUTTON oBtn PROMPT "Users4" BITMAP "..\bitmaps\users.bmp" ;
          GROUP oGr4 SPLITPOPUP ROUND SIZE 50,65
  @ 10,65 ADD BUTTON oBtn PROMPT "Add user Group4"    BITMAP "..\bitmaps\addrec.bmp";
          GROUP oGr4 MOSTLEFT ROUND SIZE 135,20
  @ 30,65 ADD BUTTON oBtn PROMPT "Edit user Group4"   BITMAP "..\bitmaps\edit.bmp"  ;
          GROUP oGr4 MOSTLEFT ROUND SIZE 135,20
  @ 50,65 ADD BUTTON oBtn PROMPT "Remove user Group4" BITMAP "..\bitmaps\delrec.bmp";
          GROUP oGr4 MOSTLEFT ROUND SIZE 135,20

  @ 10, 5 ADD BUTTON oBtn PROMPT "Users5" BITMAP "..\bitmaps\users.bmp" ;
          GROUP oGr5 SPLITPOPUP ROUND SIZE 50,65
  @ 10,65 ADD BUTTON oBtn PROMPT "Add user Group5"    BITMAP "..\bitmaps\addrec.bmp";
          GROUP oGr5 MOSTLEFT ROUND SIZE 135,20
  @ 30,65 ADD BUTTON oBtn PROMPT "Edit user Group5"   BITMAP "..\bitmaps\edit.bmp"  ;
          GROUP oGr5 MOSTLEFT ROUND SIZE 135,20
  @ 50,65 ADD BUTTON oBtn PROMPT "Remove user Group5" BITMAP "..\bitmaps\delrec.bmp";
          GROUP oGr5 MOSTLEFT ROUND SIZE 135,20

  @ 10, 5 ADD BUTTON oBtn PROMPT "Users6" BITMAP "..\bitmaps\users.bmp" ;
          GROUP oGr6 SPLITPOPUP ROUND SIZE 50,65
  @ 10,65 ADD BUTTON oBtn PROMPT "Add user Group6"    BITMAP "..\bitmaps\addrec.bmp";
          GROUP oGr6 MOSTLEFT ROUND SIZE 135,20
  @ 30,65 ADD BUTTON oBtn PROMPT "Edit user Group6"   BITMAP "..\bitmaps\edit.bmp"  ;
          GROUP oGr6 MOSTLEFT ROUND SIZE 135,20
  @ 50,65 ADD BUTTON oBtn PROMPT "Remove user Group6" BITMAP "..\bitmaps\delrec.bmp";
          GROUP oGr6 MOSTLEFT ROUND SIZE 135,20

  @ 10, 5 ADD BUTTON oBtn PROMPT "Users7" BITMAP "..\bitmaps\users.bmp" ;
          GROUP oGr7 SPLITPOPUP ROUND SIZE 50,65
  @ 10,65 ADD BUTTON oBtn PROMPT "Add user Group7"    BITMAP "..\bitmaps\addrec.bmp";
          GROUP oGr7 MOSTLEFT ROUND SIZE 135,20
  @ 30,65 ADD BUTTON oBtn PROMPT "Edit user Group7"   BITMAP "..\bitmaps\edit.bmp"  ;
          GROUP oGr7 MOSTLEFT ROUND SIZE 135,20
  @ 50,65 ADD BUTTON oBtn PROMPT "Remove user Group7" BITMAP "..\bitmaps\delrec.bmp";
          GROUP oGr7 MOSTLEFT ROUND SIZE 135,20

  @ 10, 5 ADD BUTTON oBtn PROMPT "Users8" BITMAP "..\bitmaps\users.bmp" ;
          GROUP oGr8 SPLITPOPUP ROUND SIZE 50,65
  @ 10,65 ADD BUTTON oBtn PROMPT "Add user Group8"    BITMAP "..\bitmaps\addrec.bmp";
          GROUP oGr8 MOSTLEFT ROUND SIZE 135,20
  @ 30,65 ADD BUTTON oBtn PROMPT "Edit user Group8"   BITMAP "..\bitmaps\edit.bmp"  ;
          GROUP oGr8 MOSTLEFT ROUND SIZE 135,20
  @ 50,65 ADD BUTTON oBtn PROMPT "Remove user Group8" BITMAP "..\bitmaps\delrec.bmp";
          GROUP oGr8 MOSTLEFT ROUND SIZE 135,20

  @ 10, 5 ADD BUTTON oBtn PROMPT "Users9" BITMAP "..\bitmaps\users.bmp" ;
          GROUP oGr9 SPLITPOPUP ROUND SIZE 50,65
  @ 10,65 ADD BUTTON oBtn PROMPT "Add user Group9"    BITMAP "..\bitmaps\addrec.bmp";
          GROUP oGr9 MOSTLEFT ROUND SIZE 135,20
  @ 30,65 ADD BUTTON oBtn PROMPT "Edit user Group9"   BITMAP "..\bitmaps\edit.bmp"  ;
          GROUP oGr9 MOSTLEFT ROUND SIZE 135,20
  @ 50,65 ADD BUTTON oBtn PROMPT "Remove user Group9" BITMAP "..\bitmaps\delrec.bmp";
          GROUP oGr9 MOSTLEFT ROUND SIZE 135,20

  ACTIVATE WINDOW oWnd MAXIMIZED

  oRBar:End()

return nil

function BuildCodeBlockMMoved( oGroup )
return <| nRow, nCol|
    Eval( oGroup:oRB:aDialogs[1]:bMMoved )
    oGroup:MouseHover(nRow, nCol)
    if oGroup:nWidth != oGroup:Cargo["STRETCH"]
       oGroup:setSize( oGroup:Cargo["STRETCH"], oGroup:nHeight)
       oGroup:Refresh()
    endif
    return 0
   >




This is VERRYyyyyyyy useful behavior and i think it need to be improved and included in RIBBONBAR class.

Best regards,
Mr.Daniel, Mr.Rao, Mr.Antonio

And i Please for working sample.

Re: RIBBONBAR GROUP Resize ?

Posted: Tue Mar 03, 2015 9:49 pm
by avista
Mr. Daniel, Rao, Antonio ...
Please try sample and give me some sugestions
Regards,

Re: RIBBONBAR GROUP Resize ?

Posted: Tue Mar 03, 2015 11:48 pm
by Daniel Garcia-Gil
hello

sorry, it's no easy... seeking one solution for your requested

Re: RIBBONBAR GROUP Resize ?

Posted: Fri Mar 06, 2015 9:38 am
by avista
Some sugestions ? :idea:
I need this behavior
and i still think that this behavior need to be improved and included in RIBBONBAR class

/*----------------------------------------------------------------------------//
//GROUP
------------------------------------------------------------------------------*/
#xcommand ADD GROUP [ <oGr> ] ;
[ <of: RIBBONBAR, RIBBON > <oRBar> ];
[ <to: TO OPTION, TO> <nOption> ];
[ PROMPT <cCaption> ];
[ WIDTH <nWidth> ];
[ ONFOCUSWIDTH <nWidthF> ]; // ????
[ ACTION <uAction> ] ;
[ BITMAP <cBitmap> ] ;
[ GRADIANT <aGradSel> ];
=>;
[ <oGr> := ] <oRBar>:AddGroup( <nWidth>, <nWidthF>, <cCaption>, <nOption>,;
[{|Self|<uAction>}], <cBitmap>, <aGradSel> )

Best regards,