summaryrefslogtreecommitdiffstats
path: root/labb8/lib/StanfordCPPLib/platform.h
diff options
context:
space:
mode:
Diffstat (limited to 'labb8/lib/StanfordCPPLib/platform.h')
-rwxr-xr-xlabb8/lib/StanfordCPPLib/platform.h134
1 files changed, 134 insertions, 0 deletions
diff --git a/labb8/lib/StanfordCPPLib/platform.h b/labb8/lib/StanfordCPPLib/platform.h
new file mode 100755
index 0000000..85f916f
--- /dev/null
+++ b/labb8/lib/StanfordCPPLib/platform.h
@@ -0,0 +1,134 @@
+/*
+ * File: platform.h
+ * ----------------
+ * This file defines the <code>Platform</code> class, which encapsulates
+ * the platform-specific parts of the StanfordCPPLib package. This file is
+ * logically part of the implementation and is not interesting to clients.
+ */
+
+#ifndef _platform_h
+#define _platform_h
+
+#include <string>
+#include <vector>
+#include "gevents.h"
+#include "gwindow.h"
+#include "sound.h"
+
+class Platform {
+private:
+ Platform();
+ friend Platform *getPlatform();
+
+public:
+ virtual ~Platform();
+ void clearConsole();
+ void setConsoleFont(const std::string & font);
+ void setConsoleSize(double width, double height);
+ bool fileExists(std::string filename);
+ bool isFile(std::string filename);
+ bool isSymbolicLink(std::string filename);
+ bool isDirectory(std::string filename);
+ void setCurrentDirectory(std::string path);
+ std::string getCurrentDirectory();
+ void createDirectory(std::string path);
+ std::string getDirectoryPathSeparator();
+ std::string getSearchPathSeparator();
+ std::string expandPathname(std::string filename);
+ void listDirectory(std::string path, vector<std::string> & list);
+ std::string openFileDialog(std::string title, std::string mode,
+ std::string path);
+ void createGWindow(const GWindow & gw, double width, double height,
+ GObject *topCompound);
+ void deleteGWindow(const GWindow & gw);
+ void close(const GWindow & gw);
+ void requestFocus(const GWindow & gw);
+ void clear(const GWindow & gw);
+ void repaint(const GWindow & gw);
+ void setVisible(const GWindow & gw, bool flag);
+ void setResizable(const GWindow & gw, bool flag);
+ void setWindowTitle(const GWindow & gw, std::string title);
+ void setRegionAlignment(const GWindow & gw, std::string region,
+ std::string align);
+ void addToRegion(const GWindow & gw, GObject *gobj, std::string region);
+ void removeFromRegion(const GWindow & gw, GObject *gobj,
+ std::string region);
+ void pause(double milliseconds);
+ double getScreenWidth();
+ double getScreenHeight();
+ GEvent waitForEvent(int mask);
+ GEvent getNextEvent(int mask);
+ void exitGraphics();
+ void createTimer(const GTimer & timer, double delay);
+ void deleteTimer(const GTimer & timer);
+ void startTimer(const GTimer & timer);
+ void stopTimer(const GTimer & timer);
+ void createSound(Sound *sound, std::string filename);
+ void deleteSound(Sound *sound);
+ void playSound(Sound *sound);
+ void createGRect(GObject *gobj, double width, double height);
+ void createGRoundRect(GObject *gobj, double width, double height,
+ double corner);
+ void createG3DRect(GObject *gobj, double width, double height, bool raised);
+ void setRaised(GObject *gobj, bool raised);
+ void createGOval(GObject *gobj, double width, double height);
+ void createGArc(GObject *gobj, double width, double height,
+ double start, double sweep);
+ void setStartAngle(GObject *gobj, double angle);
+ void setSweepAngle(GObject *gobj, double angle);
+ void createGLine(GObject *gobj, double x1, double y1, double x2, double y2);
+ void setStartPoint(GObject *gobj, double x, double y);
+ void setEndPoint(GObject *gobj, double x, double y);
+ void createGLabel(GObject *gobj, std::string label);
+ GDimension createGImage(GObject *gobj, std::string filename);
+ void createGPolygon(GObject *gobj);
+ void addVertex(GObject *gobj, double x, double y);
+ void setActionCommand(GObject *gobj, std::string cmd);
+ GDimension getSize(GObject *gobj);
+ void createGButton(GObject *gobj, std::string label);
+ void createGCheckBox(GObject *gobj, std::string label);
+ bool isSelected(GObject *gobj);
+ void setSelected(GObject *gobj, bool state);
+ void createGSlider(GObject *gobj, int min, int max, int value);
+ int getValue(GObject *gobj);
+ void setValue(GObject *gobj, int value);
+ void createGTextField(GObject *gobj, int nChars);
+ std::string getText(GObject *gobj);
+ void setText(GObject *gobj, std::string str);
+ void createGChooser(GObject *gobj);
+ void addItem(GObject *gobj, std::string item);
+ std::string getSelectedItem(GObject *gobj);
+ void setSelectedItem(GObject *gobj, std::string item);
+ void createGCompound(GObject *gobj);
+ void deleteGObject(GObject *gobj);
+ void add(GObject *compound, GObject *gobj);
+ void remove(GObject *gobj);
+ void sendForward(GObject *gobj);
+ void sendToFront(GObject *gobj);
+ void sendBackward(GObject *gobj);
+ void sendToBack(GObject *gobj);
+ void setVisible(GObject *gobj, bool flag);
+ void setColor(GObject *gobj, std::string color);
+ void scale(GObject *gobj, double sx, double sy);
+ void rotate(GObject *gobj, double theta);
+ GRectangle getBounds(const GObject *gobj);
+ bool contains(const GObject *gobj, double x, double y);
+ void setLineWidth(GObject *gobj, double lineWidth);
+ void setLocation(GObject *gobj, double x, double y);
+ void setSize(GObject *gobj, double width, double height);
+ void setFrameRectangle(GObject *gobj, double x, double y,
+ double width, double height);
+ void draw(const GWindow & gw, const GObject *gobj);
+ void setFilled(GObject *gobj, bool flag);
+ void setFillColor(GObject *gobj, std::string color);
+ void setFont(GObject *gobj, std::string font);
+ void setLabel(GObject *gobj, std::string str);
+ double getFontAscent(const GObject *gobj);
+ double getFontDescent(const GObject *gobj);
+ GDimension getGLabelSize(const GObject *gobj);
+
+};
+
+Platform *getPlatform();
+
+#endif