Subversion Repositories Filer-Free

Rev

Rev 63 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 63 Rev 64
Line 3... Line 3...
3
// Redistribution and modification are permitted under the terms of the
3
// Redistribution and modification are permitted under the terms of the
4
// GNU General Public License (version 2 or any later version).
4
// GNU General Public License (version 2 or any later version).
5
 
5
 
6
#include <cstring>
6
#include <cstring>
7
#include <cstdio>
7
#include <cstdio>
-
 
8
#include <new>
8
 
9
 
9
#include "oslib/osbyte.h"
10
#include "oslib/osbyte.h"
10
#include "oslib/osfscontrol.h"
11
#include "oslib/osfscontrol.h"
11
#include "oslib/wimp.h"
12
#include "oslib/wimp.h"
12
 
13
 
Line 43... Line 44...
43
}; /* anonymous namespace */
44
}; /* anonymous namespace */
44
 
45
 
45
filer_window::filer_window(filer_application* app,const char* pathname,
46
filer_window::filer_window(filer_application* app,const char* pathname,
46
        const os_box& box,const filer_options& options):
47
        const os_box& box,const filer_options& options):
47
        window(app),
48
        window(app),
48
        _pathname(new char[std::strlen(pathname)+1]),
49
        _pathname(new(std::nothrow) char[std::strlen(pathname)+1]),
49
        _options(options),
50
        _options(options),
50
        _directory(options.sort()),
51
        _directory(options.sort()),
51
        _xcsize(68),
52
        _xcsize(68),
52
        _ycsize(68),
53
        _ycsize(68),
53
        _xccount(1),
54
        _xccount(1),
Line 485... Line 486...
485
{
486
{
486
        static filer_menu* _shared_menu=0;
487
        static filer_menu* _shared_menu=0;
487
        if (!_shared_menu)
488
        if (!_shared_menu)
488
        {
489
        {
489
                wimp_open_template(template_pathname);
490
                wimp_open_template(template_pathname);
490
                _shared_menu=new filer_menu(parent_application());
491
                _shared_menu=new(std::nothrow) filer_menu(parent_application());
491
                wimp_close_template();
492
                wimp_close_template();
492
        }
493
        }
493
        return *_shared_menu;
494
        return *_shared_menu;
494
}
495
}
495
 
496
 
Line 801... Line 802...
801
                box.x1=box.x0;
802
                box.x1=box.x0;
802
                box.y0=box.y1;
803
                box.y0=box.y1;
803
 
804
 
804
                // Open new window.
805
                // Open new window.
805
                *lastdot=0;
806
                *lastdot=0;
806
                new filer_window((filer_application*)parent_application(),
807
                new(std::nothrow) filer_window(
807
                        _pathname,box,_options);
808
                        (filer_application*)parent_application(),_pathname,box,_options);
808
                *lastdot='.';
809
                *lastdot='.';
809
        }
810
        }
810
}
811
}
811
 
812
 
812
void filer_window::set_work_directory() const
813
void filer_window::set_work_directory() const
Line 862... Line 863...
862
 
863
 
863
                // Open new window.
864
                // Open new window.
864
                if (std::strlen(_pathname)+std::strlen(info.name)+1<max_name_length)
865
                if (std::strlen(_pathname)+std::strlen(info.name)+1<max_name_length)
865
                {
866
                {
866
                        std::sprintf(buffer,"%s.%s",_pathname,info.name);
867
                        std::sprintf(buffer,"%s.%s",_pathname,info.name);
867
                        window* w=new filer_window(
868
                        window* w=new(std::nothrow) filer_window(
868
                                (filer_application*)parent_application(),
869
                                (filer_application*)parent_application(),
869
                                buffer,box,_options);
870
                                buffer,box,_options);
870
                }
871
                }
871
        }
872
        }
872
        else
873
        else