From 4192093574630222ba33c267e8350a0fad87c4b6 Mon Sep 17 00:00:00 2001 From: Benjamin Clements Date: Sun, 27 Dec 2015 19:38:32 -0500 Subject: [PATCH] C interface to set window background and foreground --- Makefile | 18 +++++--- README.md | 6 ++- c/examples/CanvasColors | Bin 0 -> 326016 bytes c/examples/CanvasColors.c | 62 ++++++++++++++++++++++++++ c/examples/Makefile | 9 +++- c/include/gwindow.h | 35 +++++++++++++++ c/include/platform.h | 2 + c/src/gwindow.c | 8 ++++ c/src/platform.c | 8 ++++ java/src/stanford/spl/JBECommand.java | 30 +++++++++++++ 10 files changed, 171 insertions(+), 7 deletions(-) create mode 100755 c/examples/CanvasColors create mode 100644 c/examples/CanvasColors.c diff --git a/Makefile b/Makefile index d99197c..3142aa2 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,14 @@ # **************************************************************** # Makefile for SPL +# detect install path +# if Ubuntu, place in /usr/... otherwise +# assume Fedora which is placed in /usr/local/... +path:=/usr +ifneq ($(findstring Ubuntu,$(shell uname -v)),Ubuntu) + path+=/local +endif + SHELL=/bin/bash BUILD = \ @@ -319,11 +327,11 @@ stanford/spl/JavaBackEnd.class: java/src/stanford/spl/*.java # install install: build/lib/libcs.a $(JAR) - rm -rf /usr/local/include/spl - cp -r build/include /usr/local/include/spl - chmod -R a+rX /usr/local/include/spl - cp build/lib/{libcs.a,spl.jar} /usr/local/lib/ - chmod -R a+r /usr/local/lib/{libcs.a,spl.jar} + rm -rf $(path)/include/spl + cp -r build/include $(path)/include/spl + chmod -R a+rX $(path)/include/spl + cp build/lib/{libcs.a,spl.jar} $(path)/lib/ + chmod -R a+r $(path)/lib/{libcs.a,spl.jar} # *************************************************************** diff --git a/README.md b/README.md index 911c81a..412317a 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,11 @@ This is CS50's fork of Eric Roberts' Stanford Portable Library. ### Ubuntu -_coming soon_ + sudo apt-get install -y bash binutils coreutils findutils gcc java-1.?.0-openjdk-devel + git clone git@github.com:cs50/spl.git + cd spl + make + sudo make install ## TODO diff --git a/c/examples/CanvasColors b/c/examples/CanvasColors new file mode 100755 index 0000000000000000000000000000000000000000..95b6618e7844619cfdc90ceef4085c557dae28d8 GIT binary patch literal 326016 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 +#include +#include +#include +#include + +// Stanford Portable Library +#include +#include +#include + +// height and width of game's window in pixels +#define HEIGHT 600 +#define WIDTH 400 + +// number of rows of bricks +#define ROWS 5 + +// number of columns of bricks +#define COLS 10 + +// brick properties +#define BRICK_SPACING 5 +#define BRICK_WIDTH (WIDTH - BRICK_SPACING * COLS) / COLS +#define BRICK_HEIGHT HEIGHT / 40 + +void initBricks(GWindow window); + +int main(void) +{ + // instantiate window + GWindow window = newGWindow(WIDTH, HEIGHT); + setBackground(window, "red"); + setForeground(window, "black"); // set default obj color to black + initBricks(window); + return 0; +} + +/** + * * Initializes window with a grid of bricks. + * */ +void initBricks(GWindow window) +{ + for (int row = 0; row < ROWS; row++) + { + for (int col = 0; col < COLS; col++) + { + GRect brick = newGRect( + BRICK_SPACING + (BRICK_WIDTH + BRICK_SPACING) * col, + BRICK_SPACING + (BRICK_HEIGHT + BRICK_SPACING) * row, + BRICK_WIDTH, BRICK_HEIGHT + ); + //setColor(brick, "blue"); + setFilled(brick, true); + add(window, brick); + } + } +} + + diff --git a/c/examples/Makefile b/c/examples/Makefile index d18ad81..fcc352f 100644 --- a/c/examples/Makefile +++ b/c/examples/Makefile @@ -10,7 +10,8 @@ PROGRAMS = \ StopSign \ TestGraphics \ TestInteractors \ - USFlag + USFlag \ + CanvasColors FLAGS = -L../lib -lcs -lm @@ -75,6 +76,12 @@ USFlag: USFlag.o USFlag.o: USFlag.c gcc -c -I../include USFlag.c +CanvasColors: CanvasColors.o + gcc -o CanvasColors CanvasColors.o $(FLAGS) + +CanvasColors.o: CanvasColors.c + gcc -c -I../include CanvasColors.c + # *************************************************************** # Standard entries to remove files from the directories diff --git a/c/include/gwindow.h b/c/include/gwindow.h index 49ad1ae..8f560c2 100644 --- a/c/include/gwindow.h +++ b/c/include/gwindow.h @@ -202,6 +202,41 @@ void fillRect(GWindow gw, double x, double y, double width, double height); void setColorGWindow(GWindow gw, string color); +/* + * Function: setBackground + * Usage: setBackground(gw, color); + * --------------------------- + * Sets the window background color. The color parameter is + * usually one of the predefined color names from Java: BLACK, + * BLUE, CYAN, DARK_GRAY, + * GRAY, GREEN, LIGHT_GRAY, + * MAGENTA, ORANGE, PINK, + * RED, WHITE, or YELLOW. + * The case of the individual letters in the color name is ignored, + * as are spaces and underscores, so that the Java color + * DARK_GRAY could be written as "Dark Gray". + */ + +void setBackground(GWindow gw, string color); + +/* + * Function: setForeground + * Usage: setForeground(gw, color); + * --------------------------- + * Sets the window background color. The color parameter is + * usually one of the predefined color names from Java: BLACK, + * BLUE, CYAN, DARK_GRAY, + * GRAY, GREEN, LIGHT_GRAY, + * MAGENTA, ORANGE, PINK, + * RED, WHITE, or YELLOW. + * The case of the individual letters in the color name is ignored, + * as are spaces and underscores, so that the Java color + * DARK_GRAY could be written as "Dark Gray". + */ + +void setForeground(GWindow gw, string color); + + /* * Function: getColorGWindow * Usage: color = getColorGWindow(gw); diff --git a/c/include/platform.h b/c/include/platform.h index d05d3fd..49f4603 100644 --- a/c/include/platform.h +++ b/c/include/platform.h @@ -118,6 +118,8 @@ void sendToBackOp(GObject gobj); void setVisibleGObjectOp(GObject gobj, bool flag); void setColorOp(GObject gobj, string color); +void setBackgroundOp(GWindow gw, string color); +void setForegroundOp(GWindow gw, string color); void setLocationOp(GObject gobj, double x, double y); void setSizeOp(GObject gobj, double width, double height); diff --git a/c/src/gwindow.c b/c/src/gwindow.c index 086cb48..502f4db 100644 --- a/c/src/gwindow.c +++ b/c/src/gwindow.c @@ -125,6 +125,14 @@ void fillRect(GWindow gw, double x, double y, double width, double height) { freeGObject(gobj); } +void setBackground(GWindow gw, string color) { + setBackgroundOp(gw, color); +} + +void setForeground(GWindow gw, string color) { + setForegroundOp(gw, color); +} + void setColorGWindow(GWindow gw, string color) { gw->color = color; } diff --git a/c/src/platform.c b/c/src/platform.c index 2e61c90..99311cc 100644 --- a/c/src/platform.c +++ b/c/src/platform.c @@ -696,6 +696,14 @@ void setColorOp(GObject gobj, string color) { putPipe("GObject.setColor(\"0x%lX\", \"%s\")", (long) gobj, color); } +void setBackgroundOp(GWindow gw, string color) { + putPipe("JBECanvas.setBackground(\"0x%lX\", \"%s\")", (long) gw, color); +} + +void setForegroundOp(GWindow gw, string color) { + putPipe("JBECanvas.setForeground(\"0x%lX\", \"%s\")", (long) gw, color); +} + void setLocationOp(GObject gobj, double x, double y) { putPipe("GObject.setLocation(\"0x%lX\", %g, %g)", (long) gobj, x, y); } diff --git a/java/src/stanford/spl/JBECommand.java b/java/src/stanford/spl/JBECommand.java index 08079e3..179122a 100644 --- a/java/src/stanford/spl/JBECommand.java +++ b/java/src/stanford/spl/JBECommand.java @@ -106,6 +106,8 @@ public static HashMap createCommandTable() { cmdTable.put("GObject.sendToBack", new GObject_sendToBack()); cmdTable.put("GObject.sendToFront", new GObject_sendToFront()); cmdTable.put("GObject.setColor", new GObject_setColor()); + cmdTable.put("JBECanvas.setBackground", new JBECanvas_setBackground()); + cmdTable.put("JBECanvas.setForeground", new JBECanvas_setForeground()); cmdTable.put("GObject.setFillColor", new GObject_setFillColor()); cmdTable.put("GObject.setFilled", new GObject_setFilled()); cmdTable.put("GObject.setLineWidth", new GObject_setLineWidth()); @@ -913,6 +915,34 @@ public void execute(TokenScanner scanner, JavaBackEnd jbe) { } } +class JBECanvas_setBackground extends JBECommand { + public void execute(TokenScanner scanner, JavaBackEnd jbe) { + scanner.verifyToken("("); + String id = nextString(scanner); + JBEWindow jw = jbe.getWindow(id); + scanner.verifyToken(","); + String color = nextString(scanner); + scanner.verifyToken(")"); + if (jw != null) { + jw.getCanvas().setBackground(color.equals("") ? null : JTFTools.decodeColor(color)); + } + } +} + +class JBECanvas_setForeground extends JBECommand { + public void execute(TokenScanner scanner, JavaBackEnd jbe) { + scanner.verifyToken("("); + String id = nextString(scanner); + JBEWindow jw = jbe.getWindow(id); + scanner.verifyToken(","); + String color = nextString(scanner); + scanner.verifyToken(")"); + if (jw != null) { + jw.getCanvas().setForeground(color.equals("") ? null : JTFTools.decodeColor(color)); + } + } +} + class GObject_setLocation extends JBECommand { public void execute(TokenScanner scanner, JavaBackEnd jbe) { scanner.verifyToken("(");