Chuva de janelas
Publicado por - (última atualização em 28/02/2019)
[ Hits: 1.857 ]
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();
}
Ler N números e ver qual é o maior
Calculo do número de Euler em C++
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
[Resolvido] Algo deu errado ao abrir seu perfil
Usando o VNSTAT para medir o seu consumo de internet
Habilitando clipboard manager no ambiente COSMIC
Quando vocês pararam de testar distros? (12)
Problema com som no laptop (3)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)









