void layout_cmd (void) { int result; int i; init_layout (); run_dlg (layout_dlg); result = layout_dlg->ret_value; if (result == B_ENTER || result == B_EXIT){ for (i = 0; check_options [i].text; i++) if (check_options [i].widget) *check_options [i].variable = check_options [i].widget->state & C_BOOL; #ifndef HAVE_X horizontal_split = radio_widget->sel; first_panel_size = _first_panel_size; output_lines = _output_lines; layout_do_change = 1; #endif } if (result == B_EXIT){ save_layout (); sync_profiles (); } destroy_dlg (layout_dlg); if (layout_do_change) layout_change (); }
void layout_box (void) { WDialog *layout_dlg; old_layout = panels_layout; old_output_lines = output_lines; layout_dlg = init_layout (); if (dlg_run (layout_dlg) == B_ENTER) { size_t i; for (i = 0; i < (size_t) LAYOUT_OPTIONS_COUNT; i++) if (check_options[i].widget != NULL) *check_options[i].variable = check_options[i].widget->state & C_BOOL; } else { /* restore layout */ panels_layout = old_layout; output_lines = old_output_lines; update_split (layout_dlg); } dlg_destroy (layout_dlg); layout_change (); do_refresh (); }
static int b_left_right_cback (WButton * button, int action) { (void) action; if (button == bright_widget) { if (panels_layout.horizontal_split) panels_layout.top_panel_size++; else panels_layout.left_panel_size++; } else { if (panels_layout.horizontal_split) panels_layout.top_panel_size--; else panels_layout.left_panel_size--; } update_split (WIDGET (button)->owner); layout_change (); do_refresh (); return 0; }
void layout_box (void) { WDialog *layout_dlg; gboolean layout_do_change = FALSE; layout_dlg = init_layout (); if (dlg_run (layout_dlg) == B_ENTER) { size_t i; for (i = 0; i < (size_t) LAYOUT_OPTIONS_COUNT; i++) if (check_options[i].widget != NULL) *check_options[i].variable = check_options[i].widget->state & C_BOOL; panels_layout.horizontal_split = radio_widget->sel; if (panels_layout.horizontal_split) { panels_layout.horizontal_equal = *check_options[0].variable; panels_layout.top_panel_size = _panels_layout.top_panel_size; } else { panels_layout.vertical_equal = *check_options[0].variable; panels_layout.left_panel_size = _panels_layout.left_panel_size; } output_lines = _output_lines; layout_do_change = TRUE; } dlg_destroy (layout_dlg); if (layout_do_change) layout_change (); }
void panels_split_equal (void) { if (panels_layout.horizontal_split) panels_layout.horizontal_equal = TRUE; else panels_layout.vertical_equal = TRUE; layout_change (); do_refresh (); }
void panels_split_less (void) { if (panels_layout.horizontal_split) { panels_layout.horizontal_equal = FALSE; panels_layout.top_panel_size--; } else { panels_layout.vertical_equal = FALSE; panels_layout.left_panel_size--; } layout_change (); }
void layout_box (void) { Dlg_head *layout_dlg; gboolean layout_do_change = FALSE; layout_dlg = init_layout (); if (run_dlg (layout_dlg) == B_ENTER) { size_t i; for (i = 0; i < (size_t) LAYOUT_OPTIONS_COUNT; i++) if (check_options[i].widget != NULL) *check_options[i].variable = check_options[i].widget->state & C_BOOL; horizontal_split = radio_widget->sel; first_panel_size = _first_panel_size; output_lines = _output_lines; layout_do_change = TRUE; } destroy_dlg (layout_dlg); if (layout_do_change) layout_change (); }
static cb_ret_t layout_callback (Widget * w, Widget * sender, widget_msg_t msg, int parm, void *data) { WDialog *h = DIALOG (w); switch (msg) { case MSG_DRAW: /* When repainting the whole dialog (e.g. with C-l) we have to update everything */ dlg_default_repaint (h); old_output_lines = -1; update_split (h); if (old_output_lines != _output_lines) { old_output_lines = _output_lines; tty_setcolor (mc_global.tty.console_flag != '\0' ? COLOR_NORMAL : DISABLED_COLOR); widget_move (h, 9, 5); tty_print_string (output_lines_label); widget_move (h, 9, 5 + 3 + output_lines_label_len); tty_printf ("%02d", _output_lines); } return MSG_HANDLED; case MSG_POST_KEY: _menubar_visible = check_options[1].widget->state & C_BOOL; _command_prompt = (check_options[2].widget->state & C_BOOL) != 0; _keybar_visible = check_options[3].widget->state & C_BOOL; _message_visible = check_options[4].widget->state & C_BOOL; _xterm_title = (check_options[5].widget->state & C_BOOL) != 0; _free_space = check_options[6].widget->state & C_BOOL; if (mc_global.tty.console_flag != '\0') { int minimum; if (_output_lines < 0) _output_lines = 0; height = LINES - _keybar_visible - (_command_prompt ? 1 : 0) - _menubar_visible - _output_lines - _message_visible; minimum = MINHEIGHT * (1 + panels_layout.horizontal_split); if (height < minimum) { _output_lines -= minimum - height; height = minimum; } } else height = LINES - _keybar_visible - (_command_prompt ? 1 : 0) - _menubar_visible - _output_lines - _message_visible; if (old_output_lines != _output_lines) { old_output_lines = _output_lines; tty_setcolor (mc_global.tty.console_flag != '\0' ? COLOR_NORMAL : DISABLED_COLOR); widget_move (h, 9, 5 + 3 + output_lines_label_len); tty_printf ("%02d", _output_lines); } return MSG_HANDLED; case MSG_ACTION: if (sender == WIDGET (radio_widget)) { if (panels_layout.horizontal_split != radio_widget->sel) { int eq; panels_layout.horizontal_split = radio_widget->sel; if (panels_layout.horizontal_split) { eq = panels_layout.horizontal_equal; if (eq) panels_layout.top_panel_size = height / 2; } else { eq = panels_layout.vertical_equal; if (eq) panels_layout.left_panel_size = COLS / 2; } widget_disable (WIDGET (bleft_widget), eq); widget_disable (WIDGET (bright_widget), eq); update_split (h); layout_change (); do_refresh (); } else update_split (h); return MSG_HANDLED; } if (sender == WIDGET (check_options[0].widget)) { int eq; if (panels_layout.horizontal_split) { panels_layout.horizontal_equal = check_options[0].widget->state & C_BOOL; eq = panels_layout.horizontal_equal; } else { panels_layout.vertical_equal = check_options[0].widget->state & C_BOOL; eq = panels_layout.vertical_equal; } widget_disable (WIDGET (bleft_widget), eq); widget_disable (WIDGET (bright_widget), eq); update_split (h); layout_change (); do_refresh (); return MSG_HANDLED; } return MSG_NOT_HANDLED; default: return dlg_default_callback (w, sender, msg, parm, data); } }