Fri, 26 Apr 2019 16:56:55 -0400
Add getter for GntWidget->window.
--- a/gntbox.c Fri Apr 26 05:56:54 2019 -0400 +++ b/gntbox.c Fri Apr 26 16:56:55 2019 -0400 @@ -105,6 +105,7 @@ { GntBox *box = GNT_BOX(widget); GntBoxPrivate *priv = gnt_box_get_instance_private(box); + WINDOW *window = gnt_widget_get_window(widget); if (priv->focus == NULL && gnt_widget_get_parent(widget) == NULL) { g_list_foreach(priv->list, (GFunc)add_to_focus, box); @@ -118,13 +119,18 @@ get_title_thingies(box, title, &pos, &right); - if (gnt_widget_has_focus(widget)) - wbkgdset(widget->window, '\0' | gnt_color_pair(GNT_COLOR_TITLE)); - else - wbkgdset(widget->window, '\0' | gnt_color_pair(GNT_COLOR_TITLE_D)); - mvwaddch(widget->window, 0, pos-1, ACS_RTEE | gnt_color_pair(GNT_COLOR_NORMAL)); - mvwaddstr(widget->window, 0, pos, C_(title)); - mvwaddch(widget->window, 0, right, ACS_LTEE | gnt_color_pair(GNT_COLOR_NORMAL)); + if (gnt_widget_has_focus(widget)) { + wbkgdset(window, + '\0' | gnt_color_pair(GNT_COLOR_TITLE)); + } else { + wbkgdset(window, + '\0' | gnt_color_pair(GNT_COLOR_TITLE_D)); + } + mvwaddch(window, 0, pos - 1, + ACS_RTEE | gnt_color_pair(GNT_COLOR_NORMAL)); + mvwaddstr(window, 0, pos, C_(title)); + mvwaddch(window, 0, right, + ACS_LTEE | gnt_color_pair(GNT_COLOR_NORMAL)); g_free(title); } @@ -438,7 +444,8 @@ gnt_widget_get_position(widget, &widgetx, &widgety); win = newwin(height, width, widgety + y, widgetx + x); - copywin(widget->window, win, y, x, 0, 0, height - 1, width - 1, FALSE); + copywin(gnt_widget_get_window(widget), win, y, x, 0, 0, height - 1, + width - 1, FALSE); wrefresh(win); delwin(win); } @@ -750,12 +757,13 @@ prev = priv->title; priv->title = g_strdup(title); w = GNT_WIDGET(box); - if (w->window && gnt_widget_get_has_border(w)) { + if (gnt_widget_get_window(w) && gnt_widget_get_has_border(w)) { /* Erase the old title */ int pos, right; get_title_thingies(box, prev, &pos, &right); - mvwhline(w->window, 0, pos - 1, ACS_HLINE | gnt_color_pair(GNT_COLOR_NORMAL), - right - pos + 2); + mvwhline(gnt_widget_get_window(w), 0, pos - 1, + ACS_HLINE | gnt_color_pair(GNT_COLOR_NORMAL), + right - pos + 2); } g_free(prev); } @@ -805,6 +813,7 @@ { GntBoxPrivate *priv = NULL; GntWidget *widget = NULL; + WINDOW *widget_window; GList *iter; gint widgetx, widgety, widgetwidth, widgetheight; int pos; @@ -813,6 +822,7 @@ priv = gnt_box_get_instance_private(box); widget = GNT_WIDGET(box); + widget_window = gnt_widget_get_window(widget); gnt_widget_get_position(widget, &widgetx, &widgety); gnt_widget_get_internal_size(widget, &widgetwidth, &widgetheight); pos = gnt_widget_get_has_border(widget) ? 1 : 0; @@ -823,6 +833,7 @@ for (iter = priv->list; iter; iter = iter->next) { GntWidget *w = GNT_WIDGET(iter->data); + WINDOW *wwin; int height, width; gint x, y; @@ -865,11 +876,13 @@ } } - copywin(w->window, widget->window, 0, 0, - y, x, y + height - 1, x + width - 1, FALSE); + wwin = gnt_widget_get_window(w); + copywin(wwin, widget_window, 0, 0, y, x, y + height - 1, + x + width - 1, FALSE); gnt_widget_set_position(w, x + widgetx, y + widgety); if (w == priv->active) { - wmove(widget->window, y + getcury(w->window), x + getcurx(w->window)); + wmove(widget_window, y + getcury(wwin), + x + getcurx(wwin)); } } } @@ -1013,8 +1026,9 @@ gnt_widget_set_focus(priv->active, TRUE); } - if (GNT_WIDGET(box)->window) + if (gnt_widget_get_window(GNT_WIDGET(box))) { gnt_widget_draw(GNT_WIDGET(box)); + } } void gnt_box_give_focus_to_child(GntBox *box, GntWidget *widget) @@ -1038,7 +1052,8 @@ gnt_widget_set_focus(priv->active, TRUE); } - if (GNT_WIDGET(box)->window) + if (gnt_widget_get_window(GNT_WIDGET(box))) { gnt_widget_draw(GNT_WIDGET(box)); + } }
--- a/gntbutton.c Fri Apr 26 05:56:54 2019 -0400 +++ b/gntbutton.c Fri Apr 26 16:56:55 2019 -0400 @@ -49,6 +49,7 @@ { GntButton *button = GNT_BUTTON(widget); GntButtonPrivate *priv = gnt_button_get_instance_private(button); + WINDOW *window = gnt_widget_get_window(widget); GntColorType type; gboolean focus; @@ -57,14 +58,14 @@ else type = GNT_COLOR_NORMAL; - wbkgdset(widget->window, '\0' | gnt_color_pair(type)); - mvwaddstr(widget->window, (small_button) ? 0 : 1, 2, C_(priv->text)); + wbkgdset(window, '\0' | gnt_color_pair(type)); + mvwaddstr(window, (small_button) ? 0 : 1, 2, C_(priv->text)); if (small_button) { gint width; type = GNT_COLOR_HIGHLIGHT; gnt_widget_get_internal_size(widget, &width, NULL); - mvwchgat(widget->window, 0, 0, width, - focus ? A_BOLD : A_REVERSE, type, NULL); + mvwchgat(window, 0, 0, width, focus ? A_BOLD : A_REVERSE, type, + NULL); } GNTDEBUG;
--- a/gntcheckbox.c Fri Apr 26 05:56:54 2019 -0400 +++ b/gntcheckbox.c Fri Apr 26 16:56:55 2019 -0400 @@ -45,6 +45,7 @@ { GntCheckBox *cb = GNT_CHECK_BOX(widget); GntCheckBoxPrivate *priv = gnt_check_box_get_instance_private(cb); + WINDOW *window = gnt_widget_get_window(widget); GntColorType type; gboolean focus = gnt_widget_has_focus(widget); @@ -53,18 +54,17 @@ else type = GNT_COLOR_NORMAL; - wbkgdset(widget->window, '\0' | gnt_color_pair(type)); + wbkgdset(window, '\0' | gnt_color_pair(type)); - mvwaddch(widget->window, 0, 0, '['); - mvwaddch(widget->window, 0, 1, + mvwaddch(window, 0, 0, '['); + mvwaddch(window, 0, 1, (priv->checked ? 'X' : ' ') | (focus ? A_UNDERLINE : A_NORMAL)); - mvwaddch(widget->window, 0, 2, ']'); + mvwaddch(window, 0, 2, ']'); - wbkgdset(widget->window, '\0' | gnt_color_pair(GNT_COLOR_NORMAL)); - mvwaddstr(widget->window, 0, 4, - C_(gnt_button_get_text(GNT_BUTTON(cb)))); - (void)wmove(widget->window, 0, 1); + wbkgdset(window, '\0' | gnt_color_pair(GNT_COLOR_NORMAL)); + mvwaddstr(window, 0, 4, C_(gnt_button_get_text(GNT_BUTTON(cb)))); + (void)wmove(window, 0, 1); GNTDEBUG; }
--- a/gntcombobox.c Fri Apr 26 05:56:54 2019 -0400 +++ b/gntcombobox.c Fri Apr 26 16:56:55 2019 -0400 @@ -59,8 +59,9 @@ /* XXX: make sure the key actually does exist */ gpointer old = box->selected; box->selected = key; - if (GNT_WIDGET(box)->window) + if (gnt_widget_get_window(GNT_WIDGET(box))) { gnt_widget_draw(GNT_WIDGET(box)); + } if (box->dropdown) gnt_tree_set_selected(GNT_TREE(box->dropdown), key); g_signal_emit(box, signals[SIG_SELECTION_CHANGED], 0, old, key); @@ -84,6 +85,7 @@ gnt_combo_box_draw(GntWidget *widget) { GntComboBox *box = GNT_COMBO_BOX(widget); + WINDOW *window = gnt_widget_get_window(widget); char *text = NULL, *s; GntColorType type; gint width; @@ -100,19 +102,19 @@ else type = GNT_COLOR_NORMAL; - wbkgdset(widget->window, '\0' | gnt_color_pair(type)); + wbkgdset(window, '\0' | gnt_color_pair(type)); gnt_widget_get_internal_size(widget, &width, NULL); s = (char *)gnt_util_onscreen_width_to_pointer(text, width - 4, &len); *s = '\0'; - mvwaddstr(widget->window, 1, 1, C_(text)); - whline(widget->window, ' ' | gnt_color_pair(type), width - 4 - len); - mvwaddch(widget->window, 1, width - 3, + mvwaddstr(window, 1, 1, C_(text)); + whline(window, ' ' | gnt_color_pair(type), width - 4 - len); + mvwaddch(window, 1, width - 3, ACS_VLINE | gnt_color_pair(GNT_COLOR_NORMAL)); - mvwaddch(widget->window, 1, width - 2, + mvwaddch(window, 1, width - 2, ACS_DARROW | gnt_color_pair(GNT_COLOR_NORMAL)); - (void)wmove(widget->window, 1, 1); + (void)wmove(window, 1, 1); g_free(text); GNTDEBUG; @@ -147,6 +149,7 @@ { GntWidget *widget = GNT_WIDGET(box); GntWidget *parent = gnt_widget_get_parent(box->dropdown); + WINDOW *window; gint widgetx, widgety, widgetwidth, widgetheight; gint height; gint y; @@ -160,10 +163,10 @@ if (y + height + 2 >= getmaxy(stdscr)) y = widgety - height - 1; gnt_widget_set_position(parent, widgetx, y); - if (parent->window) - { - mvwin(parent->window, y, widgetx); - wresize(parent->window, height + 2, widgetwidth); + window = gnt_widget_get_window(parent); + if (window) { + mvwin(window, y, widgetx); + wresize(window, height + 2, widgetwidth); } gnt_widget_set_internal_size(parent, widgetwidth, height + 2);
--- a/gntentry.c Fri Apr 26 05:56:54 2019 -0400 +++ b/gntentry.c Fri Apr 26 16:56:55 2019 -0400 @@ -312,35 +312,35 @@ { GntEntry *entry = GNT_ENTRY(widget); GntEntryPrivate *priv = gnt_entry_get_instance_private(entry); + WINDOW *window = gnt_widget_get_window(widget); gint width; int stop; gboolean focus; int curpos; if ((focus = gnt_widget_has_focus(widget))) - wbkgdset(widget->window, '\0' | gnt_color_pair(GNT_COLOR_TEXT_NORMAL)); + wbkgdset(window, '\0' | gnt_color_pair(GNT_COLOR_TEXT_NORMAL)); else - wbkgdset(widget->window, '\0' | gnt_color_pair(GNT_COLOR_HIGHLIGHT_D)); + wbkgdset(window, '\0' | gnt_color_pair(GNT_COLOR_HIGHLIGHT_D)); if (priv->masked) { - mvwhline(widget->window, 0, 0, - gnt_ascii_only() ? '*' : ACS_BULLET, + mvwhline(window, 0, 0, gnt_ascii_only() ? '*' : ACS_BULLET, g_utf8_pointer_to_offset(priv->scroll, priv->end)); } else - mvwprintw(widget->window, 0, 0, "%s", C_(priv->scroll)); + mvwprintw(window, 0, 0, "%s", C_(priv->scroll)); stop = gnt_util_onscreen_width(priv->scroll, priv->end); gnt_widget_get_internal_size(GNT_WIDGET(entry), &width, NULL); if (stop < width) { - mvwhline(widget->window, 0, stop, GNT_ENTRY_CHAR, width - stop); + mvwhline(window, 0, stop, GNT_ENTRY_CHAR, width - stop); } curpos = gnt_util_onscreen_width(priv->scroll, priv->cursor); - if (focus) - mvwchgat(widget->window, 0, curpos, 1, A_REVERSE, GNT_COLOR_TEXT_NORMAL, NULL); - (void)wmove(widget->window, 0, curpos); - - GNTDEBUG; + if (focus) { + mvwchgat(window, 0, curpos, 1, A_REVERSE, GNT_COLOR_TEXT_NORMAL, + NULL); + } + (void)wmove(window, 0, curpos); } static void
--- a/gntlabel.c Fri Apr 26 05:56:54 2019 -0400 +++ b/gntlabel.c Fri Apr 26 16:56:55 2019 -0400 @@ -60,13 +60,12 @@ static void gnt_label_draw(GntWidget *widget) { + WINDOW *window = gnt_widget_get_window(widget); GntLabel *label = GNT_LABEL(widget); chtype flag = gnt_text_format_flag_to_chtype(label->flags); - wbkgdset(widget->window, '\0' | flag); - mvwaddstr(widget->window, 0, 0, C_(label->text)); - - GNTDEBUG; + wbkgdset(window, '\0' | flag); + mvwaddstr(window, 0, 0, C_(label->text)); } static void @@ -179,11 +178,13 @@ void gnt_label_set_text(GntLabel *label, const char *text) { + WINDOW *window; + g_object_set(label, "text", text, NULL); - if (GNT_WIDGET(label)->window) - { - werase(GNT_WIDGET(label)->window); + window = gnt_widget_get_window(GNT_WIDGET(label)); + if (window) { + werase(window); gnt_widget_draw(GNT_WIDGET(label)); } }
--- a/gntline.c Fri Apr 26 05:56:54 2019 -0400 +++ b/gntline.c Fri Apr 26 16:56:55 2019 -0400 @@ -49,15 +49,16 @@ gnt_line_draw(GntWidget *widget) { GntLine *line = GNT_LINE(widget); + WINDOW *window = gnt_widget_get_window(widget); gint width, height; gnt_widget_get_internal_size(widget, &width, &height); if (line->vertical) { - mvwvline(widget->window, 1, 0, + mvwvline(window, 1, 0, ACS_VLINE | gnt_color_pair(GNT_COLOR_NORMAL), height - 2); } else { - mvwhline(widget->window, 0, 1, + mvwhline(window, 0, 1, ACS_HLINE | gnt_color_pair(GNT_COLOR_NORMAL), width - 2); }
--- a/gntmenu.c Fri Apr 26 05:56:54 2019 -0400 +++ b/gntmenu.c Fri Apr 26 16:56:55 2019 -0400 @@ -100,12 +100,13 @@ guint i; if (menu->type == GNT_MENU_TOPLEVEL) { + WINDOW *window = gnt_widget_get_window(widget); gint x, y; gnt_widget_get_position(widget, &x, &y); - wbkgdset(widget->window, '\0' | gnt_color_pair(GNT_COLOR_HIGHLIGHT)); - werase(widget->window); + wbkgdset(window, '\0' | gnt_color_pair(GNT_COLOR_HIGHLIGHT)); + werase(window); for (i = 0, iter = menu->list; iter; iter = iter->next, i++) { GntMenuItem *item = GNT_MENU_ITEM(iter->data); @@ -120,11 +121,10 @@ } if (i == menu->selected) type |= A_REVERSE; - gnt_menuitem_set_position( - item, getcurx(widget->window) + x, - getcury(widget->window) + y + 1); - wbkgdset(widget->window, type); - wprintw(widget->window, " %s ", + gnt_menuitem_set_position(item, getcurx(window) + x, + getcury(window) + y + 1); + wbkgdset(window, type); + wprintw(window, " %s ", C_(gnt_menuitem_get_text(item))); } } else {
--- a/gntprogressbar.c Fri Apr 26 05:56:54 2019 -0400 +++ b/gntprogressbar.c Fri Apr 26 16:56:55 2019 -0400 @@ -47,6 +47,7 @@ { GntProgressBarPrivate *priv = gnt_progress_bar_get_instance_private ( GNT_PROGRESS_BAR (widget)); + WINDOW *window = gnt_widget_get_window(widget); gchar progress[8]; gint width, height; gint start, end, i, pos; @@ -69,24 +70,28 @@ /* background */ for (i = 0; i < height; i++) { - mvwhline(widget->window, i, 0, ' ' | color, - width); + mvwhline(window, i, 0, ' ' | color, width); } /* foreground */ for (i = 0; i < height; i++) { - mvwhline (widget->window, i, start, ACS_CKBOARD | color | A_REVERSE, end); + mvwhline(window, i, start, + ACS_CKBOARD | color | A_REVERSE, end); } /* text */ if (priv->show_value) { pos = width / 2 - strlen(progress) / 2; for (i = 0; i < progress[i]; i++, pos++) { - wattrset (widget->window, color | ((pos < start || pos > end) ? A_NORMAL : A_REVERSE)); - mvwprintw(widget->window, height / 2, - pos, "%c", progress[i]); + wattrset(window, + color | ((pos < start || + pos > end) + ? A_NORMAL + : A_REVERSE)); + mvwprintw(window, height / 2, pos, "%c", + progress[i]); } - wattrset (widget->window, color); + wattrset(window, color); } break; @@ -101,25 +106,28 @@ /* background */ for (i = 0; i < width; i++) { - mvwvline(widget->window, 0, i, ' ' | color, - height); + mvwvline(window, 0, i, ' ' | color, height); } /* foreground */ for (i = 0; i < width; i++) { - mvwvline (widget->window, start, i, ACS_CKBOARD | color | A_REVERSE, end); + mvwvline(window, start, i, + ACS_CKBOARD | color | A_REVERSE, end); } /* text */ if (priv->show_value) { pos = height / 2 - strlen(progress) / 2; for (i = 0; i < progress[i]; i++, pos++) { - wattrset (widget->window, color | ((pos < start || pos > end) ? A_NORMAL : A_REVERSE)); - mvwprintw(widget->window, pos, - width / 2, "%c\n", - progress[i]); + wattrset(window, + color | ((pos < start || + pos > end) + ? A_NORMAL + : A_REVERSE)); + mvwprintw(window, pos, width / 2, + "%c\n", progress[i]); } - wattrset (widget->window, color); + wattrset(window, color); } break;
--- a/gntslider.c Fri Apr 26 05:56:54 2019 -0400 +++ b/gntslider.c Fri Apr 26 16:56:55 2019 -0400 @@ -82,6 +82,7 @@ { GntSlider *slider = GNT_SLIDER(widget); GntSliderPrivate *priv = gnt_slider_get_instance_private(slider); + WINDOW *window = gnt_widget_get_window(widget); int attr = 0; int position, size = 0; @@ -101,18 +102,22 @@ else position = 0; if (priv->vertical) { - mvwvline(widget->window, size-position, 0, ACS_VLINE | gnt_color_pair(GNT_COLOR_NORMAL) | A_BOLD, - position); - mvwvline(widget->window, 0, 0, ACS_VLINE | gnt_color_pair(GNT_COLOR_NORMAL), - size-position); + mvwvline(window, size - position, 0, + ACS_VLINE | gnt_color_pair(GNT_COLOR_NORMAL) | A_BOLD, + position); + mvwvline(window, 0, 0, + ACS_VLINE | gnt_color_pair(GNT_COLOR_NORMAL), + size - position); } else { - mvwhline(widget->window, 0, 0, ACS_HLINE | gnt_color_pair(GNT_COLOR_NORMAL) | A_BOLD, - position); - mvwhline(widget->window, 0, position, ACS_HLINE | gnt_color_pair(GNT_COLOR_NORMAL), - size - position); + mvwhline(window, 0, 0, + ACS_HLINE | gnt_color_pair(GNT_COLOR_NORMAL) | A_BOLD, + position); + mvwhline(window, 0, position, + ACS_HLINE | gnt_color_pair(GNT_COLOR_NORMAL), + size - position); } - mvwaddch(widget->window, priv->vertical ? (size - position - 1) : 0, + mvwaddch(window, priv->vertical ? (size - position - 1) : 0, priv->vertical ? 0 : position, ACS_CKBOARD | gnt_color_pair(attr)); }
--- a/gnttextview.c Fri Apr 26 05:56:54 2019 -0400 +++ b/gnttextview.c Fri Apr 26 16:56:55 2019 -0400 @@ -85,6 +85,7 @@ gnt_text_view_draw(GntWidget *widget) { GntTextView *view = GNT_TEXT_VIEW(widget); + WINDOW *window = gnt_widget_get_window(widget); gint width, height; int n; int i = 0; @@ -95,8 +96,8 @@ gnt_widget_get_internal_size(widget, &width, &height); - wbkgd(widget->window, gnt_color_pair(GNT_COLOR_NORMAL)); - werase(widget->window); + wbkgd(window, gnt_color_pair(GNT_COLOR_NORMAL)); + werase(window); n = g_list_length(view->list); if ((view->flags & GNT_TEXT_VIEW_TOP_ALIGN) && n < height) { @@ -116,7 +117,7 @@ GList *iter; GntTextLine *line = lines->data; - (void)wmove(widget->window, height - 1 - i - comp, 0); + (void)wmove(window, height - 1 - i - comp, 0); for (iter = line->segments; iter; iter = iter->next) { @@ -127,8 +128,9 @@ *end = '\0'; if (select_start && select_start < view->string->str + seg->start && select_end > view->string->str + seg->end) { fl |= A_REVERSE; - wattrset(widget->window, fl); - wprintw(widget->window, "%s", C_(view->string->str + seg->start)); + wattrset(window, fl); + wprintw(window, "%s", + C_(view->string->str + seg->start)); } else if (select_start && select_end && ((select_start >= view->string->str + seg->start && select_start <= view->string->str + seg->end) || (select_end <= view->string->str + seg->end && select_start <= view->string->str + seg->start))) { @@ -141,19 +143,20 @@ else fl = seg->flags; str = g_strndup(cur, last - cur); - wattrset(widget->window, fl); - waddstr(widget->window, C_(str)); + wattrset(window, fl); + waddstr(window, C_(str)); g_free(str); cur = g_utf8_next_char(cur); } } else { - wattrset(widget->window, fl); - wprintw(widget->window, "%s", C_(view->string->str + seg->start)); + wattrset(window, fl); + wprintw(window, "%s", + C_(view->string->str + seg->start)); } *end = back; } - wattroff(widget->window, A_UNDERLINE | A_BLINK | A_REVERSE); - whline(widget->window, ' ', width - line->length - has_scroll); + wattroff(window, A_UNDERLINE | A_BLINK | A_REVERSE); + whline(window, ' ', width - line->length - has_scroll); } scrcol = width - 1; @@ -181,19 +184,21 @@ else if (showing + position < rows && view->list && !view->list->prev) position = rows - showing; - mvwvline(widget->window, position + 1, scrcol, - ACS_CKBOARD | gnt_color_pair(GNT_COLOR_HIGHLIGHT_D), showing); + mvwvline(window, position + 1, scrcol, + ACS_CKBOARD | gnt_color_pair(GNT_COLOR_HIGHLIGHT_D), + showing); } if (has_scroll) { - mvwaddch(widget->window, 0, scrcol, - (lines ? ACS_UARROW : ' ') | gnt_color_pair(GNT_COLOR_HIGHLIGHT_D)); - mvwaddch(widget->window, height - 1, scrcol, + mvwaddch(window, 0, scrcol, + (lines ? ACS_UARROW : ' ') | + gnt_color_pair(GNT_COLOR_HIGHLIGHT_D)); + mvwaddch(window, height - 1, scrcol, ((view->list && view->list->prev) ? ACS_DARROW : ' ') | gnt_color_pair(GNT_COLOR_HIGHLIGHT_D)); } - wmove(widget->window, 0, 0); + wmove(window, 0, 0); } static void @@ -437,8 +442,9 @@ } view->list = list; gnt_widget_set_drawing(GNT_WIDGET(view), FALSE); - if (GNT_WIDGET(view)->window) + if (gnt_widget_get_window(GNT_WIDGET(view))) { gnt_widget_draw(GNT_WIDGET(view)); + } g_string_free(string, TRUE); } @@ -694,8 +700,9 @@ g_list_free_full(view->tags, (GDestroyNotify)free_tag); view->tags = NULL; - if (GNT_WIDGET(view)->window) + if (gnt_widget_get_window(GNT_WIDGET(view))) { gnt_widget_draw(GNT_WIDGET(view)); + } } int gnt_text_view_get_lines_below(GntTextView *view)
--- a/gnttree.c Fri Apr 26 05:56:54 2019 -0400 +++ b/gnttree.c Fri Apr 26 16:56:55 2019 -0400 @@ -456,7 +456,7 @@ NEXT_X; } if (!COLUMN_INVISIBLE(priv, i + 1) && notfirst) { - mvwaddch(widget->window, y, x, type); + mvwaddch(gnt_widget_get_window(widget), y, x, type); } } } @@ -467,6 +467,7 @@ GntTreePrivate *priv = gnt_tree_get_instance_private(tree); int start, i; GntWidget *widget = GNT_WIDGET(tree); + WINDOW *window = gnt_widget_get_window(widget); GntTreeRow *row; gint width, height; int pos, up, down = 0; @@ -487,17 +488,17 @@ tree_selection_changed(tree, NULL, priv->current); } - wbkgd(widget->window, gnt_color_pair(GNT_COLOR_NORMAL)); + wbkgd(window, gnt_color_pair(GNT_COLOR_NORMAL)); start = 0; if (priv->show_title) { int i; int x = pos; - mvwhline(widget->window, pos + 1, pos, + mvwhline(window, pos + 1, pos, ACS_HLINE | gnt_color_pair(GNT_COLOR_NORMAL), width - pos - 1); - mvwhline(widget->window, pos, pos, + mvwhline(window, pos, pos, ' ' | gnt_color_pair(GNT_COLOR_NORMAL), width - pos - 1); @@ -505,7 +506,7 @@ if (COLUMN_INVISIBLE(priv, i)) { continue; } - mvwaddnstr(widget->window, pos, x + (x != pos), + mvwaddnstr(window, pos, x + (x != pos), priv->columns[i].title, priv->columns[i].width); NEXT_X; @@ -606,9 +607,9 @@ attr |= gnt_color_pair(GNT_COLOR_NORMAL); } - wbkgdset(widget->window, '\0' | attr); - mvwaddstr(widget->window, i, pos, C_(str)); - whline(widget->window, ' ', scrcol - wr); + wbkgdset(window, '\0' | attr); + mvwaddstr(window, i, pos, C_(str)); + whline(window, ' ', scrcol - wr); priv->bottom = row; g_free(str); tree_mark_columns(tree, pos, i, @@ -616,9 +617,9 @@ attr); } - wbkgdset(widget->window, '\0' | gnt_color_pair(GNT_COLOR_NORMAL)); + wbkgdset(window, '\0' | gnt_color_pair(GNT_COLOR_NORMAL)); while (i < height - pos) { - mvwhline(widget->window, i, pos, ' ', width - pos * 2 - 1); + mvwhline(window, i, pos, ' ', width - pos * 2 - 1); tree_mark_columns(tree, pos, i, (priv->show_separator ? ACS_VLINE : ' ')); i++; @@ -652,17 +653,18 @@ position += pos + start + 1; - mvwvline(widget->window, pos + start + 1, scrcol, - ' ' | gnt_color_pair(GNT_COLOR_NORMAL), rows); - mvwvline(widget->window, position, scrcol, - ACS_CKBOARD | gnt_color_pair(GNT_COLOR_HIGHLIGHT_D), showing); + mvwvline(window, pos + start + 1, scrcol, + ' ' | gnt_color_pair(GNT_COLOR_NORMAL), rows); + mvwvline(window, position, scrcol, + ACS_CKBOARD | gnt_color_pair(GNT_COLOR_HIGHLIGHT_D), + showing); } - mvwaddch(widget->window, start + pos, scrcol, + mvwaddch(window, start + pos, scrcol, ((priv->top != priv->root) ? ACS_UARROW : ' ') | gnt_color_pair(GNT_COLOR_HIGHLIGHT_D)); - mvwaddch(widget->window, height - pos - 1, scrcol, + mvwaddch(window, height - pos - 1, scrcol, (row ? ACS_DARROW : ' ') | gnt_color_pair(GNT_COLOR_HIGHLIGHT_D)); @@ -670,11 +672,11 @@ if (SEARCHING(priv)) { const char *str = gnt_util_onscreen_width_to_pointer( priv->search->str, scrcol - 1, NULL); - wbkgdset(widget->window, '\0' | gnt_color_pair(GNT_COLOR_HIGHLIGHT_D)); - mvwaddnstr(widget->window, height - pos - 1, pos, - priv->search->str, str - priv->search->str); + wbkgdset(window, '\0' | gnt_color_pair(GNT_COLOR_HIGHLIGHT_D)); + mvwaddnstr(window, height - pos - 1, pos, priv->search->str, + str - priv->search->str); } - wmove(widget->window, current, pos); + wmove(window, current, pos); gnt_widget_queue_update(widget); } @@ -2039,8 +2041,9 @@ row = g_hash_table_lookup(priv->hash, key); if (row) { row->collapsed = !expanded; - if (GNT_WIDGET(tree)->window) + if (gnt_widget_get_window(GNT_WIDGET(tree))) { gnt_widget_draw(GNT_WIDGET(tree)); + } g_signal_emit(tree, signals[SIG_COLLAPSED], 0, key, row->collapsed); } }
--- a/gntwidget.c Fri Apr 26 05:56:54 2019 -0400 +++ b/gntwidget.c Fri Apr 26 16:56:55 2019 -0400 @@ -411,6 +411,13 @@ gnt_widget_set_mapped(widget, FALSE); } +WINDOW * +gnt_widget_get_window(GntWidget *widget) +{ + g_return_val_if_fail(GNT_IS_WIDGET(widget), NULL); + return widget->window; +} + void gnt_widget_set_parent(GntWidget *widget, GntWidget *parent) {
--- a/gntwidget.h Fri Apr 26 05:56:54 2019 -0400 +++ b/gntwidget.h Fri Apr 26 16:56:55 2019 -0400 @@ -187,6 +187,18 @@ void gnt_widget_hide(GntWidget *widget); /** + * gnt_widget_get_window: + * @widget: The widget. + * + * Get the window of a widget. + * + * Returns: (transfer none) (nullable): The widget's window. + * + * Since: 3.0.0 + */ +WINDOW *gnt_widget_get_window(GntWidget *widget); + +/** * gnt_widget_set_parent: * @widget: The widget. * @parent: The parent widget.
--- a/gntwm.c Fri Apr 26 05:56:54 2019 -0400 +++ b/gntwm.c Fri Apr 26 16:56:55 2019 -0400 @@ -126,7 +126,7 @@ WINDOW *src, *dst; if (!node) return; - src = widget->window; + src = gnt_widget_get_window(widget); dst = node->window; copywin(src, dst, node->scroll, 0, 0, 0, getmaxy(dst) - 1, getmaxx(dst) - 1, 0); @@ -134,11 +134,12 @@ if (GNT_IS_WINDOW(widget) || GNT_IS_BOX(widget)) { GntWidget *active = gnt_box_get_active(GNT_BOX(widget)); if (active) { + WINDOW *active_window = gnt_widget_get_window(active); gint curx, cury, widgetx, widgety; gnt_widget_get_position(active, &curx, &cury); gnt_widget_get_position(widget, &widgetx, &widgety); - curx += getcurx(active->window) - widgetx; - cury += getcury(active->window) - widgety; + curx += getcurx(active_window) - widgetx; + cury += getcury(active_window) - widgety; if (wmove(node->window, cury, curx) != OK) { (void)wmove(node->window, 0, 0); } @@ -1049,7 +1050,7 @@ if (!gnt_widget_get_has_border(win)) return; - d = win->window; + d = gnt_widget_get_window(win); gnt_widget_get_size(win, &w, &h); if (gnt_widget_has_shadow(win)) { @@ -1184,7 +1185,7 @@ static void remove_tag(GntWidget *widget, G_GNUC_UNUSED gpointer data) { - mvwhline(widget->window, 0, 1, + mvwhline(gnt_widget_get_window(widget), 0, 1, ACS_HLINE | gnt_color_pair(GNT_COLOR_NORMAL), 3); gnt_widget_draw(widget); } @@ -1209,8 +1210,9 @@ } wm->tagged = g_list_prepend(wm->tagged, widget); - wbkgdset(widget->window, ' ' | gnt_color_pair(GNT_COLOR_HIGHLIGHT)); - mvwprintw(widget->window, 0, 1, "[T]"); + wbkgdset(gnt_widget_get_window(widget), + ' ' | gnt_color_pair(GNT_COLOR_HIGHLIGHT)); + mvwprintw(gnt_widget_get_window(widget), 0, 1, "[T]"); gnt_widget_draw(widget); return TRUE; } @@ -1770,8 +1772,9 @@ GntNode *node; gboolean transient = FALSE; - if (widget->window == NULL) + if (gnt_widget_get_window(widget) == NULL) { return; + } node = g_new0(GntNode, 1); node->me = widget; @@ -1851,7 +1854,7 @@ if (title && (p = g_hash_table_lookup(wm->positions, title)) != NULL) { sanitize_position(widget, &p->x, &p->y, TRUE); gnt_widget_set_position(widget, p->x, p->y); - mvwin(widget->window, p->y, p->x); + mvwin(gnt_widget_get_window(widget), p->y, p->x); } }
--- a/wms/irssi.c Fri Apr 26 05:56:54 2019 -0400 +++ b/wms/irssi.c Fri Apr 26 16:56:55 2019 -0400 @@ -145,7 +145,7 @@ gnt_widget_set_take_focus(win, TRUE); gnt_widget_set_position(win, x, y); - mvwin(win->window, y, x); + mvwin(gnt_widget_get_window(win), y, x); gnt_widget_set_size(win, (w < 0) ? -1 : w + 2, h + 2); } @@ -168,7 +168,7 @@ x = (getmaxx(stdscr) - w) / 2; y = (getmaxy(stdscr) - h) / 2; gnt_widget_set_position(win, x, y); - mvwin(win->window, y, x); + mvwin(gnt_widget_get_window(win), y, x); } else { gnt_window_set_maximize(GNT_WINDOW(win), GNT_WINDOW_MAXIMIZE_Y); remove_border_set_position_size(wm, win, 0, 0, -1, getmaxy(stdscr) - 1);
--- a/wms/s.c Fri Apr 26 05:56:54 2019 -0400 +++ b/wms/s.c Fri Apr 26 16:56:55 2019 -0400 @@ -51,24 +51,28 @@ static void envelope_main_window(GntWidget *win) { + WINDOW *window; int w, h; + window = gnt_widget_get_window(win); gnt_widget_get_size(win, &w, &h); - wresize(win->window, h, w + 1); - mvwvline(win->window, 0, w, ACS_VLINE | COLOR_PAIR(GNT_COLOR_NORMAL), h); - touchwin(win->window); + wresize(window, h, w + 1); + mvwvline(window, 0, w, ACS_VLINE | COLOR_PAIR(GNT_COLOR_NORMAL), h); + touchwin(window); } static void envelope_normal_window(GntWidget *win) { + WINDOW *window; int w, h; if (!gnt_widget_get_has_border(win) || gnt_widget_get_transient(win)) return; + window = gnt_widget_get_window(win); gnt_widget_get_size(win, &w, &h); - wbkgdset(win->window, ' ' | COLOR_PAIR(GNT_COLOR_NORMAL)); - mvwprintw(win->window, 0, w - 4, "[X]"); + wbkgdset(window, ' ' | COLOR_PAIR(GNT_COLOR_NORMAL)); + mvwprintw(window, 0, w - 4, "[X]"); } static void @@ -120,7 +124,7 @@ gnt_widget_set_take_focus(win, TRUE); gnt_widget_set_position(win, x, y); - mvwin(win->window, y, x); + mvwin(gnt_widget_get_window(win), y, x); gnt_widget_set_size(win, -1, h + 2); /* XXX: Why is the +2 needed here? -- sadrul */ } else if (!gnt_widget_get_transient(win)) { @@ -131,7 +135,7 @@ y = (maxy - h) / 2; gnt_widget_set_position(win, x, y); - mvwin(win->window, y, x); + mvwin(gnt_widget_get_window(win), y, x); } } }