void gui_cursor_move_area (const char *area) { int area_found, x, y; struct t_gui_bar_window *ptr_bar_win; struct t_gui_bar *ptr_bar; area_found = 0; x = 0; y = 0; if (strcmp (area, "chat") == 0) { area_found = 1; x = gui_current_window->win_chat_x; y = gui_current_window->win_chat_y; } else { for (ptr_bar_win = gui_current_window->bar_windows; ptr_bar_win; ptr_bar_win = ptr_bar_win->next_bar_window) { if (strcmp (ptr_bar_win->bar->name, area) == 0) { area_found = 1; x = ptr_bar_win->x; y = ptr_bar_win->y; break; } } if (!area_found) { for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar) { if (ptr_bar->bar_window && (strcmp (ptr_bar->name, area) == 0)) { area_found = 1; x = ptr_bar->bar_window->x; y = ptr_bar->bar_window->y; } } } } if (area_found) { if (!gui_cursor_mode) gui_cursor_mode_toggle (); gui_cursor_x = x; gui_cursor_y = y; gui_cursor_display_debug_info (); gui_window_move_cursor (); } }
void gui_cursor_move_add_xy (int add_x, int add_y) { if (!gui_cursor_mode) gui_cursor_mode_toggle (); gui_cursor_x += add_x; gui_cursor_y += add_y; if (gui_cursor_x < 0) gui_cursor_x = gui_window_get_width () - 1; else if (gui_cursor_x > gui_window_get_width () - 1) gui_cursor_x = 0; if (gui_cursor_y < 0) gui_cursor_y = gui_window_get_height () - 1; else if (gui_cursor_y > gui_window_get_height () - 1) gui_cursor_y = 0; gui_cursor_display_debug_info (); gui_window_move_cursor (); }
void gui_main_refreshs () { struct t_gui_window *ptr_win; struct t_gui_buffer *ptr_buffer; struct t_gui_bar *ptr_bar; /* refresh color buffer if needed */ if (gui_color_buffer_refresh_needed) { gui_color_buffer_display (); gui_color_buffer_refresh_needed = 0; } /* compute max length for prefix/buffer if needed */ for (ptr_buffer = gui_buffers; ptr_buffer; ptr_buffer = ptr_buffer->next_buffer) { /* compute buffer/prefix max length for own_lines */ if (ptr_buffer->own_lines) { if (ptr_buffer->own_lines->buffer_max_length_refresh) { gui_line_compute_buffer_max_length (ptr_buffer, ptr_buffer->own_lines); } if (ptr_buffer->own_lines->prefix_max_length_refresh) gui_line_compute_prefix_max_length (ptr_buffer->own_lines); } /* compute buffer/prefix max length for mixed_lines */ if (ptr_buffer->mixed_lines) { if (ptr_buffer->mixed_lines->buffer_max_length_refresh) { gui_line_compute_buffer_max_length (ptr_buffer, ptr_buffer->mixed_lines); } if (ptr_buffer->mixed_lines->prefix_max_length_refresh) gui_line_compute_prefix_max_length (ptr_buffer->mixed_lines); } } /* refresh window if needed */ if (gui_window_refresh_needed) { gui_window_refresh_screen ((gui_window_refresh_needed > 1) ? 1 : 0); gui_window_refresh_needed = 0; } /* refresh bars if needed */ for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar) { if (ptr_bar->bar_refresh_needed) gui_bar_draw (ptr_bar); } /* refresh window if needed (if asked during refresh of bars) */ if (gui_window_refresh_needed) { gui_window_refresh_screen ((gui_window_refresh_needed > 1) ? 1 : 0); gui_window_refresh_needed = 0; } /* refresh windows if needed */ for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window) { if (ptr_win->refresh_needed) { gui_window_switch_to_buffer (ptr_win, ptr_win->buffer, 0); gui_chat_draw (ptr_win->buffer, 1); ptr_win->refresh_needed = 0; } } /* refresh chat buffers if needed */ for (ptr_buffer = gui_buffers; ptr_buffer; ptr_buffer = ptr_buffer->next_buffer) { if (ptr_buffer->chat_refresh_needed) { gui_chat_draw (ptr_buffer, (ptr_buffer->chat_refresh_needed) > 1 ? 1 : 0); } } if (!gui_window_bare_display) { /* refresh bars if needed */ for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar) { if (ptr_bar->bar_refresh_needed) { gui_bar_draw (ptr_bar); } } /* move cursor (for cursor mode) */ if (gui_cursor_mode) gui_window_move_cursor (); } }
void gui_main_refreshs () { struct t_gui_window *ptr_win; struct t_gui_buffer *ptr_buffer; struct t_gui_bar *ptr_bar; /* refresh color buffer if needed */ if (gui_color_buffer_refresh_needed) { gui_color_buffer_display (); gui_color_buffer_refresh_needed = 0; } /* refresh window if needed */ if (gui_window_refresh_needed) { gui_window_refresh_screen ((gui_window_refresh_needed > 1) ? 1 : 0); gui_window_refresh_needed = 0; } /* refresh bars if needed */ for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar) { if (ptr_bar->bar_refresh_needed) { gui_bar_draw (ptr_bar); } } /* refresh windows if needed */ for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window) { if (ptr_win->refresh_needed) { gui_window_switch_to_buffer (ptr_win, ptr_win->buffer, 0); gui_window_redraw_buffer (ptr_win->buffer); ptr_win->refresh_needed = 0; } } /* refresh chat buffers if needed */ for (ptr_buffer = gui_buffers; ptr_buffer; ptr_buffer = ptr_buffer->next_buffer) { if (ptr_buffer->chat_refresh_needed) { gui_chat_draw (ptr_buffer, (ptr_buffer->chat_refresh_needed) > 1 ? 1 : 0); } } /* refresh bars if needed */ for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar) { if (ptr_bar->bar_refresh_needed) { gui_bar_draw (ptr_bar); } } /* move cursor (for cursor mode) */ if (gui_cursor_mode) gui_window_move_cursor (); }
void gui_cursor_move_area_add_xy (int add_x, int add_y) { int x, y, width, height, area_found; struct t_gui_focus_info *focus_info_old, *focus_info_new; if (!gui_cursor_mode) gui_cursor_mode_toggle (); area_found = 0; x = gui_cursor_x; y = gui_cursor_y; width = gui_window_get_width (); height = gui_window_get_height (); focus_info_old = gui_focus_get_info (x, y); if (!focus_info_old) return; focus_info_new = NULL; if (add_x != 0) x += add_x; else y += add_y; while ((x >= 0) && (x < width) && (y >= 0) && (y < height)) { focus_info_new = gui_focus_get_info (x, y); if (!focus_info_new) { gui_focus_free_info (focus_info_old); return; } if (((focus_info_new->window && focus_info_new->chat) || focus_info_new->bar_window) && ((focus_info_old->window != focus_info_new->window) || (focus_info_old->bar_window != focus_info_new->bar_window))) { area_found = 1; break; } if (add_x != 0) x += add_x; else y += add_y; } if (area_found) { if (focus_info_new->window && focus_info_new->chat) { x = (focus_info_new->window)->win_chat_x; y = (focus_info_new->window)->win_chat_y; } else if (focus_info_new->bar_window) { x = (focus_info_new->bar_window)->x; y = (focus_info_new->bar_window)->y; } else area_found = 0; } if (area_found) { gui_cursor_x = x; gui_cursor_y = y; gui_cursor_display_debug_info (); gui_window_move_cursor (); } gui_focus_free_info (focus_info_old); if (focus_info_new) gui_focus_free_info (focus_info_new); }