info: support a -inline option

By default display info box above command line, full width
(like menu), in inline mode, display the info box close
to cursor, using only needed width.
This commit is contained in:
Maxime Coste 2012-12-14 19:25:27 +01:00
parent 9236c87842
commit 3184159572

View File

@ -604,14 +604,23 @@ void menu(const CommandParameters& params, Context& context)
void info(const CommandParameters& params, Context& context) void info(const CommandParameters& params, Context& context)
{ {
ParametersParser parser(params, { }); ParametersParser parser(params, { { "inline", false } });
if (parser.positional_count() > 1) if (parser.positional_count() > 1)
throw wrong_argument_count(); throw wrong_argument_count();
context.ui().info_hide(); context.ui().info_hide();
if (parser.positional_count() > 0) if (parser.positional_count() > 0)
context.ui().info_show(parser[0], {0,0}, MenuStyle::Inline); {
MenuStyle style = parser.has_option("inline") ?
MenuStyle::Inline : MenuStyle::Prompt;
DisplayCoord pos;
if (style == MenuStyle::Inline)
pos = context.window().display_position(context.editor().selections().back().last());
else
pos.line = context.ui().dimensions().line;
context.ui().info_show(parser[0], pos, style);
}
} }
void try_catch(const CommandParameters& params, Context& context) void try_catch(const CommandParameters& params, Context& context)