GRAYBYTE WORDPRESS FILE MANAGER4123

Server IP : 198.54.121.189 / Your IP : 216.73.216.224
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/alt/python37/lib64/python3.7/idlelib/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/alt/python37/lib64/python3.7/idlelib//calltip_w.py
"""A call-tip window class for Tkinter/IDLE.

After tooltip.py, which uses ideas gleaned from PySol.
Used by calltip.py.
"""
from tkinter import Label, LEFT, SOLID, TclError

from idlelib.tooltip import TooltipBase

HIDE_EVENT = "<<calltipwindow-hide>>"
HIDE_SEQUENCES = ("<Key-Escape>", "<FocusOut>")
CHECKHIDE_EVENT = "<<calltipwindow-checkhide>>"
CHECKHIDE_SEQUENCES = ("<KeyRelease>", "<ButtonRelease>")
CHECKHIDE_TIME = 100  # milliseconds

MARK_RIGHT = "calltipwindowregion_right"


class CalltipWindow(TooltipBase):
    """A call-tip widget for tkinter text widgets."""

    def __init__(self, text_widget):
        """Create a call-tip; shown by showtip().

        text_widget: a Text widget with code for which call-tips are desired
        """
        # Note: The Text widget will be accessible as self.anchor_widget
        super(CalltipWindow, self).__init__(text_widget)

        self.label = self.text = None
        self.parenline = self.parencol = self.lastline = None
        self.hideid = self.checkhideid = None
        self.checkhide_after_id = None

    def get_position(self):
        """Choose the position of the call-tip."""
        curline = int(self.anchor_widget.index("insert").split('.')[0])
        if curline == self.parenline:
            anchor_index = (self.parenline, self.parencol)
        else:
            anchor_index = (curline, 0)
        box = self.anchor_widget.bbox("%d.%d" % anchor_index)
        if not box:
            box = list(self.anchor_widget.bbox("insert"))
            # align to left of window
            box[0] = 0
            box[2] = 0
        return box[0] + 2, box[1] + box[3]

    def position_window(self):
        "Reposition the window if needed."
        curline = int(self.anchor_widget.index("insert").split('.')[0])
        if curline == self.lastline:
            return
        self.lastline = curline
        self.anchor_widget.see("insert")
        super(CalltipWindow, self).position_window()

    def showtip(self, text, parenleft, parenright):
        """Show the call-tip, bind events which will close it and reposition it.

        text: the text to display in the call-tip
        parenleft: index of the opening parenthesis in the text widget
        parenright: index of the closing parenthesis in the text widget,
                    or the end of the line if there is no closing parenthesis
        """
        # Only called in calltip.Calltip, where lines are truncated
        self.text = text
        if self.tipwindow or not self.text:
            return

        self.anchor_widget.mark_set(MARK_RIGHT, parenright)
        self.parenline, self.parencol = map(
            int, self.anchor_widget.index(parenleft).split("."))

        super(CalltipWindow, self).showtip()

        self._bind_events()

    def showcontents(self):
        """Create the call-tip widget."""
        self.label = Label(self.tipwindow, text=self.text, justify=LEFT,
                           background="#ffffd0", foreground="black",
                           relief=SOLID, borderwidth=1,
                           font=self.anchor_widget['font'])
        self.label.pack()

    def checkhide_event(self, event=None):
        """Handle CHECK_HIDE_EVENT: call hidetip or reschedule."""
        if not self.tipwindow:
            # If the event was triggered by the same event that unbound
            # this function, the function will be called nevertheless,
            # so do nothing in this case.
            return None

        # Hide the call-tip if the insertion cursor moves outside of the
        # parenthesis.
        curline, curcol = map(int, self.anchor_widget.index("insert").split('.'))
        if curline < self.parenline or \
           (curline == self.parenline and curcol <= self.parencol) or \
           self.anchor_widget.compare("insert", ">", MARK_RIGHT):
            self.hidetip()
            return "break"

        # Not hiding the call-tip.

        self.position_window()
        # Re-schedule this function to be called again in a short while.
        if self.checkhide_after_id is not None:
            self.anchor_widget.after_cancel(self.checkhide_after_id)
        self.checkhide_after_id = \
            self.anchor_widget.after(CHECKHIDE_TIME, self.checkhide_event)
        return None

    def hide_event(self, event):
        """Handle HIDE_EVENT by calling hidetip."""
        if not self.tipwindow:
            # See the explanation in checkhide_event.
            return None
        self.hidetip()
        return "break"

    def hidetip(self):
        """Hide the call-tip."""
        if not self.tipwindow:
            return

        try:
            self.label.destroy()
        except TclError:
            pass
        self.label = None

        self.parenline = self.parencol = self.lastline = None
        try:
            self.anchor_widget.mark_unset(MARK_RIGHT)
        except TclError:
            pass

        try:
            self._unbind_events()
        except (TclError, ValueError):
            # ValueError may be raised by MultiCall
            pass

        super(CalltipWindow, self).hidetip()

    def _bind_events(self):
        """Bind event handlers."""
        self.checkhideid = self.anchor_widget.bind(CHECKHIDE_EVENT,
                                                   self.checkhide_event)
        for seq in CHECKHIDE_SEQUENCES:
            self.anchor_widget.event_add(CHECKHIDE_EVENT, seq)
        self.anchor_widget.after(CHECKHIDE_TIME, self.checkhide_event)
        self.hideid = self.anchor_widget.bind(HIDE_EVENT,
                                              self.hide_event)
        for seq in HIDE_SEQUENCES:
            self.anchor_widget.event_add(HIDE_EVENT, seq)

    def _unbind_events(self):
        """Unbind event handlers."""
        for seq in CHECKHIDE_SEQUENCES:
            self.anchor_widget.event_delete(CHECKHIDE_EVENT, seq)
        self.anchor_widget.unbind(CHECKHIDE_EVENT, self.checkhideid)
        self.checkhideid = None
        for seq in HIDE_SEQUENCES:
            self.anchor_widget.event_delete(HIDE_EVENT, seq)
        self.anchor_widget.unbind(HIDE_EVENT, self.hideid)
        self.hideid = None


