Exemple #1
0
Fichier : parse.c Projet : att/uwin
/**
*** ParseBoxSize()
*** Parses the options possible to BoxSize
**/
static void ParseBoxSize(char **ss, unsigned long *flags)
{
  char *opts[] =
  {
    "dumb",
    "fixed",
    "smart",
    NULL
  };
  char *s = *ss;
  int m;

  if (!s)
    return;
  *ss = GetNextTokenIndex(*ss, opts, 0, &m);
  switch(m)
  {
  case 0:
    *flags &= ~(b_SizeFixed|b_SizeSmart);
    break;
  case 1:
    *flags |= b_SizeFixed;
    *flags &= ~b_SizeSmart;
    break;
  case 2:
    *flags |= b_SizeSmart;
    *flags &= ~b_SizeFixed;
    break;
  default:
    *flags &= ~(b_SizeFixed|b_SizeSmart);
    fprintf(stderr,"%s: Illegal boxsize option \"%s\"\n",MyName, s);
    break;
  }
  return;
}
Exemple #2
0
/**
*** ParseBoxSize()
*** Parses the options possible to BoxSize
**/
static void ParseBoxSize(char **ss, flags_type *flags)
{
	char *opts[] =
	{
		"dumb",
		"fixed",
		"smart",
		NULL
	};
	char *s = *ss;
	int m;

	if (!s)
	{
		return;
	}
	*ss = GetNextTokenIndex(*ss, opts, 0, &m);
	switch (m)
	{
	case 0:
		flags->b_SizeFixed = 0;
		flags->b_SizeSmart = 0;
		break;
	case 1:
		flags->b_SizeFixed = 1;
		flags->b_SizeSmart = 0;
		break;
	case 2:
		flags->b_SizeSmart = 1;
		flags->b_SizeFixed = 0;
		break;
	default:
		flags->b_SizeFixed = 0;
		flags->b_SizeSmart = 0;
		fprintf(stderr,
			"%s: Illegal boxsize option \"%s\"\n",
			MyName, s);
		break;
	}
	return;
}
Exemple #3
0
static void parse_menu_action(
	struct MenuRoot *mr, const char *action, menu_shortcut_action *saction,
	int *items_to_move, int *do_skip_section, char **ret_cmd)
{
	char *optlist[] = {
		"MenuClose",
		"MenuEnterContinuation",
		"MenuEnterSubmenu",
		"MenuLeaveSubmenu",
		"MenuMoveCursor",
		"MenuCursorLeft",
		"MenuCursorRight",
		"MenuSelectItem",
		"MenuScroll",
		"MenuTearOff",
		"MenuCloseAndExec",
		NULL
	};
	int index;
	char *options;
	int num;
	int suffix[2];
	int count[2];

	*ret_cmd = NULL;
	options = GetNextTokenIndex((char *)action, optlist, 0, &index);
	switch (index)
	{
	case 0: /* MenuClose */
		*saction = SA_ABORT;
		break;
	case 1: /* MenuEnterContinuation */
		*saction = (MR_CONTINUATION_MENU(mr) != NULL) ?
			SA_CONTINUE : SA_ENTER;
		break;
	case 2: /* MenuEnterSubmenu */
		*saction = SA_ENTER;
		break;
	case 3: /* MenuLeaveSubmenu */
		*saction = SA_LEAVE;
		break;
	case 4: /* MenuMoveCursor */
		num = GetSuffixedIntegerArguments(options, NULL, count, 2,
						  "s", suffix);
		if (num == 2)
		{
			if (suffix[0] != 0 || count[0] != 0)
			{
				mvwm_msg(ERR, "parse_menu_action",
					 "invalid MenuMoveCursor arguments "
					 "'%s'", options);
				*saction = SA_NONE;
				break;
			}
			if (count[1] < 0)
			{
				*saction = SA_LAST;
				*items_to_move = 1 + count[1];
			}
			else
			{
				*saction = SA_FIRST;
				*items_to_move = count[1];
			}

			if (suffix[1] == 1)
			{
				*do_skip_section = 1;
			}
		}
		else if (num == 1)
		{
			*saction = SA_MOVE_ITEMS;
			*items_to_move = count[0];
			if (suffix[0] == 1)
			{
				*do_skip_section = 1;
			}
		}
		else
		{
			mvwm_msg(ERR, "parse_menu_action",
				 "invalid MenuMoveCursor arguments '%s'",
				 options);
			*saction = SA_NONE;
			break;
		}
		break;
	case 5: /* MenuCursorLeft */
		*saction = (MST_USE_LEFT_SUBMENUS(mr)) ? SA_ENTER : SA_LEAVE;
		break;
	case 6: /* MenuCursorRight */
		*saction = (MST_USE_LEFT_SUBMENUS(mr)) ? SA_LEAVE : SA_ENTER;
		break;
	case 7: /* MenuSelectItem */
		*saction = SA_SELECT;
		break;
	case 8: /* MenuScroll */
		if (MST_MOUSE_WHEEL(mr) == MMW_OFF)
		{
			*saction = SA_SELECT;
		}
		else
		{
			num = GetSuffixedIntegerArguments(options, NULL, count,
							  1, "s", suffix);
			if (num == 1)
			{
				*saction = SA_SCROLL;
				*items_to_move = count[0];
				if (suffix[0] == 1)
				{
					*do_skip_section = 1;
				}
			}
			else
			{
				mvwm_msg(ERR, "parse_menu_action",
					 "invalid MenuScroll arguments '%s'",
					 options);
				*saction = SA_NONE;
				break;
			}
		}
		break;
	case 9: /* MenuTearOff */
		*saction = SA_TEAROFF;
		break;
	case 10: /* MenuCloseAndExecute */
		*saction = SA_EXEC_CMD;
		*ret_cmd = options;
		break;
	default:
		mvwm_msg(
			ERR, "parse_menu_action", "unknown action '%s'",
			action);
		*saction = SA_NONE;
	}

	return;
}