/************************************************************************** * Copyright (C) 2016 by Savoir-faire Linux * * Author: Traczyk Andreas <andreas.traczyk@savoirfairelinux.com> * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 3 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see <http://www.gnu.org/licenses/>. * **************************************************************************/ #include "pch.h" #include "AboutPage.xaml.h" using namespace RingClientUWP; using namespace RingClientUWP::Views; using namespace Windows::UI::ViewManagement; using namespace Windows::UI::Core; using namespace Windows::UI::Xaml::Controls; #define BUILD_YEAR_CH0 (__DATE__[ 7]) #define BUILD_YEAR_CH1 (__DATE__[ 8]) #define BUILD_YEAR_CH2 (__DATE__[ 9]) #define BUILD_YEAR_CH3 (__DATE__[10]) #define BUILD_MONTH_IS_JAN (__DATE__[0] == 'J' && __DATE__[1] == 'a' && __DATE__[2] == 'n') #define BUILD_MONTH_IS_FEB (__DATE__[0] == 'F') #define BUILD_MONTH_IS_MAR (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'r') #define BUILD_MONTH_IS_APR (__DATE__[0] == 'A' && __DATE__[1] == 'p') #define BUILD_MONTH_IS_MAY (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'y') #define BUILD_MONTH_IS_JUN (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'n') #define BUILD_MONTH_IS_JUL (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'l') #define BUILD_MONTH_IS_AUG (__DATE__[0] == 'A' && __DATE__[1] == 'u') #define BUILD_MONTH_IS_SEP (__DATE__[0] == 'S') #define BUILD_MONTH_IS_OCT (__DATE__[0] == 'O') #define BUILD_MONTH_IS_NOV (__DATE__[0] == 'N') #define BUILD_MONTH_IS_DEC (__DATE__[0] == 'D') #define BUILD_MONTH_CH0 \ ((BUILD_MONTH_IS_OCT || BUILD_MONTH_IS_NOV || BUILD_MONTH_IS_DEC) ? '1' : '0') #define BUILD_MONTH_CH1 \ ( \ (BUILD_MONTH_IS_JAN) ? '1' : \ (BUILD_MONTH_IS_FEB) ? '2' : \ (BUILD_MONTH_IS_MAR) ? '3' : \ (BUILD_MONTH_IS_APR) ? '4' : \ (BUILD_MONTH_IS_MAY) ? '5' : \ (BUILD_MONTH_IS_JUN) ? '6' : \ (BUILD_MONTH_IS_JUL) ? '7' : \ (BUILD_MONTH_IS_AUG) ? '8' : \ (BUILD_MONTH_IS_SEP) ? '9' : \ (BUILD_MONTH_IS_OCT) ? '0' : \ (BUILD_MONTH_IS_NOV) ? '1' : \ (BUILD_MONTH_IS_DEC) ? '2' : \ /* error default */ '?' \ ) #define BUILD_DAY_CH0 ((__DATE__[4] >= '0') ? (__DATE__[4]) : '0') #define BUILD_DAY_CH1 (__DATE__[ 5]) AboutPage::AboutPage() { InitializeComponent(); const char completeVersion[] = { BUILD_YEAR_CH0, BUILD_YEAR_CH1, BUILD_YEAR_CH2, BUILD_YEAR_CH3, '/', BUILD_MONTH_CH0, BUILD_MONTH_CH1, '/', BUILD_DAY_CH0, BUILD_DAY_CH1, '\0' }; auto buildDate = std::string(reinterpret_cast<const char*>(completeVersion)); PackageVersion version = Package::Current->Id->Version; auto buildVersion = version.Major.ToString() + "." + version.Minor.ToString() + "." + version.Build.ToString(); _aboutVersionString_->Text = "Ring version: " + Utils::toPlatformString(buildDate) + " build: " + buildVersion; }; void RingClientUWP::Views::AboutPage::_aboutBasicButton__Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) { _aboutNavGrid_->SetRow(_aboutScrollViewer_, 1); _aboutNavGrid_->SetRow(_creditsScrollViewer_, 0); } void RingClientUWP::Views::AboutPage::_aboutCreditsButton__Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) { _aboutNavGrid_->SetRow(_aboutScrollViewer_, 0); _aboutNavGrid_->SetRow(_creditsScrollViewer_, 1); } void RingClientUWP::Views::AboutPage::_aboutCloseButton__Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) { auto rootFrame = dynamic_cast<Windows::UI::Xaml::Controls::Frame^>(Window::Current->Content); rootFrame->Navigate(Windows::UI::Xaml::Interop::TypeName(MainPage::typeid), true); }