Qt Virtual Chart Table (QVCT)
COverlayVisibility.cpp
Go to the documentation of this file.
1 // INDENTING (emacs/vi): -*- mode:c++; tab-width:2; c-basic-offset:2; intent-tabs-mode:nil; -*- ex: set tabstop=2 expandtab:
2 
3 /*
4  * Qt Virtual Chart Table (QVCT)
5  * Copyright (C) 2012 Cedric Dufour <http://cedric.dufour.name>
6  * Author: Cedric Dufour <http://cedric.dufour.name>
7  *
8  * The Qt Virtual Chart Table (QVCT) is free software:
9  * you can redistribute it and/or modify it under the terms of the GNU General
10  * Public License as published by the Free Software Foundation, Version 3.
11  *
12  * The Qt Virtual Chart Table (QVCT) is distributed in the hope
13  * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
14  * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15  *
16  * See the GNU General Public License for more details.
17  */
18 
19 // QVCT
21 
22 
23 //------------------------------------------------------------------------------
24 // CONSTRUCTORS / DESTRUCTOR
25 //------------------------------------------------------------------------------
26 
28  : bVisible( true )
29  , bVisibleName( true )
30  , bVisiblePosition( false )
31  , bVisibleCourse( false )
32  , bVisibleRouting( false )
33 {}
34 
35 
36 //------------------------------------------------------------------------------
37 // METHODS
38 //------------------------------------------------------------------------------
39 
40 //
41 // SETTERS
42 //
43 
44 void COverlayVisibility::toggleVisibility( bool _bIncludeCourse, bool _bIncludeRouting )
45 {
46  if( !bVisible ) bVisible = true;
47  else
48  {
49  if( bVisiblePosition )
50  {
51  bVisibleName = false;
52  bVisiblePosition = false;
53  bVisibleCourse = false;
54  bVisibleRouting = false;
55  }
56  else if( bVisibleCourse ) bVisiblePosition = true;
57  else if( bVisibleName )
58  {
59  if( _bIncludeCourse ) bVisibleCourse = true;
60  else bVisiblePosition = true;
61  }
62  else if( bVisibleRouting ) bVisibleName = true;
63  else
64  {
65  if( _bIncludeRouting ) bVisibleRouting = true;
66  else bVisibleName = true;
67  }
68  }
69 }
70 
71 void COverlayVisibility::setVisibility( int _iVisibilityCode )
72 {
73  bVisible = (bool)( _iVisibilityCode & 1 );
74  bVisibleName = (bool)( _iVisibilityCode & 2 );
75  bVisiblePosition = (bool)( _iVisibilityCode & 4 );
76  bVisibleCourse = (bool)( _iVisibilityCode & 8 );
77  bVisibleRouting = (bool)( _iVisibilityCode & 16 );
78 }
79 
80 //
81 // GETTERS
82 //
83 
85 {
86  int __iVisibilityCode = 0;
87  __iVisibilityCode |= bVisible ? 1 : 0;
88  __iVisibilityCode |= bVisibleName ? 2 : 0;
89  __iVisibilityCode |= bVisiblePosition ? 4 : 0;
90  __iVisibilityCode |= bVisibleCourse ? 8 : 0;
91  __iVisibilityCode |= bVisibleRouting ? 16 : 0;
92  return __iVisibilityCode;
93 }
bool bVisibleRouting
Routing's (data) visibility status.
void setVisibility(int _iVisibilityCode)
Sets the global (coded) visibility status.
virtual void toggleVisibility(bool _bIncludeCourse, bool _bIncludeRouting)
Toggle the visibility status.
bool bVisible
Global (marker) visibility status.
bool bVisiblePosition
Position's visibility status.
bool bVisibleName
Name's (tag) visibility status.
int getVisibility() const
Returns the global (coded) visibility status.
bool bVisibleCourse
Course's visibility status.