Exemplo n.º 1
0
ASWinCommandParamCode    
set_WinCommandParam( ASWinCommandState *state, const char *param, const char *val )
{
	int val_used = 0 ; 
	if( state == NULL || param == NULL ) 
		return ASWC_BadParam;	  

	if( param[0] == '-' ) 
		++param ;
	if( mystrcasecmp ( param, "x") == 0)
	{
		if( val == NULL || !isdigit(val[0]) ) 
			return ASWC_BadVal;
		state->x_dest = atopixel( val, Scr.MyDisplayWidth);
		++val_used;
	}else if( mystrcasecmp ( param, "y") == 0)
	{
		if( val == NULL || !isdigit(val[0]) ) 
			return ASWC_BadVal;
		state->y_dest = atopixel( val, Scr.MyDisplayHeight);
		++val_used;
	}else			/* Resize */
		if( mystrcasecmp ( param, "width") == 0 )
	{
		if( val == NULL || !isdigit(val[0]) ) 
			return ASWC_BadVal;
		state->new_width = atopixel ( val, Scr.MyDisplayWidth);
		++val_used;
	}else if( mystrcasecmp ( param, "height") == 0 )
	{
		if( val == NULL || !isdigit(val[0]) ) 
			return ASWC_BadVal;
		state->new_height = atopixel ( val, Scr.MyDisplayHeight);
		++val_used;
	}else if( mystrcasecmp ( param, "new_desk") == 0 )
	{
		if( val == NULL || !isdigit(val[0]) ) 
			return ASWC_BadVal;
		state->desk = atoi( val );
		++val_used;
	}
			
	/* generic */
	else if( mystrcasecmp( param, "all") == 0)
		set_flags( state->flags, WINCOMMAND_ActOnAll );
	else if( mystrcasecmp( param, "alldesks") == 0)
		set_flags( state->flags, WINCOMMAND_AllDesks );
	else if( mystrcasecmp( param, "desk") == 0)
		set_flags( state->flags, WINCOMMAND_Desk );
	else if( mystrcasecmp( param, "pattern") == 0 )
	{
		if( val == NULL ) 
			return ASWC_BadVal;
		destroy_string( &(state->pattern) );
		state->pattern = mystrdup(val);
		++val_used;
	}else
	{
		return ASWC_BadParam;	  		
	}
	return ( val_used > 0 )?ASWC_Ok_ValUsed:ASWC_Ok_ValUnused;	  
}
Exemplo n.º 2
0
void parse_args(char *s, int argc, char *argv[], int argi)
{
  int nsargc = 0;
  /* parse args */
  for (; argi < argc; ++argi)
  {
    if (!strcmp(argv[argi], "-tile") || !strcmp(argv[argi], "-cascade")) {
      /* ignore */
    }
    else if (!strcmp(argv[argi], "-u")) {
      untitled = 1;
    }
    else if (!strcmp(argv[argi], "-t")) {
      transients = 1;
    }
    else if (!strcmp(argv[argi], "-a")) {
      all = untitled = transients = maximized = 1;
      if (FvwmCascade)
	sticky_page = 1;
	sticky_desk = 1;
    }
    else if (!strcmp(argv[argi], "-r")) {
      reversed = 1;
    }
    else if (!strcmp(argv[argi], "-noraise")) {
      raise_window = 0;
    }
    else if (!strcmp(argv[argi], "-noresize")) {
      resize = 0;
    }
    else if (!strcmp(argv[argi], "-nostretch")) {
      nostretch = 1;
    }
    else if (!strcmp(argv[argi], "-desk")) {
      desk = 1;
    }
    else if (!strcmp(argv[argi], "-flatx")) {
      flatx = 1;
    }
    else if (!strcmp(argv[argi], "-flaty")) {
      flaty = 1;
    }
    else if (!strcmp(argv[argi], "-r")) {
      reversed = 1;
    }
    else if (!strcmp(argv[argi], "-h")) {
      horizontal = 1;
    }
    else if (!strcmp(argv[argi], "-m")) {
      maximized = 1;
    }
    else if (!strcmp(argv[argi], "-s")) {
      sticky_page = 1;
      sticky_desk = 1;
    }
    else if (!strcmp(argv[argi], "-sp")) {
      sticky_page = 1;
    }
    else if (!strcmp(argv[argi], "-sd")) {
      sticky_desk = 1;
    }
    else if (!strcmp(argv[argi], "-mn") && ((argi + 1) < argc)) {
      maxnum = atoi(argv[++argi]);
    }
    else if (!strcmp(argv[argi], "-resize")) {
      resize = 1;
    }
    else if (!strcmp(argv[argi], "-nostretch")) {
      nostretch = 1;
    }
    else if (!strcmp(argv[argi], "-incx") && ((argi + 1) < argc)) {
      incx = atopixel(argv[++argi], dwidth);
    }
    else if (!strcmp(argv[argi], "-incy") && ((argi + 1) < argc)) {
      incy = atopixel(argv[++argi], dheight);
    }
    else if (!strcmp(argv[argi], "-maximize")) {
      do_maximize = 1;
    }
    else if (!strcmp(argv[argi], "-nomaximize")) {
      do_maximize = 0;
    }
    else if (!strcmp(argv[argi], "-animate")) {
      do_animate = 1;
    }
    else if (!strcmp(argv[argi], "-noanimate")) {
      do_animate = 0;
    }
    else {
      if (++nsargc > 4) {
	fprintf(console,
		"%s: %s: ignoring unknown arg %s\n",
		module->name, s, argv[argi]);
	continue;
      }
      if (nsargc == 1) {
	ofsx = atopixel(argv[argi], dwidth);
      } else if (nsargc == 2) {
	ofsy = atopixel(argv[argi], dheight);
      } else if (nsargc == 3) {
	if (FvwmCascade)
	  maxw = atopixel(argv[argi], dwidth);
	else /* FvwmTile */
	  maxx = atopixel(argv[argi], dwidth);
      } else if (nsargc == 4) {
	if (FvwmCascade)
	  maxh = atopixel(argv[argi], dheight);
	else /* FvwmTile */
	  maxy = atopixel(argv[argi], dheight);
      }
    }
  }
  ofsx += dx;
  ofsy += dy;
  maxx += dx;
  maxy += dy;
}