#!/usr/local/bin/rune -x # # Graphical test limport "sys"; import "stdio"; import "gfx"; import "gadgets"; alias stdio.File *stdout = stdio.stdout; typedef gfx.Event Event; typedef gfx.Frame Frame; subclass gadgets.SliderFrame as MySlider { } subclass Frame as MyFrame { refine method bool refreshFrame(int x, int y, int w, int h) { super.refreshFrame(x, y, w, h); this.drawLine(5, 5, this.bounds.w - 5, this.bounds.h -5); this.drawLine(this.bounds.w - 5, 5, 5, this.bounds.h -5); this.drawRect(0, 0, this.bounds.w - 1, this.bounds.h -1); } } int main(int ac, char **av) { Frame *frame0; Frame *frame1; MyFrame *frame2; MySlider *sliderH; MySlider *sliderV; int i; int j; int k; int l; frame0.createFrame("OUTER", &gfx.root, 512, 256, BODY); frame0->setBGColor(255, 129, 0); sliderH.createSlider(frame0, 0, 0, sliderH.NULL, BELOW|FILLX); sliderV.createSlider(frame0, 0, 0, sliderH, RIGHT|FILLY); frame1.createFrame("WINDOW", frame0, 0, 0, BODY|FILLX|FILLY|WINDOW); frame2.createFrame("INNER", frame1, 2000, 1000, BODY|WINDOW|CLIP); # frame2.createFrame(frame1, 1000, 1000, BODY); sliderH->setBody(frame1, frame2); sliderV->setBody(frame1, frame2); for (i = 0; i < 4; ++i) { Frame *frame3; frame3.createFrame("LEFT", frame2, 0, 0, LEFT); for (j = 0; j < 4; ++j) { Frame *frame4; frame4.createFrame("ABOVE", frame3, 0, 0, ABOVE); for (k = 0; k < 5; ++k) { Frame *frame5; frame5.createFrame("SUBABOVE", frame4, 0, 0, ABOVE); for (l = 0; l < 10; ++l) { gadgets.ButtonFrame *button; button.createButton(frame5, 0, 0, LEFT, "LEFT"); } } } } stdout->show("Number of buttons:", i * j * k * l); frame0->recalc(); frame0->flush(); Thread.waitThreads(); # wait until all threads have exited return(0); }