5 #include "assetpopup.inc"
9 #include "awindowmenu.inc"
12 #include "mwindow.inc"
13 #include "newfolder.inc"
14 #include "pluginserver.inc"
18 class AWindowNewFolder
;
19 class AWindowDeleteFolder
;
20 class AWindowRenameFolder
;
21 class AWindowDeleteDisk
;
22 class AWindowDeleteProject
;
25 class AWindowRedrawIndex
;
33 class AssetPicon
: public BC_ListBoxItem
36 AssetPicon(MWindow
*mwindow
, AWindowGUI
*gui
, Asset
*asset
);
37 AssetPicon(MWindow
*mwindow
, AWindowGUI
*gui
, EDL
*edl
);
38 AssetPicon(MWindow
*mwindow
, AWindowGUI
*gui
, PluginServer
*plugin
);
39 AssetPicon(MWindow
*mwindow
, AWindowGUI
*gui
, char *folder
);
40 virtual ~AssetPicon();
42 void create_objects();
49 // ID of thing pointed to
52 // Check ID first. Update these next before dereferencing
66 class AWindowGUI
: public BC_Window
69 AWindowGUI(MWindow
*mwindow
, AWindow
*awindow
);
73 int resize_event(int w
, int h
);
74 int translation_event();
79 void reposition_objects();
80 int current_folder_number();
81 // Call back for MWindow entry point
84 // Collect items into the drag vectors of MainSession
85 void collect_assets();
86 void create_persistent_folder(ArrayList
<BC_ListBoxItem
*> *output
,
91 void copy_picons(ArrayList
<BC_ListBoxItem
*> *dst
,
92 ArrayList
<BC_ListBoxItem
*> *src
,
94 void sort_picons(ArrayList
<BC_ListBoxItem
*> *src
,
96 // Return the selected asset in asset_list
97 Asset
* selected_asset();
98 PluginServer
* selected_plugin();
99 AssetPicon
* selected_folder();
104 AWindowAssets
*asset_list
;
105 AWindowFolders
*folder_list
;
106 AWindowDivider
*divider
;
108 // Store data to speed up responses
109 // Persistant data for listboxes
110 // All assets in current EDL
111 ArrayList
<BC_ListBoxItem
*> assets
;
112 ArrayList
<BC_ListBoxItem
*> folders
;
113 ArrayList
<BC_ListBoxItem
*> aeffects
;
114 ArrayList
<BC_ListBoxItem
*> veffects
;
115 ArrayList
<BC_ListBoxItem
*> atransitions
;
116 ArrayList
<BC_ListBoxItem
*> vtransitions
;
118 // Currently displayed data for listboxes
119 // Currently displayed assets + comments
120 ArrayList
<BC_ListBoxItem
*> displayed_assets
[2];
122 char *asset_titles
[ASSET_COLUMNS
];
125 BC_Pixmap
*folder_icon
;
126 BC_Pixmap
*file_icon
;
127 BC_Pixmap
*audio_icon
;
128 BC_Pixmap
*video_icon
;
129 BC_Pixmap
*clip_icon
;
130 NewFolderThread
*newfolder_thread
;
133 AssetPopup
*asset_menu
;
134 AssetListMenu
*assetlist_menu
;
135 FolderListMenu
*folderlist_menu
;
136 // Temporary for reading picons from files
140 void update_folder_list();
141 void update_asset_list();
142 void filter_displayed_assets();
145 class AWindowAssets
: public BC_ListBox
148 AWindowAssets(MWindow
*mwindow
, AWindowGUI
*gui
, int x
, int y
, int w
, int h
);
152 int selection_changed();
153 void draw_background();
154 int drag_start_event();
155 int drag_motion_event();
156 int drag_stop_event();
157 int button_press_event();
158 int column_resize_event();
164 class AWindowDivider
: public BC_SubWindow
167 AWindowDivider(MWindow
*mwindow
, AWindowGUI
*gui
, int x
, int y
, int w
, int h
);
170 int button_press_event();
171 int cursor_motion_event();
172 int button_release_event();
178 class AWindowFolders
: public BC_ListBox
181 AWindowFolders(MWindow
*mwindow
, AWindowGUI
*gui
, int x
, int y
, int w
, int h
);
184 int selection_changed();
185 int button_press_event();
191 class AWindowNewFolder
: public BC_Button
194 AWindowNewFolder(MWindow
*mwindow
, AWindowGUI
*gui
, int x
, int y
);
201 class AWindowDeleteFolder
: public BC_Button
204 AWindowDeleteFolder(MWindow
*mwindow
, AWindowGUI
*gui
, int x
, int y
);
211 class AWindowRenameFolder
: public BC_Button
214 AWindowRenameFolder(MWindow
*mwindow
, AWindowGUI
*gui
, int x
, int y
);
221 class AWindowDeleteDisk
: public BC_Button
224 AWindowDeleteDisk(MWindow
*mwindow
, AWindowGUI
*gui
, int x
, int y
);
231 class AWindowDeleteProject
: public BC_Button
234 AWindowDeleteProject(MWindow
*mwindow
, AWindowGUI
*gui
, int x
, int y
);
241 class AWindowInfo
: public BC_Button
244 AWindowInfo(MWindow
*mwindow
, AWindowGUI
*gui
, int x
, int y
);
251 class AWindowRedrawIndex
: public BC_Button
254 AWindowRedrawIndex(MWindow
*mwindow
, AWindowGUI
*gui
, int x
, int y
);
261 class AWindowPaste
: public BC_Button
264 AWindowPaste(MWindow
*mwindow
, AWindowGUI
*gui
, int x
, int y
);
271 class AWindowAppend
: public BC_Button
274 AWindowAppend(MWindow
*mwindow
, AWindowGUI
*gui
, int x
, int y
);
281 class AWindowView
: public BC_Button
284 AWindowView(MWindow
*mwindow
, AWindowGUI
*gui
, int x
, int y
);