ui/gtk/text.c

branch
newapi
changeset 298
c5e207d01ff2
parent 289
6048b20bd46f
equal deleted inserted replaced
297:a73c60adf188 298:c5e207d01ff2
80 text_area, 80 text_area,
81 "destroy", 81 "destroy",
82 G_CALLBACK(ui_textarea_destroy), 82 G_CALLBACK(ui_textarea_destroy),
83 uitext); 83 uitext);
84 84
85 GtkWidget *scroll_area = gtk_scrolled_window_new (NULL, NULL); 85 GtkWidget *scroll_area = SCROLLEDWINDOW_NEW();
86 gtk_scrolled_window_set_policy( 86 gtk_scrolled_window_set_policy(
87 GTK_SCROLLED_WINDOW(scroll_area), 87 GTK_SCROLLED_WINDOW(scroll_area),
88 GTK_POLICY_AUTOMATIC, 88 GTK_POLICY_AUTOMATIC,
89 GTK_POLICY_AUTOMATIC); // GTK_POLICY_ALWAYS 89 GTK_POLICY_AUTOMATIC); // GTK_POLICY_ALWAYS
90 gtk_container_add(GTK_CONTAINER(scroll_area), text_area); 90 SCROLLEDWINDOW_SET_CHILD(scroll_area, text_area);
91 91
92 // font and padding 92 // font and padding
93 PangoFontDescription *font; 93 PangoFontDescription *font;
94 font = pango_font_description_from_string("Monospace"); 94 font = pango_font_description_from_string("Monospace");
95 gtk_widget_modify_font(text_area, font); 95 //gtk_widget_modify_font(text_area, font); // TODO
96 pango_font_description_free(font); 96 pango_font_description_free(font);
97 97
98 gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_area), 2); 98 gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_area), 2);
99 gtk_text_view_set_right_margin(GTK_TEXT_VIEW(text_area), 2); 99 gtk_text_view_set_right_margin(GTK_TEXT_VIEW(text_area), 2);
100 100
178 } 178 }
179 return NULL; 179 return NULL;
180 } 180 }
181 181
182 UIWIDGET ui_textarea_gettextwidget(UIWIDGET textarea) { 182 UIWIDGET ui_textarea_gettextwidget(UIWIDGET textarea) {
183 return gtk_bin_get_child(GTK_BIN(textarea)); 183 return SCROLLEDWINDOW_GET_CHILD(textarea);
184 } 184 }
185 185
186 char* ui_textarea_get(UiText *text) { 186 char* ui_textarea_get(UiText *text) {
187 if(text->value.ptr) { 187 if(text->value.ptr) {
188 text->value.free(text->value.ptr); 188 text->value.free(text->value.ptr);
555 "destroy", 555 "destroy",
556 G_CALLBACK(ui_textfield_destroy), 556 G_CALLBACK(ui_textfield_destroy),
557 uitext); 557 uitext);
558 558
559 if(args.width > 0) { 559 if(args.width > 0) {
560 // TODO: gtk4
561 #if GTK_MAJOR_VERSION <= 3
560 gtk_entry_set_width_chars(GTK_ENTRY(textfield), args.width); 562 gtk_entry_set_width_chars(GTK_ENTRY(textfield), args.width);
563 #endif
561 } 564 }
562 if(frameless) { 565 if(frameless) {
563 // TODO: gtk2legacy workaroud 566 // TODO: gtk2legacy workaroud
564 gtk_entry_set_has_frame(GTK_ENTRY(textfield), FALSE); 567 gtk_entry_set_has_frame(GTK_ENTRY(textfield), FALSE);
565 } 568 }
571 ct->add(ct, textfield, FALSE); 574 ct->add(ct, textfield, FALSE);
572 575
573 if(var) { 576 if(var) {
574 UiString *value = var->value; 577 UiString *value = var->value;
575 if(value->value.ptr) { 578 if(value->value.ptr) {
576 gtk_entry_set_text(GTK_ENTRY(textfield), value->value.ptr); 579 ENTRY_SET_TEXT(textfield, value->value.ptr);
577 value->value.free(value->value.ptr); 580 value->value.free(value->value.ptr);
578 value->value.ptr = NULL; 581 value->value.ptr = NULL;
579 value->value.free = NULL; 582 value->value.free = NULL;
580 } 583 }
581 584
629 632
630 char* ui_textfield_get(UiString *str) { 633 char* ui_textfield_get(UiString *str) {
631 if(str->value.ptr) { 634 if(str->value.ptr) {
632 str->value.free(str->value.ptr); 635 str->value.free(str->value.ptr);
633 } 636 }
634 str->value.ptr = g_strdup(gtk_entry_get_text(str->obj)); 637 str->value.ptr = g_strdup(ENTRY_GET_TEXT(str->obj));
635 str->value.free = (ui_freefunc)g_free; 638 str->value.free = (ui_freefunc)g_free;
636 return str->value.ptr; 639 return str->value.ptr;
637 } 640 }
638 641
639 void ui_textfield_set(UiString *str, const char *value) { 642 void ui_textfield_set(UiString *str, const char *value) {
640 gtk_entry_set_text(str->obj, value); 643 ENTRY_SET_TEXT(str->obj, value);
641 if(str->value.ptr) { 644 if(str->value.ptr) {
642 str->value.free(str->value.ptr); 645 str->value.free(str->value.ptr);
643 str->value.ptr = NULL; 646 str->value.ptr = NULL;
644 str->value.free = NULL; 647 str->value.free = NULL;
645 } 648 }
685 } 688 }
686 *ret_nelm = n; 689 *ret_nelm = n;
687 690
688 return elms; 691 return elms;
689 } 692 }
693
694
695 #if GTK_MAJOR_VERSION >= 4
696
697 UIWIDGET ui_path_textfield_create(UiObject* obj, UiPathTextFieldArgs args) {
698 // TODO
699 return NULL;
700 }
701
702 #else
690 703
691 static gboolean path_textfield_btn_pressed(GtkWidget *widget, GdkEventButton *event, UiPathTextField *pathtf) { 704 static gboolean path_textfield_btn_pressed(GtkWidget *widget, GdkEventButton *event, UiPathTextField *pathtf) {
692 gtk_box_pack_start(GTK_BOX(pathtf->hbox), pathtf->entry, TRUE, TRUE, 0); 705 gtk_box_pack_start(GTK_BOX(pathtf->hbox), pathtf->entry, TRUE, TRUE, 0);
693 gtk_container_remove(GTK_CONTAINER(pathtf->hbox), pathtf->buttonbox); 706 gtk_container_remove(GTK_CONTAINER(pathtf->hbox), pathtf->buttonbox);
694 pathtf->buttonbox = NULL; 707 pathtf->buttonbox = NULL;
930 str->value.free(str->value.ptr); 943 str->value.free(str->value.ptr);
931 str->value.ptr = NULL; 944 str->value.ptr = NULL;
932 str->value.free = NULL; 945 str->value.free = NULL;
933 } 946 }
934 } 947 }
948
949 #endif

mercurial