+++ /dev/null
-
-/*
- * CINELERRA
- * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#ifndef SCALE_H
-#define SCALE_H
-
-#include "guicast.h"
-#include "mwindow.inc"
-#include "scale.inc"
-
-class Scale : public BC_MenuItem
-{
-public:
- Scale(MWindow *mwindow);
- ~Scale();
-
- int handle_event();
-
- ScaleThread *thread;
- MWindow *mwindow;
-};
-
-class ScaleWindow;
-
-class ScaleThread : public Thread
-{
-public:
- ScaleThread(MWindow *mwindow);
- ~ScaleThread();
-
- void run();
-
- int update_window(int offset_updated = 0);
- int update_aspect(ScaleWindow *window);
-
-// change a value to negative to signal it was the value changed
- int dimension[4]; // new dimensions to apply
- int orig_dimension[4]; // dimensions for getting scale
- int offsets[4]; // Offsets of new images in old images
- float ratio[4];
- float aspect_w, aspect_h;
- int constrain_ratio;
- int scale_data;
- int auto_aspect;
- int already_running;
-
- MWindow *mwindow;
- ScaleWindow *window;
-};
-
-class ScaleSizeText;
-class ScaleRatioText;
-class ScalePosition;
-class ScaleOffsetText;
-class ScaleAspectW;
-class ScaleAspectH;
-
-class ScaleWindow : public BC_Window
-{
-public:
- ScaleWindow(ScaleThread *thread);
- ~ScaleWindow();
-
- void create_objects();
- ScaleThread *thread;
- ScaleSizeText *dimension[4];
- ScaleRatioText *ratio[4];
-// ScaleOffsetText *offsets[4];
- ScaleAspectW *aspect_w;
- ScaleAspectH *aspect_h;
-// ScalePosition *position1, *position2;
-};
-
-class ScaleSizeText : public BC_TextBox
-{
-public:
- ScaleSizeText(int x, int y, ScaleThread *thread, int *output);
- ~ScaleSizeText();
- int handle_event();
- ScaleThread *thread;
- int *output;
-};
-
-
-class ScaleOffsetText : public BC_TextBox
-{
-public:
- ScaleOffsetText(int x, int y, ScaleThread *thread, int *output);
- ~ScaleOffsetText();
- int handle_event();
- ScaleThread *thread;
- int *output;
-};
-
-class ScaleRatioText : public BC_TextBox
-{
-public:
- ScaleRatioText(int x, int y, ScaleThread *thread, float *output);
- ~ScaleRatioText();
- int handle_event();
- ScaleThread *thread;
- float *output;
-};
-
-class ScaleAspectAuto : public BC_CheckBox
-{
-public:
- ScaleAspectAuto(int x, int y, ScaleThread *thread);
- ~ScaleAspectAuto();
- int handle_event();
- ScaleThread *thread;
-};
-
-class ScaleAspectW : public BC_TextBox
-{
-public:
- ScaleAspectW(int x, int y, ScaleThread *thread, float *output, char *string);
- ~ScaleAspectW();
- int handle_event();
- ScaleThread *thread;
- float *output;
-};
-
-class ScaleAspectH : public BC_TextBox
-{
-public:
- ScaleAspectH(int x, int y, ScaleThread *thread, float *output, char *string);
- ~ScaleAspectH();
- int handle_event();
- ScaleThread *thread;
- float *output;
-};
-
-
-class ScaleData : public BC_CheckBox
-{
-public:
- ScaleData(int x, int y, ScaleThread *thread);
- ~ScaleData();
- int handle_event();
- ScaleThread *thread;
-};
-
-class ScaleConstrain : public BC_CheckBox
-{
-public:
- ScaleConstrain(int x, int y, ScaleThread *thread);
- ~ScaleConstrain();
- int handle_event();
- ScaleThread *thread;
-};
-
-class ScalePosition : public BC_SubWindow
-{
-public:
- ScalePosition(int x, int y, ScaleThread *thread, ScaleWindow *window,
- int *orig_dimension, int *scale_dimension, int *offsets);
-
- ~ScalePosition();
-
- int draw();
- int button_press();
- int cursor_motion();
- int button_release();
- int get_scale();
-
- int *orig_dimension;
- int *scale_dimension;
- int *offsets;
- ScaleThread *thread;
- ScaleWindow *window;
- int button_down;
- int center_x, center_y, offset_x, offset_y;
- float hscale, vscale;
-};
-
-
-
-#endif