Hwgui GTK4 Inicio dos trabalhos. 23-09-2026

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8359
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 7 vezes
Curtiram: 2 vezes

Hwgui GTK4 Inicio dos trabalhos. 23-09-2026

Mensagem por Itamar M. Lins Jr. »

Olá!
Vamos que vamos!

Código: Selecionar todos

2026-09-23 11:29 UTC-0300  Itamar Junior  <itamarlins@gmail.com>
 + hwgui/hwguiGTK4.hbp
 + hwgui/hwguiGTK4.hbc
 + hwgui/hwguiGTK4.hbm
 + hwgui/source/gtk4/
   Initial commit for the HWGUI GTK4 port.
   Added hwguiGTK4.hbp (Harbour project file), hwguiGTK4.hbc (build
   configuration) and hwguiGTK4.hbm (makefile) as the base for the
   GTK2 to GTK4 migration.
   Added the source/gtk4/ directory containing the initial GTK4
   source files, headers and supporting resources for the port.
 
"Até aqui nos ajudou o Senhor" !
Samuel 7:12
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8359
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 7 vezes
Curtiram: 2 vezes

Re: Hwgui GTK4 Inicio dos trabalhos. 23-09-2026

Mensagem por Itamar M. Lins Jr. »

Olá!
Utilitário bincnt, que eu uso. Já compila usando GTK4.

Código: Selecionar todos

2026-09-23 14:21 UTC-0300  Itamar Junior  <itamarlins@gmail.com>
 * hwgui/source/gtk4/commond.c
   Fix hwg_SelectFile returning an empty string in GTK4.
   The async callback always called
   gtk_file_dialog_open_multiple_finish(), which returns NULL for
   single-file and folder dialogs. The callback now dispatches to
   the correct *_finish() based on the operation mode:
   gtk_file_dialog_open_finish() for single file,
   gtk_file_dialog_open_multiple_finish() for multiple files, and
   gtk_file_dialog_select_folder_finish() for folders.
   
2026-09-23 13:43 UTC-0300  Itamar Junior  <itamarlins@gmail.com>
 + hwgui/utils/bincnt/bincntGTK4.hbp
   Added bincntGTK4.hbp to build the bincnt utility against the
   GTK4 version of HWGUI (uses hwguiGTK4.hbc). The original
   bincnt.hbp is kept for the GTK2/Win32 builds.

2026-09-23 13:18 UTC-0300  Itamar Junior  <itamarlins@gmail.com>
 + hwgui/source/common/editor/hcedit_l_gtk4.c
   Added GTK4-specific version of hcedit_l.c. Keeps the original
   file intact for GTK2, avoiding #ifdef clutter.
 + hwgui/procmiscGTK4.hbp
   GTK4 variant of procmisc.hbp, compiling hcedit_l_gtk4.c.
   Applications targeting GTK4 should link this library instead
   of procmisc.

2026-09-23 12:30 UTC-0300  Itamar Junior  <itamarlins@gmail.com>
 + hwgui/include/hwgtk4.h
   Added missing header hwgtk4.h to the initial GTK4 port commit (r3971).
  
Captura_de_tela_20260923_143009.png
Captura_de_tela_20260923_143009.png (36.91 KiB) Exibido 38 vezes
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8359
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 7 vezes
Curtiram: 2 vezes

Re: Hwgui GTK4 Inicio dos trabalhos. 23-09-2026

Mensagem por Itamar M. Lins Jr. »

Olá!
Os temas! fluindo! Dark, Air...., dentro do browse, cabeçalhos, linhas etc...O GTK4 conversa com o gerenciador de janelas.
Ai não fui eu que pintei, redesenhei... fiquei mexendo aqui, ali... O sistema pega o tema do KDE/Gnome/Windows e aplica.
Mas eu posso escolher meu thema.css e mudar, caso não queira que meu app obedeça o tema do OS.(Gerenciador de janelas) no caso do Linux.
Captura_de_tela_20260923_220122.png
Captura_de_tela_20260923_220122.png (57.3 KiB) Exibido 16 vezes
Captura_de_tela_20260923_220653.png
Captura_de_tela_20260923_220653.png (94.89 KiB) Exibido 16 vezes
Captura_de_tela_20260923_220929.png
Captura_de_tela_20260923_220929.png (209.64 KiB) Exibido 16 vezes
Muda conforme o thema que escolhemos.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8359
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 7 vezes
Curtiram: 2 vezes

