home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2001 Mobile
/
Chip_Mobile_2001.iso
/
palm
/
business
/
printcar
/
printcar.exe
/
src
/
PrintCardPreferencesForm.cc
< prev
next >
Wrap
C/C++ Source or Header
|
2000-06-11
|
3KB
|
107 lines
//
// $Id: PrintCardPreferencesForm.cc,v 1.2 2000/06/10 22:17:59 sergey Exp $
//
#include <Pilot.h>
#include "PrintCardPreferencesForm.h"
#include "PrintCardPreferences.h"
#include "Util/MemBuffer.h"
#include "Util/Assert.h"
#include "PrintCardRes.h"
PrintCardPreferencesForm::PrintCardPreferencesForm(Word formID, PrintCardPreferences& preferences):
UI::Form(formID),
_preferences(preferences)
{}
// operations
void PrintCardPreferencesForm::create()
{
UI::Form::create();
// static "thunk" for the form' event handler
static UI::FormEventHandler<PrintCardPreferencesForm> eventHandler;
eventHandler.init(this);
loadPreferences();
}
// event handlers
bool PrintCardPreferencesForm::handleCtlSelectEvent(Word controlID, bool)
{
switch(controlID)
{
case ID_OK_BUTTON:
savePreferences();
return false;
case ID_CANCEL_BUTTON:
return false;
case ID_SET_DEFAULT_BUTTON:
_preferences.setDefaults();
loadPreferences();
FrmDrawForm(formPtr()); // redraw screen to show changed fields
return true;
}
return false;
}
// implementation
void PrintCardPreferencesForm::loadPreferences()
{
setFieldIntValue(ID_FRAME_HEIGHT_FIELD, _preferences.frameHeight());
setFieldIntValue(ID_FRAME_WIDTH_FIELD, _preferences.frameWidth());
setFieldIntValue(ID_FRAME_MARGIN_FIELD, _preferences.frameMargin());
setFieldIntValue(ID_SCALE_X_FIELD, _preferences.scaleX());
setFieldIntValue(ID_SCALE_Y_FIELD, _preferences.scaleY());
setControlValue(ID_ONE_COPY_BUTTON, _preferences.oneCopy());
setControlValue(ID_MANY_COPIES_BUTTON, !_preferences.oneCopy());
}
void PrintCardPreferencesForm::savePreferences()
{
_preferences.setFrameHeight(fieldIntValue(ID_FRAME_HEIGHT_FIELD));
_preferences.setFrameWidth(fieldIntValue(ID_FRAME_WIDTH_FIELD));
_preferences.setFrameMargin(fieldIntValue(ID_FRAME_MARGIN_FIELD));
_preferences.setScaleX(fieldIntValue(ID_SCALE_X_FIELD));
_preferences.setScaleY(fieldIntValue(ID_SCALE_Y_FIELD));
_preferences.setOneCopy(controlValue(ID_ONE_COPY_BUTTON));
}
int PrintCardPreferencesForm::fieldIntValue(Word fieldID) const
{
return StrAToI(FldGetTextPtr(getObjectPtr<FieldPtr>(frmFieldObj, fieldID)));
}
void PrintCardPreferencesForm::setFieldIntValue(Word fieldID, int value)
{
FieldPtr fieldPtr = getObjectPtr<FieldPtr>(frmFieldObj, fieldID);
assert(fieldPtr != 0);
Util::MemBuffer numBuffer((VoidHand)FldGetTextHandle(fieldPtr));
StrIToA((char*)numBuffer.lock(sizeof(long)*8+1), value);
FldSetTextHandle(fieldPtr, (Handle)numBuffer.release());
}
int PrintCardPreferencesForm::controlValue(Word controlID) const
{
return CtlGetValue(getObjectPtr<ControlPtr>(frmControlObj, controlID));
}
void PrintCardPreferencesForm::setControlValue(Word controlID, int value)
{
CtlSetValue(getObjectPtr<ControlPtr>(frmControlObj, controlID), value);
}