Search in sources :

Example 1 with TwitchFace

use of face.TwitchFace in project Botnak by Gocnak.

the class ListenerFace method mouseReleased.

@Override
public void mouseReleased(MouseEvent e) {
    JTextPane editor = (JTextPane) e.getSource();
    Point pt = new Point(e.getX(), e.getY());
    int pos = editor.viewToModel(pt);
    try {
        Rectangle rect = editor.modelToView(pos);
        int lowerCorner = rect.y + rect.height;
        if (e.getX() < rect.x && e.getY() < lowerCorner && pos > 0) {
            pos--;
        }
    } catch (BadLocationException ex) {
        GUIMain.log(ex);
    }
    if (pos >= 0) {
        Document doc = editor.getDocument();
        if (doc instanceof DefaultStyledDocument) {
            DefaultStyledDocument hdoc = (DefaultStyledDocument) doc;
            Element el = hdoc.getCharacterElement(pos);
            AttributeSet a = el.getAttributes();
            Face f = (Face) a.getAttribute("faceinfo");
            if (f != null) {
                JPopupMenu popupMenu = new JPopupMenu();
                popupMenu.setEnabled(false);
                if (f instanceof FrankerFaceZ) {
                    String channel = (String) a.getAttribute("channel");
                    JMenuItem item = new JMenuItem("FrankerFaceZ Face");
                    item.setEnabled(false);
                    popupMenu.add(item);
                    item = new JMenuItem(f.getRegex());
                    item.setEnabled(false);
                    popupMenu.add(item);
                    item = new JMenuItem(channel);
                    item.setEnabled(false);
                    popupMenu.add(item);
                } else if (f instanceof TwitchFace) {
                    String regex = (String) a.getAttribute("regex");
                    JMenuItem item = new JMenuItem("Twitch Face");
                    item.setEnabled(false);
                    popupMenu.add(item);
                    item = new JMenuItem(regex);
                    item.setEnabled(false);
                    popupMenu.add(item);
                } else {
                    //normal face
                    String regex = (String) a.getAttribute("regex");
                    JMenuItem item = new JMenuItem("Normal Face");
                    item.setEnabled(false);
                    popupMenu.add(item);
                    item = new JMenuItem(regex);
                    item.setEnabled(false);
                    popupMenu.add(item);
                }
                popupMenu.show(editor, pt.x, pt.y);
            }
        }
    }
}
Also used : TwitchFace(face.TwitchFace) FrankerFaceZ(face.FrankerFaceZ) TwitchFace(face.TwitchFace) Face(face.Face)

Aggregations

Face (face.Face)1 FrankerFaceZ (face.FrankerFaceZ)1 TwitchFace (face.TwitchFace)1