src/Tools/jEdit/src/context_menu.scala
author wenzelm
Tue, 21 Oct 2014 17:49:51 +0200
changeset 58749 83b0f633190e
parent 58549 d4d97b79f1fb
child 60878 1f0d2bbcf38b
permissions -rw-r--r--
some structure matching, based on line token iterators;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
56585
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
     1
/*  Title:      Tools/jEdit/src/context_menu.scala
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
     2
    Author:     Makarius
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
     3
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
     4
Common context menu for Isabelle/jEdit.
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
     5
*/
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
     6
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
     7
package isabelle.jedit
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
     8
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
     9
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
    10
import isabelle._
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
    11
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
    12
58548
d0ee64efd624 clarified modules;
wenzelm
parents: 58546
diff changeset
    13
import java.awt.event.MouseEvent
d0ee64efd624 clarified modules;
wenzelm
parents: 58546
diff changeset
    14
d0ee64efd624 clarified modules;
wenzelm
parents: 58546
diff changeset
    15
import javax.swing.JMenuItem
56585
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
    16
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
    17
import org.gjt.sp.jedit.gui.DynamicContextMenuService
58548
d0ee64efd624 clarified modules;
wenzelm
parents: 58546
diff changeset
    18
import org.gjt.sp.jedit.textarea.JEditTextArea
56585
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
    19
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
    20
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
    21
class Context_Menu extends DynamicContextMenuService
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
    22
{
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
    23
  def createMenu(text_area: JEditTextArea, evt: MouseEvent): Array[JMenuItem] =
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
    24
  {
56588
272d173cd398 avoid conflict of Isabelle/jEdit popups with jEdit context menu;
wenzelm
parents: 56586
diff changeset
    25
    PIDE.dismissed_popups(text_area.getView)
58524
f805b366a497 context menu for bibtex entries;
wenzelm
parents: 56595
diff changeset
    26
f805b366a497 context menu for bibtex entries;
wenzelm
parents: 56595
diff changeset
    27
    val items1 =
f805b366a497 context menu for bibtex entries;
wenzelm
parents: 56595
diff changeset
    28
      if (evt != null && evt.getSource == text_area.getPainter) {
f805b366a497 context menu for bibtex entries;
wenzelm
parents: 56595
diff changeset
    29
        val offset = text_area.xyToOffset(evt.getX, evt.getY)
58549
d4d97b79f1fb clarified modules;
wenzelm
parents: 58548
diff changeset
    30
        if (offset >= 0) Spell_Checker.context_menu(text_area, offset)
58524
f805b366a497 context menu for bibtex entries;
wenzelm
parents: 56595
diff changeset
    31
        else Nil
56585
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
    32
      }
58524
f805b366a497 context menu for bibtex entries;
wenzelm
parents: 56595
diff changeset
    33
      else Nil
f805b366a497 context menu for bibtex entries;
wenzelm
parents: 56595
diff changeset
    34
58548
d0ee64efd624 clarified modules;
wenzelm
parents: 58546
diff changeset
    35
    val items2 = Bibtex_JEdit.context_menu(text_area)
58524
f805b366a497 context menu for bibtex entries;
wenzelm
parents: 56595
diff changeset
    36
f805b366a497 context menu for bibtex entries;
wenzelm
parents: 56595
diff changeset
    37
    val items = items1 ::: items2
f805b366a497 context menu for bibtex entries;
wenzelm
parents: 56595
diff changeset
    38
    if (items.isEmpty) null else items.toArray
56585
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
    39
  }
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
    40
}
a0e844c6e1ed common context menu for Isabelle/jEdit;
wenzelm
parents:
diff changeset
    41