mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
api: refactor FloatAnchor usage
This commit is contained in:
parent
cfed9a4123
commit
98391cd6ab
@ -958,15 +958,18 @@ struct matchitem {
|
||||
int conceal_char; ///< cchar for Conceal highlighting
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
typedef int FloatAnchor;
|
||||
|
||||
enum {
|
||||
kFloatAnchorEast = 1,
|
||||
kFloatAnchorSouth = 2,
|
||||
};
|
||||
|
||||
kFloatAnchorNW = 0,
|
||||
kFloatAnchorNE = 1,
|
||||
kFloatAnchorSW = 2,
|
||||
kFloatAnchorSE = 3,
|
||||
} FloatAnchor;
|
||||
// NW -> 0
|
||||
// NE -> kFloatAnchorEast
|
||||
// SW -> kFloatAnchorSouth
|
||||
// SE -> kFloatAnchorSouth | kFloatAnchorEast
|
||||
EXTERN const char *const float_anchor_str[] INIT(= { "NW", "NE", "SW", "SE" });
|
||||
|
||||
typedef enum {
|
||||
kFloatRelativeEditor = 0,
|
||||
|
@ -614,12 +614,6 @@ static void ui_ext_win_position(win_T *wp)
|
||||
wp->w_wincol, wp->w_width, wp->w_height);
|
||||
return;
|
||||
}
|
||||
const char *const anchor_str[] = {
|
||||
"NW",
|
||||
"NE",
|
||||
"SW",
|
||||
"SE"
|
||||
};
|
||||
|
||||
FloatConfig c = wp->w_float_config;
|
||||
if (!c.external) {
|
||||
@ -635,7 +629,7 @@ static void ui_ext_win_position(win_T *wp)
|
||||
api_clear_error(&dummy);
|
||||
}
|
||||
if (ui_has(kUIMultigrid)) {
|
||||
String anchor = cstr_to_string(anchor_str[c.anchor]);
|
||||
String anchor = cstr_to_string(float_anchor_str[c.anchor]);
|
||||
ui_call_win_float_pos(wp->w_grid.handle, wp->handle, anchor, grid->handle,
|
||||
row, col, c.focusable);
|
||||
} else {
|
||||
@ -672,14 +666,14 @@ static bool parse_float_anchor(String anchor, FloatAnchor *out)
|
||||
*out = (FloatAnchor)0;
|
||||
}
|
||||
char *str = anchor.data;
|
||||
if (!STRICMP(str, "NW")) {
|
||||
*out = kFloatAnchorNW;
|
||||
} else if (!STRICMP(str, "NE")) {
|
||||
*out = kFloatAnchorNE;
|
||||
} else if (!STRICMP(str, "SW")) {
|
||||
*out = kFloatAnchorSW;
|
||||
} else if (!STRICMP(str, "SE")) {
|
||||
*out = kFloatAnchorSE;
|
||||
if (striequal(str, "NW")) {
|
||||
*out = 0; // NW is the default
|
||||
} else if (striequal(str, "NE")) {
|
||||
*out = kFloatAnchorEast;
|
||||
} else if (striequal(str, "SW")) {
|
||||
*out = kFloatAnchorSouth;
|
||||
} else if (striequal(str, "SE")) {
|
||||
*out = kFloatAnchorSouth | kFloatAnchorEast;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user