cisst-saw
Loading...
Searching...
No Matches
mtsQtWidgetFactory.h
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3
4/*
5
6 Author(s): Praneeth Sadda, Anton Deguet
7 Created on: 2011-11-11
8
9 (C) Copyright 2011 Johns Hopkins University (JHU), All Rights
10 Reserved.
11
12--- begin cisst license - do not edit ---
13
14This software is provided "as is" under an open source license, with
15no warranty. The complete license can be found in license.txt and
16http://www.cisst.org/cisst/license.txt.
17
18--- end cisst license ---
19
20*/
21
22#ifndef _mtsQtWidgetFactory_h
23#define _mtsQtWidgetFactory_h
24
25#include <typeinfo>
26#include <map>
27
28// Always include last
30
31// Qt forward declarations
32class QWidget;
33
34// mts Qt forward declaration
37
38
40{
41public:
42 inline bool operator()(const std::type_info* a, const std::type_info* b) const {
43 // Visual Studio (some versions) have "int before()"
44 return (a->before(*b)) == 0 ? false : true;
45 }
46};
47
49{
50 typedef mtsQtWidgetGenericObjectRead * (*WidgetReadCreatorFunction)(void);
51 typedef mtsQtWidgetGenericObjectWrite * (*WidgetWriteCreatorFunction)(void);
52
53 friend class WidgetReadCreator;
54 friend class WidgetWriteCreator;
55
56 public:
57 class WidgetReadCreator
58 {
59 private:
60 WidgetReadCreator(void);
61 public:
62 WidgetReadCreator(const std::type_info * type, WidgetReadCreatorFunction function);
63 };
64
65 class WidgetWriteCreator
66 {
67 private:
68 WidgetWriteCreator(void);
69 public:
70 WidgetWriteCreator(const std::type_info * type, WidgetWriteCreatorFunction function);
71 };
72
73 typedef std::map<const std::type_info *, WidgetReadCreatorFunction, mtsQtTypeInfoComparator> WidgetReadCreatorMap;
74 typedef std::map<const std::type_info *, WidgetWriteCreatorFunction, mtsQtTypeInfoComparator> WidgetWriteCreatorMap;
75
76 static mtsQtWidgetGenericObjectRead * CreateWidgetRead(const std::type_info * type);
77 static mtsQtWidgetGenericObjectWrite * CreateWidgetWrite(const std::type_info * type);
78
79
80 protected:
83};
84
85#endif // _mtsQtWidgetFactory_h
Definition mtsQtWidgetFactory.h:40
bool operator()(const std::type_info *a, const std::type_info *b) const
Definition mtsQtWidgetFactory.h:42
Definition mtsQtWidgetFactory.h:58
WidgetReadCreator(const std::type_info *type, WidgetReadCreatorFunction function)
Definition mtsQtWidgetFactory.h:66
WidgetWriteCreator(const std::type_info *type, WidgetWriteCreatorFunction function)
Definition mtsQtWidgetFactory.h:49
std::map< const std::type_info *, WidgetReadCreatorFunction, mtsQtTypeInfoComparator > WidgetReadCreatorMap
Definition mtsQtWidgetFactory.h:73
static WidgetReadCreatorMap & GetWidgetReadCreators(void)
static mtsQtWidgetGenericObjectRead * CreateWidgetRead(const std::type_info *type)
std::map< const std::type_info *, WidgetWriteCreatorFunction, mtsQtTypeInfoComparator > WidgetWriteCreatorMap
Definition mtsQtWidgetFactory.h:74
static mtsQtWidgetGenericObjectWrite * CreateWidgetWrite(const std::type_info *type)
static WidgetWriteCreatorMap & GetWidgetWriteCreators(void)
Definition mtsQtWidgetGenericObject.h:36
Definition mtsQtWidgetGenericObject.h:49
#define CISST_EXPORT
Definition cmnExportMacros.h:50
Rules of exporting.