Browse Source

Add `selectNextSurface` and `selectPrevSurface` methods to `SurfaceManager`

master
Krisjanis Rijnieks 9 years ago
parent
commit
0f1ded7ba3
  1. 54
      src/Surfaces/SurfaceManager.cpp
  2. 2
      src/Surfaces/SurfaceManager.h

54
src/Surfaces/SurfaceManager.cpp

@ -93,6 +93,60 @@ BaseSurface * SurfaceManager::selectSurface(BaseSurface * surface){
return 0; return 0;
} }
BaseSurface * SurfaceManager::selectNextSurface(){
int next;
if(selectedSurface == 0){
next = 0;
selectedSurface = selectSurface(next);
ofNotifyEvent(surfaceSelectedEvent, next, this);
return selectedSurface;
}
for(int i = 0; i < _surfaces.size(); ++i){
if(_surfaces[i] == selectedSurface){
if(i < _surfaces.size() - 1){
next = i + 1;
}else{
next = 0;
}
selectedSurface = _surfaces[next];
ofNotifyEvent(surfaceSelectedEvent, next, this);
return selectedSurface;
}
}
return 0;
}
BaseSurface * SurfaceManager::selectPrevSurface(){
int prev;
if(selectedSurface == 0){
prev = _surfaces.size() - 1;
selectedSurface = selectSurface(prev);
ofNotifyEvent(surfaceSelectedEvent, prev, this);
return selectedSurface;
}
for(int i = 0; i < _surfaces.size(); ++i){
if(_surfaces[i] == selectedSurface){
if(i > 0){
prev = i - 1;
}else{
prev = _surfaces.size() - 1;
}
selectedSurface = _surfaces[prev];
ofNotifyEvent(surfaceSelectedEvent, prev, this);
return selectedSurface;
}
}
return 0;
}
BaseSurface * SurfaceManager::getSelectedSurface(){ BaseSurface * SurfaceManager::getSelectedSurface(){
return selectedSurface; return selectedSurface;
} }

2
src/Surfaces/SurfaceManager.h

@ -39,6 +39,8 @@ class SurfaceManager {
BaseSurface * getSurface(int index); BaseSurface * getSurface(int index);
BaseSurface * selectSurface(int index); BaseSurface * selectSurface(int index);
BaseSurface * selectSurface(BaseSurface * surface); BaseSurface * selectSurface(BaseSurface * surface);
BaseSurface * selectNextSurface();
BaseSurface * selectPrevSurface();
BaseSurface * getSelectedSurface(); BaseSurface * getSelectedSurface();
int size(); int size();

Loading…
Cancel
Save