1
2
3
4
5
6
7
8
9
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
34
35
36 import wx
37 import wx.lib.fancytext as fancytext
38
39
40
41
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:'))
58 self.__data={}
59 self.__misc=[]
64 model=property(fset=__set_model, fget=__get_model)
69 manufacturer=property(fget=__get_manufacturer, fset=__set_manufacturer)
74 phone_number=property(fget=__get_phone_num, fset=__set_phone_num)
79 esn=property(fget=__get_esn, fset=__set_esn)
84 firmware_version=property(fget=__get_firmware_ver, fset=__set_firmware_ver)
89 signal_quality=property(fget=__get_sig_qual, fset=__set_sig_qual)
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))
99 misc=property(fget=__get_misc)
100
101
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
109 vbs=wx.BoxSizer(wx.VERTICAL)
110
111 vbs.Add(self.__header('Phone Information'), 0, wx.ALIGN_CENTRE, 10)
112
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
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
129 self.SetSizer(vbs)
130 self.SetAutoLayout(True)
131 vbs.Fit(self)
133 static_text=wx.StaticText(self, -1, txt, style=wx.ALIGN_CENTRE)
134 static_text.SetFont(self.__header_font)
135 return static_text
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
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