MainUI

Outras bibliotecas visuais e IDEs para Harbour/xHarbour (xHGTK/HbWxW/GtWvT/GtWvW/WvWtools.etc)

Moderador: Moderadores

Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

MainUI

Mensagem por bencz »

Depois de quase 1 ano e meio de desenvolvimento, a minha lib. de interface gráfica ta funcionando legal...
A lib. é baseada em ideias do HTML e do GTK, começando pelo sistema de contêiner, tipo o do GTK, e da parte de HTML, com relação a responsividade.

A lib. ja possui recursos bastante avançados, com relação a geração de graficos e sistema de grids, com grid com filtro por coluna ou filtro global, paginação e etc.
A 'beleza' da interface é 100% customizável, por exemplo, trocar a cor do botão do grid, ou, da barra de menu do visualizador de PDF.
Toda a parte visual, foi 100% basead na ideia do bootstrap, estilo dos botoes, estilo dos menus e etc..., inclusive, o template padrão da MainUI é baseado em um template do bootstrap, cores, formatação dos botões e etc, a diferença, é que não existe bootstrap por traz ou html ou CSS... é tudo rodando nativo.

A lib foi desenvolvida em C com Wrapper para (x)Harbour, a lib utiliza o OpenGL para desenhar os botoes, text-box e tudo mais...., assim, existe uma mescla bastante complicada no meio...

Vamos para um pequeno código de exemplo, vamos criar a seguinte tela:
Imagem

O código para desenhar tela é, um tanto estranho, mas simples de se entender, quando se conhece o conceito de containers

Código: Selecionar todos

#include "MainUi.ch"

function start()
    createUi()
return nil

function createUi()
    local oApplication          := nil
    local oGridContainer        := nil
    local oContainerTopMenu     := nil
    local oContainerLeftMenu    := nil
    local oContainerDataContent := nil
    local oButtonWidget         := nil
    
    oApplication := MainUi():New()
    oApplication:BorderStyle(MAINUI_BORDER_NONE)
    oApplication:WindowState(MAINUI_STATE_MAXIMIZED)
    
    oContainerTopMenu     := oApplication:AddContainer()
    oGridContainer        := oApplication:AddGridContainerBelow(oContainerTopMenu, 1, 2)
    oContainerLeftMenu    := oGridContainer:GetGridInstanceAt(1, 1)
    oContainerDataContent := oGridContainer:GetGridInstanceAt(1, 2)
    
    // Define o tamanho do container
    oContainerTopMenu:SetMaximumHeight(08)  // sempre em %
    oContainerLeftMenu:SetMaximumWidth(13)  
    
    // Muda a cor do container do menu de cima              
    oContainerTopMenu:SetStyle("background", "77,116,150")  // RGB[A]      
    
    // Muda a cor do menu lateral
    oContainerLeftMenu:SetStyle("background", "183,200,165") // RGB[A] 
        
    // Adiciona a imagem do MainUI no top menu
    oContainerTopMenu:AddMainUiLogo(MAINUI_POSITION_LEFT)
    
    // Cria um botão 
    oButtonWidget := oApplication:CreateButton()
    oButtonWidget:SetWidth(100)
    oButtonWidget:SetHeight(60)
    oButtonWidget:SetText("Clique aqui")
    oButtonWidget:SetEvent({|| MainUI:MessageBox("Você clicou no botão", "Alerta") })
    
    // Adiciona o botão bem no meio do container principal
    oContainerDataContent:AddWidgetUsingFloatPosition(oButtonWidget, 50, 50)
    
    oApplication:Start()
return nil
Mais alguns exemplos:
Imagem
Imagem
Imagem
Imagem
Imagem
Imagem

Como o sistema possui a ideia de ser responsivo:
Imagem
Imagem

O uso de memoria para essa minha aplicação de teste, é de apenas ( apenas ? ) 75mb...., visto a quantidade de coisa q tem e recursos, acho pouco...
Imagem
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

MainUI

Mensagem por MSDN »

Dar os parabéns é pouco, que trabalho sensacional, estou correndo para entregar um serviço mas não pude deixar de parar um tempo e ver a qualidade do teu serviço, e claro, a cabeça começa pensar longe, nas infinitas possibilidades, etc, etc, etc.
Com um trabalho desses, vc elevou o nível do xBase no geral, é de uma relevância muito grande, se continuar opensource blz, mas se vc fizer algo fechado e cobrar, o que acho muito justo aliás, eu compraria !
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

MainUI

Mensagem por MSDN »

Ainda sobre interface, algo muito importante são as cores, pode notar que hoje em dia são usadas cores com tons diferenciados, gradientes, etc, e um lugar para achar de forma prática tudo isso é nesse site : https://color.adobe.com/pt/create/color-wheel
Responder