changeset 670:f892bda292a8 v7.0198

updated for version 7.0198
author vimboss
date Wed, 15 Feb 2006 22:18:42 +0000
parents b945c6d9f3c7
children 83a006f81bac
files runtime/doc/change.txt runtime/doc/todo.txt src/gui_gtk_x11.c src/option.c src/option.h src/proto/gui.pro src/proto/window.pro src/screen.c src/structs.h src/syntax.c src/version.h
diffstat 11 files changed, 77 insertions(+), 40 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 7.0aa.  Last change: 2006 Feb 13
+*change.txt*    For Vim version 7.0aa.  Last change: 2006 Feb 15
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1171,7 +1171,7 @@ gq{motion}		Format the lines that {motio
 			Formatting is done with one of three methods:
 			1. If 'formatexpr' is not empty the expression is
 			   evaluated.  This can differ for each buffer.
-			2. If 'formatprg' is not mepty an external program
+			2. If 'formatprg' is not empty an external program
 			   is used.
 			3. Otherise formatting is done internally.
 
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2006 Feb 14
+*todo.txt*      For Vim version 7.0aa.  Last change: 2006 Feb 15
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -32,22 +32,20 @@ be worked on, but only if you sponsor Vi
 
 Support WINDOW TABS.  Works like several pages, each with their own split
 windows.  Let's call them "tab pages".
-
-    todo:
-    - ":qa"?
-    - "2gt" doesn't restore syntax HL.  GUI: scrollbars are wrong.
-    - line at top of frame with tabs.  'tabline' option 0/1/2 like 'laststatus'
-	Use the name of the first buffer in the tab (ignoring the help window,
-	unless it's the only one).  Add a number for the window count.
+    - Mouse click in tab name should select that tab.
+    - line at top of frame with tabs.
+	for the name ignore the help window, unless it's the only one).
+	Add a number for the window count?
+	Add a '+' if one of the windows is modified?
 	Add 'tabtext' option, like 'statusline'.
-	Select tab with mouse.
+        Add an "X" to close the current tab (like firefox).
     - When deleting a buffer also close windows in other tab pages.
-    - check all places where (firstwin == lastwin) is used (and vise versa)
+    - check all places where firstwin and lastwin are used
     - check all places wheren only_one_window() is used.
-    - When Vim window is resized all tabs must be resized.
+    - Add tabpage(): returns current tab page number.
     - E999
     - ":tabclose N" close tab N
-    docs:
+    - docs:
 	:tabedit
 	:tabfind
 	:tab N
@@ -58,21 +56,20 @@ windows.  Let's call them "tab pages".
 	"gt": Use "1gt" - "99gt" to switch to another tab.  "gt" goes to the
 	     next one.  Hint in docs: To mess with another buffer, without
 	     changing the window layout, do this in another tab.
-
-    add GUI Tabs for some systems.
-    Patch for GTK 1.2 passed on by Christian Michon, 2004 Jan 6.
-    Simple patch for GTK by Luis M (nov 7).
-
-    Don't forget to provide an "X" to close the current tab.
-
-    Need to be able to search the windows in inactive tabs, e.g. for the
-    quickfix window.
-
+	'tabline' values 0/1/2
+    - add GUI Tabs for some systems.
+      Patch for GTK 1.2 passed on by Christian Michon, 2004 Jan 6.
+      Simple patch for GTK by Luis M (nov 7).
+    - Need to be able to search the windows in inactive tabs, e.g. for the
+      quickfix window.
 
 Crash with X command server (Ciaran McCreesh).
 
 Ctags still hasn't included the patch...
 
+"fsutil hardlink" can create a hard link on an NTFS file system. (Daniel
+Einspanjer)  What library function can detect that?
+
 spelling:
 - Also use the spelling dictionary for dictionary completion.
   When 'dictionary' is empty and/or when "kspell" is in 'complete'.
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -3456,6 +3456,9 @@ update_window_manager_hints(void)
      * otherwise the hints don't work. */
     width  = gui_get_base_width();
     height = gui_get_base_height();
+# ifdef FEAT_MENU
+    height += tabpageline_height() * gui.char_height;
+# endif
 # ifdef HAVE_GTK2
     width  += get_menu_tool_width();
     height += get_menu_tool_height();
--- a/src/option.c
+++ b/src/option.c
@@ -2181,6 +2181,13 @@ static struct vimoption
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    },
+    {"tabline",	    "tal",  P_NUM|P_VI_DEF|P_RALL,
+#ifdef FEAT_WINDOWS
+			    (char_u *)&p_tal, PV_NONE,
+#else
+			    (char_u *)NULL, PV_NONE,
+#endif
+			    {(char_u *)1L, (char_u *)0L}},
     {"tabstop",	    "ts",   P_NUM|P_VI_DEF|P_RBUF,
 			    (char_u *)&p_ts, PV_TS,
 			    {(char_u *)8L, (char_u *)0L}},
@@ -7259,6 +7266,12 @@ set_num_option(opt_idx, varp, value, err
     {
 	last_status(FALSE);
     }
+
+    /* (re)set tab page line */
+    else if (pp == &p_tal)
+    {
+	shell_new_rows();	/* recompute window positions and heights */
+    }
 #endif
 
 #ifdef FEAT_GUI
--- a/src/option.h
+++ b/src/option.h
@@ -577,6 +577,7 @@ EXTERN char_u	*p_lispwords;	/* 'lispword
 #endif
 #ifdef FEAT_WINDOWS
 EXTERN long	p_ls;		/* 'laststatus' */
+EXTERN long	p_tal;		/* 'tabline' */
 #endif
 EXTERN char_u	*p_lcs;		/* 'listchars' */
 
--- a/src/proto/gui.pro
+++ b/src/proto/gui.pro
@@ -34,6 +34,7 @@ void gui_send_mouse_event __ARGS((int bu
 int gui_xy2colrow __ARGS((int x, int y, int *colp));
 void gui_menu_cb __ARGS((vimmenu_T *menu));
 void gui_init_which_components __ARGS((char_u *oldval));
+void gui_remove_scrollbars __ARGS((void));
 void gui_create_scrollbar __ARGS((scrollbar_T *sb, int type, win_T *wp));
 scrollbar_T *gui_find_scrollbar __ARGS((long ident));
 void gui_drag_scrollbar __ARGS((scrollbar_T *sb, long value, int still_dragging));
--- a/src/proto/window.pro
+++ b/src/proto/window.pro
@@ -26,6 +26,7 @@ void shell_new_rows __ARGS((void));
 void shell_new_columns __ARGS((void));
 void win_size_save __ARGS((garray_T *gap));
 void win_size_restore __ARGS((garray_T *gap));
+int win_comp_pos __ARGS((void));
 void win_setheight __ARGS((int height));
 void win_setheight_win __ARGS((int height, win_T *win));
 void win_setwidth __ARGS((int width));
--- a/src/screen.c
+++ b/src/screen.c
@@ -701,8 +701,14 @@ updateWindow(wp)
     if (clip_star.available && clip_isautosel())
 	clip_update_selection();
 #endif
+
     win_update(wp);
+
 #ifdef FEAT_WINDOWS
+    /* When the screen was cleared redraw the tab pages line. */
+    if (redraw_tabpage)
+	draw_tabpage();
+
     if (wp->w_redr_status
 # ifdef FEAT_CMDL_INFO
 	    || p_ru
@@ -7057,6 +7063,9 @@ screenclear2()
 
     win_rest_invalid(firstwin);
     redraw_cmdline = TRUE;
+#ifdef FEAT_WINDOWS
+    redraw_tabpage = TRUE;
+#endif
     if (must_redraw == CLEAR)	/* no need to clear again */
 	must_redraw = NOT_VALID;
     compute_cmdrow();
@@ -8468,11 +8477,14 @@ draw_tabpage()
 	    c = '/';
 	else
 	    c = '\\';
-	screen_putchar(c, 0, col++, attr);
+	if (t_colors < 8)
+	    screen_putchar(c, 0, col++, attr);
 
 	if (tp->tp_topframe != topframe)
 	    attr = attr_nosel;
 
+	screen_putchar(' ', 0, col++, attr);
+
 	if (tp->tp_topframe == topframe)
 	    wp = curwin;
 	else
@@ -8488,11 +8500,17 @@ draw_tabpage()
 	    len = tabwidth;
 	screen_puts_len(NameBuff, len, 0, col, attr);
 	col += len;
-    }
-
-    screen_putchar('\\', 0, col++, attr);
-    while (col < Columns)
-	screen_putchar('_', 0, col++, attr_fill);
+	screen_putchar(' ', 0, col++, attr);
+    }
+
+    if (t_colors < 8)
+    {
+	screen_putchar('\\', 0, col++, attr);
+	c = '_';
+    }
+    else
+	c = ' ';
+    screen_fill(0, 1, col, (int)Columns, c, c, attr_fill);
 }
 #endif
 
--- a/src/structs.h
+++ b/src/structs.h
@@ -1555,11 +1555,13 @@ typedef struct w_line
 typedef struct tabpage_S tabpage_T;
 struct tabpage_S
 {
-    tabpage_T	    *tp_next;	/* next tabpage or NULL */
-    frame_T	    *tp_topframe;
-    win_T	    *tp_curwin;	/* current window in this Tab page */
-    win_T	    *tp_firstwin; /* first window in this Tab page */
-    win_T	    *tp_lastwin;  /* last window in this Tab page */
+    tabpage_T	    *tp_next;	    /* next tabpage or NULL */
+    frame_T	    *tp_topframe;   /* topframe for the windows */
+    win_T	    *tp_curwin;	    /* current window in this Tab page */
+    win_T	    *tp_firstwin;   /* first window in this Tab page */
+    win_T	    *tp_lastwin;    /* last window in this Tab page */
+    long	    tp_old_Rows;    /* Rows when Tab page was left */
+    long	    tp_old_Columns; /* Columns when Tab page was left */
 };
 
 /*
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -6079,9 +6079,8 @@ static char *(highlight_init_both[]) =
 	"DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red",
 	"PmenuThumb cterm=reverse gui=reverse",
 	"PmenuSbar ctermbg=Grey guibg=Grey",
-	"TabPage term=underline cterm=underline ctermbg=grey gui=underline guibg=grey",
-	"TabPageSel term=reverse,bold cterm=reverse,bold gui=reverse,bold",
-	"TabPageFill term=underline cterm=underline ctermbg=grey gui=underline guibg=grey",
+	"TabPageSel term=bold cterm=bold gui=bold",
+	"TabPageFill term=reverse cterm=reverse gui=reverse",
 	NULL
     };
 
@@ -6110,6 +6109,7 @@ static char *(highlight_init_light[]) =
 	"DiffAdd term=bold ctermbg=LightBlue guibg=LightBlue",
 	"DiffChange term=bold ctermbg=LightMagenta guibg=LightMagenta",
 	"DiffDelete term=bold ctermfg=Blue ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan",
+	"TabPage term=underline cterm=underline ctermbg=LightGrey gui=underline guibg=LightGrey",
 	NULL
     };
 
@@ -6138,6 +6138,7 @@ static char *(highlight_init_dark[]) =
 	"DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue",
 	"DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta",
 	"DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan",
+	"TabPage term=underline cterm=underline ctermbg=DarkGrey gui=underline guibg=DarkGrey",
 	NULL
     };
 
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,5 @@
 #define VIM_VERSION_NODOT	"vim70aa"
 #define VIM_VERSION_SHORT	"7.0aa"
 #define VIM_VERSION_MEDIUM	"7.0aa ALPHA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2006 Feb 14)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2006 Feb 14, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2006 Feb 15)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2006 Feb 15, compiled "