static void _xembed_win_resize(Instance_Xembed *xembed) { Evas_Coord first_x, first_y, first_w, first_h, last_x, last_y; Icon *icon; if (!xembed->icons) return; icon = eina_list_data_get(xembed->icons); evas_object_geometry_get(icon->rect, &first_x, &first_y, &first_w, &first_h); icon = eina_list_last_data_get(xembed->icons); evas_object_geometry_get(icon->rect, &last_x, &last_y, NULL, NULL); //because we always prepend xembed icons ecore_x_window_move_resize(xembed->win.base, last_x, last_y, (first_x+first_w) - last_x, (first_y+first_h) - last_y); evas_object_geometry_set(xembed->ec->frame, last_x, last_y, (first_x+first_w) - last_x, (first_y+first_h) - last_y); }
EAPI void elm_code_syntax_parse_line(Elm_Code_Syntax *syntax, Elm_Code_Line *line) { unsigned int i, i2, count, length; const char *content; const char *sym, *ptr; Elm_Code_Token_Type previous_type; EINA_SAFETY_ON_NULL_RETURN(syntax); line->scope = _previous_line_scope(line) + _elm_code_syntax_scope_change_braces(line); i = 0; content = elm_code_line_text_get(line, &length); previous_type = _previous_line_continue_type(line); if (previous_type == ELM_CODE_TOKEN_TYPE_COMMENT) { for (i2 = i; i2 < length; i2++) if (_ends_comment(syntax, content + i2, length - i2)) { i2 += strlen(syntax->comment_end) - 1; break; } elm_code_line_token_add(line, 0, i2, 1, ELM_CODE_TOKEN_TYPE_COMMENT); if (i2 == length) { Elm_Code_Token *token = eina_list_last_data_get(line->tokens); token->continues = EINA_TRUE; return; } i = i2 + 1; } else if (previous_type == ELM_CODE_TOKEN_TYPE_PREPROCESSOR) { elm_code_line_token_add(line, 0, length, 1, ELM_CODE_TOKEN_TYPE_PREPROCESSOR); if (length >= 1 && content[length-1] == '\\') { Elm_Code_Token *token = eina_list_last_data_get(line->tokens); token->continues = EINA_TRUE; } return; } ptr = content; count = 0; for (; i < length; i++) { ptr = content + i - count; if (_elm_code_text_char_is_whitespace(content[i])) { if (count) _elm_code_syntax_parse_token(syntax, line, ptr-content, ptr, count); count = 0; continue; } if (syntax->preprocessor && _content_starts_with(content+i, syntax->preprocessor, strlen(syntax->preprocessor))) { elm_code_line_token_add(line, i, length - 1, 1, ELM_CODE_TOKEN_TYPE_PREPROCESSOR); if (content[length-1] == '\\') { Elm_Code_Token *token = eina_list_last_data_get(line->tokens); token->continues = EINA_TRUE; } return; } else if (_starts_single_comment(syntax, content + i, length - i)) { elm_code_line_token_add(line, i, length, 1, ELM_CODE_TOKEN_TYPE_COMMENT); return; } else if (_starts_comment(syntax, content + i, length - i)) { for (i2 = i+strlen(syntax->comment_start); i2 < length; i2++) if (_ends_comment(syntax, content + i2, length - i2)) { i2 += strlen(syntax->comment_end) - 1; break; } elm_code_line_token_add(line, i, i2, 1, ELM_CODE_TOKEN_TYPE_COMMENT); if (i2 == length) { Elm_Code_Token *token = eina_list_last_data_get(line->tokens); token->continues = EINA_TRUE; // TODO reset all below of here return; } i = i2; count = 0; continue; } else if (content[i] == '"') { unsigned int start = i, end; for (i++; i < length && (content[i] != '"' || (content[i-1] == '\\' && content[i-2] != '\\')); i++) {} end = i; elm_code_line_token_add(line, start, end, 1, ELM_CODE_TOKEN_TYPE_STRING); count = 0; continue; } else if (content[i] == '\'') { unsigned int start = i, end; for (i++; i < length && (content[i] != '\'' || (content[i-1] == '\\' && content[i-2] != '\\')); i++) {} end = i; elm_code_line_token_add(line, start, end, 1, ELM_CODE_TOKEN_TYPE_STRING); count = 0; continue; } for (sym = syntax->symbols; *sym; sym++) if (content[i] == *sym) { if (count) _elm_code_syntax_parse_token(syntax, line, ptr-content, ptr, count); elm_code_line_token_add(line, i, i, 1, ELM_CODE_TOKEN_TYPE_BRACE); count = -1; break; } count++; } if (count) _elm_code_syntax_parse_token(syntax, line, ptr-content, ptr, count); }