コード例 #1
0
ファイル: gui-layout.c プロジェクト: Georgiy-Tugai/weechat
void
gui_layout_store_on_exit ()
{
    struct t_gui_layout *ptr_layout;

    if (CONFIG_BOOLEAN(config_look_save_layout_on_exit) == CONFIG_LOOK_SAVE_LAYOUT_ON_EXIT_NONE)
        return;

    ptr_layout = gui_layout_current;
    if (!ptr_layout)
    {
        /* create a "default" layout if needed */
        ptr_layout = gui_layout_search (GUI_LAYOUT_DEFAULT_NAME);
        if (!ptr_layout)
        {
            ptr_layout = gui_layout_alloc (GUI_LAYOUT_DEFAULT_NAME);
            if (!ptr_layout)
                return;
            gui_layout_add (ptr_layout);
        }
    }

    /* store current layout */
    switch (CONFIG_BOOLEAN(config_look_save_layout_on_exit))
    {
        case CONFIG_LOOK_SAVE_LAYOUT_ON_EXIT_BUFFERS:
            gui_layout_buffer_store (ptr_layout);
            break;
        case CONFIG_LOOK_SAVE_LAYOUT_ON_EXIT_WINDOWS:
            gui_layout_window_store (ptr_layout);
            break;
        case CONFIG_LOOK_SAVE_LAYOUT_ON_EXIT_ALL:
            gui_layout_buffer_store (ptr_layout);
            gui_layout_window_store (ptr_layout);
            break;
        default:
            break;
    }

    /* use layout, so it will be used after restart of WeeChat */
    gui_layout_current = ptr_layout;
}
コード例 #2
0
ファイル: wee-upgrade.c プロジェクト: Irishsmurf/weechat
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;
}