Changeset 202

Show
Ignore:
Timestamp:
03/17/2008 11:50:41 AM (10 months ago)
Author:
funkiedamouse
Message:

Changed 'my' to 'self' for all class methods.

Location:
trunk
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • trunk/examples/plpwm.py

    r201 r202  
    8787 
    8888class WMConfig: 
    89     def __wm_init__(my): 
     89    def __wm_init__(self): 
    9090        "install the panes key map, menus, and try to restore my config." 
    9191 
    92         my.panekeys = PaneKeys(my) 
    93         auto_restore(my, my.panekeys.menus.find('paneconfigmenus')) 
     92        self.panekeys = PaneKeys(self) 
     93        auto_restore(self, self.panekeys.menus.find('paneconfigmenus')) 
    9494 
    9595 
     
    105105    panes_maxsize_gravity = X.NorthWestGravity 
    106106 
    107     def __wm_screen_resize__(my): 
     107    def __wm_screen_resize__(self): 
    108108        "install the panes key map, menus, and try to restore my config." 
    109109 
    110         auto_restore(my, my.panekeys.menus.find('paneconfigmenus')) 
     110        auto_restore(self, self.panekeys.menus.find('paneconfigmenus')) 
    111111        
    112112 
     
    127127    menu_file = os.path.expanduser('~/.plpwmrc.xml') 
    128128 
    129     def __init__(my, obj): 
    130         keys.KeyHandler.__init__(my, obj) 
    131         my.menus = load_menus(my.menu_file) 
     129    def __init__(self, obj): 
     130        keys.KeyHandler.__init__(self, obj) 
     131        self.menus = load_menus(self.menu_file) 
    132132 
    133133    # Commands for navigating and manipulating panes 
    134     def C_0(my, event): 
     134    def C_0(self, event): 
    135135        "Go to the pane numbered by the keycode." 
    136136 
    137         my.wm.panes_goto(my.wm.display.keycode_to_keysym(event.detail, 0) - XK.XK_0) 
     137        self.wm.panes_goto(self.wm.display.keycode_to_keysym(event.detail, 0) - XK.XK_0) 
    138138 
    139139    C_1 = C_2 = C_3 = C_4 = C_5 = C_6 = C_7 = C_8 = C_9 = C_0 
    140140 
    141     def M1_Tab(my, event): my.wm.panes_next() 
    142     def S_M1_Tab(my, event): my.wm.panes_prev() 
    143  
    144     def M1_0(my, event): 
    145         pane = my.wm.panes_list[my.wm.panes_current] 
     141    def M1_Tab(self, event): self.wm.panes_next() 
     142    def S_M1_Tab(self, event): self.wm.panes_prev() 
     143 
     144    def M1_0(self, event): 
     145        pane = self.wm.panes_list[self.wm.panes_current] 
    146146        splitpane(pane, pane.horizontal_split, paneWindow) 
    147147 
    148     def S_M1_0(my, event): 
    149         pane = my.wm.panes_list[my.wm.panes_current] 
     148    def S_M1_0(self, event): 
     149        pane = self.wm.panes_list[self.wm.panes_current] 
    150150        splitpane(pane, pane.vertical_split, paneWindow) 
    151151 
    152     def M1_1(my, event): 
    153         my.wm.panes_list[my.wm.panes_current].maximize() 
    154  
    155     def M1_2(my, event): 
    156         split_pane(my.wm.display.keycode_to_keysym(event.detail, 0) - XK.XK_0, 
    157                    my.wm.panes_list[my.wm.panes_current].horizontal_split) 
     152    def M1_1(self, event): 
     153        self.wm.panes_list[self.wm.panes_current].maximize() 
     154 
     155    def M1_2(self, event): 
     156        split_pane(self.wm.display.keycode_to_keysym(event.detail, 0) - XK.XK_0, 
     157                   self.wm.panes_list[self.wm.panes_current].horizontal_split) 
    158158 
    159159    M1_3 = M1_4 = M1_5 = M1_6 = M1_7 = M1_8 = M1_9 = M1_2 
    160160 
    161     def S_M1_2(my, event): 
    162         split_pane(my.wm.display.keycode_to_keysym(event.detail, 0) - XK.XK_0, 
    163                    my.wm.panes_list[my.wm.panes_current].vertical_split) 
     161    def S_M1_2(self, event): 
     162        split_pane(self.wm.display.keycode_to_keysym(event.detail, 0) - XK.XK_0, 
     163                   self.wm.panes_list[self.wm.panes_current].vertical_split) 
    164164 
    165165    S_M1_3 = S_M1_4 = S_M1_5 = S_M1_6 = S_M1_7 = S_M1_8 = S_M1_9 = S_M1_2 
    166166 
    167     def M1_exclam(my, event): 
    168         runcommand(my.wm.panes_list[my.wm.panes_current], paneWindow) 
    169  
    170     def M1_equal(my, event): 
    171         numberpane(my.wm.panes_list[my.wm.panes_current], paneWindow) 
    172  
    173     def M1_minus(my, event): 
     167    def M1_exclam(self, event): 
     168        runcommand(self.wm.panes_list[self.wm.panes_current], paneWindow) 
     169 
     170    def M1_equal(self, event): 
     171        numberpane(self.wm.panes_list[self.wm.panes_current], paneWindow) 
     172 
     173    def M1_minus(self, event): 
    174174        """Close all the internal windows. Untested""" 
    175175 
    176         for s in my.wm.screens: 
     176        for s in self.wm.screens: 
    177177            for w in s.windows: 
    178                 if my.wm.is_internal_window(w): 
     178                if self.wm.is_internal_window(w): 
    179179                    w.destroy() 
    180180 
    181     def M1_quoteright(my, event): 
    182         pullwindow(my.wm.panes_list[my.wm.panes_current], paneWindow) 
    183  
    184     def M1_quotedbl(my, event): 
    185         gotowindow(my.wm.panes_list[my.wm.panes_current], screenWindow) 
    186  
    187     def M1_space(my, event): 
    188         my.wm.panes_list[my.wm.panes_current].prev_window() 
    189  
    190     def S_M1_space(my, event): 
    191         my.wm.panes_list[my.wm.panes_current].next_window() 
    192  
    193     def _getapp(my, node): 
    194         getapp(my.wm.panes_list[my.wm.panes_current], node.get('title'), 
     181    def M1_quoteright(self, event): 
     182        pullwindow(self.wm.panes_list[self.wm.panes_current], paneWindow) 
     183 
     184    def M1_quotedbl(self, event): 
     185        gotowindow(self.wm.panes_list[self.wm.panes_current], screenWindow) 
     186 
     187    def M1_space(self, event): 
     188        self.wm.panes_list[self.wm.panes_current].prev_window() 
     189 
     190    def S_M1_space(self, event): 
     191        self.wm.panes_list[self.wm.panes_current].next_window() 
     192 
     193    def _getapp(self, node): 
     194        getapp(self.wm.panes_list[self.wm.panes_current], node.get('title'), 
    195195               node.get('command')) 
    196196 
    197     def M1_a(my, event): 
    198         view_menu(my.wm.panes_list[my.wm.panes_current], 
    199                   XML_controller(my.menus.find('functionmenu'), 
    200                                  dict(getapp=my._getapp))) 
    201  
    202     def M1_A(my, event): 
    203         def run(node): my.wm.system('%s &' % node.get('command')) 
    204         view_menu(my.wm.panes_list[my.wm.panes_current], 
    205                   XML_controller(my.menus.find('namemenu'), 
    206                                  dict(getapp=my._getapp, run=run))) 
    207  
    208     def M1_c(my, event): 
    209         my.wm.panes_list[my.wm.panes_current].window.delete(1) 
    210  
    211     def M1_l(my, event): 
    212         my.wm.system('xscreensaver-command -activate') 
    213  
    214     def M1_i(my, event): 
    215         windowmenu(my.wm.panes_list[my.wm.panes_current], cfilter.iconified) 
    216  
    217     def M1_I(my, event): 
    218         my.wm.inspect_enable() 
    219         my.wm.system('xterm -title Inspector -e inspect_plwm &') 
    220  
    221     def M1_k(my, event): 
    222         my.wm.panes_list[my.wm.panes_current].window.delete(1) 
    223  
    224     def M1_K(my, event): 
    225         my.wm.panes_list[my.wm.panes_current].window.destroy() 
    226  
    227     def M1_m(my, event): 
     197    def M1_a(self, event): 
     198        view_menu(self.wm.panes_list[self.wm.panes_current], 
     199                  XML_controller(self.menus.find('functionmenu'), 
     200                                 dict(getapp=self._getapp))) 
     201 
     202    def M1_A(self, event): 
     203        def run(node): self.wm.system('%s &' % node.get('command')) 
     204        view_menu(self.wm.panes_list[self.wm.panes_current], 
     205                  XML_controller(self.menus.find('namemenu'), 
     206                                 dict(getapp=self._getapp, run=run))) 
     207 
     208    def M1_c(self, event): 
     209        self.wm.panes_list[self.wm.panes_current].window.delete(1) 
     210 
     211    def M1_l(self, event): 
     212        self.wm.system('xscreensaver-command -activate') 
     213 
     214    def M1_i(self, event): 
     215        windowmenu(self.wm.panes_list[self.wm.panes_current], cfilter.iconified) 
     216 
     217    def M1_I(self, event): 
     218        self.wm.inspect_enable() 
     219        self.wm.system('xterm -title Inspector -e inspect_plwm &') 
     220 
     221    def M1_k(self, event): 
     222        self.wm.panes_list[self.wm.panes_current].window.delete(1) 
     223 
     224    def M1_K(self, event): 
     225        self.wm.panes_list[self.wm.panes_current].window.destroy() 
     226 
     227    def M1_m(self, event): 
    228228        def itunes(node): os.system('itunes "%s" &' % node.get('command')) 
    229         view_menu(my.wm.panes_list[my.wm.panes_current], 
    230                   XML_controller(my.menus.find('itunesmenu'), 
     229        view_menu(self.wm.panes_list[self.wm.panes_current], 
     230                  XML_controller(self.menus.find('itunesmenu'), 
    231231                                 dict(itunes=itunes))) 
    232232 
    233     def M1_n(my, event): 
    234         pane = my.wm.panes_list[my.wm.panes_current] 
     233    def M1_n(self, event): 
     234        pane = self.wm.panes_list[self.wm.panes_current] 
    235235        width, height = pane.screen.message_make("Current pane %d" % \ 
    236                                                  my.wm.panes_current) 
     236                                                 self.wm.panes_current) 
    237237        pane.screen.message_display((pane.width - width) / 2 + pane.x, 
    238238                                   (pane.height - height) / 2 + pane.y) 
    239239 
    240     def M1_p(my, event): 
    241         panesmenu(my.wm.current_screen) 
    242  
    243     def M1_r(my, event): 
    244         my.wm.panes_list[my.wm.panes_current].force_window() 
    245  
    246     def M1_R(my, event): 
     240    def M1_p(self, event): 
     241        panesmenu(self.wm.current_screen) 
     242 
     243    def M1_r(self, event): 
     244        self.wm.panes_list[self.wm.panes_current].force_window() 
     245 
     246    def M1_R(self, event): 
    247247        def reload_menus(): 
    248             my.menus = load_menus(my.menu_file) 
    249             auto_restore(my.wm, my.menus.find('paneconfigmenus')) 
     248            self.menus = load_menus(self.menu_file) 
     249            auto_restore(self.wm, self.menus.find('paneconfigmenus')) 
    250250 
    251251        def restore_menu(wm): 
    252             view_menu(pane, XML_controller(my.menus.find('paneconfigmenus'), 
     252            view_menu(pane, XML_controller(self.menus.find('paneconfigmenus'), 
    253253                                           dict(paneconfig=lambda x: restore(wm, x)))) 
    254254 
    255         pane = my.wm.panes_list[my.wm.panes_current] 
    256         codemenu(pane, {'1: Restore': (restore_menu, (my.wm,)), 
     255        pane = self.wm.panes_list[self.wm.panes_current] 
     256        codemenu(pane, {'1: Restore': (restore_menu, (self.wm,)), 
    257257                        '2: Reload': (reload_menus, ()), 
    258258                        '3: Restart': (os.execvp, (sys.executable, 
    259259                                                   [sys.executable] + sys.argv)), 
    260                         '4: Quit': (my.wm.quit, ()) 
     260                        '4: Quit': (self.wm.quit, ()) 
    261261                        }) 
    262262 
    263     def M1_s(my, event): 
     263    def M1_s(self, event): 
    264264        def dillo(url): 
    265             my.wm.system("dillo '%s' &" % url) 
     265            self.wm.system("dillo '%s' &" % url) 
    266266 
    267267        def dowebsearch(node): 
     
    272272                websearch(pane, node.get('label'), paneWindow, node.get('url')) 
    273273 
    274         pane = my.wm.panes_list[my.wm.panes_current] 
    275         menu = XML_controller(my.menus.find('websearches'), dict(search=dowebsearch)) 
     274        pane = self.wm.panes_list[self.wm.panes_current] 
     275        menu = XML_controller(self.menus.find('websearches'), dict(search=dowebsearch)) 
    276276        add_keys(menu) 
    277277        view_menu(pane, menu) 
    278278 
    279     def M1_S(my, event): 
    280         my.wm.panes_save() 
    281         pane = my.wm.panes_list[my.wm.panes_current] 
     279    def M1_S(self, event): 
     280        self.wm.panes_save() 
     281        pane = self.wm.panes_list[self.wm.panes_current] 
    282282        width, height = pane.screen.message_make("Saved panes configuration") 
    283283        pane.screen.message_display((pane.screen.root_width - width) 
     
    286286                                     / 2 + pane.screen.root_y) 
    287287 
    288     def M1_w(my, event): 
    289         windowmenu(my.wm.panes_list[my.wm.panes_current]) 
    290  
    291     def M1_W(my, event): 
    292         pane = my.wm.panes_list[my.wm.panes_current] 
     288    def M1_w(self, event): 
     289        windowmenu(self.wm.panes_list[self.wm.panes_current]) 
     290 
     291    def M1_W(self, event): 
     292        pane = self.wm.panes_list[self.wm.panes_current] 
    293293        windowmenu(pane, panes.panefilter(pane)) 
    294294 
    295     def M1_x(my, event): 
    296         my.wm.panes_list[my.wm.panes_current].iconify_window() 
     295    def M1_x(self, event): 
     296        self.wm.panes_list[self.wm.panes_current].iconify_window() 
    297297 
    298298 
  • trunk/plwm/input.py

    r201 r202  
    5454    timeout = None 
    5555 
    56     def __init__(my, handler, display, history): 
     56    def __init__(self, handler, display, history): 
    5757        """Init with a handler and display. 
    5858 
     
    6262        history is a list of strings we let the user scroll through.""" 
    6363 
    64         KeyGrabKeyboard.__init__(my, handler, X.CurrentTime) 
    65         my.display = display 
    66         my.handler = handler 
    67         my.history = history 
    68         my.history_index = len(history) 
    69         my.left = "" 
    70         my.right = "" 
     64        KeyGrabKeyboard.__init__(self, handler, X.CurrentTime) 
     65        self.display = display 
     66        self.handler = handler 
     67        self.history = history 
     68        self.history_index = len(history) 
     69        self.left = "" 
     70        self.right = "" 
    7171        if isinstance(handler, Window): 
    72             my.selection = my.wm.display.intern_atom("SELECTION") 
    73             my.wm.dispatch.add_handler(X.SelectionNotify, 
    74                                        my._paste_selection, handlerid = my) 
    75         display.show(my.left, my.right) 
    76  
    77     def _paste_selection(my, event): 
     72            self.selection = self.wm.display.intern_atom("SELECTION") 
     73            self.wm.dispatch.add_handler(X.SelectionNotify, 
     74                                       self._paste_selection, handlerid = self) 
     75        display.show(self.left, self.right) 
     76 
     77    def _paste_selection(self, event): 
    7878        if event.property: 
    79             sel = my.handler.window.get_full_property(my.selection, Xatom.STRING) 
     79            sel = self.handler.window.get_full_property(self.selection, Xatom.STRING) 
    8080            if sel and sel.format == 8: 
    81                 my.left = my.left + sel.value 
    82                 my.display.show(my.left, my.right) 
    83  
    84     def _paste(my, event): 
    85         if isinstance(my.handler, Window): 
    86             my.handler.window.convert_selection(Xatom.PRIMARY, Xatom.STRING, 
    87                                                 my.selection, X.CurrentTime) 
    88  
    89     def _insert(my, event): 
     81                self.left = self.left + sel.value 
     82                self.display.show(self.left, self.right) 
     83 
     84    def _paste(self, event): 
     85        if isinstance(self.handler, Window): 
     86            self.handler.window.convert_selection(Xatom.PRIMARY, Xatom.STRING, 
     87                                                self.selection, X.CurrentTime) 
     88 
     89    def _insert(self, event): 
    9090        if event.type != X.KeyPress: return 
    91         sym = my.wm.display.keycode_to_keysym(event.detail, 
     91        sym = self.wm.display.keycode_to_keysym(event.detail, 
    9292                                                event.state & X.ShiftMask != 0) 
    93         chr = my.wm.display.lookup_string(sym) 
    94         if chr: my.left = my.left + chr 
    95         my.display.show(my.left, my.right) 
    96  
    97     def _forw(my, event): 
    98         if my.right: 
    99             my.left = my.left + my.right[0] 
    100             my.right = my.right[1:] 
    101         my.display.show(my.left, my.right) 
    102  
    103     def _back(my, event): 
    104         if my.left: 
    105             my.right = my.left[-1] + my.right 
    106             my.left = my.left[:-1] 
    107         my.display.show(my.left, my.right) 
    108  
    109     def _delforw(my, event): 
    110         if my.right: 
    111             my.right = my.right[1:] 
    112         my.display.show(my.left, my.right) 
    113  
    114     def _delback(my, event): 
    115         if my.left: 
    116             my.left = my.left[:-1] 
    117         my.display.show(my.left, my.right) 
    118  
    119     def _deltoend(my, event): 
    120         my.right = "" 
    121         my.display.show(my.left, my.right) 
    122  
    123     def _end(my, event): 
    124         my.left = my.left + my.right 
    125         my.right = "" 
    126         my.display.show(my.left, my.right) 
    127  
    128     def _begin(my, event): 
    129         my.right = my.left + my.right 
    130         my.left = "" 
    131         my.display.show(my.left, my.right) 
    132  
    133     def _done(my, event): 
    134         res = my.left + my.right 
    135         my.history.append(res) 
    136         my.display.do(res) 
    137         my.wm.dispatch.remove_handler(my) 
    138         my._cleanup() 
    139  
    140     def _abort(my, event): 
    141         my.display.abort() 
    142         my.wm.dispatch.remove_handler(my) 
    143         my._cleanup() 
    144  
    145     def _history_up(my, event): 
    146         if len(my.history): 
    147             if my.history_index > 0: 
    148                 my.history_index -= 1 
    149                 my.left = my.history[my.history_index] 
    150                 my.right = "" 
    151                 my.display.show(my.left, my.right) 
    152  
    153     def _history_down(my, event): 
    154         if len(my.history): 
    155             if my.history_index <(len(my.history)-1): 
    156                 my.history_index += 1 
    157                 my.left = my.history[my.history_index] 
    158                 my.right = "" 
    159                 my.display.show(my.left, my.right) 
     93        chr = self.wm.display.lookup_string(sym) 
     94        if chr: self.left = self.left + chr 
     95        self.display.show(self.left, self.right) 
     96 
     97    def _forw(self, event): 
     98        if self.right: 
     99            self.left = self.left + self.right[0] 
     100            self.right = self.right[1:] 
     101        self.display.show(self.left, self.right) 
     102 
     103    def _back(self, event): 
     104        if self.left: 
     105            self.right = self.left[-1] + self.right 
     106            self.left = self.left[:-1] 
     107        self.display.show(self.left, self.right) 
     108 
     109    def _delforw(self, event): 
     110        if self.right: 
     111            self.right = self.right[1:] 
     112        self.display.show(self.left, self.right) 
     113 
     114    def _delback(self, event): 
     115        if self.left: 
     116            self.left = self.left[:-1] 
     117        self.display.show(self.left, self.right) 
     118 
     119    def _deltoend(self, event): 
     120        self.right = "" 
     121        self.display.show(self.left, self.right) 
     122 
     123    def _end(self, event): 
     124        self.left = self.left + self.right 
     125        self.right = "" 
     126        self.display.show(self.left, self.right) 
     127 
     128    def _begin(self, event): 
     129        self.right = self.left + self.right 
     130        self.left = "" 
     131        self.display.show(self.left, self.right) 
     132 
     133    def _done(self, event): 
     134        res = self.left + self.right 
     135        self.history.append(res) 
     136        self.display.do(res) 
     137        self.wm.dispatch.remove_handler(self) 
     138        self._cleanup() 
     139 
     140    def _abort(self, event): 
     141        self.display.abort() 
     142        self.wm.dispatch.remove_handler(self) 
     143        self._cleanup() 
     144 
     145    def _history_up(self, event): 
     146        if len(self.history): 
     147            if self.history_index > 0: 
     148                self.history_index -= 1 
     149                self.left = self.history[self.history_index] 
     150                self.right = "" 
     151                self.display.show(self.left, self.right) 
     152 
     153    def _history_down(self, event): 
     154        if len(self.history): 
     155            if self.history_index <(len(self.history)-1): 
     156                self.history_index += 1 
     157                self.left = self.history[self.history_index] 
     158                self.right = "" 
     159                self.display.show(self.left, self.right) 
    160160 
    161161allmap(InputKeyHandler, InputKeyHandler._insert) 
     
    171171    history = [] 
    172172 
    173     def __init__(my, prompt, screen, length=30): 
     173    def __init__(self, prompt, screen, length=30): 
    174174 
    175175        if not prompt: prompt = ' '        # We have problems if there's no prompt, so add one. 
    176         my.string = my.prompt = prompt 
    177         my.offset = len(my.prompt) 
    178         my.length = length + my.offset 
    179         my.start = 0 
    180         fg = screen.get_color(my.foreground) 
    181         bg = screen.get_color(my.background) 
    182         bc = screen.get_color(my.bordercolor) 
    183         font = screen.wm.get_font(my.fontname, 'fixed') 
     176        self.string = self.prompt = prompt 
     177        self.offset = len(self.prompt) 
     178        self.length = length + self.offset 
     179        self.start = 0 
     180        fg = screen.get_color(self.foreground) 
     181        bg = screen.get_color(self.background) 
     182        bc = screen.get_color(self.bordercolor) 
     183        font = screen.wm.get_font(self.fontname, 'fixed') 
    184184        size = font.query() 
    185         my.height = size.font_ascent + size.font_descent + 1 
    186         my.width = font.query_text_extents(prompt).overall_width + \ 
     185        self.height = size.font_ascent + size.font_descent + 1 
     186        self.width = font.query_text_extents(prompt).overall_width + \ 
    187187                   font.query_text_extents(length * 'm').overall_width 
    188         my.baseline = size.font_ascent + 1 
    189  
    190         window = screen.root.create_window(0, 0, my.width, my.height, 
    191                                            my.borderwidth, 
     188        self.baseline = size.font_ascent + 1 
     189 
     190        window = screen.root.create_window(0, 0, self.width, self.height, 
     191                                           self.borderwidth, 
    192192                                           X.CopyFromParent, X.InputOutput, 
    193193                                           X.CopyFromParent, 
     
    197197                                                         X.ExposureMask)) 
    198198 
    199         my.gc = window.create_gc(font = font, function = X.GXinvert, 
     199        self.gc = window.create_gc(font = font, function = X.GXinvert, 
    200200                                 foreground = fg, background = bg) 
    201201 
    202         my.font = font 
    203         my.window = screen.add_internal_window(window) 
    204         my.window.dispatch.add_handler(X.VisibilityNotify, my.raisewindow) 
    205         my.window.dispatch.add_handler(X.Expose, my.redraw) 
    206  
    207     def read(my, action, handlertype, x=0, y=0): 
     202        self.font = font 
     203        self.window = screen.add_internal_window(window) 
     204        self.window.dispatch.add_handler(X.VisibilityNotify, self.raisewindow) 
     205        self.window.dispatch.add_handler(X.Expose, self.redraw) 
     206 
     207    def read(self, action, handlertype, x=0, y=0): 
    208208        "Open the window at x, y, using handlertype, and doing action." 
    209209 
    210         my.action = action 
    211         x, y, width, height = my.window.keep_on_screen(x, y, my.width, my.height) 
    212         my.window.configure(x = x, y = y, width = width, height = height) 
    213         my.window.map() 
    214         my.window.get_focus(X.CurrentTime) 
    215         handlertype(my.window, my, my.history) 
    216  
    217     def raisewindow(my, event): 
    218         my.window.raisewindow() 
    219  
    220     def redraw(my, event = None): 
    221         length = len(my.string) 
    222  
    223         if my.offset < length: 
    224             wide = my.font.query_text_extents(my.string[my.offset]).overall_width 
     210        self.action = action 
     211        x, y, width, height = self.window.keep_on_screen(x, y, self.width, self.height) 
     212        self.window.configure(x = x, y = y, width = width, height = height) 
     213        self.window.map() 
     214        self.window.get_focus(X.CurrentTime) 
     215        handlertype(self.window, self, self.history) 
     216 
     217    def raisewindow(self, event): 
     218        self.window.raisewindow() 
     219 
     220    def redraw(self, event = None): 
     221        length = len(self.string) 
     222 
     223        if self.offset < length: 
     224            wide = self.font.query_text_extents(self.string[self.offset]).overall_width 
    225225        else: 
    226             wide = my.font.query_text_extents(' ').overall_width 
    227  
    228         if my.start >= my.offset: my.start = my.offset - 1 
    229         left = my.font.query_text_extents(my.string[my.start:my.offset]).overall_width 
    230  
    231         if left + wide >= my.width: 
    232             my.start = my.offset - my.length + 1 
    233             left = my.font.query_text_extents(my.string[my.start:my.offset]).overall_width 
    234  
    235         my.window.clear_area(width = my.width, height = my.height) 
    236         my.window.image_text(my.gc, 0, my.baseline, my.string[my.start:]) 
    237         my.window.fill_rectangle(my.gc, left, 0, wide, my.height) 
    238  
    239  
    240     def show(my, left, right): 
     226            wide = self.font.query_text_extents(' ').overall_width 
     227 
     228        if self.start >= self.offset: self.start = self.offset - 1 
     229        left = self.font.query_text_extents(self.string[self.start:self.offset]).overall_width 
     230 
     231        if left + wide >= self.width: 
     232            self.start = self.offset - self.length + 1 
     233            left = self.font.query_text_extents(self.string[self.start:self.offset]).overall_width 
     234 
     235        self.window.clear_area(width = self.width, height = self.height) 
     236        self.window.image_text(self.gc, 0, self.baseline, self.string[self.start:]) 
     237        self.window.fill_rectangle(self.gc, left, 0, wide, self.height) 
     238 
     239 
     240    def show(self, left, right): 
    241241        if left: 
    242             my.string = my.prompt + left 
     242            self.string = self.prompt + left 
    243243      &