[w3m-dev 03455] mouse menu
* configure (config.h): MOUSE_FILE * display.c (displayBuffer): nTab -> nTab2, N_TAB -> nTabLine() (redrawNLine): nTab -> nTab2, N_TAB -> nTabLine() mouse_menu support * fm.h (nTab2): added (N_TAB): deleted (NO_TABBUFFER): added (struct _MouseMenu): added (mouse_menu_map): added (mouse_menu): added * func.c (initMouseMenu): added * main.c (main): initMouseMenu() (posTab): mouse_menu support (mouse_menu_action): added (process_mouse): mouse_menu support (reinit): initMouseMenu() (nTabLine): added (moveTab): check NO_TABBUFFER * proto.h (nTabLine): added (initMouseMenu): added * rc.c (sync_with_option): initMouseMenu() From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
This commit is contained in:
		
							
								
								
									
										67
									
								
								func.c
									
									
									
									
									
								
							
							
						
						
									
										67
									
								
								func.c
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
/* $Id: func.c,v 1.10 2002/06/01 16:50:16 ukai Exp $ */
 | 
			
		||||
/* $Id: func.c,v 1.11 2002/11/21 16:31:36 ukai Exp $ */
 | 
			
		||||
/*
 | 
			
		||||
 * w3m func.c
 | 
			
		||||
 */
 | 
			
		||||
@@ -320,3 +320,68 @@ getQWord(char **str)
 | 
			
		||||
    *str = p;
 | 
			
		||||
    return tmp->ptr;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifdef USE_MOUSE
 | 
			
		||||
void
 | 
			
		||||
initMouseMenu(void)
 | 
			
		||||
{
 | 
			
		||||
    FILE *mf;
 | 
			
		||||
    Str line;
 | 
			
		||||
    char *p, *s;
 | 
			
		||||
    int f, b, x, x2;
 | 
			
		||||
 | 
			
		||||
    mouse_menu = NULL;
 | 
			
		||||
    for (b = 1; b <= 3; b++) {
 | 
			
		||||
	for (x = 0; x < 10; x++) {
 | 
			
		||||
	    mouse_menu_map[b - 1][x].func = NULL;
 | 
			
		||||
	    mouse_menu_map[b - 1][x].data = NULL;
 | 
			
		||||
	}
 | 
			
		||||
    }
 | 
			
		||||
    if ((mf = fopen(rcFile(MOUSE_FILE), "rt")) == NULL)
 | 
			
		||||
	return;
 | 
			
		||||
 | 
			
		||||
    while (!feof(mf)) {
 | 
			
		||||
	line = Strfgets(mf);
 | 
			
		||||
	Strchop(line);
 | 
			
		||||
	Strremovefirstspaces(line);
 | 
			
		||||
	if (line->length == 0)
 | 
			
		||||
	    continue;
 | 
			
		||||
	p = line->ptr;
 | 
			
		||||
	s = getWord(&p);
 | 
			
		||||
	if (*s == '#')		/* comment */
 | 
			
		||||
	    continue;
 | 
			
		||||
	if (!strcmp(s, "menu")) {
 | 
			
		||||
	    s = getQWord(&p);
 | 
			
		||||
	    if (*s)
 | 
			
		||||
		mouse_menu = Strnew_charp(s)->ptr;
 | 
			
		||||
	    continue;
 | 
			
		||||
	}
 | 
			
		||||
	if (strcmp(s, "button")) 
 | 
			
		||||
	    continue;		/* error */
 | 
			
		||||
	s = getWord(&p);
 | 
			
		||||
	b = atoi(s);
 | 
			
		||||
	if (!(b >= 1 && b <= 3))
 | 
			
		||||
	    continue;		/* error */
 | 
			
		||||
	s = getWord(&p);
 | 
			
		||||
	x = atoi(s);
 | 
			
		||||
	if (!(IS_DIGIT(*s) && x >= 0 && x <= 9))
 | 
			
		||||
	    continue;		/* error */
 | 
			
		||||
	s = getWord(&p);
 | 
			
		||||
	x2 = atoi(s);
 | 
			
		||||
	if (!(IS_DIGIT(*s) && x2 >= 0 && x2 <= 9))
 | 
			
		||||
	    continue;		/* error */
 | 
			
		||||
	s = getWord(&p);
 | 
			
		||||
	f = getFuncList(s);
 | 
			
		||||
	if (f < 0)
 | 
			
		||||
	    continue;		/* error */
 | 
			
		||||
	s = getQWord(&p);
 | 
			
		||||
	if (!*s)
 | 
			
		||||
	    s = NULL;
 | 
			
		||||
	for (; x <= x2; x++) {
 | 
			
		||||
	    mouse_menu_map[b - 1][x].func = w3mFuncList[f].func;
 | 
			
		||||
	    mouse_menu_map[b - 1][x].data = s;
 | 
			
		||||
	}
 | 
			
		||||
    }
 | 
			
		||||
    fclose(mf);
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user