Module phoneinfo
[hide private]
[frames] | no frames]

Source Code for Module phoneinfo

  1  ### BITPIM 
  2  ### 
  3  ### Copyright (C) 2005 Joe Pham <djpham@bitpim.org> 
  4  ### 
  5  ### This program is free software; you can redistribute it and/or modify 
  6  ### it under the terms of the BitPim license as detailed in the LICENSE file. 
  7  ### 
  8   
  9  ### $Id: phoneinfo.py 2275 2005-04-02 04:58:09Z djpham $ 
 10   
 11  """ 
 12  Module to display specific handset info. 
 13  This module faciliates individual phones to provide specific phone info to be 
 14  displayed.  The PhoneInfo has the following attributes: 
 15   
 16  model: The phone model. 
 17  manufacturer: The phone manufacturer. 
 18  phone_number: The phone #. 
 19  esn: Phone ESN. 
 20  firmware_version: Phone firmware version. 
 21  signal_quality: (0-100%) Phone reception quality. 
 22  battery_level: (0-100%) Current battery level. 
 23   
 24  To add (and display) other phone information: 
 25   
 26  append(label_str, value_str) 
 27    ie. phone_info.append('Analog/Digital:', 'Digital') 
 28   
 29  For an example of implementing this feature, please see module com_samsung. 
 30   
 31  """ 
 32   
 33  # standard modules 
 34   
 35  # site-packages modules 
 36  import wx 
 37  import  wx.lib.fancytext as fancytext 
 38   
 39  # BitPim modules 
 40   
 41  #------------------------------------------------------------------------------- 
42 -class PhoneInfo(object):
43 __model_key='model' 44 __manuf_key='_manufacturer' 45 __phone_num_key='phone_num' 46 __esn_key='esn' 47 __firm_ver_key='firmware_version' 48 __sig_qual_key='signal_quality' 49 __battery_key='battery_level' 50 standard_keys=(('model', 'Model:'), 51 ('manufacturer', 'Manufacturer:'), 52 ('phone_number', 'Phone Number:'), 53 ('esn', 'ESN:'), 54 ('firmware_version', 'Firmware Version:'), 55 ('signal_quality', 'Signal Quality:'), 56 ('battery_level', 'Battery Level:'))
57 - def __init__(self):
58 self.__data={} 59 self.__misc=[]
60 - def __get_model(self):
61 return self.__data.get(self.__model_key, None)
62 - def __set_model(self, v):
63 self.__data[self.__model_key]=v
64 model=property(fset=__set_model, fget=__get_model)
65 - def __get_manufacturer(self):
66 return self.__data.get(self.__manuf_key, None)
67 - def __set_manufacturer(self, v):
68 self.__data[self.__manuf_key]=v
69 manufacturer=property(fget=__get_manufacturer, fset=__set_manufacturer)
70 - def __get_phone_num(self):
71 return self.__data.get(self.__phone_num_key, None)
72 - def __set_phone_num(self, v):
73 self.__data[self.__phone_num_key]=v
74 phone_number=property(fget=__get_phone_num, fset=__set_phone_num)
75 - def __get_esn(self):
76 return self.__data.get(self.__esn_key, None)
77 - def __set_esn(self, v):
78 self.__data[self.__esn_key]=v
79 esn=property(fget=__get_esn, fset=__set_esn)
80 - def __get_firmware_ver(self):
81 return self.__data.get(self.__firm_ver_key, None)
82 - def __set_firmware_ver(self, v):
83 self.__data[self.__firm_ver_key]=v
84 firmware_version=property(fget=__get_firmware_ver, fset=__set_firmware_ver)
85 - def __get_sig_qual(self):
86 return self.__data.get(self.__sig_qual_key, None)
87 - def __set_sig_qual(self, v):
88 self.__data[self.__sig_qual_key]=v
89 signal_quality=property(fget=__get_sig_qual, fset=__set_sig_qual)
90 - def __get_battery(self):
91 return self.__data.get(self.__battery_key, None)
92 - def __set_battery(self, v):
93 self.__data[self.__battery_key]=v
94 battery_level=property(fget=__get_battery, fset=__set_battery)
95 - def append(self, label_str, value_str):
96 self.__misc.append((label_str, value_str))
97 - def __get_misc(self):
98 return self.__misc
99 misc=property(fget=__get_misc)
100 101 #-------------------------------------------------------------------------------
102 -class PhoneInfoDialog(wx.Dialog):
103 - def __init__(self, parent, phone_info=PhoneInfo()):
104 super(PhoneInfoDialog, self).__init__(parent, -1, 'Phone Info Dialog') 105 self.__header_font=wx.Font(14, wx.DEFAULT, wx.NORMAL, wx.BOLD) 106 self.__info_label_font=wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.BOLD) 107 self.__info_item_font=wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL) 108 # main vertical box sizer 109 vbs=wx.BoxSizer(wx.VERTICAL) 110 # the header 111 vbs.Add(self.__header('Phone Information'), 0, wx.ALIGN_CENTRE, 10) 112 # the info 113 gs=wx.FlexGridSizer(-1, 2, 5, 5) 114 for k in PhoneInfo.standard_keys: 115 v=getattr(phone_info, k[0]) 116 if v is None: 117 continue 118 gs.Add(self.__info_label(k[1]), 1, wx.EXPAND|wx.BOTTOM|wx.ALIGN_LEFT, 5) 119 gs.Add(self.__info_item(v), 0, wx.EXPAND|wx.BOTTOM|wx.ALIGN_LEFT, 5) 120 l=phone_info.misc 121 for k in l: 122 gs.Add(self.__info_label(k[0]), 0, wx.EXPAND|wx.BOTTOM|wx.ALIGN_LEFT, 5) 123 gs.Add(self.__info_item(k[1]), 0, wx.EXPAND|wx.BOTTOM|wx.ALIGN_LEFT, 5) 124 vbs.Add(gs, 1, wx.EXPAND|wx.ALL, 10) 125 # the ok button 126 vbs.Add(wx.StaticLine(self, -1), 0, wx.EXPAND|wx.TOP|wx.BOTTOM, 5) 127 vbs.Add(wx.Button(self, wx.ID_OK), 0, wx.ALIGN_CENTRE|wx.ALL, 5) 128 # all done 129 self.SetSizer(vbs) 130 self.SetAutoLayout(True) 131 vbs.Fit(self)
132 - def __header(self, txt):
133 static_text=wx.StaticText(self, -1, txt, style=wx.ALIGN_CENTRE) 134 static_text.SetFont(self.__header_font) 135 return static_text
136 - def __info_label(self, txt):
137 if txt[-1]!=':': 138 txt+=':' 139 static_text=wx.StaticText(self, -1, txt, style=wx.ALIGN_LEFT) 140 static_text.SetFont(self.__info_label_font) 141 return static_text
142 - def __info_item(self, txt):
143 static_text=wx.StaticText(self, -1, txt, style=wx.ALIGN_LEFT) 144 static_text.SetFont(self.__info_item_font) 145 return static_text
146