Chuva de janelas
Publicado por - (última atualização em 28/02/2019)
[ Hits: 1.834 ]
Homepage: -
Programa para exibir na tela uma quantidade de janelas a ser definida pelo usuário, com elas sendo posicionadas aleatoriamente. Requer GTK+2 para funcionamento.
Em distribuições Debian-like, use o comando como root:
# apt install libgtk2.0-dev
Para compilar, use o comando:
$ gcc -o chuva chuva.c `pkg-config --libs --cflags gtk+-2.0`
Para executar:
$ ./chuva
#include <gtk/gtk.h>
#include <time.h>
void show_windows(GtkButton *button, GtkWidget *entry){
const gchar* gfreq;
gfreq = gtk_entry_get_text(GTK_ENTRY(entry));
int intfreq = atoi(gfreq);
for(int i = 0; i < intfreq; i++){
srand(time(0)+i);
GtkWidget *window;
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_move(GTK_WINDOW(window), rand()%gdk_screen_width()+1, rand()%gdk_screen_height()+1);
gtk_window_set_default_size(GTK_WINDOW(window), 150, 150);
gtk_window_set_title(GTK_WINDOW(window), "Janela");
gtk_widget_show(window);
}
}
int main(int argc, char **argv){
gtk_init(&argc, &argv);
GtkWidget *window;
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "Chuva");
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
GtkWidget *label;
label = gtk_label_new("Frequência:");
GtkWidget *entry;
entry = gtk_entry_new();
GtkWidget *button;
button = gtk_button_new_with_label("Mágica!");
g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(show_windows), entry);
GtkWidget *vbox;
vbox = gtk_vbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, 0, 0);
gtk_box_pack_start(GTK_BOX(vbox), entry, FALSE, 0, 0);
gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, 0, 5);
gtk_container_add(GTK_CONTAINER(window), vbox);
gtk_widget_show_all(window);
gtk_main();
}
[C] Decompositor de números em fatores primos
Função simples recursiva para fibonacci
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como impedir exclusão de arquivos por outros usuários no (Linux)
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Alguém executou um rm e quase mata a Pixar! (0)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (3)









