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

Reply via email to