From f30761e5eef1b71d05720a0e7ea7cb4aa54029b2 Mon Sep 17 00:00:00 2001 From: DarkWyrm Date: Sun, 16 Nov 2003 18:25:29 +0000 Subject: [PATCH] Last-minute tweaks to fix control_scrollbar()'s Set Double command git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5390 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/interface/ScrollBar.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/kits/interface/ScrollBar.cpp b/src/kits/interface/ScrollBar.cpp index a5de3e5731..daed75c713 100644 --- a/src/kits/interface/ScrollBar.cpp +++ b/src/kits/interface/ScrollBar.cpp @@ -986,13 +986,22 @@ status_t control_scrollbar(int8 command, void *data, BScrollBar *sb) case 1: // Set Double { - // TODO: Implement code to add or remove the inside pair of arrow buttons - if(!data) return B_BAD_VALUE; - + bool datavalue=*((bool *)data); + + if(sb->privatedata->sbinfo.double_arrows==datavalue) + return B_OK; + sb->privatedata->sbinfo.double_arrows=datavalue; + + int8 multiplier=(datavalue)?1:-1; + + if(sb->fOrientation==B_VERTICAL) + sb->privatedata->thumbframe.OffsetBy(0,multiplier*B_H_SCROLL_BAR_HEIGHT); + else + sb->privatedata->thumbframe.OffsetBy(multiplier*B_V_SCROLL_BAR_WIDTH,0); return B_OK; }