+class PerspectiveAffine : public BC_PopupMenu
+{
+ static const int n_modes = AffineEngine::AF_MODES;
+ const char *affine_modes[n_modes];
+ PerspectiveAffineItem *affine_items[n_modes];
+public:
+ PerspectiveAffine(PerspectiveWindow *gui, int x, int y);
+ ~PerspectiveAffine();
+
+ void create_objects();
+ void update(int mode, int send=1);
+ void affine_item(int id);
+
+ PerspectiveWindow *gui;
+ int mode;
+};
+
+class PerspectiveAffineItem : public BC_MenuItem
+{
+public:
+ PerspectiveAffineItem(const char *txt, int id)
+ : BC_MenuItem(txt) { this->id = id; }
+
+ int handle_event();
+ PerspectiveWindow *gui;
+ int id;
+};
+
+class PerspectiveZoomView : public BC_FSlider
+{
+public:
+ PerspectiveZoomView(PerspectiveWindow *gui,
+ int x, int y, int w);
+ ~PerspectiveZoomView();
+
+ int handle_event();
+ char *get_caption();
+ void update(float zoom);
+
+ PerspectiveWindow *gui;
+};
+
+