Re: panel_scroll_pages patch
- From: Shiar <shiar shiar org>
- To: mc-devel gnome org
- Subject: Re: panel_scroll_pages patch
- Date: Thu, 11 Apr 2002 21:45:53 +0200
hi, again..
latest alterations:
- slight display error w/o panel header fixed.
- corrected mouse position with panel header disabled.
- file [mca]time is now customizable in the ini file.
could anybody plz comment? or am i the only one who likes my added
features?
l8r
--
Shiar m00h ( _ )
shiar shiar org \ ~O o~__
shiar irc shiar net (._.) |\
http://www.shiar.org |_|_|
Index: layout.c
===================================================================
RCS file: /cvs/gnome/mc/src/layout.c,v
retrieving revision 1.35
diff -u -r1.35 layout.c
--- layout.c 2002/02/06 05:23:50 1.35
+++ layout.c 2002/04/11 19:32:24
@@ -93,6 +93,9 @@
int output_lines = 0;
/* Set if the command prompt is to be displayed */
+int panel_header = 1;
+
+/* Set if the command prompt is to be displayed */
int command_prompt = 1;
/* Set if the nice and usefull keybar is visible */
@@ -107,6 +110,11 @@
/* The starting line for the output of the subprogram */
int output_start_y = 0;
+/* The format in which file dates are displayed */
+char format_filedate [32];
+/* An alternative format used when files are quite old or in the future */
+char format_filedate_year [32];
+
/* The maximum number of views managed by the set_display_type routine */
/* Must be at least two (for current and other). Please note that until */
/* Janne gets around this, we will only manage two of them :-) */
@@ -128,6 +136,7 @@
static int _equal_split;
static int _first_panel_size;
static int _menubar_visible;
+static int _panel_header;
static int _output_lines;
static int _command_prompt;
static int _keybar_visible;
@@ -169,6 +178,7 @@
{ N_("&Keybar visible"), &keybar_visible, 0, "k" },
{ N_("command &Prompt"), &command_prompt, 0, "p" },
{ N_("show &Mini status"), &show_mini_info, 0, "m" },
+ { N_("panel hea&Der"), &panel_header, 0, "hd" },
{ N_("menu&Bar visible"), &menubar_visible, 0, "me" },
{ N_("&Equal split"), &equal_split, 0, "eq" },
{ N_("pe&Rmissions"), &permission_mode, 0, "pr" },
@@ -233,8 +243,8 @@
if (_equal_split){
/* Turn equal split off */
_equal_split = 0;
- check_options [6].widget->state = check_options [6].widget->state & ~C_BOOL;
- dlg_select_widget (layout_dlg, check_options [6].widget);
+ check_options [7].widget->state = check_options [7].widget->state & ~C_BOOL;
+ dlg_select_widget (layout_dlg, check_options [7].widget);
dlg_select_widget (layout_dlg, bleft_widget);
}
_first_panel_size++;
@@ -246,8 +256,8 @@
if (_equal_split){
/* Turn equal split off */
_equal_split = 0;
- check_options [6].widget->state = check_options [6].widget->state & ~C_BOOL;
- dlg_select_widget (layout_dlg, check_options [6].widget);
+ check_options [7].widget->state = check_options [7].widget->state & ~C_BOOL;
+ dlg_select_widget (layout_dlg, check_options [7].widget);
dlg_select_widget (layout_dlg, bright_widget);
}
_first_panel_size--;
@@ -300,19 +310,20 @@
if (old_output_lines != _output_lines){
old_output_lines = _output_lines;
attrset (COLOR_NORMAL);
- dlg_move (h, 9, 16 + first_width);
+ dlg_move (h, 10, 16 + first_width);
addstr (output_lines_label);
- dlg_move (h, 9, 10 + first_width);
+ dlg_move (h, 10, 10 + first_width);
printw ("%02d", _output_lines);
}
}
break;
case DLG_POST_KEY:
- _filetype_mode = check_options [8].widget->state & C_BOOL;
- _permission_mode = check_options [7].widget->state & C_BOOL;
- _equal_split = check_options [6].widget->state & C_BOOL;
- _menubar_visible = check_options [5].widget->state & C_BOOL;
+ _filetype_mode = check_options [9].widget->state & C_BOOL;
+ _permission_mode = check_options [8].widget->state & C_BOOL;
+ _equal_split = check_options [7].widget->state & C_BOOL;
+ _menubar_visible = check_options [6].widget->state & C_BOOL;
+ _panel_header = check_options [5].widget->state & C_BOOL;
_command_prompt = check_options [4].widget->state & C_BOOL;
_keybar_visible = check_options [2].widget->state & C_BOOL;
_message_visible = check_options [1].widget->state & C_BOOL;
@@ -346,7 +357,7 @@
if (old_output_lines != _output_lines){
old_output_lines = _output_lines;
attrset (COLOR_NORMAL);
- dlg_move (h, 9, 10 + first_width);
+ dlg_move (h, 10, 10 + first_width);
printw ("%02d", _output_lines);
}
}
@@ -387,7 +398,7 @@
first_width = l1;
}
- for (i = 0; i <= 8; i++)
+ for (i = 0; i <= 9; i++)
{
check_options[i].text = _(check_options[i].text);
l1 = strlen (check_options[i].text) + 7;
@@ -405,7 +416,7 @@
second_width = strlen (title3) + 1;
- for (i = 0; i < 6; i++)
+ for (i = 0; i < 7; i++)
{
check_options[i].text = _(check_options[i].text);
l1 = strlen (check_options[i].text) + 7;
@@ -454,28 +465,29 @@
button_new (BY, b1, B_ENTER, DEFPUSH_BUTTON, ok_button, 0, 0, "o"));
if (console_flag){
add_widget (layout_dlg,
- button_new (9, 12 + first_width, B_MINUS, NARROW_BUTTON, "&-",
+ button_new (10, 12 + first_width, B_MINUS, NARROW_BUTTON, "&-",
bminus_cback, 0, NULL));
add_widget (layout_dlg,
- button_new (9, 7 + first_width, B_PLUS, NARROW_BUTTON, "&+",
+ button_new (10, 7 + first_width, B_PLUS, NARROW_BUTTON, "&+",
bplus_cback, 0, NULL));
}
#define XTRACT(i) *check_options[i].variable, check_options[i].text, check_options[i].tkname
- for (i = 0; i < 6; i++){
- check_options [i].widget = check_new (8 - i, 7 + first_width, XTRACT(i));
+ for (i = 0; i < 7; i++){
+ check_options [i].widget = check_new (9 - i, 7 + first_width, XTRACT(i));
add_widget (layout_dlg, check_options [i].widget);
}
- check_options [8].widget = check_new (10, 6, XTRACT(8));
+ check_options [9].widget = check_new (10, 6, XTRACT(9));
+ add_widget (layout_dlg, check_options [9].widget);
+ check_options [8].widget = check_new (9, 6, XTRACT(8));
add_widget (layout_dlg, check_options [8].widget);
- check_options [7].widget = check_new (9, 6, XTRACT(7));
- add_widget (layout_dlg, check_options [7].widget);
_filetype_mode = filetype_mode;
_permission_mode = permission_mode;
_equal_split = equal_split;
_menubar_visible = menubar_visible;
+ _panel_header = panel_header;
_command_prompt = command_prompt;
_keybar_visible = keybar_visible;
_message_visible = message_visible;
@@ -484,14 +496,14 @@
add_widget (layout_dlg, bright_widget);
bleft_widget = button_new (6, 9, B_2LEFT, NARROW_BUTTON, "&<", b2left_cback, 0, "<");
add_widget (layout_dlg, bleft_widget);
- check_options [6].widget = check_new (5, 6, XTRACT(6));
+ check_options [7].widget = check_new (5, 6, XTRACT(7));
old_first_panel_size = -1;
old_horizontal_split = -1;
old_output_lines = -1;
_first_panel_size = first_panel_size;
_output_lines = output_lines;
- add_widget (layout_dlg, check_options [6].widget);
+ add_widget (layout_dlg, check_options [7].widget);
radio_widget = radio_new (3, 6, 2, s_split_direction, 1, "r");
add_widget (layout_dlg, radio_widget);
radio_widget->sel = horizontal_split;
@@ -666,7 +678,12 @@
widget_set_size (&cmdline->input.widget,
LINES-1-keybar_visible, promptl,
1, COLS-promptl-(keybar_visible ? 0 : 1));
- winput_set_origin (&cmdline->input, promptl, COLS-promptl-(keybar_visible ? 0 : 1));
+ #ifdef HAVE_SLANG
+ winput_set_origin (&cmdline->input, promptl,
+ COLS-promptl-(keybar_visible ? 0 : 1));
+ #else
+ winput_set_origin (&cmdline->input, promptl, COLS-promptl);
+ #endif
widget_set_size (&the_prompt->widget,
LINES-1-keybar_visible, 0,
1, promptl);
Index: layout.h
===================================================================
RCS file: /cvs/gnome/mc/src/layout.h,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 layout.h
--- layout.h 1998/02/27 04:54:43 1.1.1.1
+++ layout.h 2002/04/11 19:32:24
@@ -29,12 +29,15 @@
extern int equal_split;
extern int first_panel_size;
extern int output_lines;
+extern int panel_header;
extern int command_prompt;
extern int keybar_visible;
extern int layout_do_change;
extern int output_start_y;
extern int message_visible;
extern int xterm_hintbar;
+extern char format_filedate [32];
+extern char format_filedate_year [32];
extern int horizontal_split;
extern int nice_rotating_dash;
Index: main.c
===================================================================
RCS file: /cvs/gnome/mc/src/main.c,v
retrieving revision 1.185
diff -u -r1.185 main.c
--- main.c 2002/03/25 07:46:19 1.185
+++ main.c 2002/04/11 19:32:34
@@ -129,6 +129,9 @@
/* they do a complete refresh, refreshing all the parts of the program */
int fast_refresh = 0;
+/* If true, scolls panels no more than one file at a time */
+int panel_scroll_pages = 0;
+
/* If true, marking a files moves the cursor down */
int mark_moves_down = 1;
@@ -1727,6 +1730,7 @@
if (baudrate () < 9600 || slow_terminal){
verbose = 0;
+ panel_scroll_pages = 1;
}
init_mouse ();
Index: main.h
===================================================================
RCS file: /cvs/gnome/mc/src/main.h,v
retrieving revision 1.29
diff -u -r1.29 main.h
--- main.h 2002/01/17 07:17:54 1.29
+++ main.h 2002/04/11 19:32:35
@@ -34,6 +34,7 @@
void subshell_chdir (char *command);
/* See main.c for details on these variables */
+extern int panel_scroll_pages;
extern int mark_moves_down;
extern int auto_menu;
extern int pause_after_run;
Index: option.c
===================================================================
RCS file: /cvs/gnome/mc/src/option.c,v
retrieving revision 1.15
diff -u -r1.15 option.c
--- option.c 2001/09/03 05:07:41 1.15
+++ option.c 2002/04/11 19:32:35
@@ -80,11 +80,12 @@
{N_("auto m&Enus"), &auto_menu, TOGGLE_VARIABLE, 0, "auto-menus" },
{N_("&Auto save setup"), &auto_save_setup, TOGGLE_VARIABLE, 0, "auto-save" },
{N_("shell &Patterns"), &easy_patterns, TOGGLE_VARIABLE, 0, "shell-patt" },
- {N_("Compute &Totals"), &file_op_compute_totals, TOGGLE_VARIABLE, 0, "compute-totals" },
+ {N_("Compute &Totals"), &file_op_compute_totals,TOGGLE_VARIABLE, 0, "compute-totals" },
{N_("&Verbose operation"), &verbose, TOGGLE_VARIABLE, 0, "verbose" },
{N_("&Fast dir reload"), &fast_reload, toggle_fast_reload, 0, "fast-reload" },
{N_("mi&X all files"), &mix_all_files, toggle_mix_all_files, 0, "mix-files" },
{N_("&Drop down menus"), &drop_menus, TOGGLE_VARIABLE, 0, "drop-menus" },
+ {N_("scroll paged"), &panel_scroll_pages,TOGGLE_VARIABLE, 0, "panel-scroll-pages" },
{N_("ma&Rk moves down"), &mark_moves_down, TOGGLE_VARIABLE, 0, "mark-moves" },
{N_("show &Hidden files"), &show_dot_files, toggle_show_hidden, 0, "show-hidden" },
{N_("show &Backup files"), &show_backups, toggle_show_backup, 0, "show-backup" },
@@ -95,8 +96,8 @@
static char *pause_options [3] = {
N_("&Never"),
- N_("on dumb &Terminals"),
- N_("alwa&Ys") };
+ N_("on dumb terminals"),
+ N_("always") };
static int configure_callback (struct Dlg_head *h, int Id, int Msg)
{
@@ -105,7 +106,7 @@
attrset (COLOR_NORMAL);
dlg_erase (h);
draw_box (h, 1, 2, h->lines - 2, h->cols - 4);
- draw_box (h, PY, PX, 8, first_width);
+ draw_box (h, PY, PX, 9, first_width);
draw_box (h, RY, RX, 5, first_width);
draw_box (h, OY, OX, 15, second_width);
@@ -148,7 +149,7 @@
title3 = _(" Other options ");
first_width = strlen (title1) + 1;
- for (i = 13; i < 19; i++)
+ for (i = 13; i < 20; i++)
{
check_options[i].text = _(check_options[i].text);
l1 = strlen (check_options[i].text) + 7;
@@ -221,8 +222,8 @@
pause_radio = radio_new (RY+1, RX+2, 3, pause_options, 1, "pause-radio");
pause_radio->sel = pause_after_run;
add_widget (conf_dlg, pause_radio);
- for (i = 0; i < 6; i++){
- check_options [i+13].widget = check_new (PY + (6-i), PX+2,
+ for (i = 0; i < 7; i++){
+ check_options [i+13].widget = check_new (PY + (7-i), PX+2,
XTRACT(i+13));
add_widget (conf_dlg, check_options [i+13].widget);
}
Index: panel.h
===================================================================
RCS file: /cvs/gnome/mc/src/panel.h,v
retrieving revision 1.54
diff -u -r1.54 panel.h
--- panel.h 2002/01/22 23:16:21 1.54
+++ panel.h 2002/04/11 19:32:36
@@ -136,7 +136,6 @@
extern int permission_mode;
extern int filetype_mode;
extern int show_mini_info;
-extern int panel_scroll_pages;
#define selection(p) (&(p->dir.list [p->selected]))
Index: screen.c
===================================================================
RCS file: /cvs/gnome/mc/src/screen.c,v
retrieving revision 1.109
diff -u -r1.109 screen.c
--- screen.c 2002/02/06 05:14:17 1.109
+++ screen.c 2002/04/11 19:32:42
@@ -61,9 +61,6 @@
/* If true, use some usability hacks by Torben */
int torben_fj_mode = 0;
-/* If true, up/down keys scroll the pane listing by pages */
-int panel_scroll_pages = 1;
-
/* If 1, we use permission hilighting */
int permission_mode = 0;
@@ -86,7 +83,7 @@
#define x_reset_sort_labels(x)
/* This macro extracts the number of available lines in a panel */
-#define llines(p) (p->widget.lines-3 - (show_mini_info ? 2 : 0))
+#define llines(p) (p->widget.lines - 2 - panel_header - (show_mini_info ? 2 : 0))
#ifdef PORT_NOT_FOCUS_SELECT_ITEM
# define focus_select_item(x)
@@ -594,11 +591,11 @@
if (mv){
if (!isstatus && panel->split){
widget_move (&panel->widget,
- (file_index - panel->top_file) %
- llines (panel) + 2,
- (offset + 1));
+ (file_index - panel->top_file) % llines (panel) + panel_header + 1,
+ (offset + 1));
} else
- widget_move (&panel->widget, file_index - panel->top_file + 2, 1);
+ widget_move (&panel->widget,
+ file_index - panel->top_file + panel_header + 1, 1);
}
format_file (buffer, sizeof(buffer), panel, file_index, width, attr, isstatus);
@@ -619,7 +616,8 @@
if (!show_mini_info)
return;
- widget_move (&panel->widget, llines (panel)+3, 1);
+ /* mini status area */
+ widget_move (&panel->widget, panel->widget.lines - 2, 1);
if (panel->searching){
attrset (INPUT_COLOR);
@@ -636,7 +634,7 @@
attrset (MARKED_COLOR);
printw ("%*s", cols, " ");
- widget_move (&panel->widget, llines (panel)+3, 1);
+ widget_move (&panel->widget, panel->widget.lines - 2, 1);
/* FIXME: use ngettext() here when gettext-0.10.35 becomes history */
g_snprintf (buffer, sizeof (buffer), (panel->marked == 1) ?
_("%s bytes in %d file") : _("%s bytes in %d files"),
@@ -703,7 +701,7 @@
return;
standend ();
- widget_move (&panel->widget, llines (panel)+2, 1);
+ widget_move (&panel->widget, panel->widget.lines - 3, 1);
#ifdef HAVE_SLANG
attrset (NORMAL_COLOR);
hline (ACS_HLINE, panel->widget.cols-2);
@@ -727,16 +725,16 @@
if (show_mini_info) {
#ifdef linux_unicode
if (SLtt_Unicode) {
- SLsmg_draw_unicode (panel->widget.y + llines (panel) + 2,
+ SLsmg_draw_unicode (panel->widget.y + llines (panel) + panel_header + 1,
panel->widget.x, SLUNI_DSLTEE_CHAR);
- SLsmg_draw_unicode (panel->widget.y + llines (panel) + 2,
+ SLsmg_draw_unicode (panel->widget.y + llines (panel) + panel_header + 1,
panel->widget.x + panel->widget.cols - 1, SLUNI_DSRTEE_CHAR);
} else
#endif /* linux_unicode */
{
- SLsmg_draw_object (panel->widget.y + llines (panel) + 2,
+ SLsmg_draw_object (panel->widget.y + llines (panel) + panel_header + 1,
panel->widget.x, SLSMG_LTEE_CHAR);
- SLsmg_draw_object (panel->widget.y + llines (panel) + 2,
+ SLsmg_draw_object (panel->widget.y + llines (panel) + panel_header + 1,
panel->widget.x + panel->widget.cols - 1, SLSMG_RTEE_CHAR);
}
}
@@ -1040,48 +1038,50 @@
widget_erase (&panel->widget);
show_dir (panel);
- widget_move (&panel->widget, 1, 1);
+ if (panel_header){
+ widget_move (&panel->widget, 1, 1);
- for (side = 0; side <= panel->split; side++){
- format_e *format;
+ for (side = 0; side <= panel->split; side++){
+ format_e *format;
- if (side){
- attrset (NORMAL_COLOR);
- one_vline ();
- width = panel->widget.cols - panel->widget.cols/2 - 1;
- } else if (panel->split)
- width = panel->widget.cols/2 - 3;
- else
- width = panel->widget.cols - 2;
+ if (side){
+ attrset (NORMAL_COLOR);
+ one_vline ();
+ width = panel->widget.cols - panel->widget.cols/2 - 1;
+ } else if (panel->split)
+ width = panel->widget.cols/2 - 3;
+ else
+ width = panel->widget.cols - 2;
+
+ for (format = panel->format; format; format = format->next){
+ if (format->string_fn){
+ txt = format->title;
- for (format = panel->format; format; format = format->next){
- if (format->string_fn){
- txt = format->title;
-
- header_len = strlen (txt);
- if (header_len > format->field_len){
- strcpy (buffer, txt);
- txt = buffer;
- txt [format->field_len] = 0;
header_len = strlen (txt);
+ if (header_len > format->field_len){
+ strcpy (buffer, txt);
+ txt = buffer;
+ txt [format->field_len] = 0;
+ header_len = strlen (txt);
+ }
+
+ attrset (MARKED_COLOR);
+ spaces = (format->field_len - header_len) / 2;
+ extra = (format->field_len - header_len) % 2;
+ printw ("%*s%-s%*s", spaces, "",
+ txt, spaces+extra, "");
+ width -= 2 * spaces + extra + header_len;
+ } else {
+ attrset (NORMAL_COLOR);
+ one_vline ();
+ width --;
+ continue;
}
-
- attrset (MARKED_COLOR);
- spaces = (format->field_len - header_len) / 2;
- extra = (format->field_len - header_len) % 2;
- printw ("%*s%-s%*s", spaces, "",
- txt, spaces+extra, "");
- width -= 2 * spaces + extra + header_len;
- } else {
- attrset (NORMAL_COLOR);
- one_vline ();
- width --;
- continue;
}
- }
- if (width > 0)
- printw ("%*s", width, "");
+ if (width > 0)
+ printw ("%*s", width, "");
+ }
}
}
@@ -1475,10 +1475,10 @@
if (panel->selected < 0)
panel->selected = 0;
- if (panel->selected > panel->count-1)
+ if (panel->selected >= panel->count)
panel->selected = panel->count - 1;
- if (panel->top_file > panel->count-1){
+ if (panel->top_file >= panel->count){
repaint = 1;
panel->top_file = panel->count-1;
}
@@ -1541,14 +1541,16 @@
unselect_item (panel);
panel->selected++;
- if (panel->selected - panel->top_file == ITEMS (panel) &&
- panel_scroll_pages){
- /* Scroll window half screen */
- panel->top_file += ITEMS (panel)/2;
- if (panel->top_file > panel->count - ITEMS (panel))
+ if (panel->selected - panel->top_file == ITEMS (panel)){
+ if (panel_scroll_pages){
+ /* Scroll window half screen */
+ panel->top_file += ITEMS (panel)/2;
+ /* w/o the following select_item will correct and redraw */
+ if (panel->top_file > panel->count - ITEMS (panel))
panel->top_file = panel->count - ITEMS (panel);
+ } else panel->top_file++;
+ /* scroll dir (faster than allowing select_item to do so) */
paint_dir (panel);
- select_item (panel);
}
select_item (panel);
}
@@ -1561,10 +1563,13 @@
unselect_item (panel);
panel->selected--;
- if (panel->selected < panel->top_file && panel_scroll_pages){
- /* Scroll window half screen */
- panel->top_file -= ITEMS (panel)/2;
- if (panel->top_file < 0) panel->top_file = 0;
+ if (panel->selected < panel->top_file){
+ if (panel_scroll_pages){
+ /* Scroll window half screen */
+ panel->top_file -= ITEMS (panel)/2;
+ if (panel->top_file < 0) panel->top_file = 0;
+ } else panel->top_file--;
+ /* scroll dir (faster than allowing select_item to do so) */
paint_dir (panel);
}
select_item (panel);
@@ -1574,18 +1579,7 @@
move_rel (WPanel *panel, int rel)
{
unselect_item (panel);
-
- if (rel < 0){
- if (panel->selected + rel < 0)
- panel->selected = 0;
- else
- panel->selected = panel->selected + rel;
- } else {
- if (panel->selected + rel >= panel->count)
- panel->selected = panel->count - 1;
- else
- panel->selected = panel->selected + rel;
- }
+ panel->selected = panel->selected + rel;
select_item (panel);
}
@@ -1686,22 +1680,25 @@
return;
unselect_item (panel);
items = ITEMS (panel);
- if (panel->top_file < items)
- items = panel->top_file;
+ if (!panel_scroll_pages) items--;
if (!items)
panel->selected = 0;
else
panel->selected -= items;
- panel->top_file -= items;
/* This keeps the selection in a reasonable place */
- if (panel->selected < 0)
- panel->selected = 0;
- if (panel->top_file < 0)
- panel->top_file = 0;
- x_adjust_top_file (panel);
- select_item (panel);
+ if (panel->selected < 0) panel->selected = 0;
+
+ if (panel_scroll_pages){
+ panel->top_file -= items;
+ if (panel->top_file < 0) panel->top_file = 0;
+ } else {
+ panel->top_file = panel->selected;
+ }
+
+// x_adjust_top_file (panel); //what's this??
paint_dir (panel);
+ select_item (panel);
}
static void
@@ -1723,24 +1720,27 @@
return;
unselect_item (panel);
items = ITEMS (panel);
- if (panel->top_file > panel->count - 2 * items)
- items = panel->count - items - panel->top_file;
- if (panel->top_file + items < 0)
- items = - panel->top_file;
+ if (!panel_scroll_pages) items--;
if (!items)
- panel->selected = panel->count - 1;
+ panel->selected = panel->count - 1;
else
- panel->selected += items;
- panel->top_file += items;
-
+ panel->selected += items;
/* This keeps the selection in it's relative position */
if (panel->selected >= panel->count)
panel->selected = panel->count - 1;
- if (panel->top_file >= panel->count)
- panel->top_file = panel->count - 1;
- x_adjust_top_file (panel);
- select_item (panel);
+
+ if (panel_scroll_pages){
+ panel->top_file += items;
+ if (panel->top_file > panel->count - 1)
+ panel->top_file = panel->count - 1; //items;
+ } else {
+ panel->top_file = panel->selected - items;
+ if (panel->top_file < 0) panel->top_file = 0;
+ }
+
+// x_adjust_top_file (panel); //what's this??
paint_dir (panel);
+ select_item (panel);
}
static void next_page_key (WPanel *panel)
@@ -2314,7 +2314,7 @@
return MOU_NORMAL;
}
- event->y -= 2;
+ event->y -= panel_header + 1;
if ((event->type & (GPM_DOWN|GPM_DRAG))){
if (panel != (WPanel *) current_dlg->current->widget)
@@ -2331,6 +2331,7 @@
if (!((panel->top_file + event->y <= panel->count) &&
event->y <= lines)){
+ /* in panel but below files */
mark_if_marking (panel, event);
if (mouse_move_pages)
next_page (panel);
Index: setup.c
===================================================================
RCS file: /cvs/gnome/mc/src/setup.c,v
retrieving revision 1.58
diff -u -r1.58 setup.c
--- setup.c 2002/02/04 18:09:42 1.58
+++ setup.c 2002/04/11 19:32:43
@@ -135,6 +135,7 @@
{ "xterm_hintbar", &xterm_hintbar },
{ "output_lines", &output_lines },
{ "command_prompt", &command_prompt },
+ { "panel_header", &panel_header },
{ "menubar_visible", &menubar_visible },
{ "show_mini_info", &show_mini_info },
{ "permission_mode", &permission_mode },
@@ -291,6 +292,8 @@
g_snprintf (buffer, sizeof (buffer), "%d", *layout [i].opt_addr);
save_string ("Layout", layout [i].opt_name, buffer, profile);
}
+ save_string ("Layout", "format_date", format_filedate_year, profile);
+ save_string ("Layout", "format_time", format_filedate, profile);
g_free (profile);
}
@@ -439,6 +442,10 @@
*layout [i].opt_addr =
load_int ("Layout", layout [i].opt_name,
*layout [i].opt_addr);
+ load_string ("Layout", "format_date", "%b %e %Y",
+ format_filedate_year, sizeof (format_filedate_year));
+ load_string ("Layout", "format_time", "%b %e %H:%M",
+ format_filedate, sizeof (format_filedate));
}
static int
Index: util.c
===================================================================
RCS file: /cvs/gnome/mc/src/util.c,v
retrieving revision 1.59
diff -u -r1.59 util.c
--- util.c 2002/03/18 21:08:19 1.59
+++ util.c 2002/04/11 19:32:47
@@ -48,6 +48,7 @@
#include "cmd.h" /* guess_message_value */
#include "../vfs/vfs.h"
#include "mountlist.h"
+#include "layout.h" /* format_filedate */
#ifdef HAVE_CHARSET
#include "charsets.h"
@@ -634,8 +635,8 @@
char buf [MAX_I18NTIMELENGTH + 1];
time_t testtime = time (NULL);
- a = strftime (buf, sizeof(buf)-1, _("%b %e %H:%M"), localtime(&testtime));
- b = strftime (buf, sizeof(buf)-1, _("%b %e %Y"), localtime(&testtime));
+ a = strftime (buf, sizeof(buf)-1, format_filedate_year, localtime(&testtime));
+ b = strftime (buf, sizeof(buf)-1, format_filedate, localtime(&testtime));
length = max (a, b);
@@ -651,16 +652,10 @@
static char timebuf [MAX_I18NTIMELENGTH + 1];
time_t current_time = time ((time_t) 0);
static size_t i18n_timelength = 0;
- static char *fmtyear, *fmttime;
char *fmt;
if (i18n_timelength == 0){
i18n_timelength = i18n_checktimelength() + 1;
-
- /* strftime() format string for old dates */
- fmtyear = _("%b %e %Y");
- /* strftime() format string for recent dates */
- fmttime = _("%b %e %H:%M");
}
if (current_time > when + 6L * 30L * 24L * 60L * 60L /* Old. */
@@ -672,9 +667,9 @@
to allow for NFS server/client clock disagreement.
Show the year instead of the time of day. */
- fmt = fmtyear;
+ fmt = format_filedate_year;
else
- fmt = fmttime;
+ fmt = format_filedate;
strftime (timebuf, i18n_timelength, fmt, localtime(&when));
return timebuf;
Index: util.h
===================================================================
RCS file: /cvs/gnome/mc/src/util.h,v
retrieving revision 1.31
diff -u -r1.31 util.h
--- util.h 2002/01/22 01:23:18 1.31
+++ util.h 2002/04/11 19:32:47
@@ -55,7 +55,7 @@
char *get_group (int);
char *get_owner (int);
-#define MAX_I18NTIMELENGTH 14
+#define MAX_I18NTIMELENGTH 32
#define MIN_I18NTIMELENGTH 10
#define STD_I18NTIMELENGTH 12
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]