mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
Add InsetInfo::SHORTCUTS_INFO and ICON_INFO
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25129 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
b733c626f0
commit
c6565b4209
@ -16,6 +16,7 @@
|
||||
#include "BufferParams.h"
|
||||
#include "BufferView.h"
|
||||
#include "FuncRequest.h"
|
||||
#include "InsetGraphics.h"
|
||||
#include "InsetSpecialChar.h"
|
||||
#include "KeyMap.h"
|
||||
#include "LaTeXFeatures.h"
|
||||
@ -31,6 +32,7 @@
|
||||
#include "support/docstream.h"
|
||||
#include "support/docstring_list.h"
|
||||
#include "support/FileName.h"
|
||||
#include "support/filetools.h"
|
||||
#include "support/gettext.h"
|
||||
#include "support/lstrings.h"
|
||||
#include "support/ExceptionMessage.h"
|
||||
@ -81,11 +83,13 @@ Translator<InsetInfo::info_type, string> const initTranslator()
|
||||
Translator<InsetInfo::info_type, string>
|
||||
translator(InsetInfo::UNKNOWN_INFO, "unknown");
|
||||
|
||||
translator.addPair(InsetInfo::SHORTCUTS_INFO, "shortcuts");
|
||||
translator.addPair(InsetInfo::SHORTCUT_INFO, "shortcut");
|
||||
translator.addPair(InsetInfo::LYXRC_INFO, "lyxrc");
|
||||
translator.addPair(InsetInfo::PACKAGE_INFO, "package");
|
||||
translator.addPair(InsetInfo::TEXTCLASS_INFO, "textclass");
|
||||
translator.addPair(InsetInfo::MENU_INFO, "menu");
|
||||
translator.addPair(InsetInfo::ICON_INFO, "icon");
|
||||
translator.addPair(InsetInfo::BUFFER_INFO, "buffer");
|
||||
|
||||
return translator;
|
||||
@ -177,13 +181,23 @@ void InsetInfo::updateInfo()
|
||||
setText(_("Unknown Info: ") + from_utf8(name_),
|
||||
bp.getFont(), false);
|
||||
break;
|
||||
case SHORTCUT_INFO: {
|
||||
case SHORTCUTS_INFO: {
|
||||
FuncRequest func = lyxaction.lookupFunc(name_);
|
||||
if (func.action != LFUN_UNKNOWN_ACTION)
|
||||
setText(theTopLevelKeymap().printBindings(func),
|
||||
bp.getFont(), false);
|
||||
break;
|
||||
}
|
||||
case SHORTCUT_INFO: {
|
||||
FuncRequest func = lyxaction.lookupFunc(name_);
|
||||
if (func.action != LFUN_UNKNOWN_ACTION) {
|
||||
KeyMap::Bindings bindings = theTopLevelKeymap().findBindings(func);
|
||||
if (!bindings.empty())
|
||||
setText(bindings.rbegin()->print(KeySequence::ForGui),
|
||||
bp.getFont(), false);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case LYXRC_INFO: {
|
||||
ostringstream oss;
|
||||
lyxrc.write(oss, true, name_);
|
||||
@ -235,6 +249,28 @@ void InsetInfo::updateInfo()
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ICON_INFO: {
|
||||
FuncRequest func = lyxaction.lookupFunc(name_);
|
||||
if (func.action == LFUN_UNKNOWN_ACTION)
|
||||
break;
|
||||
// We do not try to find icon for LFUN_MATH_* here because these icons are difficult
|
||||
// to locate (see GuiToolbar.cpp) and if they are needed, they can be inserted more
|
||||
// easily as mathed.
|
||||
string name = lyxaction.getActionName(func.action);
|
||||
if (!func.argument().empty()) {
|
||||
name += " " + to_utf8(func.argument());
|
||||
name = subst(name, ' ', '_');
|
||||
}
|
||||
FileName file = libFileSearch("images", name, "png");
|
||||
if (file.empty())
|
||||
break;
|
||||
InsetGraphicsParams igp;
|
||||
igp.filename = file;
|
||||
InsetGraphics * inset = new InsetGraphics(buffer());
|
||||
inset->setParams(igp);
|
||||
paragraphs().front().insertInset(0, inset, Change(Change::UNCHANGED));
|
||||
break;
|
||||
}
|
||||
case BUFFER_INFO: {
|
||||
if (name_ == "name")
|
||||
setText(from_utf8(buffer().fileName().onlyFileName()),
|
||||
|
@ -19,7 +19,7 @@
|
||||
#include "support/gettext.h"
|
||||
#include "support/Translator.h"
|
||||
|
||||
/* InsetInfo displays shortcuts, lyxrc, package and textclass
|
||||
/* InsetInfo displays shortcuts, lyxrc, package and textclass
|
||||
availability and menu information in a non-editable boxed InsetText.
|
||||
|
||||
Output of such an inset may vary from system to system, depending
|
||||
@ -30,15 +30,17 @@ uses it to display currently used shortcuts.
|
||||
|
||||
This inset has two arguments: the type and argument of the information. The
|
||||
screen and latex output is the content of the information. An InsetInfo can
|
||||
have type "shortcut", "lyxrc", "package", "textclass", "menu", or "buffer".
|
||||
Arguments and outputs vary by type.
|
||||
have type "shortcuts", "shortcut", "lyxrc", "package", "textclass", "menu",
|
||||
or "buffer". Arguments and outputs vary by type.
|
||||
|
||||
shortcut: argument of this type of InsetInfo is the name of the LFUN such as
|
||||
shortcuts: argument of this type of InsetInfo is the name of the LFUN such as
|
||||
"math-insert \alpha". The syntax is the same as what is used in the bind
|
||||
and ui files. The output of this inset is all shortcuts for this LFUN
|
||||
separated by comma.
|
||||
|
||||
lyxrc: argument is the name of the rc entry such as "bind_file". Look in
|
||||
shortcut: the same as shortcuts, but only output the last shortcut.
|
||||
|
||||
lyxrc: argument is the name of the rc entry such as "bind_file". Look in
|
||||
src/LyXRC.h for available entries. The output is the content of this RC
|
||||
entry.
|
||||
|
||||
@ -53,17 +55,21 @@ menu: argument is the name of the LFUN such as "paste". The syntax is the same
|
||||
triggers this LFUN. For example, "File > Paste", where '>' is actually
|
||||
\lyxarrow (an InsetSpecialChar).
|
||||
|
||||
buffer: argument can be one of "name", "path", "class". This inset output the
|
||||
icon: argument is the name of the LFUN such as "paste". The syntax is the same
|
||||
as what is used in the bind and ui files. The output is the icon use in
|
||||
the toolbar for this LFUN.
|
||||
|
||||
buffer: argument can be one of "name", "path", "class". This inset output the
|
||||
filename, path, and textclass of this buffer.
|
||||
|
||||
There is currently no GUI, no menu entry for this inset. A user can define a
|
||||
There is currently no GUI, no menu entry for this inset. A user can define a
|
||||
shortcut for "info-insert" (e.g. C-S-I), and
|
||||
|
||||
1. input the type and argument of this inset, e.g. "menu paste", in
|
||||
1. input the type and argument of this inset, e.g. "menu paste", in
|
||||
the work area.
|
||||
2. select the text and run "info-insert" (e.g. press C-S-I).
|
||||
|
||||
An alternative method is to enter command "info-insert type arg" in
|
||||
An alternative method is to enter command "info-insert type arg" in
|
||||
the command buffer (view->Toolbar->Command Buffer).
|
||||
|
||||
*/
|
||||
@ -76,11 +82,13 @@ class InsetInfo : public InsetText {
|
||||
public:
|
||||
enum info_type {
|
||||
UNKNOWN_INFO, // Invalid type
|
||||
SHORTCUTS_INFO, // Keyboard shortcuts
|
||||
SHORTCUT_INFO, // Keyboard shortcut
|
||||
LYXRC_INFO, // RC entry
|
||||
PACKAGE_INFO, // Availability of package
|
||||
TEXTCLASS_INFO, // Availability of textclass
|
||||
MENU_INFO, // Which menu item is used for certain function
|
||||
ICON_INFO, // which toolbar icon is used for certain function
|
||||
BUFFER_INFO, // Buffer related information
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user