/************************************************************************** | |
* 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); | |
} |