Changeset 77

Show
Ignore:
Timestamp:
07/31/08 19:06:18 (4 months ago)
Author:
kaarna
Message:

Button shadow. Aspectratio animation. Stuff.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/pihlaja/src/pihlaja/PihlajaMain.d

    r75 r77  
    390390        // 
    391391         
     392        //Window in window test 
     393            SubWindow winwin3 = new SubWindow("Scene 2", WindowHeaderType.SMALL, WindowHeaderType.SMALL); 
     394            winwin3.defaultSize( 0.4f, 0.2f ); 
     395            winwin3.move(0.5, 0.2); 
     396             
     397            auto emptyButton129 = new Button("Crazy Button 1"); 
     398            emptyButton129.signalActivate.attach(&clickHandler3); 
     399            winwin3.add( emptyButton129 );       
     400            auto emptyButton229 = new Button("Crazy Button 2"); 
     401            emptyButton229.signalActivate.attach(&clickHandler3); 
     402            winwin3.add( emptyButton229 ); 
     403             
     404            awin28.add( winwin3 ); 
     405         
     406        // 
     407         
    392408        hpaned.add( awin28 ); 
    393409         
  • trunk/pihlaja/src/shiraz/av/VideoViewer.d

    r70 r77  
    175175    protected int64_t m_seekPosition = 0; 
    176176     
     177    void aspectRatioAnim( float to_set_x, float to_set_y, void delegate() set_when_finished = null ) 
     178    { 
     179        Animator to_anim = new Animator(this, &xAspect, &xAspect, &yAspect, &yAspect, null, null, set_when_finished ); 
     180        to_anim.animateTo( to_set_x, to_set_y, 0.0f ); 
     181        add(to_anim); 
     182    } 
     183     
    177184    public float xAspect() { return m_xAspect; } 
    178185    public float xAspect(float set) 
     
    183190        return m_xAspect; 
    184191    } 
     192    void xAspectAnim( float to_set, void delegate() set_when_finished = null ) 
     193    { 
     194        Animator to_anim = new Animator(this, &xAspect, &xAspect, null, null, null, null, set_when_finished ); 
     195        to_anim.animateTo( to_set, 0.0f, 0.0f ); 
     196        add(to_anim); 
     197    } 
    185198    protected float m_xAspect = 1.78f; 
    186199     
     
    192205        invalidate(); 
    193206        return m_yAspect; 
     207    } 
     208    void yAspectAnim( float to_set, void delegate() set_when_finished = null ) 
     209    { 
     210        Animator to_anim = new Animator(this, &yAspect, &yAspect, null, null, null, null, set_when_finished ); 
     211        to_anim.animateTo( to_set, 0.0f, 0.0f ); 
     212        add(to_anim); 
    194213    } 
    195214    protected float m_yAspect = 1.0f; 
     
    525544        { 
    526545            is16by9 = true; 
    527             xAspect = 1.78f; 
    528             yAspect = 1.0f; 
     546            //xAspect = 1.78f; 
     547            //yAspect = 1.0f; 
     548            aspectRatioAnim(1.78f, 1.0f); 
    529549        } 
    530550        else 
    531551        { 
    532552            is16by9 = false; 
    533             xAspect = 1.333f; 
    534             yAspect = 1.0f; 
     553            //xAspect = 1.333f; 
     554            //yAspect = 1.0f; 
     555            aspectRatioAnim(1.33333333f, 1.0f); 
    535556        } 
    536557    } 
     
    835856                break; 
    836857                case GDK_1: 
    837                     xAspect = 1.78f; 
    838                     yAspect = 1.0f; 
     858                    //xAspect = 1.78f; 
     859                    //yAspect = 1.0f; 
     860                    aspectRatioAnim(1.78f, 1.0f); 
    839861                break; 
    840862                case GDK_2: 
    841                     xAspect = 1.333f; 
    842                     yAspect = 1.0f; 
     863                    //xAspect = 1.333f; 
     864                    //yAspect = 1.0f; 
     865                    aspectRatioAnim(1.33333333f, 1.0f); 
    843866                break; 
    844867                case GDK_3: 
    845                     xAspect = 2.0f; 
    846                     yAspect = 1.0f; 
     868                    //xAspect = 2.0f; 
     869                    //yAspect = 1.0f; 
     870                    aspectRatioAnim(2.0f, 1.0f); 
    847871                break; 
    848872                case GDK_4: 
     873                    aspectRatioAnim(2.35f, 1.0f); 
     874                break; 
     875                case GDK_5: 
    849876                    toggleScalingMode(); 
    850877                break; 
  • trunk/pihlaja/src/shiraz/canvas/Image.d

    r76 r77  
    982982    } 
    983983     
     984    void blur(float blur_amount) 
     985    { 
     986        fast_blur(this, this, blur_amount, blur_amount ); 
     987    } 
     988     
     989    /* 
     990    void blur(float blur_amount_todo) 
     991    { 
     992        float blur_amount = 30.0f; 
     993         
     994        //We don't want it to be negative: 
     995        if( blur_amount < 0.0f ) 
     996            blur_amount = blur_amount * -1.0f; 
     997             
     998        if( blur_amount == 0.0f ) 
     999            return; 
     1000     
     1001        if( imageData !is null ) 
     1002        { 
     1003            float[] grad_result; 
     1004            int red_val = 0; 
     1005            int green_val = 0; 
     1006            int blue_val = 0; 
     1007            int alpha_val = 0; 
     1008             
     1009            float[] gm = new float[(cast(uint)blur_amount)+1];//[0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.4f, 0.3f, 0.2f, 0.1f]; 
     1010            float half_len = (cast(float)gm.length)/2.0f; 
     1011            for( uint i = 0; i < gm.length; i++ ) 
     1012            { 
     1013                gm[i] = ((cast(float)i) - half_len) / (half_len);//translate from 0...10 range to -5...5 and then to -1...1 range. 
     1014                //(and actually smaller because of half_len*3.0f) 
     1015                if( gm[i] < 0.0f )//swap negative to be positive. Now we got 1...0...1 range. kind of. 
     1016                    gm[i] = gm[i] * -1.0f; 
     1017                gm[i] = (1.0f - gm[i]) * 0.4;//to 0...1...0 range. And then to 0...0.4...0 range. 
     1018                //This propably could be done earlier, but I'm no mathematician! 
     1019                 
     1020                Trace.formatln("gm: i:{} val: {}", i, cast(double)gm[i] ); 
     1021            } 
     1022            int ind = 0; 
     1023             
     1024            //assert(0); 
     1025             
     1026            float val1 = 0; 
     1027            float val2 = 0; 
     1028            float val3 = 0; 
     1029             
     1030            scope GLubyte[] imageDataCopy = imageData.dup; 
     1031             
     1032             
     1033            //Horizontal blur: 
     1034            for( uint i = 0; i < height; i++ ) 
     1035            { 
     1036                for( uint j = 0; j < width; j++ ) 
     1037                { 
     1038                    for( uint c = 0; c < gm.length; c++ ) 
     1039                    { 
     1040                        //ind = (cast(int)j - (cast(int)half_len)) + cast(int)c; 
     1041                        ind = (cast(int)j - (cast(int)(half_len/2))) + cast(int)c; 
     1042                     
     1043                        for( uint chan = 0; chan < channels; chan++ ) 
     1044                        { 
     1045                            if( ind >= 0 && ind < width ) 
     1046                            { 
     1047                                val1 = gm[c] * imageData[(i*width*channels) + (j*channels) + chan] ;//our source pixel with weight gm[c]. 
     1048                                val2 = (1.0f-gm[c]) * imageDataCopy[(i*width*channels) + (ind*channels) + chan];//our target pixels current value 
     1049                                //weighed so that the sum of the weights becomes 1.0. 
     1050                                val3 = val1 + val2;//The result. 
     1051                                 
     1052                                imageDataCopy[(i*width*channels) + (ind*channels) + chan] = cast(uint) val3; 
     1053                            } 
     1054                        } 
     1055                    } 
     1056                } 
     1057            } 
     1058             
     1059             
     1060            //Vertical blur: 
     1061             
     1062            scope GLubyte[] imageDataCopy2 = imageData.dup; 
     1063             
     1064            for( uint j = 0; j < width; j++ ) 
     1065            { 
     1066                for( uint i = 0; i < height; i++ ) 
     1067                { 
     1068                    for( uint c = 0; c < gm.length; c++ ) 
     1069                    { 
     1070                        ind = (cast(int)i - (cast(int)(half_len/2))) + cast(int)c; 
     1071                     
     1072                        for( uint chan = 0; chan < channels; chan++ ) 
     1073                        { 
     1074                            if( ind >= 0 && ind < height ) 
     1075                            { 
     1076                                val1 = gm[c] * imageData[(i*width*channels) + (j*channels) + chan] ;//our source pixel with weight gm[c]. 
     1077                                val2 = (1.0f-gm[c]) * imageDataCopy2[(ind*width*channels) + (j*channels) + chan];//our target pixels current value 
     1078                                //weighed so that the sum of the weights becomes 1.0. 
     1079                                val3 = val1 + val2;//The result. 
     1080                                 
     1081                                imageDataCopy2[(ind*width*channels) + (j*channels) + chan] = cast(uint) val3; 
     1082                            } 
     1083                        } 
     1084                    } 
     1085                } 
     1086            } 
     1087             
     1088             
     1089            //And now an additional pass to combine the two buffers. 
     1090             
     1091            for( uint i = 0; i < height; i++ ) 
     1092            { 
     1093                for( uint j = 0; j < width; j++ ) 
     1094                { 
     1095                    for( uint chan = 0; chan < channels; chan++ ) 
     1096                    { 
     1097                        val1 = imageDataCopy[(i*width*channels) + (j*channels) + chan]; 
     1098                        val2 = imageDataCopy2[(i*width*channels) + (j*channels) + chan]; 
     1099                        val3 = (val1 + val2) * 0.5f;//average. 
     1100                        //val3 = val1; 
     1101                        imageData[(i*width*channels) + (j*channels) + chan] = cast(uint) val3; 
     1102                    } 
     1103                } 
     1104            } 
     1105             
     1106        } 
     1107    } 
     1108    */ 
     1109     
     1110//The following two functions were taken from librsvg-2.15.90. 
     1111//And modified to fit this class. 
     1112//Here's the licence: 
     1113 
     1114/* 
     1115   rsvg-filter.c: Provides filters 
     1116 
     1117   Copyright (C) 2004 Caleb Moore 
     1118 
     1119   This program is free software; you can redistribute it and/or 
     1120   modify it under the terms of the GNU Library General Public License as 
     1121   published by the Free Software Foundation; either version 2 of the 
     1122   License, or (at your option) any later version. 
     1123 
     1124   This program is distributed in the hope that it will be useful, 
     1125   but WITHOUT ANY WARRANTY; without even the implied warranty of 
     1126   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
     1127   Library General Public License for more details. 
     1128 
     1129   You should have received a copy of the GNU Library General Public 
     1130   License along with this program; if not, write to the 
     1131   Free Software Foundation, Inc., 59 Temple Place - Suite 330, 
     1132   Boston, MA 02111-1307, USA. 
     1133 
     1134   Author: Caleb Moore <c.moore@student.unsw.edu.au> 
     1135*/ 
     1136 
     1137 
     1138static void 
     1139box_blur (Image input, Image output, GLubyte[] intermediate, int kw, 
     1140          int kh )//, RsvgIRect boundarys, RsvgFilterPrimitiveOutput op) 
     1141{ 
     1142    int ch; 
     1143    int x, y; 
     1144    //int rowstride;//,  
     1145    int height = input.height; 
     1146    int width = input.width; 
     1147    int channels = input.channels; 
     1148 
     1149    //GLubyte* in_pixels; 
     1150    //GLubyte* output_pixels; 
     1151 
     1152    int sum; 
     1153 
     1154    //height = gdk_pixbuf_get_height (in); 
     1155    //width = gdk_pixbuf_get_width (in); 
     1156 
     1157    GLubyte[] in_pixels = input.imageData;//gdk_pixbuf_get_pixels (in); 
     1158    GLubyte[] output_pixels = output.imageData;//gdk_pixbuf_get_pixels (output); 
     1159 
     1160    int rowstride = input.width * input.channels;//gdk_pixbuf_get_rowstride (in); 
     1161 
     1162    //if (kw > boundarys.x1 - boundarys.x0) 
     1163    //  kw = boundarys.x1 - boundarys.x0; 
     1164 
     1165    //if (kh > boundarys.y1 - boundarys.y0) 
     1166    //  kh = boundarys.y1 - boundarys.y0; 
     1167 
     1168    if (kw > width) 
     1169        kw = width; 
     1170 
     1171    if (kh > height) 
     1172        kh = height; 
     1173 
     1174 
     1175    if (kw >= 1) 
     1176    { 
     1177        for (ch = 0; ch < channels; ch++) 
     1178        { 
     1179                    /* 
     1180                    switch (ch) 
     1181                        { 
     1182                        case 0: 
     1183                            if (!op.Rused) 
     1184                                continue; 
     1185                        case 1: 
     1186                            if (!op.Gused) 
     1187                                continue; 
     1188                        case 2: 
     1189                            if (!op.Bused) 
     1190                                continue; 
     1191                        case 3: 
     1192                            if (!op.Aused) 
     1193                                continue; 
     1194                        } 
     1195                        */ 
     1196                    //for (y = boundarys.y0; y < boundarys.y1; y++) 
     1197                    for (y = 0; y < height; y++) 
     1198                    { 
     1199                            sum = 0; 
     1200                            //for (x = boundarys.x0; x < boundarys.x0 + kw; x++) 
     1201                            for (x = 0; x < 0 + kw; x++) 
     1202                            { 
     1203                                    sum += (intermediate[x % kw] = in_pixels[channels * x + y * rowstride + ch]); 
     1204 
     1205                                    //if (x - kw / 2 >= 0 && x - kw / 2 < boundarys.x1) 
     1206                                    if (x - kw / 2 >= 0 && x - kw / 2 < width) 
     1207                                        output_pixels[channels * (x - kw / 2) + y * rowstride + ch] = sum / kw; 
     1208                            } 
     1209                            //for (x = boundarys.x0 + kw; x < boundarys.x1; x++) 
     1210                            for (x = 0 + kw; x < width; x++) 
     1211                            { 
     1212                                    sum -= intermediate[x % kw]; 
     1213                                    sum += (intermediate[x % kw] = in_pixels[channels * x + y * rowstride + ch]); 
     1214                                    output_pixels[channels * (x - kw / 2) + y * rowstride + ch] = sum / kw; 
     1215                            } 
     1216                            //for (x = boundarys.x1; x < boundarys.x1 + kw; x++) 
     1217                            for (x = width; x < width + kw; x++) 
     1218                            { 
     1219                                    sum -= intermediate[x % kw]; 
     1220 
     1221                                    //if (x - kw / 2 >= 0 && x - kw / 2 < boundarys.x1) 
     1222                                    if (x - kw / 2 >= 0 && x - kw / 2 < width) 
     1223                                        output_pixels[channels * (x - kw / 2) + y * rowstride + ch] = sum / kw; 
     1224                            } 
     1225                    } 
     1226        } 
     1227        in_pixels = output_pixels; 
     1228    } 
     1229 
     1230        if (kh >= 1) 
     1231        { 
     1232            for (ch = 0; ch < channels; ch++) 
     1233                { 
     1234                    /* 
     1235                    switch (ch) 
     1236                        { 
     1237                        case 0: 
     1238                            if (!op.Rused) 
     1239                                continue; 
     1240                        case 1: 
     1241                            if (!op.Gused) 
     1242                                continue; 
     1243                        case 2: 
     1244                            if (!op.Bused) 
     1245                                continue; 
     1246                        case 3: 
     1247                            if (!op.Aused) 
     1248                                continue; 
     1249                        } 
     1250                    */ 
     1251 
     1252                    //for (x = boundarys.x0; x < boundarys.x1; x++) 
     1253                    for (x = 0; x < width; x++) 
     1254                        { 
     1255                            sum = 0; 
     1256 
     1257                            //for (y = boundarys.y0; y < boundarys.y0 + kh; y++) 
     1258                            for (y = 0; y < 0 + kh; y++) 
     1259                                { 
     1260                                    sum += (intermediate[y % kh] = in_pixels[channels * x + y * rowstride + ch]); 
     1261 
     1262                                    //if (y - kh / 2 >= 0 && y - kh / 2 < boundarys.y1) 
     1263                                    if (y - kh / 2 >= 0 && y - kh / 2 < height) 
     1264                                        output_pixels[channels * x + (y - kh / 2) * rowstride + ch] = sum / kh; 
     1265                                } 
     1266                            //for (; y < boundarys.y1; y++) 
     1267                            for (; y < height; y++) 
     1268                                { 
     1269                                    sum -= intermediate[y % kh]; 
     1270                                    sum += (intermediate[y % kh] = in_pixels[channels * x + y * rowstride + ch]); 
     1271                                    output_pixels[channels * x + (y - kh / 2) * rowstride + ch] = sum / kh; 
     1272                                } 
     1273                            //for (; y < boundarys.y1 + kh; y++) 
     1274                            for (; y < height + kh; y++) 
     1275                                { 
     1276                                    sum -= intermediate[y % kh]; 
     1277 
     1278                                    //if (y - kh / 2 >= 0 && y - kh / 2 < boundarys.y1) 
     1279                                    if (y - kh / 2 >= 0 && y - kh / 2 < height) 
     1280                                        output_pixels[channels * x + (y - kh / 2) * rowstride + ch] = sum / kh; 
     1281                                } 
     1282                        } 
     1283                } 
     1284        } 
     1285} 
     1286 
     1287static void fast_blur(Image input, Image output, float blur_amount_x, 
     1288           float blur_amount_y )//, RsvgIRect boundarys, RsvgFilterPrimitiveOutput op) 
     1289{ 
     1290    int kx, ky; 
     1291     
     1292    kx = cast(int) floor(blur_amount_x * 3.0f * sqrt(2.0f*PI) / 4.0f + 0.5f); 
     1293    ky = cast(int) floor(blur_amount_y * 3.0f * sqrt(2.0f*PI) / 4.0f + 0.5f); 
     1294 
     1295    if (kx < 1 && ky < 1) 
     1296        return; 
     1297 
     1298    scope GLubyte[] intermediate = new GLubyte[max(kx, ky)]; 
     1299 
     1300    box_blur (input, output, intermediate, kx, 
     1301              ky );//, boundarys, op); 
     1302    box_blur (output, output, intermediate, kx, 
     1303              ky );//, boundarys, op); 
     1304    box_blur (output, output, intermediate, kx, 
     1305              ky );//, boundarys, op); 
     1306 
     1307} 
     1308 
     1309 
     1310 
     1311     
    9841312    void swapAR() 
    9851313    { 
     
    10081336    } 
    10091337     
    1010     static void writeToPng( char[] set_filename, GLubyte[] image, uint wid, uint hei, uint chan ) 
     1338    void writeToPng( char[] set_filename ) 
     1339    { 
     1340        if( imageData !is null ) 
     1341            writeBufferToPng( set_filename, imageData, width, height, channels ); 
     1342    } 
     1343     
     1344    static void writeBufferToPng( char[] set_filename, GLubyte[] image, uint wid, uint hei, uint chan ) 
    10111345    { 
    10121346        cairo_format_t form = cairo_format_t.ARGB32; 
  • trunk/pihlaja/src/shiraz/canvas/Rectangle.d

    r76 r77  
    28892889            if( set == ScrollbarSetting.ALWAYS ) 
    28902890                hasVerticalScrollbar = true; 
     2891            else if( set == ScrollbarSetting.NEVER ) 
     2892                hasVerticalScrollbar = false; 
    28912893                 
    28922894            m_verticalScrollbarSetting = set; 
     
    29032905            if( set == ScrollbarSetting.ALWAYS ) 
    29042906                hasHorizontalScrollbar = true; 
     2907            else if( set == ScrollbarSetting.NEVER ) 
     2908                hasHorizontalScrollbar = false; 
    29052909                 
    29062910            m_horizontalScrollbarSetting = set; 
  • trunk/pihlaja/src/shiraz/core/Theme.d

    r76 r77  
    111111        createButtonImage(); 
    112112        createTopWindowHeaderImage(); 
     113        createBottomWindowHeaderImage(); 
    113114    } 
    114115     
     
    126127        Image my_image = new Image(256, 64, 4); 
    127128        my_image.name = "Shiraz.Button"; 
     129        drawButton(my_image, true ); 
     130        my_image.blur(2.0f); 
    128131        drawButton(my_image); 
     132        my_image.writeToPng("/home/joonaz/testi/Button.png"); 
    129133        my_image.createTexture(); 
    130134        addImage( "Shiraz.Button", my_image ); 
    131135    } 
    132136     
    133     void drawButton( Image an_image
     137    void drawButton( Image an_image, bool is_shadow = false
    134138    { 
    135139        cairo_format_t form = cairo_format_t.ARGB32; 
     
    198202            } 
    199203     
    200             cr.setSource( linear ); 
     204            if( is_shadow == false ) 
     205            { 
     206                cr.setSource( linear ); 
     207            } 
     208            else 
     209            { 
     210                cr.setSourceRgba(0.0f, 0.0f, 0.0f, 0.5f); 
     211                cr.translate(1.0f, 3.5f); 
     212            } 
    201213     
    202214            cr.moveTo(xRender, yRender + curve_size);//up-left, lowerpoint 
     
    231243        */ 
    232244         
    233         imageSurface.writeToPng("/home/joonaz/testi/Button.png"); 
     245        //imageSurface.writeToPng("/home/joonaz/testi/Button.png"); 
    234246         
    235247        cr.destroy(); 
     
    244256        Image my_image = new Image(256, 64, 4); 
    245257        my_image.name = "Shiraz.WindowHeader.Top"; 
    246         drawTopWindowHeader(my_image); 
    247         //my_image.swapAR(); 
     258        drawWindowHeader(my_image, true); 
    248259        my_image.createTexture(); 
    249260        addImage( "Shiraz.WindowHeader.Top", my_image ); 
    250         addImage( "Shiraz.WindowHeader.Bottom", my_image );//TEMP 
    251     } 
    252      
    253     void drawTopWindowHeader( Image an_image ) 
     261    } 
     262     
     263    void createBottomWindowHeaderImage() 
     264    { 
     265        Image my_image = new Image(256, 64, 4); 
     266        my_image.name = "Shiraz.WindowHeader.Bottom"; 
     267        drawWindowHeader(my_image, false); 
     268        my_image.createTexture(); 
     269        addImage( "Shiraz.WindowHeader.Bottom", my_image ); 
     270    } 
     271     
     272    void drawWindowHeader( Image an_image, bool is_top ) 
    254273    { 
    255274        cairo_format_t form = cairo_format_t.ARGB32; 
     
    268287        scope(exit) delete cr; 
    269288     
    270      
     289       //TODO theme the SMALL and NORMAL window sizes... 
    271290        float hei = g_shiraz.getValueFromTheme("Shiraz.WindowHeader.SMALL.defaultHeight") / g_shiraz.pixel; 
    272291     
     
    291310                     
    292311            scope Pattern linear = Pattern.createLinear( xRender, yRender, xRender, yRender + hei );//(0.0, 0.0, 0.0, 20.0) ); 
     312            ColourStop last_colourstop; 
    293313            foreach( ColourStop colstop; gradient ) 
    294314            { 
     315                //We store the last colourstop: 
     316                last_colourstop = colstop; 
     317             
    295318                //BGRA 
    296319                //I checked, and with the current settings the cairo images 
     
    302325            } 
    303326     
    304             cr.setSource( linear ); 
     327            if( is_top == true ) 
     328            { 
     329                cr.setSource( linear ); 
     330            } 
     331            else 
     332            { 
     333                cr.setSourceRgba(last_colourstop.colour.b, last_colourstop.colour.g, last_colourstop.colour.r, last_colourstop.colour.a); 
     334                cr.translate(0.0f, -hei); 
     335            } 
    305336     
    306337            cr.moveTo(xRender, yRender + curve_size);//up-left, lowerpoint 
  • trunk/pihlaja/src/shiraz/ui/Menu.d

    r76 r77  
    364364        followsChildHeight = true; 
    365365         
     366        container.followsChildWidth = true; 
     367        container.followsChildHeight = true; 
     368         
    366369        xPackOptions = PackOptions.BYPASS; 
    367370        yPackOptions = PackOptions.BYPASS; 
    368371         
    369372        arrangeType = ArrangeType.VBOX; 
     373        container.arrangeType = ArrangeType.VBOX; 
     374         
     375        //A test to see if this helps with the arrange problems 
     376        //with followsChildWidth: 
     377        verticalScrollbarSetting = ScrollbarSetting.NEVER; 
     378        horizontalScrollbarSetting = ScrollbarSetting.NEVER; 
     379         
     380        container.verticalScrollbarSetting = ScrollbarSetting.NEVER; 
     381        container.horizontalScrollbarSetting = ScrollbarSetting.NEVER; 
    370382         
    371383        /* 
     
    385397    } 
    386398 
    387      
     399    /* 
     400    public bool hasVerticalScrollbar() { return m_hasVerticalScrollbar; } 
     401    protected bool hasVerticalScrollbar(bool set) 
     402    { 
     403        Trace.formatln("MenuWindow.hasVerticalScrollbar() CALLED."); 
     404        assert(0); 
     405        return super.hasVerticalScrollbar(set); 
     406    } 
     407    */ 
    388408 
    389409    /* 
  • trunk/pihlaja/src/shiraz/ui/Scrollbar.d

    r68 r77  
    209209    public void valueMinus() 
    210210    { 
     211        Trace.formatln("ScrollbarControlRect.valueMinus() CALLED. {}", fullName ); 
    211212        value = value - 0.01f;//TODO decide the increment... 
    212213        updateControlRectFromValue();