1/* 2 * Copyright 2012, Haiku Inc. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Sean Bailey <ziusudra@gmail.com> 7*/ 8 9 10#include "TimeZoneListView.h" 11 12#include <new> 13 14#include <Catalog.h> 15#include <DateFormat.h> 16#include <Locale.h> 17#include <String.h> 18#include <TimeZone.h> 19#include <ToolTip.h> 20 21#include "TimeZoneListItem.h" 22 23 24#undef B_TRANSLATION_CONTEXT 25#define B_TRANSLATION_CONTEXT "Time" 26 27 28TimeZoneListView::TimeZoneListView(void) 29 : 30 BOutlineListView("cityList", B_SINGLE_SELECTION_LIST) 31{ 32} 33 34 35TimeZoneListView::~TimeZoneListView() 36{ 37} 38 39 40bool 41TimeZoneListView::GetToolTipAt(BPoint point, BToolTip** _tip) 42{ 43 TimeZoneListItem* item = static_cast<TimeZoneListItem*>( 44 this->ItemAt(this->IndexOf(point))); 45 if (item == NULL || !item->HasTimeZone()) 46 return false; 47 48 BString nowInTimeZone; 49 time_t now = time(NULL); 50 fTimeFormat.Format(nowInTimeZone, now, B_SHORT_TIME_FORMAT, 51 &item->TimeZone()); 52 53 BString dateInTimeZone; 54 fDateFormat.Format(dateInTimeZone, now, B_SHORT_DATE_FORMAT, 55 &item->TimeZone()); 56 57 BString toolTip = item->Text(); 58 toolTip << '\n' << item->TimeZone().ShortName() << " / " 59 << item->TimeZone().ShortDaylightSavingName() 60 << B_TRANSLATE("\nNow: ") << nowInTimeZone 61 << " (" << dateInTimeZone << ')'; 62 63 SetToolTip(toolTip.String()); 64 65 *_tip = ToolTip(); 66 67 return true; 68} 69