1:45 PM 11/12/2025 ���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!
Warning: Undefined variable $authorization in C:\xampp\htdocs\demo\fi.php on line 57

Warning: Undefined variable $translation in C:\xampp\htdocs\demo\fi.php on line 118

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\demo\fi.php on line 119

Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\xampp\htdocs\demo\fi.php on line 120

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 247

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 248

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 249

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 251

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 252
"""Test tooltip, coverage 100%. Coverage is 100% after excluding 6 lines with "# pragma: no cover". They involve TclErrors that either should or should not happen in a particular situation, and which are 'pass'ed if they do. """ from idlelib.tooltip import TooltipBase, Hovertip from test.support import requires requires('gui') from functools import wraps import time from tkinter import Button, Tk, Toplevel import unittest def setUpModule(): global root root = Tk() def tearDownModule(): global root root.update_idletasks() root.destroy() del root def add_call_counting(func): @wraps(func) def wrapped_func(*args, **kwargs): wrapped_func.call_args_list.append((args, kwargs)) return func(*args, **kwargs) wrapped_func.call_args_list = [] return wrapped_func def _make_top_and_button(testobj): global root top = Toplevel(root) testobj.addCleanup(top.destroy) top.title("Test tooltip") button = Button(top, text='ToolTip test button') button.pack() testobj.addCleanup(button.destroy) top.lift() return top, button class ToolTipBaseTest(unittest.TestCase): def setUp(self): self.top, self.button = _make_top_and_button(self) def test_base_class_is_unusable(self): global root top = Toplevel(root) self.addCleanup(top.destroy) button = Button(top, text='ToolTip test button') button.pack() self.addCleanup(button.destroy) with self.assertRaises(NotImplementedError): tooltip = TooltipBase(button) tooltip.showtip() class HovertipTest(unittest.TestCase): def setUp(self): self.top, self.button = _make_top_and_button(self) def is_tipwindow_shown(self, tooltip): return tooltip.tipwindow and tooltip.tipwindow.winfo_viewable() def test_showtip(self): tooltip = Hovertip(self.button, 'ToolTip text') self.addCleanup(tooltip.hidetip) self.assertFalse(self.is_tipwindow_shown(tooltip)) tooltip.showtip() self.assertTrue(self.is_tipwindow_shown(tooltip)) def test_showtip_twice(self): tooltip = Hovertip(self.button, 'ToolTip text') self.addCleanup(tooltip.hidetip) self.assertFalse(self.is_tipwindow_shown(tooltip)) tooltip.showtip() self.assertTrue(self.is_tipwindow_shown(tooltip)) orig_tipwindow = tooltip.tipwindow tooltip.showtip() self.assertTrue(self.is_tipwindow_shown(tooltip)) self.assertIs(tooltip.tipwindow, orig_tipwindow) def test_hidetip(self): tooltip = Hovertip(self.button, 'ToolTip text') self.addCleanup(tooltip.hidetip) tooltip.showtip() tooltip.hidetip() self.assertFalse(self.is_tipwindow_shown(tooltip)) def test_showtip_on_mouse_enter_no_delay(self): tooltip = Hovertip(self.button, 'ToolTip text', hover_delay=None) self.addCleanup(tooltip.hidetip) tooltip.showtip = add_call_counting(tooltip.showtip) root.update() self.assertFalse(self.is_tipwindow_shown(tooltip)) self.button.event_generate('', x=0, y=0) root.update() self.assertTrue(self.is_tipwindow_shown(tooltip)) self.assertGreater(len(tooltip.showtip.call_args_list), 0) def test_hover_with_delay(self): # Run multiple tests requiring an actual delay simultaneously. # Test #1: A hover tip with a non-zero delay appears after the delay. tooltip1 = Hovertip(self.button, 'ToolTip text', hover_delay=100) self.addCleanup(tooltip1.hidetip) tooltip1.showtip = add_call_counting(tooltip1.showtip) root.update() self.assertFalse(self.is_tipwindow_shown(tooltip1)) self.button.event_generate('', x=0, y=0) root.update() self.assertFalse(self.is_tipwindow_shown(tooltip1)) # Test #2: A hover tip with a non-zero delay doesn't appear when # the mouse stops hovering over the base widget before the delay # expires. tooltip2 = Hovertip(self.button, 'ToolTip text', hover_delay=100) self.addCleanup(tooltip2.hidetip) tooltip2.showtip = add_call_counting(tooltip2.showtip) root.update() self.button.event_generate('', x=0, y=0) root.update() self.button.event_generate('', x=0, y=0) root.update() time.sleep(0.15) root.update() # Test #1 assertions. self.assertTrue(self.is_tipwindow_shown(tooltip1)) self.assertGreater(len(tooltip1.showtip.call_args_list), 0) # Test #2 assertions. self.assertFalse(self.is_tipwindow_shown(tooltip2)) self.assertEqual(tooltip2.showtip.call_args_list, []) def test_hidetip_on_mouse_leave(self): tooltip = Hovertip(self.button, 'ToolTip text', hover_delay=None) self.addCleanup(tooltip.hidetip) tooltip.showtip = add_call_counting(tooltip.showtip) root.update() self.button.event_generate('', x=0, y=0) root.update() self.button.event_generate('', x=0, y=0) root.update() self.assertFalse(self.is_tipwindow_shown(tooltip)) self.assertGreater(len(tooltip.showtip.call_args_list), 0) if __name__ == '__main__': unittest.main(verbosity=2)