home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / gedit-2 / plugins / snippets / WindowHelper.pyc (.txt) < prev   
Encoding:
Python Compiled Bytecode  |  2009-04-20  |  4.8 KB  |  131 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import re
  5. import os
  6. import gettext
  7. import gtk
  8. from gtk import gdk
  9. import gedit
  10. from Document import Document
  11. from Library import Library
  12.  
  13. class WindowHelper:
  14.     
  15.     def __init__(self, plugin):
  16.         self.plugin = plugin
  17.         self.current_controller = None
  18.         self.current_language = None
  19.         self.signal_ids = { }
  20.  
  21.     
  22.     def run(self, window):
  23.         self.window = window
  24.         self.insert_menu()
  25.         self.accel_group = Library().get_accel_group(None)
  26.         window.add_accel_group(self.accel_group)
  27.         window.connect('tab-added', self.on_tab_added)
  28.         for view in self.window.get_views():
  29.             if isinstance(view, gedit.View) and not self.has_controller(view):
  30.                 view._snippet_controller = Document(self, view)
  31.                 continue
  32.         
  33.         self.update()
  34.  
  35.     
  36.     def stop(self):
  37.         self.window.remove_accel_group(self.accel_group)
  38.         self.accel_group = None
  39.         self.remove_menu()
  40.         for view in self.window.get_views():
  41.             if isinstance(view, gedit.View) and self.has_controller(view):
  42.                 view._snippet_controller.stop()
  43.                 view._snippet_controller = None
  44.                 continue
  45.         
  46.         self.window = None
  47.         self.plugin = None
  48.  
  49.     
  50.     def insert_menu(self):
  51.         manager = self.window.get_ui_manager()
  52.         self.action_group = gtk.ActionGroup('GeditSnippetPluginActions')
  53.         self.action_group.set_translation_domain('gedit')
  54.         self.action_group.add_actions([
  55.             ('ManageSnippets', None, _('Manage _Snippets...'), None, _('Manage snippets'), self.on_action_snippets_activate)])
  56.         self.merge_id = manager.new_merge_id()
  57.         manager.insert_action_group(self.action_group, -1)
  58.         manager.add_ui(self.merge_id, '/MenuBar/ToolsMenu/ToolsOps_5', 'ManageSnippets', 'ManageSnippets', gtk.UI_MANAGER_MENUITEM, False)
  59.  
  60.     
  61.     def remove_menu(self):
  62.         manager = self.window.get_ui_manager()
  63.         manager.remove_ui(self.merge_id)
  64.         manager.remove_action_group(self.action_group)
  65.         self.action_group = None
  66.  
  67.     
  68.     def find_snippet(self, snippets, tag):
  69.         result = []
  70.         for snippet in snippets:
  71.             if Snippet(snippet)['tag'] == tag:
  72.                 result.append(snippet)
  73.                 continue
  74.         
  75.         return result
  76.  
  77.     
  78.     def has_controller(self, view):
  79.         if hasattr(view, '_snippet_controller'):
  80.             pass
  81.         return view._snippet_controller
  82.  
  83.     
  84.     def update_language(self):
  85.         if self.current_language:
  86.             accel_group = Library().get_accel_group(self.current_language)
  87.             self.window.remove_accel_group(accel_group)
  88.         
  89.         if self.current_controller:
  90.             self.current_language = self.current_controller.language_id
  91.             if self.current_language != None:
  92.                 accel_group = Library().get_accel_group(self.current_language)
  93.                 self.window.add_accel_group(accel_group)
  94.             
  95.         else:
  96.             self.current_language = None
  97.  
  98.     
  99.     def language_changed(self, controller):
  100.         if controller == self.current_controller:
  101.             self.update_language()
  102.         
  103.  
  104.     
  105.     def update(self):
  106.         view = self.window.get_active_view()
  107.         if not view or not self.has_controller(view):
  108.             return None
  109.         controller = view._snippet_controller
  110.         if controller != self.current_controller:
  111.             self.current_controller = controller
  112.             self.update_language()
  113.         
  114.  
  115.     
  116.     def on_tab_added(self, window, tab):
  117.         view = tab.get_view()
  118.         if isinstance(view, gedit.View) and not self.has_controller(view):
  119.             view._snippet_controller = Document(self, view)
  120.         
  121.  
  122.     
  123.     def on_action_snippets_activate(self, item):
  124.         self.plugin.create_configure_dialog()
  125.  
  126.     
  127.     def accelerator_activated(self, keyval, mod):
  128.         return self.current_controller.accelerator_activate(keyval, mod)
  129.  
  130.  
  131.