File: wxscript.h

package info (click to toggle)
golly 3.3-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 20,220 kB
  • sloc: cpp: 72,638; ansic: 25,919; python: 7,921; sh: 4,245; objc: 3,721; java: 2,781; xml: 1,362; makefile: 530; perl: 69
file content (116 lines) | stat: -rw-r--r-- 4,949 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
// This file is part of Golly.
// See docs/License.html for the copyright notice.

#ifndef _WXSCRIPT_H_
#define _WXSCRIPT_H_

#include "lifealgo.h"   // for lifealgo class

extern bool inscript;
// Is a script currently running?  We allow access to this flag
// so clients can temporarily save and restore its setting.

extern bool pass_key_events;
extern bool pass_mouse_events;
extern bool pass_file_events;
// Pass keyboard/mouse/file events to script?  All flags are initially false
// at the start of a script; all become true if the script calls getevent().
// If the script calls getkey (deprecated) then only pass_key_events becomes true.

extern bool canswitch;          // can user switch layers while a script is running?
extern bool stop_after_script;  // stop generating pattern after running script?
extern bool autoupdate;         // update display after changing current universe?
extern bool allowcheck;         // allow event checking?
extern bool showprogress;       // script can display the progress dialog?
extern wxString scripterr;      // error message
extern wxString mousepos;       // current mouse position
extern wxString scripttitle;    // window title set by settitle command
extern wxString rle3path;       // path of .rle3 file to be sent to 3D.lua

void RunScript(const wxString& filename);
// Run the given script.

void PassOverlayClickToScript(int ox, int oy, int button, int modifiers);
// Called if a script is running and user clicks mouse in overlay
// at the given pixel location.

void PassClickToScript(const bigint& x, const bigint& y, int button, int modifiers);
// Called if a script is running and user clicks mouse in grid
// at the given cell location.

void PassMouseUpToScript(int button);
// Called if a script is running and user releases a mouse button.

void PassZoomInToScript(int x, int y);
// Called if a script is running and mouse wheel is used to zoom in.

void PassZoomOutToScript(int x, int y);
// Called if a script is running and mouse wheel is used to zoom out.

void PassKeyToScript(int key, int modifiers = 0);
// Called if a script is running and user hits a key.
// Can also be used to abort a script by passing WXK_ESCAPE.

void PassKeyUpToScript(int key);
// Called if a script is running and user releases a key.

void PassFileToScript(const wxString& filepath);
// Called if a script is running and user opens a file.

void ShowTitleLater();
// Called if a script is running and window title has changed.

void ChangeCell(int x, int y, int oldstate, int newstate);
// A setcell/putcells command is changing state of cell at x,y.

void SavePendingChanges(bool checkgenchanges = true);
// Called to save any pending cell changes made by ChangeCell calls.
// If checkgenchanges is true then it will also save any pending
// generating changes.  This lets us accumulate consecutive cell/gen
// changes in a single undo/redo change node, which is better for
// scripts like invert.py that can call setcell() many times, or
// for scripts like oscar.py that can call run() many times.
// Must be called BEFORE all undoredo->Remember... calls but
// only if inscript && allowundo && !currlayer->stayclean.

void FinishScripting();
// Called when app quits to abort a running script.

const char abortmsg[] = "GOLLY: ABORT SCRIPT";
// special message used to indicate that the script was aborted

void DoAutoUpdate();          // update display if autoupdate is true

// The following Golly Script Functions are used to reduce code duplication.
// They are called by corresponding functions in wxlua/wxperl/wxpython.cpp.

const char* GSF_open(const wxString& filename, int remember);
const char* GSF_save(const wxString& filename, const char* format, int remember);
const char* GSF_setdir(const char* dirname, const wxString& newdir);
const char* GSF_getdir(const char* dirname);
const char* GSF_os();
const char* GSF_setalgo(const char* algostring);
const char* GSF_setrule(const char* rulestring);
const char* GSF_setgen(const char* genstring);
const char* GSF_setpos(const char* x, const char* y);
const char* GSF_setcell(int x, int y, int newstate);
const char* GSF_paste(int x, int y, const char* mode);
const char* GSF_checkpos(lifealgo* algo, int x, int y);
const char* GSF_checkrect(int x, int y, int wd, int ht);
int GSF_hash(int x, int y, int wd, int ht);
bool GSF_setoption(const char* optname, int newval, int* oldval);
bool GSF_getoption(const char* optname, int* optval);
bool GSF_setcolor(const char* colname, wxColor& newcol, wxColor& oldcol);
bool GSF_getcolor(const char* colname, wxColor& color);
void GSF_setname(const wxString& name, int index);
void GSF_select(int x, int y, int wd, int ht);
void GSF_getevent(wxString& event, int get);
const char* GSF_doevent(const wxString& event);
char GSF_getkey();
void GSF_dokey(const char* ascii);
void GSF_update();
void GSF_exit(const wxString& errmsg);
const char* GSF_getpath();
const char* GSF_getinfo();

#endif