picon dirs, new cinfinity picons, plugin info, rework text drawing, show msg, compres...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / awindowgui.h
index 8d9414e049ac129ffcc6c3b6d6794ed7e3a4bb0b..62e865970aee8a631f6f5b61f4fa8586d909a9b0 100644 (file)
 #include "asset.inc"
 #include "assets.inc"
 #include "awindow.inc"
-#include "awindowmenu.inc"
+#include "awindowgui.inc"
+#include "clippopup.inc"
 #include "edl.inc"
+#include "effectlist.inc"
+#include "folderlistmenu.inc"
 #include "guicast.h"
+#include "labeledit.inc"
+#include "labelpopup.inc"
 #include "labels.h"
 #include "indexable.inc"
 #include "mwindow.inc"
 #include "pluginserver.inc"
 #include "vicon.h"
 
-class AWindowAssets;
-class AWindowFolders;
-class AWindowNewFolder;
-class AWindowDeleteFolder;
-class AWindowRenameFolder;
-class AWindowDeleteDisk;
-class AWindowDeleteProject;
-class AWindowDivider;
-class AWindowInfo;
-class AWindowRedrawIndex;
-class AWindowPaste;
-class AWindowAppend;
-class AWindowView;
-class AddTools;
-class AddPluginsMenu;
-class AddPluginItem;
-class AVIconDrawing;
-
-class AssetPicon;
-class AssetVIcon;
-class LabelPopup;
-class LabelPopupEdit;
-class AWindowGUI;
-
 class AssetPicon : public BC_ListBoxItem
 {
 public:
@@ -69,7 +50,7 @@ public:
        AssetPicon(MWindow *mwindow, AWindowGUI *gui, EDL *edl);
        AssetPicon(MWindow *mwindow, AWindowGUI *gui, PluginServer *plugin);
        AssetPicon(MWindow *mwindow, AWindowGUI *gui, Label *plugin);
-       AssetPicon(MWindow *mwindow, AWindowGUI *gui, int folder);
+       AssetPicon(MWindow *mwindow, AWindowGUI *gui, int folder, int persist);
        AssetPicon(MWindow *mwindow, AWindowGUI *gui, const char *folder_name, int folder_num);
        virtual ~AssetPicon();
 
@@ -184,6 +165,13 @@ public:
        int load_defaults(BC_Hash *defaults);
        void start_vicon_drawing();
        void stop_vicon_drawing();
+       void update_picon(Indexable *indexable);
+
+       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);
 
        MWindow *mwindow;
        AWindow *awindow;
@@ -206,29 +194,34 @@ public:
 // Currently displayed data for listboxes
 // Currently displayed assets + comments
        ArrayList<BC_ListBoxItem*> displayed_assets[2];
-
        const char *asset_titles[ASSET_COLUMNS];
+       int displayed_folder;
 
        BC_Hash *defaults;
 // Persistent icons
-       BC_Pixmap *folder_icon;
-       BC_Pixmap *file_icon;
-       BC_Pixmap *audio_icon;
-       BC_Pixmap *video_icon;
-       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 *ladspa_icon;       VFrame *ladspa_vframe;
-       BC_Pixmap *ff_aud_icon;       VFrame *ff_aud_vframe;
-       BC_Pixmap *ff_vid_icon;       VFrame *ff_vid_vframe;
-       BC_Pixmap *veffect_icon;      VFrame *veffect_vframe;
+       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;
        NewFolderThread *newfolder_thread;
 
 // Popup menus
        AssetPopup *asset_menu;
+       ClipPopup *clip_menu;
        LabelPopup *label_menu;
+       EffectListMenu *effectlist_menu;
        AssetListMenu *assetlist_menu;
+       ClipListMenu *cliplist_menu;
+       LabelListMenu *labellist_menu;
        FolderListMenu *folderlist_menu;
        AddTools *add_tools;
 // Temporary for reading picons from files
@@ -405,34 +398,6 @@ public:
        int x, y;
 };
 
-class LabelPopup : public BC_PopupMenu
-{
-public:
-       LabelPopup(MWindow *mwindow, AWindowGUI *gui);
-       ~LabelPopup();
-
-       void create_objects();
-// Set mainsession with the current selections
-       int update();
-
-       MWindow *mwindow;
-       AWindowGUI *gui;
-
-       LabelPopupEdit *editlabel;
-};
-
-class LabelPopupEdit : public BC_MenuItem
-{
-public:
-       LabelPopupEdit(MWindow *mwindow, LabelPopup *popup);
-       ~LabelPopupEdit();
-
-       int handle_event();
-
-       MWindow *mwindow;
-       LabelPopup *popup;
-};
-
 class AddTools : public BC_PopupMenu
 {
 public:
@@ -441,7 +406,6 @@ public:
 
        MWindow *mwindow;
        AWindowGUI *gui;
-       AddPluginsMenu *add_plugins;
 };
 
 class AddPluginItem : public BC_MenuItem
@@ -466,4 +430,28 @@ public:
        ~AVIconDrawing();
 };
 
+
+class AWindowListFormat : public BC_MenuItem
+{
+public:
+       AWindowListFormat(MWindow *mwindow, AWindowGUI *gui);
+
+       void update();
+       int handle_event();
+       MWindow *mwindow;
+       AWindowGUI *gui;
+};
+
+
+class AWindowListSort : public BC_MenuItem
+{
+public:
+       AWindowListSort(MWindow *mwindow, AWindowGUI *gui);
+
+       void update();
+       int handle_event();
+       MWindow *mwindow;
+       AWindowGUI *gui;
+};
+
 #endif