void MComponent::typeDesc( WString& n ) { if( _config->debug() ) { n.concatf( "(%s)->", (const char*)_mask ); } for( int i=0; i<_config->targets().count(); i++ ) { MTarget* tar = (MTarget*)_config->targets()[i]; if( tar->mask() == _mask ) { if( _config->debug() ) { n.concatf( "(%s) ", (const char*)tar->mask() ); } WString name; tar->name( name ); n.concat( name ); return; } } n.concat( "Obsolete form: Rename target type" ); }
bool VCompDialog::findRule() { int i = _imagelist->selected(); if( i >= 0 ) { MTarget* tg = (MTarget*)_tgList[i]; *_mask = tg->mask(); *_rulep = _config->findMatchingRule( *_fn, *_mask ); return TRUE; } return FALSE; }
void MConfig::zapTargetMasks() { static char hostChars[] = { #define pick(enum,type,batchserv,editor,DLL,parms,pathsep,descr) type, #include "hosttype.hpp" #undef pick }; size_t i; int j; for( i=0; i<_hostMask.size(); i++ ) { if( _hostMask[i] == '@' ) { _hostMask.setChar( i, hostChars[_hostType] ); } } for( j=0; j<_targets.count(); j++ ) { MTarget* tar = (MTarget*)_targets[j]; zapMask( tar->mask() ); } }
void VCompDialog::initialize() { int sx; int sy; WPoint average; WPoint max; const int rb_hite = 10; //height of a radio button const int space = 10; const int button_width = 50; const int button_hite = 14; setSystemFont( FALSE ); this->textMetrics( average, max ); sx = average.x() / 4; sy = average.y() / 8; WText* t1 = new WText( this, WRect( 7*sx, 2*sy, 164*sx, 9*sy ), "Target name:" ); t1->show(); _eName = new WEditBox( this, WRect( 7*sx, 12*sy, 250*sx, 13*sy ), *_fn ); _eName->select(); _eName->show(); WPushButton* bBrowse = new WPushButton( this, WRect( 265*sx, 11*sy, button_width * sx, button_hite * sy ), "&Browse..." ); bBrowse->onClick( this, (cbw)&VCompDialog::browseButton ); bBrowse->show(); WText* t2 = new WText( this, WRect( 167*sx, 31*sy, 86*sx, 9*sy ), "Image Type:" ); t2->show(); WRadioButton *button; WRadioButton *checkedbutton; int icount; WStyle style; MTarget *curtarg; int i; bool singletarg; curtarg = NULL; if( _comp != NULL ) { WPickList& targets = _config->targets(); icount = targets.count(); for( i=0; i < icount; i++ ) { curtarg = (MTarget *)targets[i]; if( curtarg->mask() == _comp->mask() ) break; } if( i == icount ) curtarg = NULL; } WVList &list = _config->targetOSs(); icount = list.count(); if( icount == 1 ) { // use a static field instead of a radio button when there is // only one target installed singletarg = TRUE; i = 0; _cur_os = *(WString *)list[0]; WText* t3 = new WText( this, WRect( 11*sx, 41*sy, 135*sx, rb_hite * sy ), _cur_os.gets() ); t3->show(); } else { singletarg = FALSE; for( i=0; i < icount; i ++ ) { if( i == 0 ) { if( icount == 1 ) { style = RStyleRadioButton; } else { style = RStyleGroupFirst; } } else if( i == icount - 1 ) { style = RStyleGroupLast; } else { style = RStyleRadioButton; } button = new WRadioButton( this, WRect( 11*sx, ( 41 + rb_hite * i ) * sy, 135*sx, rb_hite * sy ), ( (WString *)list[i] )->gets(), style ); button->show(); button->onClick( this, (cbw)&VCompDialog::osButton ); if( curtarg == NULL ) { if( i == 0 ) { checkedbutton = button; } } else { if( curtarg->targetOS() == *(WString *)list[i] ) { checkedbutton = button; } } } } WGroupBox *gbox; if( i < 5 ) i = 5; int boxtop = 29; int boxhite = i * rb_hite + 20; int boxbottom = boxtop + boxhite; gbox = new WGroupBox( this, WRect( 7*sx, boxtop * sy, 146*sx, boxhite * sy ), "Target Environment" ); gbox->show(); _imagelist = new WListBox( this, WRect( 166*sx, 44*sy, 150*sx, ( boxbottom - 44 ) * sy ), LStyleNoIntegral ); _imagelist->onDblClick( this, (cbw)&VCompDialog::okButton ); _imagelist->show(); WDefPushButton* bOk; boxbottom += space; bOk = new WDefPushButton( this, WRect( 105*sx, boxbottom * sy, button_width * sx, button_hite * sy ), "&OK" ); bOk->onClick( this, (cbw)&VCompDialog::okButton ); bOk->show(); WPushButton* bCancel; bCancel = new WPushButton( this, WRect( 186*sx, boxbottom * sy, button_width * sx, button_hite * sy ), "&Cancel" ); bCancel->onClick( this, (cbw)&VCompDialog::cancelButton ); bCancel->show(); if( singletarg ) { updateCurOs(); } else { checkedbutton->setCheck( TRUE ); } if( curtarg != NULL ) { icount = _tgList.count(); MTarget *tmptarg; for( i=0; i < icount; i++ ) { tmptarg = (MTarget *)_tgList[i]; if( curtarg->imageName() == tmptarg->imageName() ) { _imagelist->select( i ); break; } } } int xsize = 330 * sx; int ysize = WSystemMetrics::dialogFrameWidth() * 2 + WSystemMetrics::captionSize() + ( boxbottom + button_hite + space ) * sy; size( (WOrdinal)xsize, (WOrdinal) ysize ); centre(); show(); _eName->setFocus(); }