~gael-varoquaux/ipython/ipython-sync-frontend

« back to all changes in this revision

Viewing changes to IPython/frontend/wx/console_widget.py

  • Committer: Gael Varoquaux
  • Date: 2009-05-16 13:08:31 UTC
  • Revision ID: gael.varoquaux@normalesup.org-20090516130831-71f8tq8ju1kxykpr
BUG: Make the frontend compatible with wxPython 2.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
447
447
        #  different callbacks share local variables?
448
448
 
449
449
        # Intercept some specific keys.
450
 
        if event.KeyCode == ord('L') and event.ControlDown() :
 
450
        key_code = event.GetKeyCode()
 
451
        if key_code == ord('L') and event.ControlDown() :
451
452
            self.scroll_to_bottom()
452
 
        elif event.KeyCode == ord('K') and event.ControlDown() :
 
453
        elif key_code == ord('K') and event.ControlDown() :
453
454
            self.input_buffer = ''
454
 
        elif event.KeyCode == ord('A') and event.ControlDown() :
 
455
        elif key_code == ord('A') and event.ControlDown() :
455
456
            self.GotoPos(self.GetLength())
456
457
            self.SetSelectionStart(self.current_prompt_pos)
457
458
            self.SetSelectionEnd(self.GetCurrentPos())
458
459
            catched = True
459
 
        elif event.KeyCode == ord('E') and event.ControlDown() :
 
460
        elif key_code == ord('E') and event.ControlDown() :
460
461
            self.GotoPos(self.GetLength())
461
462
            catched = True
462
 
        elif event.KeyCode == wx.WXK_PAGEUP:
 
463
        elif key_code == wx.WXK_PAGEUP:
463
464
            self.ScrollPages(-1)
464
 
        elif event.KeyCode == wx.WXK_PAGEDOWN:
 
465
        elif key_code == wx.WXK_PAGEDOWN:
465
466
            self.ScrollPages(1)
466
 
        elif event.KeyCode == wx.WXK_HOME:
467
 
            self.GotoPos(self.GetLength())
468
 
        elif event.KeyCode == wx.WXK_END:
469
 
            self.GotoPos(self.GetLength())
470
 
        elif event.KeyCode == wx.WXK_UP and event.ShiftDown():
 
467
        elif key_code == wx.WXK_HOME:
 
468
            self.GotoPos(self.GetLength())
 
469
        elif key_code == wx.WXK_END:
 
470
            self.GotoPos(self.GetLength())
 
471
        elif key_code == wx.WXK_UP and event.ShiftDown():
471
472
            self.ScrollLines(-1)
472
 
        elif event.KeyCode == wx.WXK_DOWN and event.ShiftDown():
 
473
        elif key_code == wx.WXK_DOWN and event.ShiftDown():
473
474
            self.ScrollLines(1)
474
475
        else:
475
476
            catched = False
477
478
        if self.AutoCompActive():
478
479
            event.Skip()
479
480
        else:
480
 
            if event.KeyCode in (13, wx.WXK_NUMPAD_ENTER) and \
481
 
                                event.Modifiers in (wx.MOD_NONE, wx.MOD_WIN,
482
 
                                                    wx.MOD_SHIFT):
 
481
            if key_code in (13, wx.WXK_NUMPAD_ENTER):
 
482
                # XXX: not catching modifiers, to be wx2.6-compatible
483
483
                catched = True
484
484
                if not self.enter_catched:
485
485
                    self.CallTipCancel()
486
 
                    if event.Modifiers == wx.MOD_SHIFT:
 
486
                    if event.ShiftDown():
487
487
                        # Try to force execution
488
488
                        self.GotoPos(self.GetLength())
489
489
                        self.write('\n' + self.continuation_prompt(), 
493
493
                        self._on_enter()
494
494
                    self.enter_catched = True
495
495
 
496
 
            elif event.KeyCode == wx.WXK_HOME:
497
 
                if event.Modifiers in (wx.MOD_NONE, wx.MOD_WIN):
 
496
            elif key_code == wx.WXK_HOME:
 
497
                if not event.ShiftDown():
498
498
                    self.GotoPos(self.current_prompt_pos)
499
499
                    catched = True
500
 
 
501
 
                elif event.Modifiers == wx.MOD_SHIFT:
 
500
                else:
502
501
                    # FIXME: This behavior is not ideal: if the selection
503
502
                    # is already started, it will jump.
504
503
                    self.SetSelectionStart(self.current_prompt_pos) 
505
504
                    self.SetSelectionEnd(self.GetCurrentPos())
506
505
                    catched = True
507
506
 
508
 
            elif event.KeyCode == wx.WXK_UP:
 
507
            elif key_code == wx.WXK_UP:
509
508
                if self.GetCurrentLine() > self.current_prompt_line:
510
509
                    if self.GetCurrentLine() == self.current_prompt_line + 1 \
511
510
                            and self.GetColumn(self.GetCurrentPos()) < \
515
514
                        event.Skip()
516
515
                catched = True
517
516
 
518
 
            elif event.KeyCode in (wx.WXK_LEFT, wx.WXK_BACK):
 
517
            elif key_code in (wx.WXK_LEFT, wx.WXK_BACK):
519
518
                if not self._keep_cursor_in_buffer(self.GetCurrentPos() - 1):
520
519
                    event.Skip()
521
520
                catched = True
522
521
 
523
 
            elif event.KeyCode == wx.WXK_RIGHT:
 
522
            elif key_code == wx.WXK_RIGHT:
524
523
                if not self._keep_cursor_in_buffer(self.GetCurrentPos() + 1):
525
524
                    event.Skip()
526
525
                catched = True
527
526
 
528
527
 
529
 
            elif event.KeyCode == wx.WXK_DELETE:
 
528
            elif key_code == wx.WXK_DELETE:
530
529
                if not self._keep_cursor_in_buffer(self.GetCurrentPos() - 1):
531
530
                    event.Skip()
532
531
                catched = True
535
534
                # Put the cursor back in the edit region
536
535
                if not self._keep_cursor_in_buffer():
537
536
                    if not (self.GetCurrentPos() == self.GetLength()
538
 
                                and event.KeyCode == wx.WXK_DELETE):
 
537
                                and key_code == wx.WXK_DELETE):
539
538
                        event.Skip()
540
539
                    catched = True
541
540