1 // This file is part of Golly.
2 // See docs/License.html for the copyright notice.
3 
4 #import <UIKit/UIKit.h>
5 #import "PatternView.h"
6 #import "StatusView.h"
7 #import "StateView.h"
8 
9 // This is the view controller for the Pattern tab.
10 
11 @interface PatternViewController : UIViewController
12 {
13     IBOutlet PatternView *pattView;
14     IBOutlet StatusView *statView;
15     IBOutlet UIButton *startStopButton;
16     IBOutlet UIButton *restoreButton;
17     IBOutlet UIBarButtonItem *resetButton;
18     IBOutlet UIBarButtonItem *undoButton;
19     IBOutlet UIBarButtonItem *redoButton;
20     IBOutlet UIBarButtonItem *actionButton;
21     IBOutlet UIBarButtonItem *infoButton;
22     IBOutlet UISegmentedControl *stepControl;
23     IBOutlet UISegmentedControl *scaleControl;
24     IBOutlet UISegmentedControl *modeControl;
25     IBOutlet UILabel *stateLabel;
26     IBOutlet StateView *stateView;
27     IBOutlet UIToolbar *topBar;
28     IBOutlet UIToolbar *editBar;
29     IBOutlet UIToolbar *bottomBar;
30     IBOutlet UIView *progressView;
31     IBOutlet UILabel *progressTitle;
32     IBOutlet UILabel *progressMessage;
33     IBOutlet UIProgressView *progressBar;
34     IBOutlet UIButton *cancelButton;
35 
36     NSTimer *genTimer;
37 }
38 
39 - (IBAction)doReset:(id)sender;
40 - (IBAction)doStartStop:(id)sender;
41 - (IBAction)doNext:(id)sender;
42 - (IBAction)doStep:(id)sender;
43 - (IBAction)doFit:(id)sender;
44 - (IBAction)doChangeStep:(id)sender;
45 - (IBAction)doChangeScale:(id)sender;
46 - (IBAction)doChangeMode:(id)sender;
47 - (IBAction)doUndo:(id)sender;
48 - (IBAction)doRedo:(id)sender;
49 - (IBAction)doMiddle:(id)sender;
50 - (IBAction)doSelectAll:(id)sender;
51 - (IBAction)doAction:(id)sender;
52 - (IBAction)doPaste:(id)sender;
53 - (IBAction)doRule:(id)sender;
54 - (IBAction)doNew:(id)sender;
55 - (IBAction)doInfo:(id)sender;
56 - (IBAction)doSave:(id)sender;
57 - (IBAction)doCancel:(id)sender;
58 - (IBAction)toggleFullScreen:(id)sender;
59 
60 - (void)updateDrawingState;
61 - (void)updateButtons;
62 - (void)toggleStartStopButton;
63 - (void)stopIfGenerating;
64 - (void)startGenTimer;
65 - (void)stopGenTimer;
66 - (void)doGeneration:(NSTimer*)theTimer;
67 
68 @end
69 
70 // other modules need these routines:
71 void UpdatePattern();
72 void UpdateStatus();
73 void UpdateEditBar();
74 void CloseStatePicker();
75 void PauseGenTimer();
76 void RestartGenTimer();
77 void PauseGenerating();
78 void ResumeGenerating();
79 void StopIfGenerating();
80 void BeginProgress(const char* title);
81 bool AbortProgress(double fraction_done, const char* message);
82 void EndProgress();
83