~ubuntu-branches/ubuntu/utopic/ginkgocadx/utopic-proposed

« back to all changes in this revision

Viewing changes to src/cadxcore/api/ibutton.h

  • Committer: Package Import Robot
  • Author(s): Andreas Tille
  • Date: 2012-01-29 12:02:54 UTC
  • mfrom: (1.1.6)
  • Revision ID: package-import@ubuntu.com-20120129120254-nu7giync5p156icb
Tags: 2.8.0.4602-1
New upstream version (adapted patch, removed patch applied upstream)
Closes: #657827

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  
 
3
 *  $Id: ibutton.h 4482 2011-12-13 14:01:29Z carlos $
 
4
 *  Ginkgo CADx Project
 
5
 *
 
6
 *  Copyright 2008-10 MetaEmotion S.L. All rights reserved.
 
7
 *  http://ginkgo-cadx.com
 
8
 *
 
9
 *  This file is licensed under LGPL v3 license.
 
10
 *  See License.txt for details
 
11
 *
 
12
 */
 
13
#pragma once
 
14
 
 
15
namespace GNC {
 
16
        namespace GCS {
 
17
 
 
18
                const int EMPTYBUTTONMASK = 0x00;
 
19
                const int LBUTTONMASK = 0x01;
 
20
                const int RBUTTONMASK = 0x02;
 
21
                const int MBUTTONMASK = 0x04;
 
22
 
 
23
                class EXTAPI TriggerButton {
 
24
 
 
25
                public:
 
26
 
 
27
                        inline TriggerButton() {
 
28
                                ResetTriggerButtonMask();
 
29
                        }
 
30
 
 
31
                        inline TriggerButton(const TriggerButton& o) {
 
32
                                *this = o;
 
33
                        }
 
34
 
 
35
                        /** Resets the activation button mask
 
36
                        **/
 
37
                        inline void ResetTriggerButtonMask() {
 
38
                                m_TriggerButtonMask = GNC::GCS::EMPTYBUTTONMASK;
 
39
                        }
 
40
 
 
41
                        /** Enable activation button mask
 
42
                        **/
 
43
                        inline void EnableTriggerButton(int mask) {
 
44
                                m_TriggerButtonMask |= mask;
 
45
                        }
 
46
 
 
47
                        inline TriggerButton& EnableLeft() {
 
48
                                EnableTriggerButton(LBUTTONMASK);
 
49
                                return *this;
 
50
                        }
 
51
 
 
52
                        inline TriggerButton& EnableRight() {
 
53
                                EnableTriggerButton(RBUTTONMASK);
 
54
                                return *this;
 
55
                        }
 
56
 
 
57
                        inline TriggerButton& EnableMiddle() {
 
58
                                EnableTriggerButton(MBUTTONMASK);
 
59
                                return *this;
 
60
                        }
 
61
 
 
62
                        /** Disable activation button mask
 
63
                        **/
 
64
                        inline void DisableTriggerButton(int mask) {
 
65
                                m_TriggerButtonMask &= ~mask;
 
66
                        }
 
67
 
 
68
                        inline TriggerButton& DisableLeft() {
 
69
                                DisableTriggerButton(LBUTTONMASK);
 
70
                                return *this;
 
71
                        }
 
72
 
 
73
                        inline TriggerButton& DisableRight() {
 
74
                                DisableTriggerButton(RBUTTONMASK);
 
75
                                return *this;
 
76
                        }
 
77
 
 
78
                        inline TriggerButton& DisableMiddle() {
 
79
                                DisableTriggerButton(MBUTTONMASK);
 
80
                                return *this;
 
81
                        }
 
82
 
 
83
                        /** Checks activation button mask is applied
 
84
                        **/
 
85
                        inline bool IsTriggerButtonEnabled(int mask) const {
 
86
                                return (0 != (m_TriggerButtonMask & mask));
 
87
                        }
 
88
 
 
89
                        inline bool IsLeftEnabled() const {
 
90
                                return IsTriggerButtonEnabled(LBUTTONMASK);
 
91
                        }
 
92
 
 
93
                        inline bool IsRightEnabled() const {
 
94
                                return IsTriggerButtonEnabled(RBUTTONMASK);
 
95
                        }
 
96
 
 
97
                        inline bool IsMiddleEnabled() const {
 
98
                                return IsTriggerButtonEnabled(MBUTTONMASK);
 
99
                        }
 
100
 
 
101
                        inline TriggerButton& operator=(const TriggerButton& o) {
 
102
                                this->m_TriggerButtonMask = o.m_TriggerButtonMask;
 
103
                                return *this;
 
104
                        }
 
105
 
 
106
                        inline bool IsEmpty() const {
 
107
                                return this->m_TriggerButtonMask == EMPTYBUTTONMASK;
 
108
                        }
 
109
 
 
110
                        
 
111
 
 
112
                protected:
 
113
                        int m_TriggerButtonMask;
 
114
                };
 
115
        }
 
116
}
 
 
b'\\ No newline at end of file'