FreeCAD
1/****************************************************************************
2* Copyright (c) 2018 Zheng Lei (realthunder) <realthunder.dev@gmail.com> *
3* *
4* This file is part of the FreeCAD CAx development system. *
5* *
6* This library is free software; you can redistribute it and/or *
7* modify it under the terms of the GNU Library General Public *
8* License as published by the Free Software Foundation; either *
9* version 2 of the License, or (at your option) any later version. *
10* *
11* This library is distributed in the hope that it will be useful, *
12* but WITHOUT ANY WARRANTY; without even the implied warranty of *
13* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14* GNU Library General Public License for more details. *
15* *
16* You should have received a copy of the GNU Library General Public *
17* License along with this library; see the file COPYING.LIB. If not, *
18* write to the Free Software Foundation, Inc., 59 Temple Place, *
19* Suite 330, Boston, MA 02111-1307, USA *
20* *
21****************************************************************************/
22
23#include "PreCompiled.h"24#include <App/Application.h>25#include "ViewParams.h"26
27using namespace Gui;28
29ViewParams::ViewParams() {30handle = App::GetApplication().GetParameterGroupByPath(31"User parameter:BaseApp/Preferences/View");32handle->Attach(this);33#undef FC_VIEW_PARAM34#define FC_VIEW_PARAM(_name,_ctype,_type,_def) \35_name = handle->Get##_type(#_name,_def);36
37FC_VIEW_PARAMS
38}
39
40ViewParams::~ViewParams() = default;41
42void ViewParams::OnChange(Base::Subject<const char*> &, const char* sReason) {43if(!sReason)44return;45#undef FC_VIEW_PARAM46#define FC_VIEW_PARAM(_name,_ctype,_type,_def) \47if(strcmp(sReason,#_name)==0) {\48_name = handle->Get##_type(#_name,_def);\49return;\50}51FC_VIEW_PARAMS
52}
53
54ViewParams *ViewParams::instance() {55static ViewParams *inst;56if(!inst)57inst = new ViewParams;58return inst;59}
60
61