Página 1 de 1

Mensagem no StatusBar - Menu de Opções

Enviado: 03 Jun 2020 16:19
por asimoes
A entrada MESSAGE não existe na classe MENU da HwGui, tem como definir uma mensagem para ser exibida no statusbar do que faz a opção faz?
Isso tem na Minigui.

Código: Selecionar todos

MENU OF Thisform BMPSIZE 24, 24
                  MENU TITLE "Samples"
                     MENUITEM "&Exit"    ID 1001 MESSAGE "TESTE OPÇÃO" ACTION Thisform:Close()   BITMAP "image\exit_m.bmp" 
                     SEPARATOR                      
                     MENUITEM "&New "    ID 1002 ACTION hwg_Msginfo("New")  BITMAP "avi\user_info.png"  
                     MENUITEM "&Open"    ID 1003 ACTION hwg_Msginfo("Open") BITMAP "image\open_m.bmp" 
                     MENUITEM "&Demo"    ID 1004 ACTION hwg_Msginfo("test") BITMAP "image\logo.bmp"
                     separator
                     MENUITEM "&Bitmap and a Text"  ID 1005 ACTION hwg_Msginfo("test") //BITMAP "image\logo.bmp"
                  ENDMENU   
                ENDMENU                

Mensagem no StatusBar - Menu de Opções

Enviado: 04 Jun 2020 14:06
por marcosgambeta
Veja se na sua HWGUI tem esta pasta:

contrib/menus

Eram as alterações para introduzir este recurso na HWGUI. Mas precisam ser revisadas.

Na época, coloquei na pasta 'contrib' em vez de fazer diretamente na pasta 'source'. Mas o tempo passou e a pasta foi apagada pelo Alexander Kresin, de forma que as alterações se perderam.

Mensagem no StatusBar - Menu de Opções

Enviado: 04 Jun 2020 14:30
por Itamar M. Lins Jr.
Ola!
Não achei essa entrada no Changelog para determinar que ano foi feito esse upload no CVS. Deve ter sido no CVS pq depois migrou para SVN.

Saudações,
Itamar M. Lins Jr.

Mensagem no StatusBar - Menu de Opções

Enviado: 04 Jun 2020 14:31
por asimoes
marcosgambeta escreveu:Veja se na sua HWGUI tem esta pasta:
Marcos, infelizmente não.

Tem esse demo usando menu, mas não com o recurso de mensagem

Mensagem no StatusBar - Menu de Opções

Enviado: 04 Jun 2020 14:43
por Itamar M. Lins Jr.
Ola!
Marcos, infelizmente não.
Se fez upload no CVS, tem como achar buscando pela data, pelo menos o ano.

Saudações,
Itamar M. Lins Jr.

Mensagem no StatusBar - Menu de Opções

Enviado: 04 Jun 2020 15:26
por marcosgambeta
Era mais antigo do que pensava (revisão 67):

Código: Selecionar todos

Revision: 67
Author: marcosgambeta
Date: quinta-feira, 18 de março de 2004 09:05:55
Message:
Created folder 'contrib', with files to implement menus with messages (work in progress).

----
Added : /trunk/hwgui/contrib
Added : /trunk/hwgui/contrib/menus
Added : /trunk/hwgui/contrib/menus/guilib.ch
Added : /trunk/hwgui/contrib/menus/hwindow.prg
Added : /trunk/hwgui/contrib/menus/info.txt
Added : /trunk/hwgui/contrib/menus/menu.prg
Added : /trunk/hwgui/contrib/menus/test.bat
Added : /trunk/hwgui/contrib/menus/test.prg
O Alexander Kresin removeu nesta revisão (1965):

Código: Selecionar todos

Revision: 1965
Author: alkresin
Date: terça-feira, 25 de dezembro de 2012 09:46:04
Message:
contrib/menus has been removed, contrib/misc - added

----
Deleted : /trunk/hwgui/contrib/menus
Added : /trunk/hwgui/contrib/misc
Então, até a revisão 1964 o código estará presente.

Mas não me lembro porque não passei para a pasta 'source'. Entretanto, não deve ser difícil introduzir as mudanças numa versão mais recente. A estrutura interna não deve ter mudado tanto assim.

Mensagem no StatusBar - Menu de Opções

Enviado: 04 Jun 2020 15:31
por marcosgambeta
Seguem os arquivos como estavam na revisão 1964:

Mensagem no StatusBar - Menu de Opções

Enviado: 04 Jun 2020 19:19
por asimoes
Fiz uma gambi que funcionou até isso um dia ser implementado na lib

Código: Selecionar todos


   aMens := {}
   
   aAdd( aMens, {1001, "OPÇÃO 1"})
   aAdd( aMens, {1002, ""})
   aAdd( aMens, {1003, ""})
   aAdd( aMens, {1004, "OPÇÃO 4"})
   
   INIT DIALOG oDlg TITLE "BrowseColor" ;
               AT   0, 0 ;
               SIZE 965,600 ;
               NOEXIT ;
               FONT HFont():Add( 'Tahoma', 0, -13, 550 ) ;
               ON PAINT {|This| Proc_On_Paint( __xhb_p2n( This:handle ), , , , , {255,255,255}, {192,192,192} ) } ;
               STYLE WS_POPUP + WS_CAPTION + WS_SYSMENU + DS_CENTER 
   
   Thisform := oDlg

   Thisform:bOther := {|this,m,wp,lp| tProc( this, m, wp, lp ) }

   MENU OF Thisform TITLE "TESTE" BMPSIZE 24, 24
      MENU TITLE "Samples"
         MENUITEM "&Exit"    ID 1001 ACTION Thisform:Close()  BITMAP "image\exit_m.bmp"  
         SEPARATOR                      
         MENUITEM "&New "    ID 1002 ACTION hwg_Msginfo("New")  BITMAP "avi\user_info.png"  
         MENUITEM "&Open"    ID 1003 ACTION hwg_Msginfo("Open") BITMAP "image\open_m.bmp" 
         MENUITEM "&Demo"    ID 1004 ACTION hwg_Msginfo("test") BITMAP "image\logo.bmp"
         separator
         MENUITEM "&Bitmap and a Text"  ID 1005 ACTION hwg_Msginfo("test") //BITMAP "image\logo.bmp"
      ENDMENU   
   ENDMENU              

*
*
*

FUNCTION tProc( this, Msg, wParam, lParam ) 
LOCAL nPos, nPos1, nPos2, nVirtCode, iParLow, iCont, oElemento
   
   iParLow := hwg_Loword( wParam )
   
   IF Msg == WM_MENUSELECT

      nPos := Hb_aScan( aMens, {|a| a[1] == iParLow } )
      
      IF nPos > 0
         hwg_WriteStatus( ThisForm, 1, aMens[nPos,2] ) 
      ELSE
         hwg_WriteStatus( ThisForm, 1, "" ) 
      ENDIF      
      
   ENDIF

RETURN -1


Mensagem no StatusBar - Menu de Opções

Enviado: 04 Jun 2020 19:48
por asimoes
iParLow := hwg_Loword( wParam ) = PEGA O ID DO MENU