cposer/viewer btn1/2/3 fwd/rev/frm playback, misc fixes, leaks, cleanup
[goodguy/history.git] / cinelerra-5.1 / cinelerra / awindowgui.h
index 62e865970aee8a631f6f5b61f4fa8586d909a9b0..985b4a0ea99e42ca3ecaf492d863e1d148292501 100644 (file)
@@ -51,11 +51,12 @@ public:
        AssetPicon(MWindow *mwindow, AWindowGUI *gui, PluginServer *plugin);
        AssetPicon(MWindow *mwindow, AWindowGUI *gui, Label *plugin);
        AssetPicon(MWindow *mwindow, AWindowGUI *gui, int folder, int persist);
-       AssetPicon(MWindow *mwindow, AWindowGUI *gui, const char *folder_name, int folder_num);
        virtual ~AssetPicon();
 
        void create_objects();
        void reset();
+       void draw_wave(VFrame *frame, double *dp, int len,
+               int base_color, int line_color);
 
        MWindow *mwindow;
        AWindowGUI *gui;
@@ -72,7 +73,7 @@ public:
        EDL *edl;
 
        int in_use;
-
+       time_t mtime;
 
        int persistent;
        PluginServer *plugin;
@@ -139,7 +140,8 @@ public:
        int keypress_event();
        void async_update_assets();     // Sends update asset event
        void update_effects();
-       void sort_assets();
+       void sort_assets(int use_mtime);
+       void sort_folders();
        void reposition_objects();
        static int folder_number(const char *name);
 // Call back for MWindow entry point
@@ -155,7 +157,7 @@ public:
        void create_label_folder();
        void copy_picons(ArrayList<BC_ListBoxItem*> *dst,
                ArrayList<BC_ListBoxItem*> *src, int folder);
-       void sort_picons(ArrayList<BC_ListBoxItem*> *src);
+       void sort_picons(ArrayList<BC_ListBoxItem*> *src, int use_mtime=0);
 // Return the selected asset in asset_list
        Indexable* selected_asset();
        PluginServer* selected_plugin();
@@ -169,9 +171,9 @@ public:
 
        VFrame *get_picon(const char *name, const char *plugin_icons);
        VFrame *get_picon(const char *name);
-       VFrame *resource_icon(VFrame *&vfrm, BC_Pixmap *&icon, const char *fn, int idx);
-       VFrame *theme_icon(VFrame *&vfrm, BC_Pixmap *&icon, const char *fn);
-       VFrame *plugin_icon(VFrame *&vfrm, BC_Pixmap *&icon, const char *fn, unsigned char *png);
+       void resource_icon(VFrame *&vfrm, BC_Pixmap *&icon, const char *fn, int idx);
+       void theme_icon(VFrame *&vfrm, BC_Pixmap *&icon, const char *fn);
+       void plugin_icon(VFrame *&vfrm, BC_Pixmap *&icon, const char *fn, unsigned char *png);
 
        MWindow *mwindow;
        AWindow *awindow;
@@ -179,6 +181,7 @@ public:
        AWindowAssets *asset_list;
        AWindowFolders *folder_list;
        AWindowDivider *divider;
+       AWindowSearchText *search_text;
 
 // Store data to speed up responses
 // Persistant data for listboxes
@@ -199,19 +202,30 @@ public:
 
        BC_Hash *defaults;
 // Persistent icons
-       BC_Pixmap *folder_icon;       VFrame *folder_res,  *folder_vframe;
-       BC_Pixmap *file_icon;         VFrame *file_res,    *file_vframe;
-       BC_Pixmap *audio_icon;        VFrame *audio_res,   *audio_vframe;
-       BC_Pixmap *video_icon;        VFrame *video_res,   *video_vframe;
-       BC_Pixmap *label_icon;        VFrame *label_res,   *label_vframe;
-       BC_Pixmap *clip_icon;         VFrame *clip_res,    *clip_vframe;
-       BC_Pixmap *atransition_icon;  VFrame *atrans_res,  *atransition_vframe;
-       BC_Pixmap *vtransition_icon;  VFrame *vtrans_res,  *vtransition_vframe;
-       BC_Pixmap *aeffect_icon;      VFrame *aeffect_res, *aeffect_vframe;
-       BC_Pixmap *veffect_icon;      VFrame *veffect_res, *veffect_vframe;
-       BC_Pixmap *ladspa_icon;       VFrame *ladspa_res,  *ladspa_vframe;
-       BC_Pixmap *ff_aud_icon;       VFrame *ff_aud_res,  *ff_aud_vframe;
-       BC_Pixmap *ff_vid_icon;       VFrame *ff_vid_res,  *ff_vid_vframe;
+       BC_Pixmap *aeffect_folder_icon;      VFrame *aeffect_folder_vframe;
+       BC_Pixmap *atransition_folder_icon;  VFrame *atransition_folder_vframe;
+       BC_Pixmap *clip_folder_icon;         VFrame *clip_folder_vframe;
+       BC_Pixmap *label_folder_icon;        VFrame *label_folder_vframe;
+       BC_Pixmap *media_folder_icon;        VFrame *media_folder_vframe;
+       BC_Pixmap *proxy_folder_icon;        VFrame *proxy_folder_vframe;
+       BC_Pixmap *veffect_folder_icon;      VFrame *veffect_folder_vframe;
+       BC_Pixmap *vtransition_folder_icon;  VFrame *vtransition_folder_vframe;
+       BC_Pixmap *folder_icons[AWINDOW_FOLDERS];
+
+       BC_Pixmap *folder_icon;       VFrame *folder_vframe;
+       BC_Pixmap *file_icon;         VFrame *file_vframe;
+       BC_Pixmap *audio_icon;        VFrame *audio_vframe;
+       BC_Pixmap *video_icon;        VFrame *video_vframe;
+       BC_Pixmap *label_icon;        VFrame *label_vframe;
+       BC_Pixmap *clip_icon;         VFrame *clip_vframe;
+       BC_Pixmap *atransition_icon;  VFrame *atransition_vframe;
+       BC_Pixmap *vtransition_icon;  VFrame *vtransition_vframe;
+       BC_Pixmap *aeffect_icon;      VFrame *aeffect_vframe;
+       BC_Pixmap *veffect_icon;      VFrame *veffect_vframe;
+       BC_Pixmap *ladspa_icon;       VFrame *ladspa_vframe;
+       BC_Pixmap *ff_aud_icon;       VFrame *ff_aud_vframe;
+       BC_Pixmap *ff_vid_icon;       VFrame *ff_vid_vframe;
+
        NewFolderThread *newfolder_thread;
 
 // Popup menus
@@ -298,6 +312,35 @@ public:
        AWindowGUI *gui;
 };
 
+class AWindowSearchTextBox : public BC_TextBox
+{
+public:
+       AWindowSearchTextBox(AWindowSearchText *search_text, int x, int y, int w);
+       int handle_event();
+
+       AWindowSearchText *search_text;
+};
+
+class AWindowSearchText
+{
+public:
+       AWindowSearchText(MWindow *mwindow, AWindowGUI *gui, int x, int y);
+
+       int handle_event();
+       void create_objects();
+       int get_w();
+       int get_h();
+       void reposition_window(int x, int y, int w);
+       const char *get_text();
+       void clear();
+
+       MWindow *mwindow;
+       AWindowGUI *gui;
+       int x, y;
+       BC_Title *text_title;
+       BC_TextBox *text_box;
+};
+
 class AWindowNewFolder : public BC_Button
 {
 public: