import gedit
import gtk
import datetime


menu_str = """
<ui>
  <menubar name="MenuBar">
    <menu name="EditMenu" action="Edit">
      <placeholder name="EditOps_3">
        <separator name="InsertTimestampSep1"/>
        <menuitem name="InsertTimestamp" action="InsertTimestamp"/>
      </placeholder>
    </menu>
  </menubar>
</ui>
"""

class InsertTimestampPlugin(gedit.Plugin):
  def __init__(self):
    gedit.Plugin.__init__(self)

  def insert_datetime(self, action, window):
    doc  = window.get_active_document()
    doc.begin_user_action()
    now = datetime.datetime.now();
    doc.insert_at_cursor(now.strftime("%A %B %d, %Y - %I:%M:%S %p"))
    doc.end_user_action()

  def activate(self, window):
    actions = [
      ('InsertTimestamp', None, 'Insert Timestamp', '<Shift><Control>t', "Insert Timestamp", self.insert_datetime)
    ]

    self._action_group = gtk.ActionGroup("InsertTimestampPluginActions")
    self._action_group.add_actions(actions, window)
    manager = window.get_ui_manager()
    manager.insert_action_group(self._action_group, -1)
    self._ui_id = manager.add_ui_from_string(menu_str)
   
  def deactivate(self, window):
    manager = window.get_ui_manager()
    manager.remove_ui(self._ui_id)
    manager.remove_action_group(self._action_group)
    self._action_group = None
    self._ui_id = None


  def update_ui(self, window):
    self._action_group.set_sensitive(bool(view and view.get_editable()))
    
    
    
    
    
