summaryrefslogtreecommitdiff
path: root/libs/surfaces/push2/scale.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/surfaces/push2/scale.cc')
-rw-r--r--libs/surfaces/push2/scale.cc28
1 files changed, 9 insertions, 19 deletions
diff --git a/libs/surfaces/push2/scale.cc b/libs/surfaces/push2/scale.cc
index 8f04b22635..97b59220c3 100644
--- a/libs/surfaces/push2/scale.cc
+++ b/libs/surfaces/push2/scale.cc
@@ -16,6 +16,7 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+#include <cairomm/region.h>
#include <pangomm/layout.h>
#include "pbd/compose.h"
@@ -51,37 +52,26 @@ using namespace std;
using namespace PBD;
using namespace Glib;
using namespace ArdourSurface;
+using namespace ArdourCanvas;
-ScaleLayout::ScaleLayout (Push2& p, Session& s, Cairo::RefPtr<Cairo::Context> context)
+ScaleLayout::ScaleLayout (Push2& p, Session& s)
: Push2Layout (p, s)
{
- build_scale_menu (context);
+ build_scale_menu ();
}
ScaleLayout::~ScaleLayout ()
{
}
-bool
-ScaleLayout::redraw (Cairo::RefPtr<Cairo::Context> context, bool force) const
+void
+ScaleLayout::render (Rect const& area, Cairo::RefPtr<Cairo::Context> context) const
{
- bool draw = false;
-
- if (scale_menu->dirty()) {
- draw = true;
- }
-
- if (!draw) {
- return false;
- }
-
context->set_source_rgb (0.764, 0.882, 0.882);
context->rectangle (0, 0, 960, 160);
context->fill ();
- scale_menu->redraw (context, force);
-
- return true;
+ scale_menu->render (area, context);
}
void
@@ -109,11 +99,11 @@ ScaleLayout::strip_vpot_touch (int, bool)
}
void
-ScaleLayout::build_scale_menu (Cairo::RefPtr<Cairo::Context> context)
+ScaleLayout::build_scale_menu ()
{
vector<string> v;
- scale_menu = new Push2Menu (context);
+ scale_menu = new Push2Menu (this);
v.push_back ("Dorian");
v.push_back ("IonianMajor");