![]() |
FJMovieEditor Pré-Alpha
A GTK video editor for GNOME. Designed for Artists to do, special effects, compositing and animation.
|
00001 /* 00002 A GTK video editor Designed for Artists to do, special effects, compositing and animation. 00003 Copyright (C) 2011 Fabio J. Gonzalez 00004 00005 This program is free software: you can redistribute it and/or modify 00006 it under the terms of the GNU General Public License as published by 00007 the Free Software Foundation, either version 3 of the License, or 00008 (at your option) any later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program. If not, see <http://www.gnu.org/licenses/>. 00017 */ 00018 00019 #include "basic.h" 00020 00021 #ifndef FJME_WINDOW_H 00022 #define FJME_WINDOW_H 00023 00024 #define VIDEO(x) ((wVideo*)(x)) 00025 00026 //To draw in a window and drawing windows 00027 00028 struct wVideo; 00029 typedef struct wVideo wVideo; 00030 00031 struct wTools; 00032 typedef struct wTools wTools; 00033 00034 struct wLayers; 00035 typedef struct wLayers wLayers; 00036 00037 struct wProperties; 00038 typedef struct wProperties wProperties; 00039 00040 struct Expander; 00041 typedef struct Expander Expander; 00042 00043 struct Expander { 00044 GtkWidget* expander; 00045 GList* items; 00046 }; 00047 00048 /* 00049 * Window for editing video 00050 * and its components (GTK +). 00051 */ 00052 00053 struct wVideo { 00054 GtkWidget *video; 00055 GtkWidget *scroll; 00056 cairo_t *cr; 00057 cairo_surface_t *surface; 00058 GtkItemFactory* menu_factory; 00059 00060 GtkWidget* vbox; 00061 GtkWidget* hbox; 00062 GtkWidget* menu; 00063 00064 GtkWidget *jump_begin; 00065 GtkWidget *super_prev; 00066 GtkWidget *prev; 00067 GtkWidget *stop; 00068 GtkWidget *play; 00069 GtkWidget *super_play; 00070 GtkWidget *jump_end; 00071 00072 GList* plugins_menus; 00073 }; 00074 00075 /* 00076 * Tools window(like GIMP). 00077 */ 00078 00079 struct wTools { 00080 }; 00081 00082 //Video layers window. 00083 00084 struct wLayers { 00085 GList* expanders; 00086 GtkWidget* vbox1; 00087 }; 00088 00089 //Project properties window. 00090 00091 struct wProperties { 00092 GtkWidget* vbox; 00093 GtkWidget* hbox; 00094 GtkWidget* hbox2; 00095 GtkWidget* fps; 00096 GtkWidget* width; 00097 GtkWidget* height; 00098 GtkWidget* frames_number; 00099 GtkWidget* ok; 00100 }; 00101 00102 void hide_window( GtkWidget* window, GdkEvent* evt, gpointer data ); 00103 00104 gboolean FrameMgrKeyEvent(GtkWidget *widget, GdkEventKey *evt, gpointer data); 00105 00106 void wVideoShow_Init(iPlugin* p); 00107 void wVideoShow_Frame(iPlugin* p); 00108 00109 void wLayersShow_Init(iPlugin* p); 00110 void wLayersShow_Frame(iPlugin* p); 00111 00112 void wToolsShow_Init(iPlugin* p); 00113 void wToolsShow_Frame(iPlugin* p); 00114 00115 static void SetProperties(GtkWidget* widget, gpointer data); 00116 00117 void wPropertiesShow_Init(iPlugin* p); 00118 void wPropertiesShow_Frame(iPlugin* p); 00119 00120 void SetupWindow(); 00121 00122 void DrawMenu(); 00123 00124 void draw_plugin_menus(); 00125 00126 void plugin_menus_action( GtkWidget* widget, gpointer data); 00127 00128 void SetupVideoWindow( guint32 width, guint32 height ); 00129 00130 void player_buttons( GtkWidget* widget, GdkEvent* event, gpointer button ); 00131 00132 gboolean video_play( gpointer mode ); 00133 00134 00135 #endif