projects
/
goodguy
/
history.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
update msg/txt, add new ShelCmds docs
[goodguy/history.git]
/
cinelerra-5.1
/
guicast
/
bcfilebox.C
diff --git
a/cinelerra-5.1/guicast/bcfilebox.C
b/cinelerra-5.1/guicast/bcfilebox.C
index e050bfe3b2150dd9f75b2233d736594ee53e308e..5d755977c183bfbaa9c424d7234e1021213945f2 100644
(file)
--- a/
cinelerra-5.1/guicast/bcfilebox.C
+++ b/
cinelerra-5.1/guicast/bcfilebox.C
@@
-223,7
+223,7
@@
int BC_FileBoxDirectoryText::handle_event()
BC_FileBoxFilterText::BC_FileBoxFilterText(int x, int y, BC_FileBox *filebox)
BC_FileBoxFilterText::BC_FileBoxFilterText(int x, int y, BC_FileBox *filebox)
- : BC_TextBox(x, y, filebox->get_w() - 50, 1, filebox->get_resources()->filebox_filter)
+ : BC_TextBox(x, y, filebox->get_w() -
x -
50, 1, filebox->get_resources()->filebox_filter)
{
this->filebox = filebox;
}
{
this->filebox = filebox;
}
@@
-254,7
+254,8
@@
int BC_FileBoxFilterMenu::handle_event()
BC_FileBoxSizeFormat::BC_FileBoxSizeFormat(int x, int y, BC_FileBox *file_box)
BC_FileBoxSizeFormat::BC_FileBoxSizeFormat(int x, int y, BC_FileBox *file_box)
- : BC_Button(x, y, BC_WindowBase::get_resources()->filebox_szfmt_images)
+ : BC_Button(x, y, &BC_WindowBase::get_resources()->
+ filebox_szfmt_images[3*file_box->size_format])
{
this->file_box = file_box;
set_tooltip(_("Size numeric format"));
{
this->file_box = file_box;
set_tooltip(_("Size numeric format"));
@@
-268,6
+269,9
@@
int BC_FileBoxSizeFormat::handle_event()
if( ++file_box->size_format > FILEBOX_SIZE_THOU )
file_box->size_format = FILEBOX_SIZE_RAW;
BC_WindowBase::get_resources()->filebox_size_format = file_box->size_format;
if( ++file_box->size_format > FILEBOX_SIZE_THOU )
file_box->size_format = FILEBOX_SIZE_RAW;
BC_WindowBase::get_resources()->filebox_size_format = file_box->size_format;
+ set_images(&BC_WindowBase::get_resources()->
+ filebox_szfmt_images[3*file_box->size_format]);
+ draw_face(0);
file_box->refresh(0);
return 1;
}
file_box->refresh(0);
return 1;
}
@@
-462,6
+466,7
@@
BC_FileBox::BC_FileBox(int x, int y, const char *init_path,
column_type = new int[columns];
column_width = new int[columns];
column_type = new int[columns];
column_width = new int[columns];
+ filter_title = 0;
filter_text = 0;
filter_popup = 0;
usethis_button = 0;
filter_text = 0;
filter_popup = 0;
usethis_button = 0;
@@
-557,10
+562,11
@@
void BC_FileBox::create_objects()
if(!want_directory)
{
filter_list.append(new BC_ListBoxItem("*"));
if(!want_directory)
{
filter_list.append(new BC_ListBoxItem("*"));
- filter_list.append(new BC_ListBoxItem("[*.mkv]"));
- filter_list.append(new BC_ListBoxItem("[*.mp4]"));
+ filter_list.append(new BC_ListBoxItem("[*.mkv]
[*.webm]
"));
+ filter_list.append(new BC_ListBoxItem("[*.mp4]
[*.MP4]
"));
filter_list.append(new BC_ListBoxItem("[*.mp2][*.mp3][*.wav]"));
filter_list.append(new BC_ListBoxItem("[*.avi][*.mpg][*.m2v][*.m1v][*.mov]"));
filter_list.append(new BC_ListBoxItem("[*.mp2][*.mp3][*.wav]"));
filter_list.append(new BC_ListBoxItem("[*.avi][*.mpg][*.m2v][*.m1v][*.mov]"));
+ filter_list.append(new BC_ListBoxItem("[*.jpg][*.JPG][*.png][*.gif][*.tiff]"));
filter_list.append(new BC_ListBoxItem("*.xml"));
fs->set_filter(get_resources()->filebox_filter);
}
filter_list.append(new BC_ListBoxItem("*.xml"));
fs->set_filter(get_resources()->filebox_filter);
}
@@
-641,9
+647,11
@@
void BC_FileBox::create_objects()
y += textbox->get_h() + 10;
if(!want_directory) {
y += textbox->get_h() + 10;
if(!want_directory) {
- add_subwindow(filter_text = new BC_FileBoxFilterText(x, y, this));
+ add_subwindow(filter_title = new BC_Title(x, y, _("Specify filter:")));
+ int x1 = x + filter_title->get_w() + 10;
+ add_subwindow(filter_text = new BC_FileBoxFilterText(x1, y, this));
add_subwindow(filter_popup =
add_subwindow(filter_popup =
- new BC_FileBoxFilterMenu(x
+ filter_text->get_w(), y, this));
;
+ new BC_FileBoxFilterMenu(x
1 + filter_text->get_w(), y, this))
;
}
// listbox has to be active because refresh might be called from newfolder_thread
}
// listbox has to be active because refresh might be called from newfolder_thread
@@
-703,7
+711,8
@@
int BC_FileBox::resize_event(int w, int h)
w - 30,
0);
w - 30,
0);
-
+ if(filter_title) filter_title->reposition_window(filter_title->get_x(),
+ h - (get_h() - filter_title->get_y()));
if(filter_text) filter_text->reposition_window(filter_text->get_x(),
h - (get_h() - filter_text->get_y()),
w - (get_w() - filter_text->get_w()),
if(filter_text) filter_text->reposition_window(filter_text->get_x(),
h - (get_h() - filter_text->get_y()),
w - (get_w() - filter_text->get_w()),
@@
-781,6
+790,12
@@
static inline int64_t ipow(int m, int n)
for( int64_t vv=m; n>0; vv*=vv,n>>=1 ) if( n & 1 ) v *= vv;
return v;
}
for( int64_t vv=m; n>0; vv*=vv,n>>=1 ) if( n & 1 ) v *= vv;
return v;
}
+static inline int ilen(int64_t v)
+{
+ int len = 1;
+ while( len<16 && (v/=10)>0 ) ++len;
+ return len;
+}
int BC_FileBox::create_tables()
{
int BC_FileBox::create_tables()
{
@@
-817,21
+832,23
@@
int BC_FileBox::create_tables()
static const long double kk = logl(1000.)/logl(1024.);
size = expl(kk*logl((long double)size)) + 0.5;
}
static const long double kk = logl(1000.)/logl(1024.);
size = expl(kk*logl((long double)size)) + 0.5;
}
- int len = 1;
- for( int64_t s=size; len<16 && (s/=10)>0; ++len );
- int drop = len-3;
+ int len = ilen(size), drop = len-3, round = 1;
+ if( round && drop > 0 ) { //round
+ size += ipow(10,drop)/2;
+ len = ilen(size); drop = len-3;
+ }
size /= ipow(10,drop);
int sfx = (len-1)/3;
int digits = (sfx+1)*3 - len;
int64_t frac = ipow(10,digits);
int mant = size / frac;
int fraction = size - mant*frac;
size /= ipow(10,drop);
int sfx = (len-1)/3;
int digits = (sfx+1)*3 - len;
int64_t frac = ipow(10,digits);
int mant = size / frac;
int fraction = size - mant*frac;
- if( fraction )
- sprintf(string, "%d.%0*d%s",
- mant, digits, fraction, suffix[sfx]);
+ sfx = *suffix[sfx];
+ if( sfx && size_format == FILEBOX_SIZE_1000 ) sfx += 'a'-'A';
+ if( digits )
+ sprintf(string, "%d.%0*d%c", mant, digits, fraction, sfx);
else
else
- sprintf(string, "%d%s",
- mant, suffix[sfx]);
+ sprintf(string, "%d%c", mant, sfx);
}
else {
sprintf(string, "%jd", size);
}
else {
sprintf(string, "%jd", size);