def _calltip_window(parent):  # htest #
    from tkinter import Toplevel, Text, LEFT, BOTH

    top = Toplevel(parent)
    top.title("Test call-tips")
    x, y = map(int, parent.geometry().split('+')[1:])
    top.geometry("250x100+%d+%d" % (x + 175, y + 150))
    text = Text(top)
    text.pack(side=LEFT, fill=BOTH, expand=1)
    text.insert("insert", "string.split")
    top.update()

    calltip = CalltipWindow(text)
    def calltip_show(event):
        calltip.showtip("(s='Hello world')", "insert", "end")
    def calltip_hide(event):
        calltip.hidetip()
    text.event_add("<<calltip-show>>", "(")
    text.event_add("<<calltip-hide>>", ")")
    text.bind("<<calltip-show>>", calltip_show)
    text.bind("<<calltip-hide>>", calltip_hide)

    text.focus_set()

if __name__ == '__main__':
    from unittest import main
    main('idlelib.idle_test.test_calltip_w', verbosity=2, exit=False)

    from idlelib.idle_test.htest import run
    run(_calltip_window)

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
May 20 2024 08:32:20
root / linksafe
0755
Icons
--
May 20 2024 08:32:19
root / linksafe
0755
__pycache__
--
May 20 2024 08:32:19
root / linksafe
0755
idle_test
--
May 20 2024 08:32:19
root / linksafe
0755
CREDITS.txt
1.822 KB
June 05 2023 20:45:13
root / linksafe
0644
ChangeLog
55.039 KB
June 05 2023 20:45:13
root / linksafe
0644
HISTORY.txt
10.07 KB
June 05 2023 20:45:13
root / linksafe
0644
NEWS.txt
47.647 KB
June 05 2023 20:45:13
root / linksafe
0644
NEWS2x.txt
26.535 KB
June 05 2023 20:45:13
root / linksafe
0644
README.txt
9.374 KB
June 05 2023 20:45:13
root / linksafe
0644
TODO.txt
8.279 KB
June 05 2023 20:45:13
root / linksafe
0644
__init__.py
0.387 KB
April 17 2024 17:36:04
root / linksafe
0644
__main__.py
0.155 KB
April 17 2024 17:36:04
root / linksafe
0644
autocomplete.py
8.744 KB
April 17 2024 17:36:04
root / linksafe
0644
autocomplete_w.py
19.638 KB
April 17 2024 17:36:04
root / linksafe
0644
autoexpand.py
3.141 KB
April 17 2024 17:36:04
root / linksafe
0644
browser.py
8.119 KB
April 17 2024 17:36:04
root / linksafe
0644
calltip.py
6.17 KB
April 17 2024 17:36:04
root / linksafe
0644
calltip_w.py
6.99 KB
April 17 2024 17:36:04
root / linksafe
0644
codecontext.py
11.061 KB
April 17 2024 17:36:04
root / linksafe
0644
colorizer.py
12.688 KB
April 17 2024 17:36:04
root / linksafe
0644
config-extensions.def
2.213 KB
June 05 2023 20:45:13
root / linksafe
0644
config-highlight.def
2.797 KB
June 05 2023 20:45:13
root / linksafe
0644
config-keys.def
10.654 KB
June 05 2023 20:45:13
root / linksafe
0644
config-main.def
3.094 KB
June 05 2023 20:45:13
root / linksafe
0644
config.py
37.278 KB
April 17 2024 17:36:04
root / linksafe
0644
config_key.py
14.126 KB
April 17 2024 17:36:04
root / linksafe
0644
configdialog.py
102.074 KB
April 17 2024 17:36:04
root / linksafe
0644
debugger.py
18.656 KB
April 17 2024 17:36:04
root / linksafe
0644
debugger_r.py
11.855 KB
April 17 2024 17:36:04
root / linksafe
0644
debugobj.py
3.96 KB
April 17 2024 17:36:04
root / linksafe
0644
debugobj_r.py
1.057 KB
April 17 2024 17:36:04
root / linksafe
0644
delegator.py
1.019 KB
April 17 2024 17:36:04
root / linksafe
0644
dynoption.py
1.97 KB
April 17 2024 17:36:04
root / linksafe
0644
editor.py
64.076 KB
April 17 2024 17:36:04
root / linksafe
0644
extend.txt
3.557 KB
June 05 2023 20:45:13
root / linksafe
0644
filelist.py
3.805 KB
April 17 2024 17:36:04
root / linksafe
0644
format.py
15.407 KB
April 17 2024 17:36:04
root / linksafe
0644
grep.py
7.304 KB
April 17 2024 17:36:04
root / linksafe
0644
help.html
60.756 KB
June 05 2023 20:45:13
root / linksafe
0644
help.py
11.459 KB
April 17 2024 17:36:04
root / linksafe
0644
help_about.py
8.771 KB
April 17 2024 17:36:04
root / linksafe
0644
history.py
3.948 KB
April 17 2024 17:36:04
root / linksafe
0644
hyperparser.py
12.581 KB
April 17 2024 17:36:04
root / linksafe
0644
idle.py
0.443 KB
April 17 2024 17:36:04
root / linksafe
0644
idle.pyw
0.557 KB
June 05 2023 20:45:13
root / linksafe
0644
iomenu.py
20.148 KB
April 17 2024 17:36:04
root / linksafe
0644
macosx.py
9.436 KB
April 17 2024 17:36:04
root / linksafe
0644
mainmenu.py
3.826 KB
April 17 2024 17:36:04
root / linksafe
0644
multicall.py
18.211 KB
April 17 2024 17:36:04
root / linksafe
0644
outwin.py
5.652 KB
April 17 2024 17:36:04
root / linksafe
0644
parenmatch.py
7.035 KB
April 17 2024 17:36:04
root / linksafe
0644
pathbrowser.py
3.118 KB
April 17 2024 17:36:04
root / linksafe
0644
percolator.py
3.057 KB
April 17 2024 17:36:04
root / linksafe
0644
pyparse.py
19.479 KB
April 17 2024 17:36:04
root / linksafe
0644
pyshell.py
55.905 KB
April 17 2024 17:36:04
root / linksafe
0755
query.py
14.549 KB
April 17 2024 17:36:04
root / linksafe
0644
redirector.py
6.714 KB
April 17 2024 17:36:04
root / linksafe
0644
replace.py
9.657 KB
April 17 2024 17:36:04
root / linksafe
0644
rpc.py
20.642 KB
April 17 2024 17:36:04
root / linksafe
0644
run.py
19.817 KB
April 17 2024 17:36:04
root / linksafe
0644
runscript.py
8.575 KB
April 17 2024 17:36:04
root / linksafe
0644
scrolledlist.py
4.36 KB
April 17 2024 17:36:04
root / linksafe
0644
search.py
5.436 KB
April 17 2024 17:36:04
root / linksafe
0644
searchbase.py
7.36 KB
April 17 2024 17:36:04
root / linksafe
0644
searchengine.py
7.297 KB
April 17 2024 17:36:04
root / linksafe
0644
sidebar.py
13.267 KB
April 17 2024 17:36:04
root / linksafe
0644
squeezer.py
12.539 KB
April 17 2024 17:36:04
root / linksafe
0644
stackviewer.py
4.35 KB
April 17 2024 17:36:04
root / linksafe
0644
statusbar.py
1.407 KB
April 17 2024 17:36:04
root / linksafe
0644
textview.py
6.653 KB
April 17 2024 17:36:04
root / linksafe
0644
tooltip.py
6.411 KB
April 17 2024 17:36:04
root / linksafe
0644
tree.py
15.974 KB
April 17 2024 17:36:04
root / linksafe
0644
undo.py
10.787 KB
April 17 2024 17:36:04
root / linksafe
0644
window.py
2.555 KB
April 17 2024 17:36:04
root / linksafe
0644
zoomheight.py
4.104 KB
April 17 2024 17:36:04
root / linksafe
0644
zzdummy.py
0.938 KB
April 17 2024 17:36:04
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF