From a772c51a1672e5dd7c9c70ee7e50cfa79e13b023 Mon Sep 17 00:00:00 2001 From: Fumitoshi UKAI Date: Tue, 5 Nov 2002 17:10:04 +0000 Subject: [w3m-dev 03372] tab browser * display.c (displayBuffer): add ny rootY offset by tab tab line (cursorDown): offset rootY (arrangeCursor): offset rootY * etc.c (columnSkip): offset rootY (lineSkip): offset rootY (currentLineSkip): offset rootY * file.c (HTMLlineproc2body): ATTR_TARGET * fm.h (MapArea): add target (Buffer): add rootY (TabBuffer): added (Currentbuf): comment out (Firstbuf): comment out (CurrentTab): added (FirstTab): added (LastTab): added (open_tab_blank): added (close_tab_back): added (nTab): added (TabCols): added (N_TAB): added (Currentbuf): CurrentTab->currentBuffer (Firstbuf): CurrentTab->firstBuffer * funcname.tab (CLOSE_TAB): added (NEW_TAB): added (NEXT_TAB): added (PREV_TAB): added (TAB_GOTO): added (TAB_GOTO_RELATIVE): added (TAB_LEFT): added (TAB_LINK): added (TAB_MENU): added (TAB_RIGHT): added * html.c (ALST_AREA): add ATTR_TARGET * image.c (showImageProgress): offset rootY * main.c (_newT): added (followTab): added (moveTab): added (check_target): added (MAIN): init tab related values buf => tab (nscroll): offset rootY (pgFore): offset rootY (pgBack): offset rootY (ctrCsrV): offset rootY (_movD): offset rootY (_movU): offset rootY (_goLine): offset rootY (_mark): offset rootY (followA): check target (_followForm): offset rootY (drawAnchorCursor0): offset rootY (drawAnchorCursor): offset rootY (backBf): check close_tab_back (follow_map): rewrite for tab, check target (posTab): added (process_mouse): tab operation offset rootY (deleteFiles): for all buffers in all tabs (newTab): added (newT): added (numTab): added (deleteTab): added (closeT): added (nextT): added (prevT): added (followTab): added (tabA): added (tabURL0): added (tabURL): added (tabrURL): added (moveTab): added (tabR): added (tabL): added * map.c (follow_map_menu): return MapArea (newMapArea): add target args * menu.c (SelTabMenu): added (SelTabV): added (initSelTabMenu): added (smChTab): added (smDelTab): added (MainMenuItem): add Select Tab on New Tab (popupMenu): add initSelTabMenu() offset rootY (mainMn): offset rootY (selMn): offset rootY (initSelectMenu): offset rootY (tabMn): added * proto.h (newT): added (closeT): added (nextT): added (prevT): added (tabA): added (tabURL): added (tabrURL): added (tabR): added (tabL): added (newTab): added (deleteTab): added (follow_map_menu): return MapArea (newMapArea): add target arg (tabMn): added * rc.c (CMT_OPEN_TAB_BLANK): added (CMT_CLOSE_TAB_BACK): added (open_tab_blank): added (close_tab_back): added * doc/README.func (CLOSE_TAB): added (NEW_TAB): added (NEXT_TAB): added (PREV_TAB): added (TAB_GOTO): added (TAB_GOTO_RELATIVE): added (TAB_LEFT): added (TAB_LINK): added (TAB_MENU): added (TAB_RIGHT): added * doc-jp/README.func: ditto doc/README.func From: Hironori SAKAMOTO --- fm.h | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'fm.h') diff --git a/fm.h b/fm.h index 1bb00c4..337dbb1 100644 --- a/fm.h +++ b/fm.h @@ -1,4 +1,4 @@ -/* $Id: fm.h,v 1.68 2002/11/05 15:56:13 ukai Exp $ */ +/* $Id: fm.h,v 1.69 2002/11/05 17:10:05 ukai Exp $ */ /* * w3m: WWW wo Miru utility * @@ -285,6 +285,7 @@ typedef unsigned char Linecolor; typedef struct _MapArea { char *url; + char *target; char *alt; #ifdef MENU_MAP #ifdef USE_IMAGE @@ -401,6 +402,7 @@ typedef struct _Buffer { short pos; short visualpos; short rootX; + short rootY; short COLS; InputStream pagerSource; AnchorList *href; @@ -441,6 +443,12 @@ typedef struct _Buffer { Anchor *submit; } Buffer; +typedef struct _TabBuffer { + struct _TabBuffer *nextTab; + struct _TabBuffer *prevTab; + Buffer *currentBuffer; + Buffer *firstBuffer; +} TabBuffer; #define COPY_BUFPOSITION(dstbuf, srcbuf) {\ (dstbuf)->topLine = (srcbuf)->topLine; \ @@ -466,7 +474,7 @@ typedef struct _Buffer { #define FONTSTAT_SIZE 4 -#define INIT_BUFFER_WIDTH (COLS-1) +#define INIT_BUFFER_WIDTH (COLS - 1) typedef struct { int pos; @@ -763,8 +771,21 @@ global char *cgi_bin init(NULL); global char *index_file init(NULL); global char *CurrentDir; +/* global Buffer *Currentbuf; global Buffer *Firstbuf; +*/ +global TabBuffer *CurrentTab; +global TabBuffer *FirstTab; +global TabBuffer *LastTab; +global int open_tab_blank init(FALSE); +global int close_tab_back init(FALSE); +global int nTab; +global int TabCols init(10); +#define N_TAB ((COLS - 2 > TabCols * nTab) ? nTab \ + : (nTab - 1) / ((nTab * TabCols - 1) / (COLS - 2) + 1) + 1) +#define Currentbuf (CurrentTab->currentBuffer) +#define Firstbuf (CurrentTab->firstBuffer) global int CurrentKey; global char *CurrentKeyData; global char *CurrentCmdData; -- cgit v1.2.3