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  __version__ = "$Revision: 1.35 $" 
  6  __author__ = "M.Bonert" 
  7  __license__ = "GPL" 
  8   
  9  import sys 
 10   
 11   
 12  import wx 
 13   
 14   
 15  from Gnumed.pycommon import gmTools 
 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 Horst Herb', 35 u'Karsten Hilbert', 36 u'Dr Gerardo Arnaez', 37 u'Dr Hilmar Berger', 38 u'Michael Bonert', 39 u'Dr Elizabeth Dodd', 40 u'Dr David Guest', 41 u'Ian Haywood', 42 u'Dr Tony Lembke', 43 u'Dr Richard Terry', 44 u'Syan J Tan', 45 u'Andreas Tille', 46 u'Dr Carlos Moro', 47 u'Dr James Busser', 48 u'Dr Rogerio Luz', 49 u'Dr Sebastian Hilbert', 50 u'Dr John Jaarsveld', 51 u'Uwe Koch Kronberg', 52 u'et alii' 53 ] 54 55 # initializations 56 __scroll_ctr = +230 57 __name_ctr = 1 58 __delay_ctr = 1 59
60 - def __init__ (self, parent):
61 wx.Window.__init__(self, parent, -1, size=(230,20), style=wx.SUNKEN_BORDER) 62 self.SetBackgroundColour(wx.Colour(255, 255, 255)) 63 self.__delay_ctr_reset=self.__delay*self.__scroll_speed 64 65 self.moving_txt=wx.StaticText(self, -1, "", size=(230,20), style=wx.ALIGN_CENTRE | wx.ST_NO_AUTORESIZE) 66 self.moving_txt.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL)) 67 self.moving_txt.SetLabel(self.name_list[0]) 68 69 wx.EVT_TIMER(self, -1, self.OnTimer) 70 self.timer = wx.Timer(self, -1) 71 #self.timer.Start(self.__scroll_speed) 72 self.timer.Start(milliseconds = 1./self.__scroll_speed)
73
74 - def OnTimer(self, evt):
75 if(self.__scroll_ctr<-2 and self.__delay_ctr<self.__delay_ctr_reset): 76 # pause at centre 77 self.__delay_ctr=self.__delay_ctr+1 78 else: 79 self.__scroll_ctr=self.__scroll_ctr-1 80 self.moving_txt.MoveXY(self.__scroll_ctr, 0) 81 if(self.__scroll_ctr<-230): 82 # reset counters 83 self.__scroll_ctr=+230 84 self.__delay_ctr=1 85 86 # get next name in dict. 87 self.moving_txt.SetLabel(self.name_list[self.__name_ctr]) 88 self.__name_ctr=self.__name_ctr+1 89 if(self.__name_ctr>len(self.name_list)-1): 90 self.__name_ctr=0
91
92 -class AboutFrame (wx.Frame):
93 """ 94 About GNUmed 95 """
96 - def __init__(self, parent, ID, title, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE, version='???', debug=False):
97 wx.Frame.__init__(self, parent, ID, title, pos, size, style) 98 99 self.SetIcon(gmTools.get_icon(wx = wx)) 100 101 box = wx.BoxSizer(wx.VERTICAL) 102 if wx.Platform == '__WXMAC__': 103 box.Add((0,0), 2) 104 else: 105 box.Add((0,0), 2) 106 intro_txt=wx.StaticText(self, -1, _("Monty the Serpent && the FSF Present")) 107 intro_txt.SetFont(wx.Font(10,wx.SWISS,wx.NORMAL,wx.NORMAL,False,'')) 108 box.Add(intro_txt, 0, wx.ALIGN_CENTRE) 109 if wx.Platform == '__WXMAC__': 110 box.Add((0,0), 3) 111 else: 112 box.Add((0,0), 3) 113 gm_txt=wx.StaticText(self, -1, "GNUmed") 114 gm_txt.SetFont(wx.Font(30, wx.SWISS, wx.NORMAL, wx.NORMAL)) 115 box.Add(gm_txt, 0, wx.ALIGN_CENTRE) 116 117 motto_txt=wx.StaticText(self, -1, _("Free eMedicine")) 118 motto_txt.SetFont(wx.Font(10,wx.SWISS,wx.NORMAL,wx.NORMAL,False,'')) 119 box.Add(motto_txt, 0, wx.ALIGN_CENTRE) 120 if wx.Platform == '__WXMAC__': 121 box.Add((0,0), 4) 122 else: 123 box.Add((0,0), 4) 124 ver_txt=wx.StaticText ( 125 self, 126 -1, 127 _('Version %s%s brought to you by') % ( 128 version, 129 gmTools.bool2subst(debug, u' (%s)' % _('debug'), u'') 130 ) 131 ) 132 ver_txt.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL)) 133 box.Add(ver_txt, 0, wx.ALIGN_CENTRE) 134 135 admins_txt=wx.StaticText(self, -1, "") 136 admins_txt.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL)) 137 box.Add(admins_txt, 0, wx.ALIGN_CENTRE) 138 139 self.win=ScrollTxtWin(self) 140 box.Add(self.win, 0, wx.ALIGN_CENTRE) 141 if wx.Platform == '__WXMAC__': 142 box.Add((0,0), 1) 143 else: 144 box.Add((0,0), 1) 145 info_txt=wx.StaticText(self, -1, _("Please visit http://www.gnumed.org")) 146 info_txt.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL)) 147 box.Add(info_txt, 0, wx.ALIGN_CENTRE) 148 if wx.Platform == '__WXMAC__': 149 box.Add((0,0), 1) 150 else: 151 box.Add((0,0), 1) 152 btn = wx.Button(self, ID_MENU , _("Close")) 153 box.Add(btn,0, wx.ALIGN_CENTRE) 154 if wx.Platform == '__WXMAC__': 155 box.Add((0,0), 1) 156 else: 157 box.Add((0,0), 1) 158 wx.EVT_BUTTON(btn, ID_MENU, self.OnClose) 159 160 self.SetAutoLayout(True) 161 self.SetSizer(box) 162 self.Layout()
163
164 - def OnClose (self, event):
165 self.win.timer.Stop () 166 self.Destroy ()
167 #====================================================================
168 -class cContributorsDlg(wx.Dialog):
169 # people who don't want to be listed here: 170 # ... 171 contributors = _( 172 'The following people kindly contributed to GNUmed.\n' 173 'Please write to <gnumed-devel@gnu.org> to have your\n' 174 'contribution duly recognized in this list or to have\n' 175 'your name removed from it for, say, privacy reasons.\n\n' 176 'Note that this list is sorted alphabetically by last\n' 177 'name, first name. If the only identifier is an email\n' 178 'address it is sorted under the first character of\n' 179 'the user name.\n' 180 '%s' 181 ) % u""" 182 == A =========================================== 183 184 Marc Angermann, MD 185 Germany 186 187 - Rechnungsvorlage 188 - bug reports 189 190 == B =========================================== 191 192 James Busser, MD 193 British Columbia 194 195 - test results handling 196 - documentation would be nothing without him 197 - encouragement, testing, bug reporting 198 - testing on MacOSX 199 200 == F =========================================== 201 202 Joachim Fischer 203 GP Fischer + Lintz 204 Fachärzte Allgemeinmedizin 205 Wolfschlugen 206 207 - Karteieintragsarten passend für Deutschland 208 209 == H =========================================== 210 211 Sebastian Hilbert, MD 212 Germany 213 214 - packaging, PR 215 216 Anne te Harvik 217 Netherlands 218 219 - Dutch translation 220 221 == J =========================================== 222 223 John Jaarsveld, MD 224 Netherlands 225 226 - lots of help with the visual progress notes 227 - Dutch l10n 228 229 == K =========================================== 230 231 Uwe Koch Kronberg 232 Chile 233 234 - Spanish 235 - Chilean demographics 236 237 == L =========================================== 238 239 Nico Latzer 240 Germany 241 242 - invoice handling code 243 244 Steffi Leibner, Leipzig 245 Germany 246 247 - Testen, Fehlerberichte 248 - Dokumentenvorlage 249 250 Rogerio Luz, Brasil 251 252 - testing, bug reporting 253 - SOAP handling discussion 254 - providing LaTeX form templates 255 256 == N =========================================== 257 258 Clemens Nietfeld, Oldenburg 259 260 - Information zur Anbindung von DocConcept 261 262 == P =========================================== 263 264 Martin Preuss, Hamburg 265 266 - Chipkartenansteuerung 267 268 == R =========================================== 269 270 Thomas Reus, Düsseldorf 271 272 - Testen, Fehlerberichte 273 - Dokumentenvorlage 274 275 == T =========================================== 276 277 Andreas Tille, Wernigerode 278 279 - Debian packages 280 - encouragement, wisdom 281 282 """ 283 #----------------------------------------------
284 - def __init__(self, *args, **kwargs):
285 wx.Dialog.__init__(self, *args, **kwargs) 286 contributor_listing = wx.TextCtrl ( 287 self, 288 -1, 289 cContributorsDlg.contributors, 290 style = wx.TE_MULTILINE | wx.TE_READONLY, 291 size = wx.Size(500, 300) 292 ) 293 # contributor_listing.SetFont(wx.Font(12, wx.MODERN, wx.NORMAL, wx.NORMAL)) 294 # arrange widgets 295 szr_outer = wx.BoxSizer(wx.VERTICAL) 296 szr_outer.Add(contributor_listing, 1, wx.EXPAND, 0) 297 # and do layout 298 self.SetAutoLayout(1) 299 self.SetSizerAndFit(szr_outer) 300 szr_outer.SetSizeHints(self) 301 self.Layout()
302 #==================================================================== 303 # Main 304 #==================================================================== 305 if __name__ == '__main__': 306 # set up dummy app
307 - class TestApp (wx.App):
308 - def OnInit (self):
309 frame = AboutFrame(None, -1, u"About GNUmed", size=wx.Size(300, 250)) 310 frame.Show(1) 311 return 1
312 #--------------------- 313 if len(sys.argv) > 1 and sys.argv[1] == 'test': 314 app = TestApp() 315 app.MainLoop() 316 317 #------------------------------------------------------------ 318