void edit_toggle_fullscreen (WEdit * edit) { Dlg_head *h = ((Widget *) edit)->owner; edit->fullscreen = !edit->fullscreen; edit->force = REDRAW_COMPLETELY; if (!edit->fullscreen) edit_restore_size (edit); else { edit_save_size (edit); widget_set_size ((Widget *) edit, h->y + 1, h->x, h->lines - 2, h->cols); edit->force |= REDRAW_PAGE; edit_update_screen (edit); } }
void edit_toggle_fullscreen (WEdit * edit) { edit->fullscreen = !edit->fullscreen; edit->force = REDRAW_COMPLETELY; if (!edit->fullscreen) edit_restore_size (edit); else { Widget *w = WIDGET (edit); Widget *h = WIDGET (w->owner); edit_save_size (edit); widget_set_size (w, h->y + 1, h->x, h->lines - 2, h->cols); edit->force |= REDRAW_PAGE; edit_update_screen (edit); } }
gboolean edit_handle_move_resize (WEdit * edit, long command) { Widget *w = WIDGET (edit); gboolean ret = FALSE; if (edit->fullscreen) { edit->drag_state = MCEDIT_DRAG_NONE; w->mouse.forced_capture = FALSE; return ret; } switch (edit->drag_state) { case MCEDIT_DRAG_NONE: /* possible start move/resize */ switch (command) { case CK_WindowMove: edit->drag_state = MCEDIT_DRAG_MOVE; edit_save_size (edit); edit_status (edit, TRUE); /* redraw frame and status */ /** * If a user initiates a move by the menu, not by the mouse, we * make a subsequent mouse drag pull the frame from its middle. * (We can instead choose '0' to pull it from the corner.) */ edit->drag_state_start = w->cols / 2; ret = TRUE; break; case CK_WindowResize: edit->drag_state = MCEDIT_DRAG_RESIZE; edit_save_size (edit); edit_status (edit, TRUE); /* redraw frame and status */ ret = TRUE; break; default: break; } break; case MCEDIT_DRAG_MOVE: switch (command) { case CK_WindowResize: edit->drag_state = MCEDIT_DRAG_RESIZE; ret = TRUE; break; case CK_Up: case CK_Down: case CK_Left: case CK_Right: edit_window_move (edit, command); ret = TRUE; break; case CK_Enter: case CK_WindowMove: edit->drag_state = MCEDIT_DRAG_NONE; edit_status (edit, TRUE); /* redraw frame and status */ MC_FALLTHROUGH; default: ret = TRUE; break; } break; case MCEDIT_DRAG_RESIZE: switch (command) { case CK_WindowMove: edit->drag_state = MCEDIT_DRAG_MOVE; ret = TRUE; break; case CK_Up: case CK_Down: case CK_Left: case CK_Right: edit_window_resize (edit, command); ret = TRUE; break; case CK_Enter: case CK_WindowResize: edit->drag_state = MCEDIT_DRAG_NONE; edit_status (edit, TRUE); /* redraw frame and status */ MC_FALLTHROUGH; default: ret = TRUE; break; } break; default: break; } /** * - We let the user stop a resize/move operation by clicking with the * mouse anywhere. ("clicking" = pressing and releasing a button.) * - We let the user perform a resize/move operation by a mouse drag * initiated anywhere. * * "Anywhere" means: inside or outside the window. We make this happen * with the 'forced_capture' flag. */ w->mouse.forced_capture = (edit->drag_state != MCEDIT_DRAG_NONE); return ret; }
gboolean edit_handle_move_resize (WEdit * edit, long command) { gboolean ret = FALSE; if (edit->fullscreen) { edit->drag_state = MCEDIT_DRAG_NORMAL; return ret; } switch (edit->drag_state) { case MCEDIT_DRAG_NORMAL: /* possible start move/resize */ switch (command) { case CK_WindowMove: edit->drag_state = MCEDIT_DRAG_MOVE; edit_save_size (edit); ret = TRUE; break; case CK_WindowResize: edit->drag_state = MCEDIT_DRAG_RESIZE; edit_save_size (edit); ret = TRUE; break; default: break; } break; case MCEDIT_DRAG_MOVE: switch (command) { case CK_WindowResize: edit->drag_state = MCEDIT_DRAG_RESIZE; ret = TRUE; break; case CK_Up: case CK_Down: case CK_Left: case CK_Right: edit_window_move (edit, command); ret = TRUE; break; case CK_Enter: case CK_WindowMove: edit->drag_state = MCEDIT_DRAG_NORMAL; /* redraw frame and status */ edit_status (edit, TRUE); default: ret = TRUE; break; } break; case MCEDIT_DRAG_RESIZE: switch (command) { case CK_WindowMove: edit->drag_state = MCEDIT_DRAG_MOVE; ret = TRUE; break; case CK_Up: case CK_Down: case CK_Left: case CK_Right: edit_window_resize (edit, command); ret = TRUE; break; case CK_Enter: case CK_WindowResize: edit->drag_state = MCEDIT_DRAG_NORMAL; /* redraw frame and status */ edit_status (edit, TRUE); default: ret = TRUE; break; } break; default: break; } return ret; }