diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2020-12-03 17:11:43 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2020-12-08 10:21:07 +0100 |
| commit | 0c39051ba80f04b1177833a006f2d442a7170b56 (patch) | |
| tree | 9e657946a061b5b305f9cf75634db7b37e979eb3 /labb8/lib/StanfordCPPLib/platform.h | |
| parent | 7b7f6808a7b2db2ed21103767434c1445f7815c2 (diff) | |
| download | tddd86-0c39051ba80f04b1177833a006f2d442a7170b56.tar.gz | |
add initial files l8
Diffstat (limited to 'labb8/lib/StanfordCPPLib/platform.h')
| -rwxr-xr-x | labb8/lib/StanfordCPPLib/platform.h | 134 |
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 |
