Exemplo n.º 1
0
int
gui_layout_window_save (struct t_gui_layout_window **layout_windows)
{
    gui_layout_window_remove_all (layout_windows);

    gui_layout_internal_id = 1;
    gui_layout_internal_id_current_window = -1;

    gui_layout_window_save_tree (layout_windows, NULL, gui_windows_tree);

    return gui_layout_internal_id_current_window;
}
Exemplo n.º 2
0
void
gui_main_end (int clean_exit)
{
    if (clean_exit)
    {
        /* remove bar items and bars */
        gui_bar_item_end ();
        gui_bar_free_all ();
        
        /* remove filters */
        gui_filter_free_all ();
        
        /* free clipboard buffer */
        if (gui_input_clipboard)
            free(gui_input_clipboard);
        
        /* delete layout saved */
        gui_layout_window_remove_all (&gui_layout_windows);
        gui_layout_buffer_remove_all (&gui_layout_buffers, &last_gui_layout_buffer);
        
        /* delete all windows */
        while (gui_windows)
        {
            gui_window_free (gui_windows);
            /* TODO: destroy Gtk widgets */
        }
        gui_window_tree_free (&gui_windows_tree);
        
        /* delete all buffers */
        while (gui_buffers)
        {
            gui_buffer_close (gui_buffers);
        }
        
        /* delete global history */
        gui_history_global_free ();
        
        /* reset title */
        if (CONFIG_BOOLEAN(config_look_set_title))
            gui_window_set_title (NULL);
        
        /* end color */
        gui_color_end ();
        
        /* free chat buffer */
        gui_chat_free_buffer ();
    }
}
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
0
int
upgrade_weechat_load ()
{
    int rc;
    struct t_upgrade_file *upgrade_file;

    upgrade_file = upgrade_file_new (WEECHAT_UPGRADE_FILENAME, 0);
    rc = upgrade_file_read (upgrade_file, &upgrade_weechat_read_cb, NULL);

    if (!hotlist_reset)
        gui_hotlist_clear ();

    gui_color_buffer_assign ();
    gui_color_buffer_display ();

    if (upgrade_layout_buffers)
    {
        gui_layout_buffer_apply (upgrade_layout_buffers);
        gui_layout_buffer_remove_all (&upgrade_layout_buffers,
                                      &last_upgrade_layout_buffer);
    }

    if (upgrade_layout_windows)
    {
        gui_layout_window_apply (upgrade_layout_windows, -1);
        gui_layout_window_remove_all (&upgrade_layout_windows);
    }

    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_buffers);

    return rc;
}
Exemplo n.º 5
0
void
gui_layout_window_reset (struct t_gui_layout_window **layout_windows)
{
    struct t_gui_window *ptr_win;

    gui_layout_window_remove_all (layout_windows);

    for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window)
    {
        if (ptr_win->layout_plugin_name)
        {
            free (ptr_win->layout_plugin_name);
            ptr_win->layout_plugin_name = NULL;
        }
        if (ptr_win->layout_buffer_name)
        {
            free (ptr_win->layout_buffer_name);
            ptr_win->layout_buffer_name = NULL;
        }
    }
}
Exemplo n.º 6
0
void
gui_main_end (int clean_exit)
{
    if (clean_exit)
    {
        /*
         * final refreshs, to see messages just before exiting
         * (if we are upgrading, don't refresh anything!)
         */
        if (!weechat_upgrading)
        {
            gui_main_refreshs ();
            if (gui_window_refresh_needed)
                gui_main_refreshs ();
        }

        /* disable mouse */
        gui_mouse_disable ();

        /* remove bar items and bars */
        gui_bar_item_end ();
        gui_bar_free_all ();

        /* remove filters */
        gui_filter_free_all ();

        /* free clipboard buffer */
        if (gui_input_clipboard)
            free (gui_input_clipboard);

        /* delete layout saved */
        gui_layout_window_remove_all (&gui_layout_windows);
        gui_layout_buffer_remove_all (&gui_layout_buffers, &last_gui_layout_buffer);

        /* delete all windows */
        while (gui_windows)
        {
            gui_window_free (gui_windows);
        }
        gui_window_tree_free (&gui_windows_tree);

        /* delete all buffers */
        while (gui_buffers)
        {
            gui_buffer_close (gui_buffers);
        }

        gui_ok = 0;
        gui_init_ok = 0;

        /* delete global history */
        gui_history_global_free ();

        /* reset title */
        if (CONFIG_BOOLEAN(config_look_set_title))
            gui_window_set_title (NULL);

        /* end color */
        gui_color_end ();

        /* free some variables used for chat area */
        gui_chat_end ();
    }

    /* end of Curses output */
    refresh ();
    endwin ();
}