add_item(select_used = new AssetSelectUsed(mwindow, gui));
BC_SubMenu *submenu;
select_used->add_submenu(submenu = new BC_SubMenu());
+ submenu->add_submenuitem(new AssetSelectUsedItem(select_used, _("All"), SELECT_ALL));
submenu->add_submenuitem(new AssetSelectUsedItem(select_used, _("Used"), SELECT_USED));
submenu->add_submenuitem(new AssetSelectUsedItem(select_used, _("Unused"), SELECT_UNUSED));
+ submenu->add_submenuitem(new AssetSelectUsedItem(select_used, _("None"), SELECT_NONE));
add_item(new AWindowListSort(mwindow, gui));
add_item(new AssetListCopy(mwindow, gui));
add_item(new AssetListPaste(mwindow, gui));
mwindow->session->drag_clips);
lock_window("AWindowGUI::keypress_event 2");
return 1;
+ case KEY_F1:
+ case KEY_F2:
+ case KEY_F3:
+ case KEY_F4:
+ if( shift_down() && ctrl_down() ) {
+ resend_event(mwindow->gui);
+ return 1;
+ }
+ break;
}
return 0;
}
AWindowGUI *gui = select_used->gui;
AWindowAssets *asset_list = gui->asset_list;
ArrayList<BC_ListBoxItem*> *data = gui->displayed_assets;
- asset_list->set_all_selected(data, 0);
-
- for( int i = 0; i < data->total; i++ ) {
- AssetPicon *picon = (AssetPicon*)data->values[i];
- Indexable *idxbl = picon->indexable ? picon->indexable :
- picon->edl ? picon->edl->get_proxy_asset() : 0;
- int used = idxbl && mwindow->edl->in_use(idxbl) ? 1 : 0;
- int selected = 0;
- switch( action ) {
- case SELECT_USED: selected = used; break;
- case SELECT_UNUSED: selected = !used; break;
+
+ switch( action ) {
+ case SELECT_ALL:
+ case SELECT_NONE:
+ asset_list->set_all_selected(data, action==SELECT_ALL ? 1 : 0);
+ break;
+ case SELECT_USED:
+ case SELECT_UNUSED:
+ asset_list->set_all_selected(data, 0);
+ for( int i = 0; i < data->total; i++ ) {
+ AssetPicon *picon = (AssetPicon*)data->values[i];
+ Indexable *idxbl = picon->indexable ? picon->indexable :
+ picon->edl ? picon->edl->get_proxy_asset() : 0;
+ int used = idxbl && mwindow->edl->in_use(idxbl) ? 1 : 0;
+ asset_list->set_selected(data, i, action==SELECT_USED ? used : !used);
}
- asset_list->set_selected(data, i, selected);
+ break;
}
int asset_xposition = asset_list->get_xposition();
}
AssetSelectUsed::AssetSelectUsed(MWindow *mwindow, AWindowGUI *gui)
- : BC_MenuItem(_("Select used"))
+ : BC_MenuItem(_("Select"))
{
this->mwindow = mwindow;
this->gui = gui;
#include "samples.inc"
#include "vicon.h"
-#define SELECT_USED 0
-#define SELECT_UNUSED 1
+#define SELECT_ALL 0
+#define SELECT_USED 1
+#define SELECT_UNUSED 2
+#define SELECT_NONE 3
class AWindowFolderItem : public BC_ListBoxItem
{
break;
}
+ if( !result && cwindow_operation < 0 && ctrl_down() && shift_down() ) {
+ switch( get_keypress() ) {
+ case KEY_F1:
+ case KEY_F2:
+ case KEY_F3:
+ case KEY_F4:
+ resend_event(mwindow->gui);
+ result = 1;
+ break;
+ }
+ }
if( !result && !ctrl_down() ) {
switch( get_keypress() ) {
case KEY_F1:
int GWindowGUI::keypress_event()
{
- switch(get_keypress()) {
- case KEY_F1:
- if( !ctrl_down() && shift_down() )
+ if( ctrl_down() && shift_down() ) {
+ switch(get_keypress()) {
+ case KEY_F1:
+ case KEY_F2:
+ case KEY_F3:
+ case KEY_F4:
+ if( ctrl_down() && shift_down() ) {
+ resend_event(mwindow->gui);
+ return 1;
+ }
+ }
+ }
+ else if( !ctrl_down() && shift_down() ) {
+ switch(get_keypress()) {
+ case KEY_F1:
toggle_camera_xyz();
- break;
- case KEY_F2:
- if( !ctrl_down() && shift_down() )
+ return 1;
+ case KEY_F2:
toggle_projector_xyz();
- break;
+ return 1;
+ }
+ }
+ switch(get_keypress()) {
case 'w':
case 'W':
case '0':
#include "edl.h"
#include "edlsession.h"
+#include "keys.h"
#include "language.h"
#include "levelwindow.h"
#include "levelwindowgui.h"
int LevelWindowGUI::keypress_event()
{
- if(get_keypress() == 'w' || get_keypress() == 'W')
- {
+ switch( get_keypress() ) {
+ case 'w':
+ case 'W':
close_event();
return 1;
+ case KEY_F1:
+ case KEY_F2:
+ case KEY_F3:
+ case KEY_F4:
+ if( ctrl_down() && shift_down() ) {
+ resend_event(mwindow->gui);
+ return 1;
+ }
}
return 0;
}
-
int LevelWindowGUI::reset_over()
{
return 0;
this->load_layout = load_layout;
if( hotkey ) {
char hot_txt[BCSTRLEN];
- sprintf(hot_txt, _("Ctl+Shift+F%d"), hotkey-KEY_F1+1);
+ sprintf(hot_txt, _("CtlSft+F%d"), hotkey-KEY_F1+1);
set_ctrl(); set_shift();
set_hotkey_text(hot_txt);
}
int LoadLayoutItem::handle_event()
{
- char layout_path[BCTEXTLEN];
- snprintf(layout_path, sizeof(layout_path), "%s/" LAYOUT_FILE,
- File::get_config_path(), no);
MWindow *mwindow = load_layout->mwindow;
switch( load_layout->action ) {
case LAYOUT_LOAD:
- mwindow->session->load_file(layout_path);
+ mwindow->load_layout(no);
break;
case LAYOUT_SAVE:
- mwindow->session->save_file(layout_path);
+ mwindow->save_layout(no);
break;
}
- mwindow->restore_windows();
- mwindow->gui->default_positions();
- mwindow->save_defaults();
return 1;
}
}
else if( session->show_lwindow && lwindow->gui->is_hidden() )
show_lwindow();
+
+ gui->focus();
+}
+
+void MWindow::save_layout(int no)
+{
+ char layout_path[BCTEXTLEN];
+ snprintf(layout_path, sizeof(layout_path), "%s/" LAYOUT_FILE,
+ File::get_config_path(), no);
+ session->save_file(layout_path);
+}
+
+void MWindow::load_layout(int no)
+{
+ char layout_path[BCTEXTLEN];
+ snprintf(layout_path, sizeof(layout_path), "%s/" LAYOUT_FILE,
+ File::get_config_path(), no);
+ session->load_file(layout_path);
+ restore_windows();
+ gui->default_positions();
+ save_defaults();
}
int MWindow::tile_windows(int window_config)
void show_gwindow();
void hide_gwindow();
void restore_windows();
+ void save_layout(int no);
+ void load_layout(int no);
int tile_windows(int window_config);
char *get_cwindow_display();
void set_screens(int value);
shbtn_prefs.remove_all_objects();
int shbtns_total = defaults->get("SHBTNS_TOTAL", -1);
if( shbtns_total < 0 ) {
- shbtn_prefs.append(new ShBtnPref(_("Features5"), "$CIN_BROWSER file://$CIN_DAT/doc/Features5.pdf", 0));
+ shbtn_prefs.append(new ShBtnPref(_("Features"), "$CIN_BROWSER file://$CIN_DAT/doc/Features5.pdf", 0));
shbtn_prefs.append(new ShBtnPref(_("Online Help"), "$CIN_BROWSER https://cinelerra-cv.org/docs.php", 0));
shbtn_prefs.append(new ShBtnPref(_("Original Manual"), "$CIN_BROWSER file://$CIN_DAT/doc/cinelerra.html", 0));
shbtn_prefs.append(new ShBtnPref(_("Setting Shell Commands"), "$CIN_BROWSER file://$CIN_DAT/doc/ShellCmds.html", 0));
#ifndef __VERSIONINFO_H__
#define __VERSIONINFO_H__
-#define CINELERRA_VERSION "Unify"
+#define CINELERRA_VERSION "Infinity"
#define REPOMAINTXT "git://git.cinelerra-gg.org/goodguy/cinelerra.git\n"
#define COPYRIGHT_DATE "2018"
#define COPYRIGHTTEXT1 "(c) 2006-2018 Heroine Virtual Ltd. by Adam Williams\n"
int VWindowGUI::keypress_event()
{
int result = 0;
- switch(get_keypress())
- {
- case 'w':
- case 'W':
- close_event();
+ switch( get_keypress() ) {
+ case 'w':
+ case 'W':
+ close_event();
+ result = 1;
+ break;
+ case 'z':
+ mwindow->undo_entry(this);
+ break;
+ case 'Z':
+ mwindow->redo_entry(this);
+ break;
+ case 'f':
+ unlock_window();
+ if(mwindow->session->vwindow_fullscreen)
+ canvas->stop_fullscreen();
+ else
+ canvas->start_fullscreen();
+ lock_window("VWindowGUI::keypress_event 1");
+ break;
+ case ESC:
+ unlock_window();
+ if(mwindow->session->vwindow_fullscreen)
+ canvas->stop_fullscreen();
+ lock_window("VWindowGUI::keypress_event 2");
+ break;
+ case KEY_F1:
+ case KEY_F2:
+ case KEY_F3:
+ case KEY_F4:
+ if( ctrl_down() && shift_down() ) {
+ resend_event(mwindow->gui);
result = 1;
break;
- case 'z':
- mwindow->undo_entry(this);
- break;
- case 'Z':
- mwindow->redo_entry(this);
- break;
- case 'f':
- unlock_window();
- if(mwindow->session->vwindow_fullscreen)
- canvas->stop_fullscreen();
- else
- canvas->start_fullscreen();
- lock_window("VWindowGUI::keypress_event 1");
- break;
- case ESC:
- unlock_window();
- if(mwindow->session->vwindow_fullscreen)
- canvas->stop_fullscreen();
- lock_window("VWindowGUI::keypress_event 2");
- break;
+ }
}
- if(!result) result = transport->keypress_event();
+ if( !result )
+ result = transport->keypress_event();
return result;
}
<td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
<td align="left"><font face="Liberation Serif" size=4>F2</font></td>
<td align="left"><font face="Liberation Serif" size=4>'Ctrl+Shift'</font></td>
- <td align="left"><font face="Liberation Serif" size=4>Use window layout #2r</font></td>
+ <td align="left"><font face="Liberation Serif" size=4>Use window layout #2</font></td>
</tr>
<tr>
<td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
-Cinelerra Unify (GG) continuously merged/enriched from the
+Cinelerra-GG Infinity continuously merged/enriched from the
original Heroine Virtual of Adam Williams which does not
support many modern formats, and now contains CV mods
provided over prior years from the Community Version.
-Email cinelerra@lists.cinelerra-cv.org 4 help.
+Email cin@lists.cinelerra-gg.org 4 help.
For usage help, refer to the following:
https://cinelerra-cv.org/docs/cinelerra_cv_manual_en.html
- https://cinelerra-cv.org/five/Features5.pdf
+ https://cinelerra-gg.org/downloads/Features.pdf
http://g-raffa.eu/Cinelerra/HOWTO/basics.html
Cinfinity icons selected in Preferences Sam (CC BY 3.0,
https://creativecommons.org/licenses/by/3.0/)
Neophyte theme selected in Preferences by Olaf Wolff (CC BY 4.0,
https://creativecommons.org/licenses/by/4.0/)
.
+Nov 2018 New features of note:
+ FFmpeg is now at version 4.1 with a few more plugins.
+ Sketcher plugin newly added to "pencil in" lines/curves.
+ Delete shortcut in Resources to "remove from project".
+ Window layout save and load feature added - total of 4.
+ Select asset popup in Resources to highlight used/unused.
Oct 2018 New features of note:
Title plugin has unlimited number of characters allowed.
Histogram Bezier bug fixes and some improvements applied.