symbian-qemu-0.9.1-12/python-2.6.1/Mac/Demo/example2/dnslookup-2.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 import FrameWork
       
     2 import EasyDialogs
       
     3 from Carbon import Res
       
     4 from Carbon import Dlg
       
     5 import socket
       
     6 import string
       
     7 import macresource
       
     8 #
       
     9 # Definitions for our resources
       
    10 ID_MAIN=512
       
    11 ID_ABOUT=513
       
    12 
       
    13 ITEM_LOOKUP_ENTRY=1
       
    14 ITEM_RESULT=2
       
    15 ITEM_LOOKUP_BUTTON=3
       
    16 
       
    17 def main():
       
    18     macresource.need("DLOG", ID_MAIN, "dnslookup-2.rsrc")
       
    19     DNSLookup()
       
    20 
       
    21 class DNSLookup(FrameWork.Application):
       
    22     "Application class for DNS Lookup"
       
    23 
       
    24     def __init__(self):
       
    25         # First init menus, etc.
       
    26         FrameWork.Application.__init__(self)
       
    27         # Next create our dialog
       
    28         self.main_dialog = MyDialog(self)
       
    29         # Now open the dialog
       
    30         self.main_dialog.open(ID_MAIN)
       
    31         # Finally, go into the event loop
       
    32         self.mainloop()
       
    33 
       
    34     def makeusermenus(self):
       
    35         self.filemenu = m = FrameWork.Menu(self.menubar, "File")
       
    36         self.quititem = FrameWork.MenuItem(m, "Quit", "Q", self.quit)
       
    37 
       
    38     def quit(self, *args):
       
    39         self._quit()
       
    40 
       
    41     def do_about(self, *args):
       
    42         f = Dlg.GetNewDialog(ID_ABOUT, -1)
       
    43         while 1:
       
    44             n = Dlg.ModalDialog(None)
       
    45             if n == 1:
       
    46                 return
       
    47 
       
    48 class MyDialog(FrameWork.DialogWindow):
       
    49     "Main dialog window for DNSLookup"
       
    50     def __init__(self, parent):
       
    51         FrameWork.DialogWindow.__init__(self, parent)
       
    52         self.parent = parent
       
    53 
       
    54     def do_itemhit(self, item, event):
       
    55         if item == ITEM_LOOKUP_BUTTON:
       
    56             self.dolookup()
       
    57 
       
    58     def dolookup(self):
       
    59         """Get text entered in the lookup entry area.  Place result of the
       
    60            call to dnslookup in the result entry area."""
       
    61         tp, h, rect = self.dlg.GetDialogItem(ITEM_LOOKUP_ENTRY)
       
    62         txt = Dlg.GetDialogItemText(h)
       
    63 
       
    64         tp, h, rect = self.dlg.GetDialogItem(ITEM_RESULT)
       
    65         Dlg.SetDialogItemText(h, self.dnslookup(txt))
       
    66 
       
    67     def dnslookup(self, str):
       
    68         """ Perform DNS lookup on str.  If first character of digit is numeric,
       
    69             assume that str contains an IP address.  Otherwise, assume that str
       
    70             contains a hostname."""
       
    71         if str == '': str = ' '
       
    72         if str[0] in string.digits:
       
    73             try:
       
    74                 value = socket.gethostbyaddr(str)[0]
       
    75             except:
       
    76                 value = 'Lookup failed'
       
    77         else:
       
    78             try:
       
    79                 value = socket.gethostbyname(str)
       
    80             except:
       
    81                 value = 'Lookup failed'
       
    82         return value
       
    83 
       
    84 
       
    85 main()