Package Gnumed :: Package wxpython :: Module gmAbout
[frames] | no frames]

Source Code for Module Gnumed.wxpython.gmAbout

  1  # -*- coding: utf8 -*- 
  2  #==================================================================== 
  3  # About GNUmed 
  4  #==================================================================== 
  5  # $Source: /cvsroot/gnumed/gnumed/gnumed/client/wxpython/gmAbout.py,v $ 
  6  # $Id: gmAbout.py,v 1.34 2010/01/21 08:41:56 ncq Exp $ 
  7  __version__ = "$Revision: 1.34 $" 
  8  __author__ = "M.Bonert" 
  9  __license__ = "GPL" 
 10   
 11  import zlib, cPickle, sys 
 12   
 13   
 14  import wx 
 15   
 16   
 17  try: 
 18          _('dummy-no-need-to-translate-but-make-epydoc-happy') 
 19  except NameError: 
 20          _ = lambda x:x 
 21   
 22  ID_MENU = wx.NewId() 
 23  ID_EXIT = wx.NewId() 
 24  #==================================================================== 
25 -class ScrollTxtWin (wx.Window):
26 """ 27 Scrolling Text! 28 """ 29 30 # control parameters 31 __scroll_speed=.3 # pixels/milliseconds (?) 32 __delay=500 # milliseconds 33 name_list = [ 34 u'Dr Gerardo Arnaez', 35 u'Dr Hilmar Berger', 36 u'Michael Bonert', 37 u'Dr Elizabeth Dodd', 38 u'Dr David Guest', 39 u'Ian Haywood', 40 u'Dr Tony Lembke', 41 u'Dr Richard Terry', 42 u'Syan J Tan', 43 u'Andreas Tille', 44 u'Dr Carlos Moro', 45 u'Dr James Busser', 46 u'Dr Rogerio Luz', 47 u'Dr Sebastian Hilbert' 48 ] 49 50 # initializations 51 __scroll_ctr = +230 52 __name_ctr = 1 53 __delay_ctr = 1 54
55 - def __init__ (self, parent):
56 wx.Window.__init__(self, parent, -1, size=(230,20), style=wx.SUNKEN_BORDER) 57 self.SetBackgroundColour(wx.Colour(255, 255, 255)) 58 self.__delay_ctr_reset=self.__delay*self.__scroll_speed 59 60 self.moving_txt=wx.StaticText(self, -1, "", size=(230,20), style=wx.ALIGN_CENTRE | wx.ST_NO_AUTORESIZE) 61 self.moving_txt.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL)) 62 self.moving_txt.SetLabel(self.name_list[0]) 63 64 wx.EVT_TIMER(self, -1, self.OnTimer) 65 self.timer = wx.Timer(self, -1) 66 #self.timer.Start(self.__scroll_speed) 67 self.timer.Start(milliseconds = 1./self.__scroll_speed)
68
69 - def OnTimer(self, evt):
70 if(self.__scroll_ctr<-2 and self.__delay_ctr<self.__delay_ctr_reset): 71 # pause at centre 72 self.__delay_ctr=self.__delay_ctr+1 73 else: 74 self.__scroll_ctr=self.__scroll_ctr-1 75 self.moving_txt.MoveXY(self.__scroll_ctr, 0) 76 if(self.__scroll_ctr<-230): 77 # reset counters 78 self.__scroll_ctr=+230 79 self.__delay_ctr=1 80 81 # get next name in dict. 82 self.moving_txt.SetLabel(self.name_list[self.__name_ctr]) 83 self.__name_ctr=self.__name_ctr+1 84 if(self.__name_ctr>len(self.name_list)-1): 85 self.__name_ctr=0
86
87 -class AboutFrame (wx.Frame):
88 """ 89 About GNUmed 90 """ 91 92 icon_serpent='x\xdae\x8f\xb1\x0e\x83 \x10\x86w\x9f\xe2\x92\x1blb\xf2\x07\x96\xeaH:0\xd6\ 93 \xc1\x85\xd5\x98N5\xa5\xef?\xf5N\xd0\x8a\xdcA\xc2\xf7qw\x84\xdb\xfa\xb5\xcd\ 94 \xd4\xda;\xc9\x1a\xc8\xb6\xcd<\xb5\xa0\x85\x1e\xeb\xbc\xbc7b!\xf6\xdeHl\x1c\ 95 \x94\x073\xec<*\xf7\xbe\xf7\x99\x9d\xb21~\xe7.\xf5\x1f\x1c\xd3\xbdVlL\xc2\ 96 \xcf\xf8ye\xd0\x00\x90\x0etH \x84\x80B\xaa\x8a\x88\x85\xc4(U\x9d$\xfeR;\xc5J\ 97 \xa6\x01\xbbt9\xceR\xc8\x81e_$\x98\xb9\x9c\xa9\x8d,y\xa9t\xc8\xcf\x152\xe0x\ 98 \xe9$\xf5\x07\x95\x0cD\x95t:\xb1\x92\xae\x9cI\xa8~\x84\x1f\xe0\xa3ec' 99
100 - def __init__(self, parent, ID, title, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE, version='???'):
101 wx.Frame.__init__(self, parent, ID, title, pos, size, style) 102 103 icon = wx.EmptyIcon() 104 icon.CopyFromBitmap(wx.BitmapFromXPMData(cPickle.loads(zlib.decompress(self.icon_serpent)))) 105 self.SetIcon(icon) 106 107 box = wx.BoxSizer(wx.VERTICAL) 108 if wx.Platform == '__WXMAC__': 109 box.Add((0,0), 2) 110 else: 111 box.Add((0,0), 2) 112 intro_txt=wx.StaticText(self, -1, _("Monty the Serpent && the FSF Present")) 113 intro_txt.SetFont(wx.Font(10,wx.SWISS,wx.NORMAL,wx.NORMAL,False,'')) 114 box.Add(intro_txt, 0, wx.ALIGN_CENTRE) 115 if wx.Platform == '__WXMAC__': 116 box.Add((0,0), 3) 117 else: 118 box.Add((0,0), 3) 119 gm_txt=wx.StaticText(self, -1, "GNUmed") 120 gm_txt.SetFont(wx.Font(30, wx.SWISS, wx.NORMAL, wx.NORMAL)) 121 box.Add(gm_txt, 0, wx.ALIGN_CENTRE) 122 123 motto_txt=wx.StaticText(self, -1, _("Free eMedicine")) 124 motto_txt.SetFont(wx.Font(10,wx.SWISS,wx.NORMAL,wx.NORMAL,False,'')) 125 box.Add(motto_txt, 0, wx.ALIGN_CENTRE) 126 if wx.Platform == '__WXMAC__': 127 box.Add((0,0), 4) 128 else: 129 box.Add((0,0), 4) 130 ver_txt=wx.StaticText(self, -1, _("Version %s brought to you by") % version) 131 ver_txt.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL)) 132 box.Add(ver_txt, 0, wx.ALIGN_CENTRE) 133 134 admins_txt=wx.StaticText(self, -1, _("Drs Horst Herb && Karsten Hilbert")) 135 admins_txt.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL)) 136 box.Add(admins_txt, 0, wx.ALIGN_CENTRE) 137 138 self.win=ScrollTxtWin(self) 139 box.Add(self.win, 0, wx.ALIGN_CENTRE) 140 if wx.Platform == '__WXMAC__': 141 box.Add((0,0), 1) 142 else: 143 box.Add((0,0), 1) 144 info_txt=wx.StaticText(self, -1, _("Please visit http://www.gnumed.org")) 145 info_txt.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL)) 146 box.Add(info_txt, 0, wx.ALIGN_CENTRE) 147 if wx.Platform == '__WXMAC__': 148 box.Add((0,0), 1) 149 else: 150 box.Add((0,0), 1) 151 btn = wx.Button(self, ID_MENU , _("Close")) 152 box.Add(btn,0, wx.ALIGN_CENTRE) 153 if wx.Platform == '__WXMAC__': 154 box.Add((0,0), 1) 155 else: 156 box.Add((0,0), 1) 157 wx.EVT_BUTTON(btn, ID_MENU, self.OnClose) 158 159 self.SetAutoLayout(True) 160 self.SetSizer(box) 161 self.Layout()
162
163 - def OnClose (self, event):
164 self.win.timer.Stop () 165 self.Destroy ()
166 #====================================================================
167 -class cContributorsDlg(wx.Dialog):
168 # people who don't want to be listed here: 169 # ... 170 contributors = _( 171 'The following people kindly contributed to GNUmed.\n' 172 'Please write to <gnumed-devel@gnu.org> to have your\n' 173 'contribution duly recognized in this list or to have\n' 174 'your name removed from it for, say, privacy reasons.\n\n' 175 'Note that this list is sorted alphabetically by last\n' 176 'name, first name. If the only identifier is an email\n' 177 'address it is sorted under the first character of\n' 178 'the user name.\n' 179 '%s' 180 ) % u""" 181 == B =========================================== 182 183 James Busser, MD, GP 184 British Columbia 185 186 - test results handling 187 - documentation would be nothing without him 188 - encouragment 189 - testing on MacOSX 190 191 == F =========================================== 192 193 Joachim Fischer 194 GP Fischer + Lintz 195 Fachärzte Allgemeinmedizin 196 Wolfschlugen 197 198 - Karteieintragsarten passend für Deutschland 199 200 == H =========================================== 201 202 Sebastian Hilbert, MD 203 204 - packaging, PR 205 206 == L =========================================== 207 208 Steffi Leibner, Leipzig 209 210 - Testen, Fehlerberichte 211 - Dokumentenvorlage 212 213 Rogerio Luz, Brasil 214 215 - testing, bug reporting 216 - SOAP handling discussion 217 - providing LaTeX form templates 218 219 == N =========================================== 220 221 Clemens Nietfeld, Oldenburg 222 223 - Information zur Anbindung von DocConcept 224 225 == P =========================================== 226 227 Martin Preuss, Hamburg 228 229 - Chipkartenansteuerung 230 231 == R =========================================== 232 233 Thomas Reus, Düsseldorf 234 235 - Testen, Fehlerberichte 236 - Dokumentenvorlage 237 238 == T =========================================== 239 240 Andreas Tille, Wernigerode 241 242 - Debian packages 243 - encouragement, wisdom 244 245 """ 246 #----------------------------------------------
247 - def __init__(self, *args, **kwargs):
248 wx.Dialog.__init__(self, *args, **kwargs) 249 contributor_listing = wx.TextCtrl ( 250 self, 251 -1, 252 cContributorsDlg.contributors, 253 style = wx.TE_MULTILINE | wx.TE_READONLY, 254 size = wx.Size(500, 300) 255 ) 256 # contributor_listing.SetFont(wx.Font(12, wx.MODERN, wx.NORMAL, wx.NORMAL)) 257 # arrange widgets 258 szr_outer = wx.BoxSizer(wx.VERTICAL) 259 szr_outer.Add(contributor_listing, 1, wx.EXPAND, 0) 260 # and do layout 261 self.SetAutoLayout(1) 262 self.SetSizerAndFit(szr_outer) 263 szr_outer.SetSizeHints(self) 264 self.Layout()
265 #==================================================================== 266 # Main 267 #==================================================================== 268 if __name__ == '__main__': 269 # set up dummy app
270 - class TestApp (wx.App):
271 - def OnInit (self):
272 frame = AboutFrame(None, -1, u"About GNUmed", size=wx.Size(300, 250)) 273 frame.Show(1) 274 return 1
275 #--------------------- 276 if len(sys.argv) > 1 and sys.argv[1] == 'test': 277 app = TestApp() 278 app.MainLoop() 279 280 #------------------------------------------------------------ 281 # $Log: gmAbout.py,v $ 282 # Revision 1.34 2010/01/21 08:41:56 ncq 283 # - properly acknowledge Rogerio 284 # 285 # Revision 1.33 2010/01/13 21:51:00 ncq 286 # - adjust supporters 287 # 288 # Revision 1.32 2009/01/15 11:35:06 ncq 289 # - cleanup 290 # 291 # Revision 1.31 2008/09/09 20:18:06 ncq 292 # - cleanup 293 # 294 # Revision 1.30 2008/07/28 20:41:58 ncq 295 # - support version in about box 296 # 297 # Revision 1.29 2007/09/20 19:34:04 ncq 298 # - cleanup 299 # 300 # Revision 1.28 2007/09/10 12:35:08 ncq 301 # - make accessible to epydoc 302 # 303 # Revision 1.27 2007/08/29 14:37:00 ncq 304 # - add Clemens Nietfeld 305 # 306 # Revision 1.26 2007/08/20 14:22:24 ncq 307 # - add more helpful people 308 # 309 # Revision 1.25 2006/10/23 15:48:07 ncq 310 # - fix unicode/latin1 string issue 311 # 312 # Revision 1.24 2005/12/27 18:46:20 ncq 313 # - define _() 314 # 315 # Revision 1.23 2005/12/24 10:27:42 shilbert 316 # - gui fixes 317 # 318 # Revision 1.22 2005/11/27 14:29:27 shilbert 319 # - more wx24 --> wx26 cleanup 320 # 321 # Revision 1.21 2005/09/28 21:27:30 ncq 322 # - a lot of wx2.6-ification 323 # 324 # Revision 1.20 2005/09/28 15:57:47 ncq 325 # - a whole bunch of wx.Foo -> wx.Foo 326 # 327 # Revision 1.19 2005/09/27 20:44:58 ncq 328 # - wx.wx* -> wx.* 329 # 330 # Revision 1.18 2005/09/26 18:01:50 ncq 331 # - use proper way to import wx26 vs wx2.4 332 # - note: THIS WILL BREAK RUNNING THE CLIENT IN SOME PLACES 333 # - time for fixup 334 # 335 # Revision 1.17 2005/07/24 11:35:59 ncq 336 # - use robustified gmTimer.Start() interface 337 # 338 # Revision 1.16 2005/07/18 20:45:25 ncq 339 # - make contributors dialog slightly larger 340 # 341 # Revision 1.15 2005/07/11 16:16:21 ncq 342 # - display contributor dialog in a proper size 343 # 344 # Revision 1.14 2005/07/11 09:04:27 ncq 345 # - add contributors dialog 346 # 347 # Revision 1.13 2005/07/02 18:19:01 ncq 348 # - one more GnuMed -> GNUmed 349 # 350 # Revision 1.12 2005/06/30 10:05:47 cfmoro 351 # String corrections 352 # 353 # Revision 1.11 2005/06/21 04:57:12 rterry 354 # fix this to run under wxPython26 355 # -e.g incorrect sizer attributes 356 # 357 # Revision 1.10 2005/05/30 09:20:51 ncq 358 # - add Carlos Moro 359 # 360 # Revision 1.9 2004/07/18 20:30:53 ncq 361 # - wxPython.true/false -> Python.True/False as Python tells us to do 362 # 363 # Revision 1.8 2004/06/30 15:56:14 shilbert 364 # - more wxMAC fixes -they don't stop surfacing :-) 365 # 366 # Revision 1.7 2003/11/17 10:56:37 sjtan 367 # 368 # synced and commiting. 369 # 370 # Revision 1.1 2003/10/23 06:02:39 sjtan 371 # 372 # manual edit areas modelled after r.terry's specs. 373 # 374 # Revision 1.6 2003/05/17 18:18:19 michaelb 375 # added $Log statement 376 # 377 # 30/01/03: inital version 378