DO NOT REPLY TO THIS MESSAGE. INSTEAD, POST ANY RESPONSES TO THE LINK BELOW.
[STR New]
Link: http://www.fltk.org/str.php?L2158
Version: 1.3-current
Link: http://www.fltk.org/str.php?L2158
Version: 1.3-current
#include <FL/Fl.H>
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Text_Display.H>
#include <FL/Fl_Value_Slider.H>
#include <FL/Fl_Light_Button.H>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Fl_Double_Window* mainWindow = 0;
Fl_Text_Display* textDisplay = 0;
Fl_Text_Buffer* textBuffer = 0;
Fl_Value_Slider* valueSlider = 0;
Fl_Light_Button* helveticaButton = 0;
Fl_Light_Button* courierButton = 0;
void addToBuffer(char* buffer, const char* title, char* text)
{
strcat(buffer, title);
strcat(buffer, "\n");
for (int i = 0; i < 10; i++)
strcat(buffer, text);
strcat(buffer, "\n");
strcat(buffer, "\n");
}
void sliderCallback(Fl_Widget* w, void* data)
{
Fl_Value_Slider* slider = (Fl_Value_Slider*)w;
textDisplay->wrap_mode(1, (int)slider->value());
}
void buttonCallback(Fl_Widget* w, void* data)
{
Fl_Light_Button* button = (Fl_Light_Button*)w;
if (button == helveticaButton) {
helveticaButton->set();
courierButton->clear();
textDisplay->textfont(FL_HELVETICA);
} else {
helveticaButton->clear();
courierButton->set();
textDisplay->textfont(FL_COURIER);
}
textDisplay->redraw();
}
char ascii[] = "....$.... "; // dollar
char utfOneByte[] = "....\x24.... "; // U+0024 (dollar)
char utfTwoByte[] = "....\xc2\xa9.... "; // U+00A9 (copyright sign)
char utfThreeByte[] = "....\xe2\x82\xac.... "; // U+20AC (euro currency sign)
int main(int argc, char* argv[])
{
printf("sizeof(unsigned int) = %d\n", sizeof(unsigned int));
printf("strlen(%s) = %d\n", ascii, strlen(ascii));
printf("strlen(%s) = %d\n", utfOneByte, strlen(utfOneByte));
printf("strlen(%s) = %d\n", utfTwoByte, strlen(utfTwoByte));
printf("strlen(%s) = %d\n", utfThreeByte, strlen(utfThreeByte));
mainWindow = new Fl_Double_Window(500, 300, "Wrap Text");
textDisplay = new Fl_Text_Display(10,10,480,190, 0);
textBuffer = new Fl_Text_Buffer;
textDisplay->buffer(textBuffer);
textDisplay->wrap_mode(1, 120);
textDisplay->textfont(FL_HELVETICA);
valueSlider = new Fl_Value_Slider(20, 220, 460, 20, "Wrap position");
valueSlider->type(FL_HORIZONTAL);
valueSlider->minimum( 50.0);
valueSlider->maximum(150.0);
valueSlider->value(120.0);
valueSlider->step(1.0);
valueSlider->callback(sliderCallback, 0);
helveticaButton = new Fl_Light_Button(20, 260, 100, 20, "Helvetica");
helveticaButton->set();
helveticaButton->callback(buttonCallback, 0);
courierButton = new Fl_Light_Button(380, 260, 100, 20, "Courier");
courierButton->clear();
courierButton->callback(buttonCallback, 0);
char* buffer = (char*)malloc(1000 * sizeof(char));
strcpy(buffer, "");
addToBuffer(buffer, "ascii:", ascii);
addToBuffer(buffer, "utf8 one byte:", utfOneByte);
addToBuffer(buffer, "utf8 two byte:", utfTwoByte);
addToBuffer(buffer, "utf8 three byte:", utfThreeByte);
textDisplay->insert(buffer);
mainWindow->show(argc, argv);
return Fl::run();
}
_______________________________________________
fltk-bugs mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-bugs