43 lines
1.6 KiB
C++
43 lines
1.6 KiB
C++
|
#include<gtk/gtk.h>
|
||
|
|
||
|
static void button_clicked(GtkWidget *widget,GtkApplication *app){
|
||
|
//A text function of gtk_overlay_get_child
|
||
|
GtkWindow *win=gtk_application_get_active_window(app);
|
||
|
GtkWidget *overlay,*label;
|
||
|
overlay=gtk_window_get_child(win);
|
||
|
label=gtk_overlay_get_child(GTK_OVERLAY(overlay));
|
||
|
gtk_label_set_label(GTK_LABEL(label),"Test");
|
||
|
}
|
||
|
|
||
|
static void gtkmain(GtkApplication *app,gpointer user_data){
|
||
|
GtkWidget *window,*label1,*label2,*overlay,*button;
|
||
|
//Main window
|
||
|
window=gtk_application_window_new(app);
|
||
|
gtk_window_set_default_size(GTK_WINDOW(window),400,100);
|
||
|
gtk_window_set_icon_name(GTK_WINDOW(window),"gtk66");
|
||
|
//Overlay widgets
|
||
|
overlay=gtk_overlay_new();
|
||
|
//Button
|
||
|
button=gtk_button_new_with_label("Test");
|
||
|
g_signal_connect(button,"clicked",G_CALLBACK(button_clicked),app);
|
||
|
gtk_widget_set_halign(button,GTK_ALIGN_CENTER);
|
||
|
gtk_widget_set_valign(button,GTK_ALIGN_END);
|
||
|
gtk_overlay_add_overlay(GTK_OVERLAY(overlay),button);
|
||
|
//Label1
|
||
|
label1=gtk_label_new("label1");
|
||
|
gtk_widget_set_valign(label1,GTK_ALIGN_START);
|
||
|
gtk_widget_set_halign(label1,GTK_ALIGN_CENTER);
|
||
|
gtk_overlay_add_overlay(GTK_OVERLAY(overlay),label1);
|
||
|
//label2
|
||
|
label2=gtk_label_new("label2");
|
||
|
gtk_overlay_set_child(GTK_OVERLAY(overlay),label2);
|
||
|
gtk_window_set_child(GTK_WINDOW(window),overlay);
|
||
|
gtk_widget_show(window);
|
||
|
}
|
||
|
|
||
|
int main(int argc,char **argv){
|
||
|
GtkApplication *app;
|
||
|
app=gtk_application_new("org.gtk.daleclack",G_APPLICATION_NON_UNIQUE);
|
||
|
g_signal_connect(app,"activate",G_CALLBACK(gtkmain),NULL);
|
||
|
return g_application_run(G_APPLICATION(app),argc,argv);
|
||
|
}
|