Initial import of Dillo
This commit is contained in:
145
test/dw/dw_float_test.cc
Normal file
145
test/dw/dw_float_test.cc
Normal file
@ -0,0 +1,145 @@
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
|
||||
#include "dw/core.hh"
|
||||
#include "dw/fltkcore.hh"
|
||||
#include "dw/fltkviewport.hh"
|
||||
#include "dw/textblock.hh"
|
||||
|
||||
using namespace dw;
|
||||
using namespace dw::core;
|
||||
using namespace dw::core::style;
|
||||
using namespace dw::fltk;
|
||||
|
||||
static Textblock *firstFloat;
|
||||
static Style *wordStyle;
|
||||
|
||||
static void addTextToFloatTimeout (void *data)
|
||||
{
|
||||
printf("addTextToFloatTimeout\n");
|
||||
|
||||
const char *fWords[] = { "This", "is", "a", "float,", "which", "is",
|
||||
"set", "aside", "from", "the", "main",
|
||||
"text.", NULL };
|
||||
|
||||
for(int k = 0; fWords[k]; k++) {
|
||||
firstFloat->addText(fWords[k], wordStyle);
|
||||
firstFloat->addSpace(wordStyle);
|
||||
}
|
||||
|
||||
firstFloat->flush();
|
||||
|
||||
Fl::repeat_timeout (2, addTextToFloatTimeout, NULL);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
FltkPlatform *platform = new FltkPlatform ();
|
||||
Layout *layout = new Layout (platform);
|
||||
|
||||
Fl_Window *window = new Fl_Window(400, 600, "Dw Floats Example");
|
||||
window->begin();
|
||||
|
||||
FltkViewport *viewport = new FltkViewport (0, 0, 400, 600);
|
||||
layout->attachView (viewport);
|
||||
|
||||
StyleAttrs styleAttrs;
|
||||
styleAttrs.initValues ();
|
||||
styleAttrs.margin.setVal (5);
|
||||
|
||||
FontAttrs fontAttrs;
|
||||
fontAttrs.name = "Bitstream Charter";
|
||||
fontAttrs.size = 14;
|
||||
fontAttrs.weight = 400;
|
||||
fontAttrs.style = FONT_STYLE_NORMAL;
|
||||
fontAttrs.letterSpacing = 0;
|
||||
styleAttrs.font = core::style::Font::create (layout, &fontAttrs);
|
||||
|
||||
styleAttrs.color = Color::create (layout, 0x000000);
|
||||
styleAttrs.backgroundColor = Color::create (layout, 0xffffff);
|
||||
|
||||
Style *widgetStyle = Style::create (&styleAttrs);
|
||||
|
||||
styleAttrs.borderWidth.setVal (1);
|
||||
styleAttrs.setBorderColor (Color::create (layout, 0x808080));
|
||||
styleAttrs.setBorderStyle (BORDER_DASHED);
|
||||
styleAttrs.width = createAbsLength(100);
|
||||
styleAttrs.vloat = FLOAT_LEFT;
|
||||
Style *leftFloatStyle = Style::create (&styleAttrs);
|
||||
|
||||
styleAttrs.width = createAbsLength(80);
|
||||
styleAttrs.vloat = FLOAT_RIGHT;
|
||||
Style *rightFloatStyle = Style::create (&styleAttrs);
|
||||
|
||||
Textblock *textblock = new Textblock (false);
|
||||
textblock->setStyle (widgetStyle);
|
||||
layout->setWidget (textblock);
|
||||
|
||||
widgetStyle->unref();
|
||||
|
||||
styleAttrs.borderWidth.setVal (0);
|
||||
styleAttrs.width = LENGTH_AUTO;
|
||||
styleAttrs.vloat = FLOAT_NONE;
|
||||
styleAttrs.margin.setVal (0);
|
||||
styleAttrs.backgroundColor = NULL;
|
||||
|
||||
wordStyle = Style::create (&styleAttrs);
|
||||
|
||||
for(int i = 1; i <= 10; i++) {
|
||||
char buf[16];
|
||||
snprintf(buf, sizeof(buf), "%d%s",
|
||||
i, (i == 1 ? "st" : (i == 2 ? "nd" : (i == 3 ? "rd" : "th"))));
|
||||
|
||||
const char *words[] = { "This", "is", "the", buf, "paragraph.",
|
||||
"Here", "comes", "some", "more", "text",
|
||||
"to", "demonstrate", "word", "wrapping.",
|
||||
NULL };
|
||||
|
||||
for(int j = 0; words[j]; j++) {
|
||||
textblock->addText(words[j], wordStyle);
|
||||
textblock->addSpace(wordStyle);
|
||||
|
||||
if ((i == 3 || i == 5) && j == 8) {
|
||||
textblock->addText("[float]", wordStyle);
|
||||
textblock->addSpace(wordStyle);
|
||||
|
||||
Textblock *vloat = new Textblock (false);
|
||||
textblock->addWidget(vloat, i == 3 ? leftFloatStyle : rightFloatStyle);
|
||||
|
||||
const char *fWords[] = { "This", "is", "a", "float,", "which", "is",
|
||||
"set", "aside", "from", "the", "main",
|
||||
"text.", NULL };
|
||||
|
||||
vloat->addText(i == 3 ? "Left:" : "Right:", wordStyle);
|
||||
vloat->addSpace(wordStyle);
|
||||
|
||||
for(int k = 0; fWords[k]; k++) {
|
||||
vloat->addText(fWords[k], wordStyle);
|
||||
vloat->addSpace(wordStyle);
|
||||
}
|
||||
|
||||
vloat->flush ();
|
||||
|
||||
if(i == 3)
|
||||
firstFloat = vloat;
|
||||
}
|
||||
}
|
||||
|
||||
textblock->addParbreak(10, wordStyle);
|
||||
}
|
||||
|
||||
leftFloatStyle->unref();
|
||||
rightFloatStyle->unref();
|
||||
|
||||
textblock->flush ();
|
||||
|
||||
window->resizable(viewport);
|
||||
window->show();
|
||||
Fl::add_timeout (2, addTextToFloatTimeout, NULL);
|
||||
int errorCode = Fl::run();
|
||||
|
||||
wordStyle->unref();
|
||||
delete layout;
|
||||
|
||||
return errorCode;
|
||||
}
|
||||
Reference in New Issue
Block a user