Widgets
Origem: Wikipédia, a enciclopédia livre.
O widget é um termo sem tradução que designa componentes de interface gráfica com o usuário (GUI). Qualquer item de uma interface gráfica é chamada de widget, por exemplo: janelas, botões, menus e itens de menus, ícones, barras de rolagem, etc.
Outro ponto que pode ser colocado como Widgets são pequenas janelas que ficam no desktop. Essas Janelas tem como intuito ajudar, informar e divertir o Usuario.
Em poucas palavras widget pode ser definido como sendo um componente de software que viabiliza a interação com o usuário, ex: botão "Cancelar".
Alguns afirmam que o termo widget é, de derivação da junção de duas palavras inglesas "window" e "gadget", porém isto é improvável. A primeira ocorrência desta foi encontrada em Beggar on Horseback (1924), uma peça escrita por George S. Kaufman e Marc Connelly. A peça se refere a protagonista que vivencia a dúvida entre ser um artista, com pouco ou nenhum retorno financeiro ou trabalhar um uma linha de produção de widgets onde o autor se referencia claramente a objetos inanimados com um valor puramente mercantil e sem nenhuma ligação espiritual ou artística.
Podemos dividir os widgets em duas categorias principais, os widgets de baixo nível e os widgets de alto nível.
Widgets de baixo nível, são utilizados na confecção do sistema operacional, eles fazem parte do núcleo do sistema, alguns exemplos são:
Este núcleo é acessado por outros widgets de alto nível que por fim montam a GUI.
Widgets de alto nível, estes seriam os objetos finais propriamente ditos, muitas vezes fazem referências a objetos de baixo nível fornecidos pelo comando do sistema operacional, estes objetos são facilmente encontrados em bibliotecas de desenvolvimento (toolkit) ou em frameworks alguns exemplos são:
- wxWidgets (anteriormente chamada de wxWindows) é um pacote open source com ferramentas para criação de interfaces gráficas multi plataforma.
- O sistema operacional da Apple Mac OS X v10.4 (Tiger) possui o Dashboard, que é uma camada transparente destinada a mostrar pequenas aplicações (widgets);
- Cocoa e Aqua da Apple Mac OS X v10.4;
- Microsoft Foundation Classes (MFC), usada por quase todos desenvolvedores da plataforma Microsoft Windows;
- Windows Template Library (WTL), uma extenção tipo template, baseada em ATL utilizada como substituto para partes do MFC;
- Motif usado no Common Desktop Environment (Unix CDE);
- Lesstif, Código aberto (LGPL), uma versão do Motif;
- GTK+, Código aberto multi-plataforma, utilizado no ambiente GNOME.
- Abstract Windowing Toolkit - AWT, É utilizado em aplicativos Java. Normalmente utiliza widgets de baixo nível como base (Multi-plataforma);
- Swing da Sun Microsystems é um substituto pra AWT nas versões mais novas de Java (Multi-plataforma).
- SWT/JFace (do projeto Eclipse - eclipse.org) é uma biblioteca de API para GUI que utiliza widgets nativos atraves de camada JNI (encapsulamento em Java de código nativo). Permite fazer GUI com performance nativa a partir de API em Java.