-
-
-
-extern void toggle_window(char id)
-{
- struct Win * win = get_win_by_id(id);
- if (NULL == strchr(world.winDB.order, id))
- {
- append_win(win);
- return;
- }
- suspend_win(win);
-}
-
-
-
-extern void toggle_winconfig()
-{
- if (!world.winDB.active)
- {
- return;
- }
- struct Win * w = get_win_by_id(world.winDB.active);
- if (0 == w->view)
- {
- w->view = 1;
- w->target_center = w->center;
- memset(&w->center, 0, sizeof(struct yx_uint16));
- return;
- }
- else if (1 == w->view)
- {
- w->view = 2;
- w->center.x = 0;
- return;
- }
- w->view = 0;
- w->center = w->target_center;
-}
-
-
-
-extern void toggle_win_size_type(char axis)
-{
- struct Win * w = get_win_by_id(world.winDB.active);
- if ('y' == axis)
- {
- w->target_height_type = (0 == w->target_height_type);
- set_win_target_size(w);
- return;
- }
- w->target_width_type = ( 0 == w->target_width_type
- && w->frame_size.x <= world.winDB.v_screen_size.x);
- set_win_target_size(w);
-}
-
-
-
-extern void toggle_linebreak_type()
-{
- struct Win * w = get_win_by_id(world.winDB.active);
- if (0 == w->linebreak)
- {
- w->linebreak = 1;
- }
- else if (1 == w->linebreak)
- {
- w->linebreak = 2;
- }
- else if (2 == w->linebreak)
- {
- w->linebreak = 0;
- }
-}
-
-
-
-extern void resize_active_win(char change)
-{
- if (world.winDB.active)
- {
- struct Win * w = get_win_by_id(world.winDB.active);
- if (change == '-' && w->frame_size.y > 1)
- {
- w->frame_size.y--;
- }
- else if (change == '_' && w->frame_size.y > 1)
- {
- w->frame_size.x--;
- }
- else if ( change == '+'
- && w->frame_size.y < world.winDB.v_screen_size.y - 1)
- {
- w->frame_size.y++;
- }
- else if (change == '*' && w->frame_size.y < UINT16_MAX)
- {
- w->frame_size.x++;
- }
- if ( 1 == w->target_width_type
- && w->frame_size.x > world.winDB.v_screen_size.x)
- {
- w->target_width_type = 0;
- }
- set_win_target_size(w);
- update_wins(w);
- }
-}
-
-
-
-extern void shift_active_win(char dir)
-{
- uint8_t len_order = strlen(world.winDB.order);
- if (1 < len_order)
- {
- char tmp[len_order + 1];
- tmp[len_order] = '\0';
- uint8_t pos = get_pos_in_order(world.winDB.active);
- if ('f' == dir)
- {
- if (pos == len_order - 1)
- {
- memcpy(tmp + 1, world.winDB.order, len_order - 1);
- tmp[0] = world.winDB.active;
- memcpy(world.winDB.order, tmp, len_order + 1);
- }
- else
- {
- world.winDB.order[pos] = world.winDB.order[pos + 1];
- world.winDB.order[pos + 1] = world.winDB.active;
- }
- }
- else
- {
- if (pos == 0)
- {
- memcpy(tmp, world.winDB.order + 1, len_order - 1);
- tmp[len_order - 1] = world.winDB.active;
- memcpy(world.winDB.order, tmp, len_order + 1);
- }
- else
- {
- world.winDB.order[pos] = world.winDB.order[pos - 1];
- world.winDB.order[pos - 1] = world.winDB.active;
- }
- }
- update_wins(get_win_by_id(world.winDB.order[0]));
- }
-}
-
-
-
-extern void scroll_v_screen(char dir)
-{
- if ( '+' == dir
- && world.winDB.v_screen_offset + world.winDB.v_screen_size.x + 1
- < getmaxx(world.winDB.v_screen))
- {
- world.winDB.v_screen_offset++;
- }
- else if ( '-' == dir
- && world.winDB.v_screen_offset > 0)
- {
- world.winDB.v_screen_offset--;
- }
-}
-
-
-
-extern void cycle_active_win(char dir)
-{
- uint8_t len_order = strlen(world.winDB.order);
- if (1 < len_order)
- {
- uint8_t pos = get_pos_in_order(world.winDB.active);
- if ('f' == dir)
- {
- world.winDB.active = world.winDB.order[pos + 1];
- if ('\0' == world.winDB.active)
- {
- world.winDB.active = world.winDB.order[0];
- }
- return;
- }
- if (pos > 0)
- {
- world.winDB.active = world.winDB.order[pos - 1];
- return;
- }
- world.winDB.active = world.winDB.order[len_order - 1];
- }
-}