home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 5 Edit
/
05-Edit.zip
/
listpm.zip
/
source
/
aprofile.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
1996-07-08
|
3KB
|
88 lines
/*
listPM list files under Presentation Manager. Uses Open Class Libarary.
Copyright (C) 1996 Paul Elliott
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Paul Elliott
3987 South Gessner #224
Houston Tx 77063
Paul.Elliott@Hrnowl.LoneStar.Org
*/
#include <io.h>
#include <iapp.hpp>
#include "AProfile.hpp"
// get file spec of an application file name.
// We try to get location of the user profile from the OS/2
// user profile using the indicated profile_name_key.
// If the key does not exist we create the profile in
// the directory that the application exists in as indicated
// by argv.
IString AProfile::ApplicationProfileName(const IString& app_name,
const IString& profile_name_key)
{
// reserve space for answer.
IString appl_profile;
{
// ger user profile.
IProfile user=IProfile::userProfile();
// set the application name.
user.setDefaultApplicationName(app_name);
// if the application file name key exists.....
if ( user.containsKeyName(profile_name_key) &&
( access( user.elementWithKey(profile_name_key) , 04) == 00 )
)
{
// then use that data stored in user profile.
appl_profile = user.elementWithKey(profile_name_key);
}
else // if not in application profile, make up a file name.
{
// place to store full name.
char full[_MAX_PATH];
// full name of application name =argv[0].
_fullpath(full,IApplication::current().argv(0),sizeof(full) );
// split application name into parts.
char drive[_MAX_DRIVE],dir[_MAX_DIR],fname[_MAX_FNAME],ext[_MAX_EXT];
_splitpath(full,drive,dir,fname,ext);
// and put it back together with extension = ".ini"
char ini_name[_MAX_PATH];
_makepath(ini_name,drive,dir,fname,".ini");
// this is the profile name.
appl_profile = ini_name;
// store it in user profile.
user.addOrReplaceElementWithKey(profile_name_key,appl_profile);
};
};
return appl_profile; // return application profile file spec.
};
// construct the application profile from the filename specified above.
AProfile::AProfile(const IString& app_name,const IString& profile_name_key) :
IProfile(AProfile::ApplicationProfileName(app_name,profile_name_key) )
{
// set the application name in the opened profile.
setDefaultApplicationName(app_name);
};