Ignore:
Timestamp:
07/22/06 04:01:48 (18 years ago)
Author:
Nicholas Riley
Message:

Tooltip updating (which flashes on the device. I'm gonna kill someone...)

Location:
trunk/hiptop/pester/net/sabi/pester
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/hiptop/pester/net/sabi/pester/Alarm.java

    r259 r273  
    249249    }
    250250
     251    public int getSecondsUntilNextIntervalStringUpdate() {
     252        int i = remainingInterval();
     253        if (i == 1)
     254            return 0;
     255        if (i <= 60)
     256            return 1;
     257        if (i <= 24 * 60 * 60)
     258            return i % 60;
     259        return i % 3600; // update at least once an hour, regardless
     260    }
     261
    251262    public String getDateTimeString(boolean relative) {
    252263        return dateTimeString(mDate, relative);
  • trunk/hiptop/pester/net/sabi/pester/AlarmListView.java

    r260 r273  
    55import danger.ui.AlertWindow;
    66import danger.ui.ActiveListView;
     7import danger.ui.Rect;
     8import danger.ui.ToolTipWindow;
    79import danger.util.ActiveList;
    810import danger.util.DEBUG;
     
    1517    private static AlarmSetDialog sAlarmSetDialog;
    1618
     19    private danger.app.Alarm mToolTipAlarm;
     20    private ToolTipWindow mToolTipWindow;
     21
    1722    public void onDecoded() {
    1823        sAlarmListWindow = (AlarmListWindow)getWindow();
    1924        setList(Alarms.getList());
     25        mToolTipAlarm = new danger.app.Alarm(0, this);
    2026        super.onDecoded();
    2127    }
     
    5460            Alarms.removeAlarm((Alarm)getFocusedItem());
    5561            return true;
     62        case Event.EVENT_ALARM: // tooltip invalid
     63            // XXX should do this too if the time changes
     64            showToolTip();
     65            return true;
    5666        }
    5767        return super.receiveEvent(e);
     
    6272            return;
    6373        alarmSetDialog().editAlarm((Alarm)item, false);
     74    }
     75
     76    protected void itemFocused(Object item) {
     77        mToolTipAlarm.deactivate();
     78    }
     79
     80    public void loseFocus() {
     81        mToolTipAlarm.deactivate();
     82        super.loseFocus();
     83    }
     84
     85    public void showToolTip() {
     86        Alarm alarm = (Alarm)getFocusedItem();
     87        if (alarm == null)
     88            return;
     89        Rect rect = new Rect();
     90        rect = localToGlobal(getInterestingRect(rect));
     91        if (mToolTipWindow != null)
     92            mToolTipWindow.hide();
     93        mToolTipWindow =
     94            ToolTipWindow.showToolTip(alarm.getDateTimeString() + " - " +
     95                                      alarm.getIntervalString(),
     96                                      10, rect.bottom, 1, sAlarmListWindow);
     97        int secondsUntilUpdate = alarm.getSecondsUntilNextIntervalStringUpdate();
     98        if (secondsUntilUpdate == 0)
     99            return;
     100        mToolTipAlarm.resetWake(secondsUntilUpdate);
    64101    }
    65102
     
    79116        super.onItemRemoved(list, item, index);
    80117    }
    81 
    82     protected CharSequence getToolTipForItem(Object item) {
    83         if (item == null) // this is dumb, why do we get asked for a tooltip?
    84             return null;
    85         // XXX need to refresh, localize
    86         Alarm alarm = (Alarm)item;
    87         return alarm.getDateTimeString() + " - " + alarm.getIntervalString();
    88     }
    89118}
Note: See TracChangeset for help on using the changeset viewer.