$83 GRAYBYTE WORDPRESS FILE MANAGER $97

SERVER : vnpttt-amd7f72-h1.vietnix.vn #1 SMP Fri May 24 12:42:50 UTC 2024
SERVER IP : 103.200.23.149 | ADMIN IP 216.73.216.22
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/alt/python37/lib64/python3.7/idlelib/

HOME
Current File : /opt/alt/python37/lib64/python3.7/idlelib//textview.py
"""Simple text browser for IDLE

"""
from tkinter import Toplevel, Text, TclError,\
    HORIZONTAL, VERTICAL, NS, EW, NSEW, NONE, WORD, SUNKEN
from tkinter.ttk import Frame, Scrollbar, Button
from tkinter.messagebox import showerror

from idlelib.colorizer import color_config


class AutoHideScrollbar(Scrollbar):
    """A scrollbar that is automatically hidden when not needed.

    Only the grid geometry manager is supported.
    """
    def set(self, lo, hi):
        if float(lo) > 0.0 or float(hi) < 1.0:
            self.grid()
        else:
            self.grid_remove()
        super().set(lo, hi)

    def pack(self, **kwargs):
        raise TclError(f'{self.__class__.__name__} does not support "pack"')

    def place(self, **kwargs):
        raise TclError(f'{self.__class__.__name__} does not support "place"')


class ScrollableTextFrame(Frame):
    """Display text with scrollbar(s)."""

    def __init__(self, master, wrap=NONE, **kwargs):
        """Create a frame for Textview.

        master - master widget for this frame
        wrap - type of text wrapping to use ('word', 'char' or 'none')

        All parameters except for 'wrap' are passed to Frame.__init__().

        The Text widget is accessible via the 'text' attribute.

        Note: Changing the wrapping mode of the text widget after
        instantiation is not supported.
        """
        super().__init__(master, **kwargs)

        text = self.text = Text(self, wrap=wrap)
        text.grid(row=0, column=0, sticky=NSEW)
        self.grid_rowconfigure(0, weight=1)
        self.grid_columnconfigure(0, weight=1)

        # vertical scrollbar
        self.yscroll = AutoHideScrollbar(self, orient=VERTICAL,
                                         takefocus=False,
                                         command=text.yview)
        self.yscroll.grid(row=0, column=1, sticky=NS)
        text['yscrollcommand'] = self.yscroll.set

        # horizontal scrollbar - only when wrap is set to NONE
        if wrap == NONE:
            self.xscroll = AutoHideScrollbar(self, orient=HORIZONTAL,
                                             takefocus=False,
                                             command=text.xview)
            self.xscroll.grid(row=1, column=0, sticky=EW)
            text['xscrollcommand'] = self.xscroll.set
        else:
            self.xscroll = None


class ViewFrame(Frame):
    "Display TextFrame and Close button."
    def __init__(self, parent, contents, wrap='word'):
        """Create a frame for viewing text with a "Close" button.

        parent - parent widget for this frame
        contents - text to display
        wrap - type of text wrapping to use ('word', 'char' or 'none')

        The Text widget is accessible via the 'text' attribute.
        """
        super().__init__(parent)
        self.parent = parent
        self.bind('<Return>', self.ok)
        self.bind('<Escape>', self.ok)
        self.textframe = ScrollableTextFrame(self, relief=SUNKEN, height=700)

        text = self.text = self.textframe.text
        text.insert('1.0', contents)
        text.configure(wrap=wrap, highlightthickness=0, state='disabled')
        color_config(text)
        text.focus_set()

        self.button_ok = button_ok = Button(
                self, text='Close', command=self.ok, takefocus=False)
        self.textframe.pack(side='top', expand=True, fill='both')
        button_ok.pack(side='bottom')

    def ok(self, event=None):
        """Dismiss text viewer dialog."""
        self.parent.destroy()


