]> git.lyx.org Git - features.git/commitdiff
* InsetHyperlink.{cpp,h}:
authorJürgen Spitzmüller <spitz@lyx.org>
Sun, 29 Aug 2010 16:40:52 +0000 (16:40 +0000)
committerJürgen Spitzmüller <spitz@lyx.org>
Sun, 29 Aug 2010 16:40:52 +0000 (16:40 +0000)
* stdcontext.inc:
- basic context menu and tooltip (part of bug #6864)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35229 a592a061-630c-0410-9148-cb99ea01b6c8

lib/ui/stdcontext.inc
src/insets/InsetHyperlink.cpp
src/insets/InsetHyperlink.h

index aa082d34d9845f6f367687fca126c3fd300e8475..526be9fb691936d4206bea4a98aa64110ea01dca 100644 (file)
@@ -640,4 +640,11 @@ Menuset
                OptItem "Settings...|S" "inset-settings"
        End
 
+#
+# InsetHyperlink context menu
+#
+       Menu "context-hyperlink"
+               Item "Settings...|S" "inset-settings"
+       End
+
 End
index 3baab504305e113d6c9ea28d6578c2efa1dd3cbc..e85fb4558a39615a0a7f174e70fcc9b1f554b91a 100644 (file)
@@ -65,7 +65,7 @@ docstring InsetHyperlink::screenLabel() const
 
 
 int InsetHyperlink::latex(odocstream & os,
-                                                 OutputParams const & runparams) const
+                         OutputParams const & runparams) const
 {
        docstring url = getParam("target");
        docstring name = getParam("name");
@@ -97,7 +97,7 @@ int InsetHyperlink::latex(odocstream & os,
                // field because otherwise LaTeX will fail when the hyperlink is
                // within an argument of another command, e.g. in a \footnote. It
                // is important that they are escaped as "\#" and not as "\#{}".
-               for (int k = 0; k < 2; k++)
+               for (int k = 0; k < 2; k++)
                        for (size_t i = 0, pos;
                                (pos = url.find(chars_url[k], i)) != string::npos;
                                i = pos + 2)
@@ -128,7 +128,7 @@ int InsetHyperlink::latex(odocstream & os,
                // The characters in chars_name[] need to be changed to a command
                // when they are in the name field.
                // Therefore the treatment of "\" must be the first thing
-               for (int k = 0; k < 6; k++)
+               for (int k = 0; k < 6; k++)
                        for (size_t i = 0, pos;
                                (pos = name.find(chars_name[k], i)) != string::npos;
                                i = pos + 2)
@@ -198,10 +198,29 @@ void InsetHyperlink::tocString(odocstream & os) const
 }
 
 
+docstring InsetHyperlink::toolTip(BufferView const & /*bv*/, int /*x*/, int /*y*/) const
+{
+       docstring url = getParam("target");
+       docstring type = getParam("type");
+       docstring guitype = _("www");
+       if (type == "mailto:")
+               guitype = _("email");
+       else if (type == "file:")
+               guitype = _("file");
+       return bformat(_("Hyperlink (%1$s) to %2$s"), guitype, url);
+}
+
+
 void InsetHyperlink::validate(LaTeXFeatures & features) const
 {
        features.require("hyperref");
 }
 
 
+docstring InsetHyperlink::contextMenu(BufferView const &, int, int) const
+{
+       return from_ascii("context-hyperlink");
+}
+
+
 } // namespace lyx
index 81467eeceb243123f9bfb277505d32dc3162e720..4362ad039a943b09ec9b44942d9015e7b2ba6deb 100644 (file)
@@ -55,6 +55,10 @@ public:
        bool forceLTR() const { return true; }
        ///
        virtual bool isInToc() const { return true; }
+       ///
+       docstring contextMenu(BufferView const & bv, int x, int y) const;
+       ///
+       docstring toolTip(BufferView const & bv, int x, int y) const;
 private:
        Inset * clone() const { return new InsetHyperlink(*this); }
 };