Re: Hwgui GTK4 Inicio dos trabalhos. 23-09-2026

Mensagem por Itamar M. Lins Jr. »

Olá!
Pedaço do código que tive que ajustar, pq esse utilitário é compilado no Windows/GTK2/GTK4

Código: Selecionar todos

FUNCTION Main( cContainer )

   LOCAL oMainW, oMainFont, oMenuBrw
   LOCAL nBkColor, nFgColor, nHeadBg, nHeadFg, nSelBg, nSelFg, nSepColor
   LOCAL aColors
   LOCAL oStyle
   LOCAL bRClick

#ifdef __HWGUI_GTK4__
   /*
    * GTK4: read the current theme (light or dark) from the system
    * and use matching colours.  Bar, browse, header and status panel
    * then follow the desktop theme (KDE / GNOME).
    */
   aColors   := hwg_GetThemeColors()
   nBkColor  := aColors[1]   /* bg         */
   nFgColor  := aColors[2]   /* fg         */
   nHeadBg   := aColors[6]   /* header_bg  */
   nHeadFg   := aColors[7]   /* header_fg  */
   nSelBg    := aColors[4]   /* sel_bg     */
   nSelFg    := aColors[5]   /* sel_fg     */
   nSepColor := aColors[8]   /* separator  */
#else
   /*
    * Windows and GTK2: keep the original fixed light palette.
    */
   nBkColor  := 0xffffff
   nFgColor  := 0
   nHeadBg   := 0xffffff
   nHeadFg   := 0xbbbbbb
   nSelBg    := 0xeeeeee
   nSelFg    := 0
   nSepColor := 0xbbbbbb
#endif

   oStyle := HStyle():New( { nHeadBg, nSepColor } )

   bRClick := {|o,nCol,nLine|
      LOCAL n := nLine, nRec := Eval( o:bRecno,o )
      IF n != nRec
         DO WHILE n != nRec
            IF n < nRec
               o:LineUp()
               n ++
            ELSE
               o:LineDown()
               n --
            ENDIF
         ENDDO
      ENDIF
      oMenuBrw:Show( HWindow():GetMain() )
      RETURN Nil
   }

   PREPARE FONT oMainFont NAME "Georgia" WIDTH 0 HEIGHT - 17 CHARSET 4
   INIT WINDOW oMainW MAIN TITLE "Binary container manager" ;
      AT 200, 0 SIZE 600, 540 FONT oMainFont ON EXIT {||CntClose()}
 
E mudei no HBP(próprio para gtk4)

Código: Selecionar todos

# $Id$
#
# bincntGTK4.hbp - GTK4 variant of bincnt.hbp
#

# Special parameters for LINUX/GTK4
{linux}-lm
{linux}-lz
{linux}-static
{linux}-d__LINUX__
{linux}-d__GTK__

# GTK4
{linux}../../hwguiGTK4.hbc
{linux}-d__HWGUI_GTK4__

-L../..

-n -w1

-o../../bin/bincnt

bincnt.prg

# ============== EOF of bincntGTK4.hbp =============
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8359
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 7 vezes
Curtiram: 2 vezes

Re: Hwgui GTK4 Inicio dos trabalhos. 23-09-2026

Mensagem por Itamar M. Lins Jr. »

Olá!
Arquivo message.c todo refeito 100% GTK4.
Mensagens no idioma do usuário.
Com o tema, aplicado.
Captura_de_tela_20260923_232838.png
Captura_de_tela_20260923_232838.png (25.19 KiB) Exibido 5 vezes
Como é hoje no Windows.
Captura_de_tela_20260923_233223.png
Captura_de_tela_20260923_233223.png (9.91 KiB) Exibido 4 vezes
Saudações,
Itamar M. Lins Jr.
Responder