summaryrefslogtreecommitdiff
path: root/ide/AndroidStudio3/app/src/main/cpp/HelloAndroid.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'ide/AndroidStudio3/app/src/main/cpp/HelloAndroid.cxx')
-rw-r--r--ide/AndroidStudio3/app/src/main/cpp/HelloAndroid.cxx273
1 files changed, 125 insertions, 148 deletions
diff --git a/ide/AndroidStudio3/app/src/main/cpp/HelloAndroid.cxx b/ide/AndroidStudio3/app/src/main/cpp/HelloAndroid.cxx
index 913bafd20..83ee319a4 100644
--- a/ide/AndroidStudio3/app/src/main/cpp/HelloAndroid.cxx
+++ b/ide/AndroidStudio3/app/src/main/cpp/HelloAndroid.cxx
@@ -89,172 +89,144 @@ int main(int argc, char **argv)
#elif 1
-#include <stdlib.h>
+
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
#include <FL/Fl.H>
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Box.H>
+#include <FL/Fl_Value_Slider.H>
#include <FL/fl_draw.H>
int N = 0;
-#define W 200
-#define H 50
-#define ROWS 14
-
-// Note: Run the program with command line '-s abc' to view boxtypes
-// with scheme 'abc'.
-
-// class BoxGroup - minimal class to enable visible box size debugging
-//
-// Set the following static variables to 0 (default) to disable
-// or 1 to enable the given feature.
-//
-// If you enable the 'outline' variable, then a red frame should be drawn
-// around each box, and it should ideally be fully visible.
-//
-// The white background is optional (otherwise you see the window background).
-//
-// Set BOTH variables = 0 to show the default image for the FLTK manual.
-//
-// Note: As of FLTK 1.3.3 (probably since FLTK 1.0/1.1) there are some
-// shadows 'leaking' outside their widget bounding boxes (x,y,w,h).
-// Is this intentional?
-
-static const int outline = 0; // draw 1-px red frame around all boxes
-static const int box_bg = 0; // draw white background inside all boxes
-static const int inactive = 0; // deactivate boxes and use green background
-class BoxGroup : public Fl_Group {
-public:
- BoxGroup(int x, int y, int w, int h) : Fl_Group(x,y,w,h) {};
- void draw() {
- draw_box();
- if (outline + box_bg) { // outline or box_bg or both
- Fl_Widget*const* a = array();
- for (int i=children(); i--;) {
- Fl_Widget& o = **a++;
- if (outline) {
- fl_color(FL_RED);
- fl_rect(o.x()-1,o.y()-1,o.w()+2,o.h()+2);
- }
- if (box_bg) {
- fl_color(FL_WHITE);
- fl_rectf(o.x(),o.y(),o.w(),o.h());
- }
- fl_color(FL_BLACK);
- }
- } // outline or box_bg or both
- Fl_Group::draw_children();
- } // draw()
-}; // class BoxGroup
+#define W 70
+#define H 70
+#define ROWS 7
+#define COLS 6
Fl_Double_Window *window;
+Fl_Value_Slider *orientation;
+Fl_Value_Slider *size;
+
+void slider_cb(Fl_Widget *, void *) {
+ static char buf[80];
+ int val = (int)orientation->value();
+ int sze = (int)size->value();
+ for (int i = window->children(); i--; ) { // all window children
+ Fl_Widget *wc = window->child(i);
+ const char *l = (const char *)(wc->user_data());
+ if ( l && *l == '@' ) { // all children with '@'
+ l ++;
+ if ( wc->box() == FL_NO_BOX ) { // ascii legend?
+ if (val&&sze) sprintf(buf, "@@%+d%d%s", sze, val, l);
+ else if (val) sprintf(buf, "@@%d%s", val, l);
+ else if (sze) sprintf(buf, "@@%+d%s", sze, l);
+ else sprintf(buf, "@@%s", l);
+ } else { // box with symbol
+ if (val&&sze) sprintf(buf, "@%+d%d%s", sze, val, l);
+ else if (val) sprintf(buf, "@%d%s", val, l);
+ else if (sze) sprintf(buf, "@%+d%s", sze, l);
+ else sprintf(buf, "@%s", l);
+ }
+ wc->copy_label(buf);
+ }
+ }
+ window->redraw();
+}
-void bt(const char *name, Fl_Boxtype type, int square=0) {
- int x = N%4;
- int y = N/4;
+void bt(const char *name) {
+ int x = N%COLS;
+ int y = N/COLS;
+ char buf[255];
N++;
x = x*W+10;
y = y*H+10;
- Fl_Box *b = new Fl_Box(type,x,y,square ? H-20 : W-20,H-20,name);
- b->labelsize(11);
- if (inactive) {
- b->color(FL_GREEN);
- b->deactivate();
- }
- if (square) b->align(FL_ALIGN_RIGHT);
+ sprintf(buf, "@%s", name);
+ Fl_Box *a = new Fl_Box(x,y,W-20,H-20);
+ a->box(FL_NO_BOX);
+ a->copy_label(buf);
+ a->align(FL_ALIGN_BOTTOM);
+ a->labelsize(11);
+ a->user_data((void *)name);
+ Fl_Box *b = new Fl_Box(x,y,W-20,H-20);
+ b->box(FL_UP_BOX);
+ b->copy_label(name);
+ b->labelcolor(FL_DARK3);
+ b->user_data((void *)name);
}
int main(int argc, char ** argv) {
- window = new Fl_Double_Window(-W, 0, 4*W,ROWS*H);
- window->box(FL_FLAT_BOX);
-#if 0 // this code uses the command line arguments to set arbitrary color schemes
- Fl::args(argc, argv);
- Fl::get_system_colors();
-#elif 0 // this code uses a single color to define a scheme
- Fl::args(argc, argv);
- Fl::get_system_colors();
- Fl::background(113,113,198);
-#else // this code uses the nice bright blue background to show box vs. frame types
- Fl::args(argc, argv);
- Fl::get_system_colors();
- window->color(12);// light blue
-#endif
+ window = new Fl_Double_Window(COLS*W,ROWS*H+60);
+ bt("@->");
+ bt("@>");
+ bt("@>>");
+ bt("@>|");
+ bt("@>[]");
+ bt("@|>");
+ bt("@<-");
+ bt("@<");
+ bt("@<<");
+ bt("@|<");
+ bt("@[]<");
+ bt("@<|");
+ bt("@<->");
+ bt("@-->");
+ bt("@+");
+ bt("@->|");
+ bt("@||");
+ bt("@<|");
+ bt("@<->");
+ bt("@-->");
+ bt("@+");
+ bt("@->|");
+ bt("@||");
+ bt("@arrow");
+ bt("@returnarrow");
+ bt("@square");
+ bt("@circle");
+ bt("@line");
+ bt("@menu");
+ bt("@UpArrow");
+ bt("@DnArrow");
+ bt("@search");
+ bt("@FLTK");
+ bt("@filenew");
+ bt("@fileopen");
+ bt("@filesave");
+ bt("@filesaveas");
+ bt("@fileprint");
+ bt("@refresh");
+ bt("@reload");
+ bt("@undo");
+ bt("@redo");
+
+ orientation = new Fl_Value_Slider(
+ (int)(window->w()*.05+.5), window->h()-40,
+ (int)(window->w()*.42+.5), 16, "Orientation");
+ orientation->type(FL_HORIZONTAL);
+ orientation->range(0.0, 9.0);
+ orientation->value(0.0);
+ orientation->step(1);
+ orientation->callback(slider_cb, 0);
+
+ size = new Fl_Value_Slider(
+ (int)(window->w()*.53+.5), window->h()-40,
+ (int)(window->w()*.42+.5), 16, "Size");
+ size->type(FL_HORIZONTAL);
+ size->range(-3.0, 9.0);
+ size->value(0.0);
+ size->step(1);
+ size->callback(slider_cb, 0);
- // set window title to show active scheme
- Fl::scheme(Fl::scheme()); // init scheme
- char title[100];
- sprintf(title,"FLTK boxtypes: scheme = '%s'",Fl::scheme()?Fl::scheme():"none");
- window->label(title);
-
- // create special container group for box size debugging
- BoxGroup *bg = new BoxGroup(0,0,window->w(),window->h());
- bg->box(FL_NO_BOX);
-
- // create demo boxes
- bt("FL_NO_BOX",FL_NO_BOX);
- bt("FL_FLAT_BOX",FL_FLAT_BOX);
- N += 2; // go to start of next row to line up boxes & frames
- bt("FL_UP_BOX",FL_UP_BOX);
- bt("FL_DOWN_BOX",FL_DOWN_BOX);
- bt("FL_UP_FRAME",FL_UP_FRAME);
- bt("FL_DOWN_FRAME",FL_DOWN_FRAME);
- bt("FL_THIN_UP_BOX",FL_THIN_UP_BOX);
- bt("FL_THIN_DOWN_BOX",FL_THIN_DOWN_BOX);
- bt("FL_THIN_UP_FRAME",FL_THIN_UP_FRAME);
- bt("FL_THIN_DOWN_FRAME",FL_THIN_DOWN_FRAME);
- bt("FL_ENGRAVED_BOX",FL_ENGRAVED_BOX);
- bt("FL_EMBOSSED_BOX",FL_EMBOSSED_BOX);
- bt("FL_ENGRAVED_FRAME",FL_ENGRAVED_FRAME);
- bt("FL_EMBOSSED_FRAME",FL_EMBOSSED_FRAME);
- bt("FL_BORDER_BOX",FL_BORDER_BOX);
- bt("FL_SHADOW_BOX",FL_SHADOW_BOX);
- bt("FL_BORDER_FRAME",FL_BORDER_FRAME);
- bt("FL_SHADOW_FRAME",FL_SHADOW_FRAME);
- bt("FL_ROUNDED_BOX",FL_ROUNDED_BOX);
- bt("FL_RSHADOW_BOX",FL_RSHADOW_BOX);
- bt("FL_ROUNDED_FRAME",FL_ROUNDED_FRAME);
- bt("FL_RFLAT_BOX",FL_RFLAT_BOX);
- bt("FL_OVAL_BOX",FL_OVAL_BOX);
- bt("FL_OSHADOW_BOX",FL_OSHADOW_BOX);
- bt("FL_OVAL_FRAME",FL_OVAL_FRAME);
- bt("FL_OFLAT_BOX",FL_OFLAT_BOX);
- bt("FL_ROUND_UP_BOX",FL_ROUND_UP_BOX);
- bt("FL_ROUND_DOWN_BOX",FL_ROUND_DOWN_BOX);
- bt("FL_DIAMOND_UP_BOX",FL_DIAMOND_UP_BOX);
- bt("FL_DIAMOND_DOWN_BOX",FL_DIAMOND_DOWN_BOX);
-
- bt("FL_PLASTIC_UP_BOX",FL_PLASTIC_UP_BOX);
- bt("FL_PLASTIC_DOWN_BOX",FL_PLASTIC_DOWN_BOX);
- bt("FL_PLASTIC_UP_FRAME",FL_PLASTIC_UP_FRAME);
- bt("FL_PLASTIC_DOWN_FRAME",FL_PLASTIC_DOWN_FRAME);
- bt("FL_PLASTIC_THIN_UP_BOX",FL_PLASTIC_THIN_UP_BOX);
- bt("FL_PLASTIC_THIN_DOWN_BOX",FL_PLASTIC_THIN_DOWN_BOX);
- N += 2;
- bt("FL_PLASTIC_ROUND_UP_BOX",FL_PLASTIC_ROUND_UP_BOX);
- bt("FL_PLASTIC_ROUND_DOWN_BOX",FL_PLASTIC_ROUND_DOWN_BOX);
- N += 2;
-
- bt("FL_GTK_UP_BOX",FL_GTK_UP_BOX);
- bt("FL_GTK_DOWN_BOX",FL_GTK_DOWN_BOX);
- bt("FL_GTK_UP_FRAME",FL_GTK_UP_FRAME);
- bt("FL_GTK_DOWN_FRAME",FL_GTK_DOWN_FRAME);
- bt("FL_GTK_THIN_UP_BOX",FL_GTK_THIN_UP_BOX);
- bt("FL_GTK_THIN_DOWN_BOX",FL_GTK_THIN_DOWN_BOX);
- bt("FL_GTK_THIN_UP_FRAME",FL_GTK_THIN_UP_FRAME);
- bt("FL_GTK_THIN_DOWN_FRAME",FL_GTK_THIN_DOWN_FRAME);
- bt("FL_GTK_ROUND_UP_BOX",FL_GTK_ROUND_UP_BOX);
- bt("FL_GTK_ROUND_DOWN_BOX",FL_GTK_ROUND_DOWN_BOX);
- bg->end();
window->resizable(window);
- window->end();
- window->show();
+ window->show(argc,argv);
return Fl::run();
}
-
-
#else
#include <src/drivers/Android/Fl_Android_Application.H>
@@ -384,17 +356,21 @@ int xmain(int argc, char **argv)
* proportions: pixels should be square
Need Work:
- Fl_Android_Graphics_Driver::pie(int) needs refactoring
+ - ...::line(...) has round ing issues (see rounded box type)
+
test/CubeMain.cxx test/line_style.cxx
test/CubeView.cxx test/list_visuals.cxx
-test/adjuster.cxx test/mandelbrot.cxx
+ * test/adjuster.cxx : - missing bitmap drawing
+ test/mandelbrot.cxx
test/animated.cxx test/menubar.cxx
* test/arc.cxx : + 'arc' works as expected
test/message.cxx
-test/ask.cxx test/minimum.cxx
+test/ask.cxx
+ * test/minimum.cxx : + 'minimum' works
test/bitmap.cxx test/native-filechooser.cxx
test/blocks.cxx test/navigation.cxx
- * test/boxtype.cxx : !! 'boxtype': must fix diamond box, plastic up frame, see fourth column
+ * test/boxtype.cxx : + 'boxtype': works
test/offscreen.cxx
test/browser.cxx test/output.cxx
test/button.cxx test/overlay.cxx
@@ -407,7 +383,8 @@ test/color_chooser.cxx test/scroll.cxx
test/connect.cxx test/shape.cxx
test/cube.cxx test/subwindow.cxx
test/cursor.cxx test/sudoku.cxx
-test/curve.cxx test/symbols.cxx
+test/curve.cxx
+ * test/symbols.cxx : !! working this out: implement circle drawing
test/demo.cxx test/table.cxx
test/device.cxx test/threads.cxx
test/doublebuffer.cxx test/tile.cxx
@@ -420,7 +397,7 @@ test/fracviewer.cxx test/unittest_lines.cxx
test/fullscreen.cxx test/unittest_points.cxx
test/gl_overlay.cxx test/unittest_rects.cxx
test/glpuzzle.cxx test/unittest_schemes.cxx
-test/hello.cxx : + 'hello' works fine, italics, shadow, etc.
+ * test/hello.cxx : + 'hello' works fine, italics, shadow, etc.
test/unittest_scrollbarsize.cxx
test/help_dialog.cxx test/unittest_simple_terminal.cxx
test/icon.cxx test/unittest_symbol.cxx