class ViewWindow(Toplevel):
    "A simple text viewer dialog for IDLE."

    def __init__(self, parent, title, contents, modal=True, wrap=WORD,
                 *, _htest=False, _utest=False):
        """Show the given text in a scrollable window with a 'close' button.

        If modal is left True, users cannot interact with other windows
        until the textview window is closed.

        parent - parent of this dialog
        title - string which is title of popup dialog
        contents - text to display in dialog
        wrap - type of text wrapping to use ('word', 'char' or 'none')
        _htest - bool; change box location when running htest.
        _utest - bool; don't wait_window when running unittest.
        """
        super().__init__(parent)
        self['borderwidth'] = 5
        # Place dialog below parent if running htest.
        x = parent.winfo_rootx() + 10
        y = parent.winfo_rooty() + (10 if not _htest else 100)
        self.geometry(f'=750x500+{x}+{y}')

        self.title(title)
        self.viewframe = ViewFrame(self, contents, wrap=wrap)
        self.protocol("WM_DELETE_WINDOW", self.ok)
        self.button_ok = button_ok = Button(self, text='Close',
                                            command=self.ok, takefocus=False)
        self.viewframe.pack(side='top', expand=True, fill='both')

        self.is_modal = modal
        if self.is_modal:
            self.transient(parent)
            self.grab_set()
            if not _utest:
                self.wait_window()

    def ok(self, event=None):
        """Dismiss text viewer dialog."""
        if self.is_modal:
            self.grab_release()
        self.destroy()


def view_text(parent, title, contents, modal=True, wrap='word', _utest=False):
    """Create text viewer for given text.

    parent - parent of this dialog
    title - string which is the title of popup dialog
    contents - text to display in this dialog
    wrap - type of text wrapping to use ('word', 'char' or 'none')
    modal - controls if users can interact with other windows while this
            dialog is displayed
    _utest - bool; controls wait_window on unittest
    """
    return ViewWindow(parent, title, contents, modal, wrap=wrap, _utest=_utest)


