FreeCAD

Форк
0
/
ViewParams.cpp 
59 строк · 2.5 Кб
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

27
using namespace Gui;
28

29
ViewParams::ViewParams() {
30
    handle = App::GetApplication().GetParameterGroupByPath(
31
            "User parameter:BaseApp/Preferences/View");
32
    handle->Attach(this);
33
#undef FC_VIEW_PARAM
34
#define FC_VIEW_PARAM(_name,_ctype,_type,_def) \
35
    _name = handle->Get##_type(#_name,_def);
36

37
    FC_VIEW_PARAMS
38
}
39

40
ViewParams::~ViewParams() = default;
41

42
void ViewParams::OnChange(Base::Subject<const char*> &, const char* sReason) {
43
    if(!sReason)
44
        return;
45
#undef FC_VIEW_PARAM
46
#define FC_VIEW_PARAM(_name,_ctype,_type,_def) \
47
    if(strcmp(sReason,#_name)==0) {\
48
        _name = handle->Get##_type(#_name,_def);\
49
        return;\
50
    }
51
    FC_VIEW_PARAMS
52
}
53

54
ViewParams *ViewParams::instance() {
55
    static ViewParams *inst;
56
    if(!inst)
57
        inst = new ViewParams;
58
    return inst;
59
}
60

61

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.