SIP4 python bindings for TQt
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

biff.py 6.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. #!/usr/bin/env python
  2. import os, sys, string
  3. from qt import *
  4. if QT_VERSION < 0x030100:
  5. print "This example requires TQt v3.1.0 or later."
  6. sys.exit(1)
  7. FALSE = 0
  8. TRUE = 1
  9. hasmail_bmp_data = [
  10. "48 48 3 1",
  11. " c None",
  12. ". c #000000",
  13. "+ c #FFFFFF",
  14. "................................................",
  15. ".............................++++++++++.........",
  16. ".............................++++++++++.........",
  17. "........................++++.+++.+.+.++.........",
  18. "......................++++.++++.+.+.+++.........",
  19. ".....................+++.....+++.+.+.++.........",
  20. "....................++.......++.+.+.+++.........",
  21. "...................++........++++++++++.........",
  22. "..................++.........++++++++++.........",
  23. ".................++..........+++..+.............",
  24. "................++...........+++..+.............",
  25. "...............++............+++.++.............",
  26. "..............+++++++........++++++.............",
  27. ".............++++++++++......++++++.............",
  28. "............+++......+++.....++++.+.............",
  29. "...........+++.........++....+++..+.............",
  30. "...........++..........++...++++..+.............",
  31. "..........++............++.+++++..+.............",
  32. "..........++............++++++++..+.............",
  33. ".........++....++++++....+++.+++..+.............",
  34. ".........++......++......++..+++..+.............",
  35. ".........++..............++..+++..+.............",
  36. ".........++..............++..+++..+.............",
  37. ".........++..............++..++...+.............",
  38. "+++++++..++.+.+..+..+.+..++.......+..+++++++++++",
  39. ".........++.+++.+.+.+.+..++.......+.............",
  40. ".........++.+.+.+++.+.+..++.......+.............",
  41. ".........++.+.+.+.+.+.+..++......++.............",
  42. ".........++.+.+.+.+.+.++.++.....++..............",
  43. ".........++..............++....++...............",
  44. "..+.+.+..++..............++...++..+.+.+.+.+.+.+.",
  45. ".+.+.+.+.++..............++..++..+.+.+.+.+.+.+..",
  46. "..+.+.+..++..............++.++..+.+.+.+.+.+.+.+.",
  47. ".+.+.+.+.++..............+++++.+.+.+.+.+.+.+.+..",
  48. "..+.+.+..+++++++++++++++++++.++.+.+.+.+.+.+.+.+.",
  49. ".+.+.+.+..+++++++++++++++++..+.+.+.+.+.+.+.+.+..",
  50. "..+.+.+.+..........+...+.....++.+.+.+.+.+.+.+.+.",
  51. ".+.+.+.+.+.+.+.+.+.+...+.....+.+.+.+.+.+.+.+.+..",
  52. "..+.+.+.+.+.+.+.+.++...+.....++.+.+.+.+.+.+.+.+.",
  53. ".+.+.+.+.+.+.+.+.+.+...+.....+.+.+.+.+.+.+.+.+..",
  54. "..+.+.+.+.+.+.+.+.++...+.....++.+.+.+.+.+.+.+.+.",
  55. ".+.+.+.+.+.+.+.+.+.+...+.....+.+.+.+.+.+.+.+.+..",
  56. "..+.+.+.+.+.+.+.+.++...+....+.+.+.+.+.+.+.+.+.+.",
  57. ".+.+.+.+.+.+.+.+.+.+...+...+.+.+.+.+.+.+.+.+.+..",
  58. "..+.+.+.+.+.+.+.+.+.+..+..+.+.+.+.+.+.+.+.+.+.+.",
  59. ".+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+..",
  60. "..+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+...",
  61. "................................................"
  62. ]
  63. nomail_bmp_data = [
  64. "48 48 3 1",
  65. " c None",
  66. ". c #FFFFFF",
  67. "+ c #000000",
  68. "................................................",
  69. "................................................",
  70. "................................................",
  71. ".........................++++...................",
  72. ".......................++++++++.................",
  73. ".....................++++....+++................",
  74. "....................+++........++...............",
  75. "...................++...........++..............",
  76. "..................++............++..............",
  77. ".................++..............++.......+.....",
  78. "................++...............++......++.....",
  79. "...............++................++.....+++.....",
  80. "..............+++++++...........+++....++++.....",
  81. ".............++++++++++........++++...+++++.....",
  82. "............+++......+++......+++.+..++++++.....",
  83. "...........+++.........++....+++..+.+++.+++.....",
  84. "...........++..........++...+++...++++..+++.....",
  85. "..........++............++.+++...++++...++......",
  86. "..........++............+++++...++++............",
  87. ".........++....++++++....+++...++++.............",
  88. ".........++......++......++...+++.+.............",
  89. ".........++..............++...+++.+.............",
  90. ".........++..............++...++..+.............",
  91. ".........++..............++.......+.............",
  92. "+++++++..++..............++.......+..+++++++++++",
  93. ".........++..............++.......+.............",
  94. ".........++..............++.......+.............",
  95. ".........++..............++......++.............",
  96. ".........++..............++.....++..............",
  97. ".........++..............++....++...............",
  98. ".........++..............++...++................",
  99. ".........++..............++..++.................",
  100. ".........++..............++.++..................",
  101. ".........++..............+++++..................",
  102. ".........+++++++++++++++++++.+..................",
  103. "..........+++++++++++++++++..+..................",
  104. "...................+...+.....+..................",
  105. "...................+...+.....+..................",
  106. "...................+...+.....+..................",
  107. "...................+...+.....+..................",
  108. "...................+...+.....+..................",
  109. "...................+...+.....+..................",
  110. "...................+...+.....+..................",
  111. "...................+...+.....+..................",
  112. "+++.++++++++++.+.+++...+..+++++++++++.++...+++++",
  113. "+.+++..+++.+.+++++.++..+.++.+++..+..+.++.+.++++.",
  114. ".++...+.....++...+...+++++++....+....++++++...+.",
  115. "++++++++++++++++++++++++++++++++++++++++++++++++"
  116. ]
  117. class Biff(TQWidget):
  118. def __init__(self):
  119. TQWidget.__init__(self, None, "Biff - example application")
  120. mail = os.getenv("MAIL")
  121. fi = TQFileInfo(mail);
  122. if not fi.exists():
  123. s = "/var/spool/mail/"+os.getenv("USER")
  124. fi.setFile(s)
  125. if fi.exists():
  126. self.mailbox = fi.absFilePath()
  127. self.startTimer(1000)
  128. self.setMinimumSize(48, 48)
  129. self.setMaximumSize(48, 48)
  130. self.resize(48, 48)
  131. self.hasNewMail = TQPixmap(hasmail_bmp_data)
  132. self.noNewMail = TQPixmap(nomail_bmp_data)
  133. self.gotMail = FALSE
  134. self.lastModified = fi.lastModified()
  135. def timerEvent(self, te):
  136. fi = TQFileInfo(self.mailbox)
  137. newState = ( fi.lastModified().toTime_t() != self.lastModified.toTime_t() and fi.lastModified().toTime_t() > fi.lastRead().toTime_t())
  138. if newState != self.gotMail:
  139. if self.gotMail == TRUE:
  140. self.lastModified = fi.lastModified()
  141. self.gotMail = newState
  142. self.repaint(FALSE)
  143. def paintEvent(self, pe):
  144. if self.gotMail:
  145. bitBlt(self, 0, 0, self.hasNewMail)
  146. else:
  147. bitBlt(self, 0, 0, self.noNewMail)
  148. def mousePressEvent(self, me):
  149. fi = TQFileInfo(self.mailbox)
  150. lastModified = fi.lastModified()
  151. a = TQApplication(sys.argv)
  152. b = Biff()
  153. a.setMainWidget(b)
  154. b.show()
  155. a.exec_loop()