Changeset 32:46c1a12f72d1 for src/mlx/gui/statusicon.py
- Timestamp:
- 02/25/12 15:49:27 (12 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/mlx/gui/statusicon.py
r31 r32 9 9 #------------------------------------------------------------------------------- 10 10 11 class StatusIcon( object):11 class StatusIcon(FlightStatusHandler): 12 12 """The class handling the status icon.""" 13 13 def __init__(self, iconDirectory, gui): 14 14 """Construct the status icon.""" 15 super(StatusIcon, self).__init__() 16 15 17 self._gui = gui 16 18 17 self._stage = None18 self._rating = 10019 self._noGoReason = None20 21 19 menu = gtk.Menu() 22 20 23 21 if appIndicator: 24 22 self._stageMenuItem = gtk.MenuItem() 25 self._stageMenuItem.set_label("Stage: -")26 23 self._stageMenuItem.show() 27 24 menu.append(self._stageMenuItem) 28 25 29 26 self._ratingMenuItem = gtk.MenuItem() 30 self._ratingMenuItem.set_label("Rating: 100%")31 27 self._ratingMenuItem.show() 32 28 menu.append(self._ratingMenuItem) … … 71 67 lambda status: self._gui.toggleMainWindow()) 72 68 self._statusIcon = statusIcon 73 self._setTooltip() 69 70 self._updateFlightStatus() 74 71 75 72 def mainWindowHidden(self): … … 81 78 self._showHideMenuItem.set_active(True) 82 79 83 def resetFlightStatus(self):84 """Reset the status of the flight."""85 if not appIndicator:86 self._statusIcon.set_blinking(False)87 self._noGoReason = None88 self.setStage(None)89 self.setRating(100)90 91 def setStage(self, stage):92 """Set the stage of the flight."""93 self._stage = stage94 if appIndicator:95 label = "Stage: %s" % ("-" if self._stage is None \96 else (const.stage2string(stage),))97 self._stageMenuItem.set_label(label)98 else:99 self._setTooltip()100 101 def setRating(self, rating):102 """Set the rating to the given value."""103 if rating==self._rating:104 return105 self._rating = rating106 107 if appIndicator:108 if self._noGoReason is None:109 self._ratingMenuItem.set_label("Rating: %.0f%%" % (rating,))110 else:111 self._setTooltip()112 113 def setNoGo(self, reason):114 """Set a No-Go condition with the given reason."""115 if self._noGoReason is not None:116 return117 118 self._noGoReason = reason119 if appIndicator:120 self._ratingMenuItem.set_label("Rating: %s" % (reason,))121 else:122 self._setTooltip()123 self._statusIcon.set_blinking(True)124 125 80 def _showHideToggled(self, menuitem): 126 81 """Called when the show/hide menu item is toggled.""" … … 130 85 self._gui.hideMainWindow() 131 86 132 def _setTooltip(self): 133 """Set the tooltip of the status icon.""" 87 def _updateFlightStatus(self): 88 """Update the flight status.""" 89 stage = "-" if self._stage is None else const.stage2string(self._stage) 90 134 91 if self._noGoReason is None: 135 92 rating = "%.0f%%" % (self._rating,) 136 93 else: 137 rating = '<span foreground="red">' + self._noGoReason + '</span>'94 rating = self._noGoReason 138 95 139 markup = "MAVA Logger X %s\n\nStage: %s\nRating: %s" %\ 140 (const.VERSION, ("-" if self._stage is None else 141 const.stage2string(self._stage)), 142 rating) 143 144 self._statusIcon.set_tooltip_markup(markup) 145 96 if appIndicator: 97 self._stageMenuItem.set_label("Stage: %s" % (stage,)) 98 self._ratingMenuItem.set_label("Rating: %s" % (rating,)) 99 else: 100 if self._noGoReason is not None: 101 rating = '<span foreground="red">' + rating + '</span>' 102 markup = "MAVA Logger X %s\n\nStage: %s\nRating: %s" %\ 103 (const.VERSION, stage, rating) 104 self._statusIcon.set_tooltip_markup(markup)
Note:
See TracChangeset
for help on using the changeset viewer.