int upgrade_weechat_save_layout_window_tree (struct t_upgrade_file *upgrade_file, struct t_gui_layout_window *layout_window) { struct t_infolist *ptr_infolist; int rc; ptr_infolist = infolist_new (NULL); if (!ptr_infolist) return 0; if (!gui_layout_window_add_to_infolist (ptr_infolist, layout_window)) { infolist_free (ptr_infolist); return 0; } rc = upgrade_file_write_object (upgrade_file, UPGRADE_WEECHAT_TYPE_LAYOUT_WINDOW, ptr_infolist); infolist_free (ptr_infolist); if (!rc) return 0; if (layout_window->child1) { if (!upgrade_weechat_save_layout_window_tree (upgrade_file, layout_window->child1)) return 0; } if (layout_window->child2) { if (!upgrade_weechat_save_layout_window_tree (upgrade_file, layout_window->child2)) return 0; } return 1; }
int upgrade_weechat_save_layout_window (struct t_upgrade_file *upgrade_file) { struct t_gui_layout_window *layout_windows; int rc; /* get current layout for windows */ layout_windows = NULL; gui_layout_window_save (&layout_windows); /* save tree with layout of windows */ rc = upgrade_weechat_save_layout_window_tree (upgrade_file, layout_windows); gui_layout_window_remove_all (&layout_windows); return rc; }
int upgrade_weechat_save_layout_window (struct t_upgrade_file *upgrade_file) { struct t_gui_layout *ptr_layout; int rc; rc = 0; /* get current layout for windows */ ptr_layout = gui_layout_alloc (GUI_LAYOUT_UPGRADE); if (ptr_layout) { gui_layout_window_store (ptr_layout); /* save tree with layout of windows */ rc = upgrade_weechat_save_layout_window_tree (upgrade_file, ptr_layout->layout_windows); gui_layout_free (ptr_layout); } return rc; }