--- /dev/null
+#appModules/mirc.py\r
+#A part of NonVisual Desktop Access (NVDA)\r
+#This file is covered by the GNU General Public License.\r
+#See the file COPYING for more details.\r
+#Copyright (C) 2010 James Teh <jamie@jantrid.net>\r
+\r
+"""App module for mIRC\r
+"""\r
+\r
+import controlTypes\r
+from NVDAObjects.window import Window, DisplayModelLiveText\r
+from NVDAObjects.IAccessible import StaticText\r
+from appModules import _default\r
+\r
+class Input(Window):\r
+\r
+ def event_gainFocus(self):\r
+ super(Input, self).event_gainFocus()\r
+ try:\r
+ output = self.parent.parent.lastChild.firstChild\r
+ except AttributeError:\r
+ output = None\r
+ if isinstance(output, DisplayModelLiveText):\r
+ output.startMonitoring()\r
+ self._output = output\r
+ else:\r
+ self._output = None\r
+\r
+ def event_loseFocus(self):\r
+ if self._output:\r
+ self._output.stopMonitoring()\r
+\r
+class AppModule(_default.AppModule):\r
+\r
+ def chooseNVDAObjectOverlayClasses(self, obj, clsList):\r
+ if obj.role == controlTypes.ROLE_WINDOW:\r
+ return\r
+ if obj.windowClassName == "Static" and obj.windowControlID == 32918:\r
+ clsList.remove(StaticText)\r
+ clsList.insert(0, DisplayModelLiveText)\r
+ elif obj.windowClassName == "RichEdit20W" and obj.windowControlID == 32921:\r
+ clsList.insert(0, Input)\r