def view_file(parent, title, filename, encoding, modal=True, wrap='word',
              _utest=False):
    """Create text viewer for text in filename.

    Return error message if file cannot be read.  Otherwise calls view_text
    with contents of the file.
    """
    try:
        with open(filename, 'r', encoding=encoding) as file:
            contents = file.read()
    except OSError:
        showerror(title='File Load Error',
                  message=f'Unable to load file {filename!r} .',
                  parent=parent)
    except UnicodeDecodeError as err:
        showerror(title='Unicode Decode Error',
                  message=str(err),
                  parent=parent)
    else:
        return view_text(parent, title, contents, modal, wrap=wrap,
                         _utest=_utest)
    return None


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

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

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
13 Aug 2025 1.05 AM
root / 996
0755
Icons
--
13 Aug 2025 1.05 AM
root / 996
0755
__pycache__
--
13 Aug 2025 1.05 AM
root / 996
0755
idle_test
--
13 Aug 2025 1.05 AM
root / 996
0755
CREDITS.txt
1.822 KB
6 Jun 2023 3.45 AM
root / 996
0644
ChangeLog
55.039 KB
6 Jun 2023 3.45 AM
root / 996
0644
HISTORY.txt
10.07 KB
6 Jun 2023 3.45 AM
root / 996
0644
NEWS.txt
47.647 KB
6 Jun 2023 3.45 AM
root / 996
0644
NEWS2x.txt
26.535 KB
6 Jun 2023 3.45 AM
root / 996
0644
README.txt
9.374 KB
6 Jun 2023 3.45 AM
root / 996
0644
TODO.txt
8.279 KB
6 Jun 2023 3.45 AM
root / 996
0644
__init__.py
0.387 KB
18 Apr 2024 12.36 AM
root / 996
0644
__main__.py
0.155 KB
18 Apr 2024 12.36 AM
root / 996
0644
autocomplete.py
8.744 KB
18 Apr 2024 12.36 AM
root / 996
0644
autocomplete_w.py
19.638 KB
18 Apr 2024 12.36 AM
root / 996
0644
autoexpand.py
3.141 KB
18 Apr 2024 12.36 AM
root / 996
0644
browser.py
8.119 KB
18 Apr 2024 12.36 AM
root / 996
0644
calltip.py
6.17 KB
18 Apr 2024 12.36 AM
root / 996
0644
calltip_w.py
6.99 KB
18 Apr 2024 12.36 AM
root / 996
0644
codecontext.py
11.061 KB
18 Apr 2024 12.36 AM
root / 996
0644
colorizer.py
12.688 KB
18 Apr 2024 12.36 AM
root / 996
0644
config-extensions.def
2.213 KB
6 Jun 2023 3.45 AM
root / 996
0644
config-highlight.def
2.797 KB
6 Jun 2023 3.45 AM
root / 996
0644
config-keys.def
10.654 KB
6 Jun 2023 3.45 AM
root / 996
0644
config-main.def
3.094 KB
6 Jun 2023 3.45 AM
root / 996
0644
config.py
37.278 KB
18 Apr 2024 12.36 AM
root / 996
0644
config_key.py
14.126 KB
18 Apr 2024 12.36 AM
root / 996
0644
configdialog.py
102.074 KB
18 Apr 2024 12.36 AM
root / 996
0644
debugger.py
18.656 KB
18 Apr 2024 12.36 AM
root / 996
0644
debugger_r.py
11.855 KB
18 Apr 2024 12.36 AM
root / 996
0644
debugobj.py
3.96 KB
18 Apr 2024 12.36 AM
root / 996
0644
debugobj_r.py
1.057 KB
18 Apr 2024 12.36 AM
root / 996
0644
delegator.py
1.019 KB
18 Apr 2024 12.36 AM
root / 996
0644
dynoption.py
1.97 KB
18 Apr 2024 12.36 AM
root / 996
0644
editor.py
64.076 KB
18 Apr 2024 12.36 AM
root / 996
0644
extend.txt
3.557 KB
6 Jun 2023 3.45 AM
root / 996
0644
filelist.py
3.805 KB
18 Apr 2024 12.36 AM
root / 996
0644
format.py
15.407 KB
18 Apr 2024 12.36 AM
root / 996
0644
grep.py
7.304 KB
18 Apr 2024 12.36 AM
root / 996
0644
help.html
60.756 KB
6 Jun 2023 3.45 AM
root / 996
0644
help.py
11.459 KB
18 Apr 2024 12.36 AM
root / 996
0644
help_about.py
8.771 KB
18 Apr 2024 12.36 AM
root / 996
0644
history.py
3.948 KB
18 Apr 2024 12.36 AM
root / 996
0644
hyperparser.py
12.581 KB
18 Apr 2024 12.36 AM
root / 996
0644
idle.py
0.443 KB
18 Apr 2024 12.36 AM
root / 996
0644
idle.pyw
0.557 KB
6 Jun 2023 3.45 AM
root / 996
0644
iomenu.py
20.148 KB
18 Apr 2024 12.36 AM
root / 996
0644
macosx.py
9.436 KB
18 Apr 2024 12.36 AM
root / 996
0644
mainmenu.py
3.826 KB
18 Apr 2024 12.36 AM
root / 996
0644
multicall.py
18.211 KB
18 Apr 2024 12.36 AM
root / 996
0644
outwin.py
5.652 KB
18 Apr 2024 12.36 AM
root / 996
0644
parenmatch.py
7.035 KB
18 Apr 2024 12.36 AM
root / 996
0644
pathbrowser.py
3.118 KB
18 Apr 2024 12.36 AM
root / 996
0644
percolator.py
3.057 KB
18 Apr 2024 12.36 AM
root / 996
0644
pyparse.py
19.479 KB
18 Apr 2024 12.36 AM
root / 996
0644
pyshell.py
55.905 KB
18 Apr 2024 12.36 AM
root / 996
0755
query.py
14.549 KB
18 Apr 2024 12.36 AM
root / 996
0644
redirector.py
6.714 KB
18 Apr 2024 12.36 AM
root / 996
0644
replace.py
9.657 KB
18 Apr 2024 12.36 AM
root / 996
0644
rpc.py
20.642 KB
18 Apr 2024 12.36 AM
root / 996
0644
run.py
19.817 KB
18 Apr 2024 12.36 AM
root / 996
0644
runscript.py
8.575 KB
18 Apr 2024 12.36 AM
root / 996
0644
scrolledlist.py
4.36 KB
18 Apr 2024 12.36 AM
root / 996
0644
search.py
5.436 KB
18 Apr 2024 12.36 AM
root / 996
0644
searchbase.py
7.36 KB
18 Apr 2024 12.36 AM
root / 996
0644
searchengine.py
7.297 KB
18 Apr 2024 12.36 AM
root / 996
0644
sidebar.py
13.267 KB
18 Apr 2024 12.36 AM
root / 996
0644
squeezer.py
12.539 KB
18 Apr 2024 12.36 AM
root / 996
0644
stackviewer.py
4.35 KB
18 Apr 2024 12.36 AM
root / 996
0644
statusbar.py
1.407 KB
18 Apr 2024 12.36 AM
root / 996
0644
textview.py
6.653 KB
18 Apr 2024 12.36 AM
root / 996
0644
tooltip.py
6.411 KB
18 Apr 2024 12.36 AM
root / 996
0644
tree.py
15.974 KB
18 Apr 2024 12.36 AM
root / 996
0644
undo.py
10.787 KB
18 Apr 2024 12.36 AM
root / 996
0644
window.py
2.555 KB
18 Apr 2024 12.36 AM
root / 996
0644
zoomheight.py
4.104 KB
18 Apr 2024 12.36 AM
root / 996
0644
zzdummy.py
0.938 KB
18 Apr 2024 12.36 AM
root / 996
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF