ui/gtk/window.c

changeset 112
c3f2f16fa4b8
parent 110
c00e968d018b
equal deleted inserted replaced
111:81c4f73236a4 112:c3f2f16fa4b8
370 // content vbox 370 // content vbox
371 GtkWidget *content_box = ui_gtk_vbox_new(0); 371 GtkWidget *content_box = ui_gtk_vbox_new(0);
372 gtk_container_add(GTK_CONTAINER(frame), content_box); 372 gtk_container_add(GTK_CONTAINER(frame), content_box);
373 obj->container = ui_box_container(obj, content_box); 373 obj->container = ui_box_container(obj, content_box);
374 */ 374 */
375 obj->container = ui_box_container(obj, content_box, UI_CONTAINER_VBOX); 375 UiContainerX *container = ui_box_container(obj, content_box, UI_CONTAINER_VBOX);
376 uic_object_push_container(obj, container);
376 377
377 nwindows++; 378 nwindows++;
378 return obj; 379 return obj;
379 } 380 }
380 381
430 splitview_window_default_pos = pos; 431 splitview_window_default_pos = pos;
431 } 432 }
432 433
433 void ui_splitview_window_use_property(UiBool enable) { 434 void ui_splitview_window_use_property(UiBool enable) {
434 splitview_window_use_prop = enable; 435 splitview_window_use_prop = enable;
436 }
437
438 UIEXPORT void ui_splitview_window_set_visible(UiObject *obj, int pane, UiBool visible) {
439 GtkWidget *panel = NULL;
440 if(pane == 0) {
441 panel = g_object_get_data(G_OBJECT(obj->widget), "ui_left_panel");
442 } else if(pane == 1) {
443 panel = g_object_get_data(G_OBJECT(obj->widget), "ui_right_panel");
444 }
445
446 if(panel == NULL) {
447 fprintf(stderr, "Error: obj is not a splitview window or invalid pane %d specified\n", pane);
448 return;
449 }
450
451 gtk_widget_set_visible(panel, visible);
435 } 452 }
436 453
437 #ifdef UI_LIBADWAITA 454 #ifdef UI_LIBADWAITA
438 455
439 static void dialog_response(AdwAlertDialog *self, gchar *response, UiEventData *data) { 456 static void dialog_response(AdwAlertDialog *self, gchar *response, UiEventData *data) {
930 GtkWidget *c = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); 947 GtkWidget *c = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
931 gtk_container_remove(GTK_CONTAINER(dialog), c); 948 gtk_container_remove(GTK_CONTAINER(dialog), c);
932 #endif 949 #endif
933 950
934 GtkWidget *content_vbox = ui_gtk_vbox_new(0); 951 GtkWidget *content_vbox = ui_gtk_vbox_new(0);
935 obj->container = ui_box_container(obj, content_vbox, UI_CONTAINER_VBOX); 952 UiContainerX *container = ui_box_container(obj, content_vbox, UI_CONTAINER_VBOX);
953 uic_object_push_container(obj, container);
936 if(args->lbutton1 || args->lbutton2 || args->rbutton3 || args->rbutton4) { 954 if(args->lbutton1 || args->lbutton2 || args->rbutton3 || args->rbutton4) {
937 #if GTK_CHECK_VERSION(3, 10, 0) 955 #if GTK_CHECK_VERSION(3, 10, 0)
938 if(args->titlebar_buttons != UI_OFF) { 956 if(args->titlebar_buttons != UI_OFF) {
939 GtkWidget *headerbar = gtk_header_bar_new(); 957 GtkWidget *headerbar = gtk_header_bar_new();
940 gtk_window_set_titlebar(GTK_WINDOW(dialog), headerbar); 958 gtk_window_set_titlebar(GTK_WINDOW(dialog), headerbar);
941 if(args->show_closebutton == UI_OFF) { 959 if(args->show_closebutton == UI_OFF) {
942 HEADERBAR_SHOW_CLOSEBUTTON(headerbar, FALSE); 960 HEADERBAR_SHOW_CLOSEBUTTON(headerbar, FALSE);
943 } 961 }
944 962
945 if(args->lbutton1) { 963 if(args->lbutton1) {
946 GtkWidget *button = ui_create_button(obj, args->lbutton1, NULL, args->onclick, args->onclickdata, 1, args->default_button == 1); 964 GtkWidget *button = ui_create_button(obj, args->lbutton1, NULL, NULL/*tooltip*/, args->onclick, args->onclickdata, 1, args->default_button == 1);
947 gtk_header_bar_pack_start(GTK_HEADER_BAR(headerbar), button); 965 gtk_header_bar_pack_start(GTK_HEADER_BAR(headerbar), button);
948 if(args->default_button == 1) { 966 if(args->default_button == 1) {
949 WIDGET_ADD_CSS_CLASS(button, "suggested-action"); 967 WIDGET_ADD_CSS_CLASS(button, "suggested-action");
950 DEFAULT_BUTTON(dialog, button); 968 DEFAULT_BUTTON(dialog, button);
951 } 969 }
952 } 970 }
953 if(args->lbutton2) { 971 if(args->lbutton2) {
954 GtkWidget *button = ui_create_button(obj, args->lbutton2, NULL, args->onclick, args->onclickdata, 2, args->default_button == 2); 972 GtkWidget *button = ui_create_button(obj, args->lbutton2, NULL, NULL/*tooltip*/, args->onclick, args->onclickdata, 2, args->default_button == 2);
955 gtk_header_bar_pack_start(GTK_HEADER_BAR(headerbar), button); 973 gtk_header_bar_pack_start(GTK_HEADER_BAR(headerbar), button);
956 if(args->default_button == 2) { 974 if(args->default_button == 2) {
957 WIDGET_ADD_CSS_CLASS(button, "suggested-action"); 975 WIDGET_ADD_CSS_CLASS(button, "suggested-action");
958 DEFAULT_BUTTON(dialog, button); 976 DEFAULT_BUTTON(dialog, button);
959 } 977 }
960 } 978 }
961 979
962 if(args->rbutton4) { 980 if(args->rbutton4) {
963 GtkWidget *button = ui_create_button(obj, args->rbutton4, NULL, args->onclick, args->onclickdata, 4, args->default_button == 4); 981 GtkWidget *button = ui_create_button(obj, args->rbutton4, NULL, NULL/*tooltip*/, args->onclick, args->onclickdata, 4, args->default_button == 4);
964 gtk_header_bar_pack_end(GTK_HEADER_BAR(headerbar), button); 982 gtk_header_bar_pack_end(GTK_HEADER_BAR(headerbar), button);
965 if(args->default_button == 4) { 983 if(args->default_button == 4) {
966 WIDGET_ADD_CSS_CLASS(button, "suggested-action"); 984 WIDGET_ADD_CSS_CLASS(button, "suggested-action");
967 DEFAULT_BUTTON(dialog, button); 985 DEFAULT_BUTTON(dialog, button);
968 } 986 }
969 } 987 }
970 if(args->rbutton3) { 988 if(args->rbutton3) {
971 GtkWidget *button = ui_create_button(obj, args->rbutton3, NULL, args->onclick, args->onclickdata, 3, args->default_button == 3); 989 GtkWidget *button = ui_create_button(obj, args->rbutton3, NULL, NULL/*tooltip*/, args->onclick, args->onclickdata, 3, args->default_button == 3);
972 gtk_header_bar_pack_end(GTK_HEADER_BAR(headerbar), button); 990 gtk_header_bar_pack_end(GTK_HEADER_BAR(headerbar), button);
973 if(args->default_button == 3) { 991 if(args->default_button == 3) {
974 WIDGET_ADD_CSS_CLASS(button, "suggested-action"); 992 WIDGET_ADD_CSS_CLASS(button, "suggested-action");
975 DEFAULT_BUTTON(dialog, button); 993 DEFAULT_BUTTON(dialog, button);
976 } 994 }
983 WINDOW_SET_CONTENT(obj->widget, vbox); 1001 WINDOW_SET_CONTENT(obj->widget, vbox);
984 1002
985 GtkWidget *separator = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); 1003 GtkWidget *separator = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
986 1004
987 GtkWidget *grid = ui_create_grid_widget(10, 10); 1005 GtkWidget *grid = ui_create_grid_widget(10, 10);
988 GtkWidget *widget = ui_box_set_margin(grid, 16); 1006 GtkWidget *widget = ui_gtk_set_margin(grid, 16, 0, 0, 0, 0);
989 gtk_grid_set_column_homogeneous(GTK_GRID(grid), TRUE); 1007 gtk_grid_set_column_homogeneous(GTK_GRID(grid), TRUE);
990 1008
991 if(args->lbutton1) { 1009 if(args->lbutton1) {
992 GtkWidget *button = ui_create_button(obj, args->lbutton1, NULL, args->onclick, args->onclickdata, 1, args->default_button == 1); 1010 GtkWidget *button = ui_create_button(obj, args->lbutton1, NULL, NULL/*tooltip*/, args->onclick, args->onclickdata, 1, args->default_button == 1);
993 gtk_grid_attach(GTK_GRID(grid), button, 0, 0, 1, 1); 1011 gtk_grid_attach(GTK_GRID(grid), button, 0, 0, 1, 1);
994 if(args->default_button == 1) { 1012 if(args->default_button == 1) {
995 WIDGET_ADD_CSS_CLASS(button, "suggested-action"); 1013 WIDGET_ADD_CSS_CLASS(button, "suggested-action");
996 DEFAULT_BUTTON(dialog, button); 1014 DEFAULT_BUTTON(dialog, button);
997 } 1015 }
998 } 1016 }
999 if(args->lbutton2) { 1017 if(args->lbutton2) {
1000 GtkWidget *button = ui_create_button(obj, args->lbutton2, NULL, args->onclick, args->onclickdata, 2, args->default_button == 2); 1018 GtkWidget *button = ui_create_button(obj, args->lbutton2, NULL, NULL/*tooltip*/, args->onclick, args->onclickdata, 2, args->default_button == 2);
1001 gtk_grid_attach(GTK_GRID(grid), button, 1, 0, 1, 1); 1019 gtk_grid_attach(GTK_GRID(grid), button, 1, 0, 1, 1);
1002 if(args->default_button == 2) { 1020 if(args->default_button == 2) {
1003 WIDGET_ADD_CSS_CLASS(button, "suggested-action"); 1021 WIDGET_ADD_CSS_CLASS(button, "suggested-action");
1004 DEFAULT_BUTTON(dialog, button); 1022 DEFAULT_BUTTON(dialog, button);
1005 } 1023 }
1006 } 1024 }
1007 GtkWidget *space = gtk_label_new(NULL); 1025 GtkWidget *space = gtk_label_new(NULL);
1008 gtk_widget_set_hexpand(space, TRUE); 1026 gtk_widget_set_hexpand(space, TRUE);
1009 gtk_grid_attach(GTK_GRID(grid), space, 2, 0, 1, 1); 1027 gtk_grid_attach(GTK_GRID(grid), space, 2, 0, 1, 1);
1010 if(args->rbutton3) { 1028 if(args->rbutton3) {
1011 GtkWidget *button = ui_create_button(obj, args->rbutton3, NULL, args->onclick, args->onclickdata, 3, args->default_button == 3); 1029 GtkWidget *button = ui_create_button(obj, args->rbutton3, NULL, NULL/*tooltip*/, args->onclick, args->onclickdata, 3, args->default_button == 3);
1012 gtk_grid_attach(GTK_GRID(grid), button, 3, 0, 1, 1); 1030 gtk_grid_attach(GTK_GRID(grid), button, 3, 0, 1, 1);
1013 if(args->default_button == 3) { 1031 if(args->default_button == 3) {
1014 WIDGET_ADD_CSS_CLASS(button, "suggested-action"); 1032 WIDGET_ADD_CSS_CLASS(button, "suggested-action");
1015 DEFAULT_BUTTON(dialog, button); 1033 DEFAULT_BUTTON(dialog, button);
1016 } 1034 }
1017 } 1035 }
1018 if(args->rbutton4) { 1036 if(args->rbutton4) {
1019 GtkWidget *button = ui_create_button(obj, args->rbutton4, NULL, args->onclick, args->onclickdata, 4, args->default_button == 4); 1037 GtkWidget *button = ui_create_button(obj, args->rbutton4, NULL, NULL/*tooltip*/, args->onclick, args->onclickdata, 4, args->default_button == 4);
1020 gtk_grid_attach(GTK_GRID(grid), button, 4, 0, 1, 1); 1038 gtk_grid_attach(GTK_GRID(grid), button, 4, 0, 1, 1);
1021 if(args->default_button == 4) { 1039 if(args->default_button == 4) {
1022 WIDGET_ADD_CSS_CLASS(button, "suggested-action"); 1040 WIDGET_ADD_CSS_CLASS(button, "suggested-action");
1023 DEFAULT_BUTTON(dialog, button); 1041 DEFAULT_BUTTON(dialog, button);
1024 } 1042 }

mercurial