tweak ffmpeg mpeg hw probe, update bld prepare, insert tracer source
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / tracer / tracerwindow.h
diff --git a/cinelerra-5.1/plugins/tracer/tracerwindow.h b/cinelerra-5.1/plugins/tracer/tracerwindow.h
new file mode 100644 (file)
index 0000000..b6231cf
--- /dev/null
@@ -0,0 +1,245 @@
+/*
+ * CINELERRA
+ * Copyright (C) 2008-2015 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 __TRACERWINDOW_H__
+#define __TRACERWINDOW_H__
+
+#include "guicast.h"
+
+class Tracer;
+class TracerWindow;
+class TracerNum;
+class TracerPointX;
+class TracerPointY;
+class TracerDrag;
+class TracerDraw;
+class TracerFill;
+class TracerRadius;
+class TracerScale;
+class TracerPointList;
+class TracerNewPoint;
+class TracerDelPoint;
+class TracerPointUp;
+class TracerPointDn;
+class TracerReset;
+
+
+class TracerNum : public BC_TumbleTextBox
+{
+public:
+       TracerWindow *gui;
+
+       TracerNum(TracerWindow *gui, int x, int y, float output);
+       ~TracerNum();
+};
+class TracerPointX : public TracerNum
+{
+public:
+       TracerPointX(TracerWindow *gui, int x, int y, float output)
+        : TracerNum(gui, x, y, output) {}
+       ~TracerPointX() {}
+
+       int handle_event();
+};
+class TracerPointY : public TracerNum
+{
+public:
+       TracerPointY(TracerWindow *gui, int x, int y, float output)
+        : TracerNum(gui, x, y, output) {}
+       ~TracerPointY() {}
+
+       int handle_event();
+};
+
+class TracerThreshold : public BC_FSlider
+{
+public:
+       TracerThreshold(TracerWindow *gui, int x, int y, int w);
+       int handle_event();
+       int wheel_event(int v);
+       TracerWindow *gui;
+};
+
+class TracerDrag : public BC_CheckBox
+{
+public:
+       TracerDrag(TracerWindow *gui, int x, int y);
+
+       int handle_event();
+       TracerWindow *gui;
+};
+
+class TracerDraw : public BC_CheckBox
+{
+public:
+       TracerDraw(TracerWindow *gui, int x, int y);
+
+       int handle_event();
+       TracerWindow *gui;
+};
+
+class TracerFill : public BC_CheckBox
+{
+public:
+       TracerFill(TracerWindow *gui, int x, int y);
+
+       int handle_event();
+       TracerWindow *gui;
+};
+
+class TracerRadius : public BC_ISlider
+{
+public:
+       TracerRadius(TracerWindow *gui, int x, int y, int w);
+
+       int handle_event();
+       TracerWindow *gui;
+};
+
+class TracerScale : public BC_FSlider
+{
+public:
+       TracerScale(TracerWindow *gui, int x, int y, int w);
+
+       int handle_event();
+       TracerWindow *gui;
+};
+
+class TracerPointList : public BC_ListBox
+{
+public:
+       TracerPointList(TracerWindow *gui, Tracer *plugin, int x, int y);
+       ~TracerPointList();
+
+       int handle_event();
+       int selection_changed();
+       int column_resize_event();
+       ArrayList<BC_ListBoxItem*> cols[PT_SZ];
+       void clear();
+       void new_point(const char *xp, const char *yp);
+       void del_point(int i);
+       void set_point(int i, int c, float v);
+       void set_point(int i, int c, const char *cp);
+       int set_selected(int k);
+       void update(int k);
+       void update_list(int k);
+
+
+       TracerWindow *gui;
+       Tracer *plugin;
+       const char *titles[PT_SZ];
+       int widths[PT_SZ];
+};
+
+class TracerNewPoint : public BC_GenericButton
+{
+public:
+       TracerNewPoint(TracerWindow *gui, Tracer *plugin, int x, int y);
+       ~TracerNewPoint();
+
+       int handle_event();
+
+       TracerWindow *gui;
+       Tracer *plugin;
+};
+
+class TracerDelPoint : public BC_GenericButton
+{
+public:
+       TracerDelPoint(TracerWindow *gui, Tracer *plugin, int x, int y);
+       ~TracerDelPoint();
+
+       int handle_event();
+
+       Tracer *plugin;
+       TracerWindow *gui;
+};
+
+class TracerPointUp : public BC_GenericButton
+{
+public:
+       TracerPointUp(TracerWindow *gui, int x, int y);
+       ~TracerPointUp();
+
+       int handle_event();
+
+       TracerWindow *gui;
+};
+
+class TracerPointDn : public BC_GenericButton
+{
+public:
+       TracerPointDn(TracerWindow *gui, int x, int y);
+       ~TracerPointDn();
+
+       int handle_event();
+
+       TracerWindow *gui;
+};
+
+class TracerReset : public BC_GenericButton
+{
+public:
+       TracerReset(TracerWindow *gui, Tracer *plugin, int x, int y);
+       ~TracerReset();
+
+       int handle_event();
+
+       Tracer *plugin;
+       TracerWindow *gui;
+};
+
+
+class TracerWindow : public PluginClientWindow
+{
+public:
+       TracerWindow(Tracer *plugin);
+       ~TracerWindow();
+
+       void create_objects();
+       void update_gui();
+       void start_color_thread();
+       int grab_event(XEvent *event);
+       int do_grab_event(XEvent *event);
+       void done_event(int result);
+       void send_configure_change();
+
+       Tracer *plugin;
+       BC_Title *title_x, *title_y;
+       TracerPointX *point_x;
+       TracerPointY *point_y;
+       TracerNewPoint *new_point;
+       TracerDelPoint *del_point;
+       TracerPointUp *point_up;
+       TracerPointDn *point_dn;
+       int dragging, pending_config;
+       float last_x, last_y;
+       TracerDrag *drag;
+       TracerDraw *draw;
+       TracerFill *fill;
+       BC_Title *title_r, *title_s;
+       TracerRadius *radius;
+       TracerScale *scale;
+       TracerPointList *point_list;
+       TracerReset *reset;
+};
+
+#endif
+