Ejemplo n.º 1
0
void
gui_layout_remove (struct t_gui_layout *layout)
{
    struct t_gui_layout *new_gui_layouts;

    if (!layout)
        return;

    /* remove current layout if this is the layout we are removing */
    if (gui_layout_current == layout)
        gui_layout_current = NULL;

    /* remove alias from list */
    if (last_gui_layout == layout)
        last_gui_layout = layout->prev_layout;
    if (layout->prev_layout)
    {
        (layout->prev_layout)->next_layout = layout->next_layout;
        new_gui_layouts = gui_layouts;
    }
    else
        new_gui_layouts = layout->next_layout;
    if (layout->next_layout)
        (layout->next_layout)->prev_layout = layout->prev_layout;

    /* free data */
    gui_layout_free (layout);

    gui_layouts = new_gui_layouts;
}
Ejemplo n.º 2
0
int
upgrade_weechat_load ()
{
    int rc;
    struct t_upgrade_file *upgrade_file;

    upgrade_layout = gui_layout_alloc (GUI_LAYOUT_UPGRADE);

    upgrade_file = upgrade_file_new (WEECHAT_UPGRADE_FILENAME,
                                     &upgrade_weechat_read_cb, NULL, NULL);
    if (!upgrade_file)
        return 0;

    rc = upgrade_file_read (upgrade_file);

    upgrade_file_close (upgrade_file);

    if (!hotlist_reset)
        gui_hotlist_clear (GUI_HOTLIST_MASK_MAX);

    gui_color_buffer_assign ();
    gui_color_buffer_display ();

    secure_buffer_assign ();
    secure_buffer_display ();

    if (upgrade_layout->layout_buffers)
        gui_layout_buffer_apply (upgrade_layout);
    if (upgrade_layout->layout_windows)
        gui_layout_window_apply (upgrade_layout, -1);

    gui_layout_free (upgrade_layout);
    upgrade_layout = NULL;

    if (upgrade_set_current_window > 0)
        gui_window_switch_by_number (upgrade_set_current_window);

    if (upgrade_set_current_buffer)
    {
        gui_window_switch_to_buffer (gui_current_window,
                                     upgrade_set_current_buffer, 0);
    }

    gui_layout_buffer_get_number_all (gui_layout_current);

    return rc;
}
Ejemplo n.º 3
0
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;
}