Beispiel #1
0
int
add_selectors(keys_add_info_t *cmds, size_t len, int mode)
{
	int result = 0;
	size_t i;

	for(i = 0; i < len; i++)
	{
		key_conf_t *curr;

		curr = add_selector(cmds[i].keys, mode);
		if(curr == NULL)
			result = -1;
		else
			*curr = cmds[i].info;
	}

	return result;
}
Beispiel #2
0
bool litehtml::css::parse_selectors( const tstring& txt, litehtml::style::ptr styles, media_query_list::ptr& media )
{
	tstring selector = txt;
	trim(selector);
	string_vector tokens;
	split_string(selector, tokens, _t(","));

	bool added_something = false;

	for(string_vector::iterator tok = tokens.begin(); tok != tokens.end(); tok++)
	{
		css_selector::ptr selector = new css_selector(media);
		selector->m_style = styles;
		trim(*tok);
		if(selector->parse(*tok))
		{
			selector->calc_specificity();
			add_selector(selector);
			added_something = true;
		}
	}

	return added_something;
}
Beispiel #3
0
void
init_builtin_keys(int *key_mode)
{
	key_conf_t *curr;

	assert(key_mode != NULL);

	mode = key_mode;

	curr = add_cmd(L":", NORMAL_MODE);
	curr->data.handler = keys_colon;

	curr = add_cmd(L"m", NORMAL_MODE);
	curr->type = BUILTIN_WAIT_POINT;
	curr->data.handler = keys_m;
	curr->followed = FOLLOWED_BY_MULTIKEY;

	curr = add_cmd(L"'", NORMAL_MODE);
	curr->type = BUILTIN_WAIT_POINT;
	curr->data.handler = keys_quote;
	curr->followed = FOLLOWED_BY_MULTIKEY;

	curr = add_selector(L"gg", NORMAL_MODE);
	curr->type = BUILTIN_WAIT_POINT;
	curr->data.handler = keys_gg;
	curr->followed = FOLLOWED_BY_NONE;

	curr = add_selector(L"'", NORMAL_MODE);
	curr->type = BUILTIN_WAIT_POINT;
	curr->data.handler = keys_quote;
	curr->followed = FOLLOWED_BY_MULTIKEY;

	curr = add_cmd(L"H", NORMAL_MODE);
	curr->data.handler = keys_H;

	curr = add_cmd(L"gu", NORMAL_MODE);
	curr->data.handler = keys_gu;
	curr->followed = FOLLOWED_BY_SELECTOR;
	curr->type = BUILTIN_WAIT_POINT;

	curr = add_cmd(L"guu", NORMAL_MODE);
	curr->data.handler = keys_gu;

	curr = add_cmd(L"gugu", NORMAL_MODE);
	curr->data.handler = keys_gu;

	curr = add_cmd(L"j", NORMAL_MODE);
	curr->data.handler = keys_j;

	curr = add_selector(L"j", NORMAL_MODE);
	curr->data.handler = keys_j;

	curr = add_cmd(L"j", VISUAL_MODE);
	curr->data.handler = keys_j;

	curr = add_selector(L"j", VISUAL_MODE);
	curr->data.handler = keys_j;

	curr = add_cmd(L"k", NORMAL_MODE);
	curr->data.handler = keys_k;

	curr = add_selector(L"k", NORMAL_MODE);
	curr->data.handler = keys_k;

	curr = add_cmd(L"k", VISUAL_MODE);
	curr->data.handler = keys_k;

	curr = add_selector(L"k", VISUAL_MODE);
	curr->data.handler = keys_k;

	curr = add_selector(L"s", NORMAL_MODE);
	curr->data.handler = keys_s;

	curr = add_selector(L"s", VISUAL_MODE);
	curr->data.handler = keys_s;

	curr = add_cmd(L"i", NORMAL_MODE);
	curr->data.handler = keys_i;

	curr = add_selector(L"if", NORMAL_MODE);
	curr->data.handler = keys_if;

	curr = add_selector(L"if", VISUAL_MODE);
	curr->data.handler = keys_if;

	curr = add_cmd(L"o", NORMAL_MODE);
	curr->type = BUILTIN_CMD;
	curr->data.cmd = wcsdup(L":only");

	curr = add_cmd(L"v", NORMAL_MODE);
	curr->type = BUILTIN_CMD;
	curr->data.cmd = wcsdup(L":vsplit");

	curr = add_cmd(L"<", NORMAL_MODE);
	curr->type = BUILTIN_NIM_KEYS;
	curr->data.handler = keys_ctrl_w_less_than;

	curr = add_cmd(L"d", NORMAL_MODE);
	curr->type = BUILTIN_WAIT_POINT;
	curr->data.handler = keys_delete_selector;
	curr->followed = FOLLOWED_BY_SELECTOR;

	curr = add_cmd(L"dd", NORMAL_MODE);
	curr->data.handler = keys_delete;
	curr->type = BUILTIN_NIM_KEYS;

	curr = add_cmd(L"v", NORMAL_MODE);
	curr->data.handler = keys_v;

	curr = add_cmd(L"v", VISUAL_MODE);
	curr->data.handler = keys_v;

	curr = add_cmd(L"ZQ", NORMAL_MODE);
	curr->data.handler = keys_quit;

	curr = add_cmd(L"ZZ", NORMAL_MODE);
	curr->data.handler = keys_quit;

	curr = add_cmd(L"ZZ", VISUAL_MODE);
	curr->data.handler = keys_quit;

	curr = add_cmd(L"norm", NORMAL_MODE);
	curr->data.handler = keys_norm;
}