1/* 2 * Copyright 2002-2021, Haiku. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Andrew McCall <mccall@digitalparadise.co.uk> 7 * Mike Berg <mike@berg-net.us> 8 * Julun <host.haiku@gmx.de> 9 * Hamish Morrison <hamish@lavabit.com> 10 * Panagiotis "Ivory" Vasilopoulos <git@n0toose.net> 11 */ 12 13 14#include "Time.h" 15 16#include <locale.h> 17#include <stdio.h> 18#include <unistd.h> 19 20#include <AboutWindow.h> 21#include <Alert.h> 22#include <Catalog.h> 23#include <Locale.h> 24#include <LocaleRoster.h> 25 26#include "NetworkTimeView.h" 27#include "TimeMessages.h" 28#include "TimeWindow.h" 29 30 31#undef B_TRANSLATION_CONTEXT 32#define B_TRANSLATION_CONTEXT "Time" 33 34 35const char* kAppSignature = "application/x-vnd.Haiku-Time"; 36 37 38TimeApplication::TimeApplication() 39 : 40 BApplication(kAppSignature), 41 fWindow(NULL) 42{ 43 fWindow = new TTimeWindow(); 44} 45 46 47TimeApplication::~TimeApplication() 48{ 49} 50 51 52void 53TimeApplication::ReadyToRun() 54{ 55 fWindow->Show(); 56} 57 58 59void 60TimeApplication::AboutRequested() 61{ 62 BAboutWindow* window = new BAboutWindow(B_TRANSLATE_SYSTEM_NAME( 63 "Time & Date"), kAppSignature); 64 65 const char* authors[] = { 66 "Mike Berg", 67 "Andrew Edward McCall", 68 "Hamish Morrison", 69 "Philippe Saint-Pierre", 70 "Panagiotis \"Ivory\" Vasilopoulos", 71 "Julun", 72 NULL 73 }; 74 75 window->AddCopyright(2021, "Haiku, Inc."); 76 window->AddAuthors(authors); 77 78 window->Show(); 79} 80 81 82void 83TimeApplication::MessageReceived(BMessage* message) 84{ 85 switch (message->what) { 86 case kSelectClockTab: 87 case kShowHideTime: 88 case B_LOCALE_CHANGED: 89 fWindow->PostMessage(message); 90 break; 91 92 default: 93 BApplication::MessageReceived(message); 94 break; 95 } 96} 97 98 99int 100main(int argc, char** argv) 101{ 102 if (argc > 1) { 103 if (strcmp(argv[1], "--update") != 0) 104 return 0; 105 106 Settings settings; 107 const char* errorString = NULL; 108 int32 errorCode = 0; 109 if (update_time(settings, &errorString, &errorCode) == B_OK) { 110 printf("Synchronization successful\n"); 111 } else if (errorCode != 0) { 112 printf("The following error occured " 113 "while synchronizing:\n%s: %s\n", 114 errorString, strerror(errorCode)); 115 } else { 116 printf("The following error occured while synchronizing:\n%s\n", 117 errorString); 118 } 119 } else { 120 setlocale(LC_ALL, ""); 121 122 TimeApplication app; 123 setuid(0); 124 app.Run(); 125 } 126 127 return 0; 128} 129 130