BOOL CUndoPrefPage::OnCommand(WPARAM wParam, LPARAM lParam) { HWND hActiveWnd = GetActiveDoc(); HWND hDlg = GetSafeHwnd(); int id = GET_WM_COMMAND_ID(wParam, lParam); UINT codeNotify = GET_WM_COMMAND_CMD(wParam, lParam); switch (id) { case IDC_PREF_UNDOTYPE: // case IDC_PREF_NOUNDO: // case IDC_PREF_MANUALAPPLY: // case IDC_PREF_AUTOAPPLY: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; Control.NoUndo = (id == IDC_PREF_NOUNDO); Control.UseApply = (id == IDC_PREF_MANUALAPPLY); ControlEnable( hDlg, IDC_PREF_MASKUNDO, !Control.NoUndo ); SetModified(TRUE); break; case IDC_PREF_UNDOMODE: // case IDC_PREF_IMAGEUNDO: // case IDC_PREF_OBJECTUNDO: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; Control.UndoObjects = (id == IDC_PREF_OBJECTUNDO); SetModified(TRUE); break; case IDC_PREF_MASKUNDO: Control.UndoMasks = !Control.UndoMasks; ::CheckDlgButton( hDlg, id, !Control.UndoMasks ); SetModified(TRUE); break; case IDC_PREF_DISABLECMDLIST: Control.DoCommandList = !Control.DoCommandList; ::CheckDlgButton( hDlg, id, !Control.DoCommandList ); SetModified(TRUE); break; default: return (CPPPropertyPage::OnCommand(wParam, lParam)); break; } return(TRUE); }
BOOL CScratchpadPrefPage::OnCommand(WPARAM wParam, LPARAM lParam) { BOOL Bool; HWND hActiveWnd = GetActiveDoc(); HWND hDlg = GetSafeHwnd(); int id = GET_WM_COMMAND_ID(wParam, lParam); UINT codeNotify = GET_WM_COMMAND_CMD(wParam, lParam); switch (id) { case IDC_PREF_SCRATCHX: if ( ::GetFocus() != ::GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; Control.ScratchpadWidth = ::GetDlgItemSpin( hDlg, id, &Bool, NO ); SetModified(TRUE); break; case IDC_PREF_SCRATCHY: if ( ::GetFocus() != ::GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; Control.ScratchpadHeight = ::GetDlgItemSpin( hDlg, id, &Bool, NO ); SetModified(TRUE); break; case IDC_PREF_SCRATCHTYPE: // case IDC_PREF_SCRATCHGRAY: // case IDC_PREF_SCRATCHCOLOR: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; Control.IsScratchpadColor = id - IDC_PREF_SCRATCHGRAY; SetModified(TRUE); break; default: return (CPPPropertyPage::OnCommand(wParam, lParam)); break; } return(TRUE); }
BOOL CSizeImageDlg::DoSizeControls( ITEMID id, UINT codeNotify, BOOL bResAdjust ) { BOOL bResult = TRUE; HWND hDlg = GetSafeHwnd(); BOOL Bool; long x, y; int npix, nlin; HWND hWnd, hControl; RECT rArea; LFIXED scale; LPIMAGE lpImage; FRMDATATYPE Type; lpImage = GetImage(); ImgGetInfo(lpImage, NULL, NULL, NULL, &Type); npix = CROPWIDTH(); nlin = CROPHEIGHT(); switch( id ) { case IDC_SMARTSIZE: m_SmartSize = !m_SmartSize; CheckDlgButton( IDC_SMARTSIZE, m_SmartSize ); break; case IDC_MAINTAINSIZE: m_MaintainSize = !m_MaintainSize; if (m_MaintainSize) m_Distortable = NO; ControlEnable(hDlg, IDC_DISTORT, !m_MaintainSize); ControlEnable(hDlg, IDC_SMARTSIZE, !m_MaintainSize); Bool = !m_MaintainSize || m_Units != IDC_PREF_UNITPIXELS; ControlEnable(hDlg, IDC_WIDTH, Bool); ControlEnable(hDlg, IDC_HEIGHT, Bool); ControlEnable(hDlg, IDC_SCALEX, Bool); ControlEnable(hDlg, IDC_SCALEY, Bool); if (m_MaintainSize) { m_Resolution = m_CropResolution = m_OrigResolution; m_Width = FGET( npix, m_CropResolution ); m_Height = FGET( nlin, m_CropResolution ); SetUnitResolution( m_CropResolution ); SetDlgItemSpin( hDlg, IDC_RES, m_Resolution, NO ); SetDlgItemSpinFixed( hDlg, IDC_WIDTH, m_Width, YES ); SetDlgItemSpinFixed( hDlg, IDC_HEIGHT, m_Height, YES ); } CheckDlgButton( IDC_MAINTAINSIZE, m_MaintainSize ); CheckDlgButton( IDC_SMARTSIZE, !m_MaintainSize && m_SmartSize ); break; case IDC_PREF_UNITS: { WORD wUnits; if ( !(wUnits = HandleCombo( hDlg, id, codeNotify )) ) break; m_Units = wUnits; SetUnitInfo((UNIT_TYPE)(m_Units-IDC_PREF_UNITINCHES), m_UnitRes, m_Points); CheckComboItem(hDlg, IDC_PREF_UNITS, IDC_PREF_UNITFIRST, IDC_PREF_UNITLAST, m_Units); Bool = !m_MaintainSize || m_Units != IDC_PREF_UNITPIXELS; ControlEnable(hDlg, IDC_WIDTH, Bool); ControlEnable(hDlg, IDC_HEIGHT, Bool); ControlEnable(hDlg, IDC_SCALEX, Bool); ControlEnable(hDlg, IDC_SCALEY, Bool); if (m_MaintainSize && m_Units == IDC_PREF_UNITPIXELS) { m_CropResolution = m_Resolution; SetUnitResolution( m_CropResolution ); m_Width = FGET( npix, m_CropResolution ); m_Height = FGET( nlin, m_CropResolution ); y = FMUL( m_CropResolution, m_Height ); m_ScaleY = ((y*100L) + nlin/2) / nlin; SetDlgItemSpin( hDlg, IDC_SCALEY, m_ScaleY, NO ); x = FMUL( m_CropResolution, m_Width ); m_ScaleX = ((x*100L) + npix/2) / npix; SetDlgItemSpin( hDlg, IDC_SCALEX, m_ScaleX, NO ); } SetDlgItemSpinFixed( hDlg, IDC_WIDTH, m_Width, YES ); SetDlgItemSpinFixed( hDlg, IDC_HEIGHT, m_Height, YES ); SetUnitLabels(); } break; case IDC_DISTORT: m_Distortable = !m_Distortable; CheckDlgButton( IDC_DISTORT, m_Distortable ); if (m_Distortable) m_MaintainSize = NO; ControlEnable(hDlg, IDC_MAINTAINSIZE, !m_MaintainSize); if ( m_ScaleX != m_ScaleY ) { m_ScaleX = m_ScaleY; x = (((long)npix * m_ScaleX)+50L)/100L; m_Width = FGET( x, m_CropResolution ); SetDlgItemSpinFixed( hDlg, IDC_WIDTH, m_Width, YES ); SetDlgItemSpin( hDlg, IDC_SCALEX, m_ScaleX, NO ); } CheckDlgButton( IDC_SMARTSIZE,m_SmartSize && !m_Distortable); ControlEnable( hDlg, IDC_SMARTSIZE, !m_Distortable && CANDOTRANSPARENCY(Type)); ControlEnable(hDlg, IDC_MAINTAINSIZE, !m_Distortable && lpImage); if ( Page.PrintNumeric ) break; if ( !(hWnd = ::GetDlgItem( hDlg,IDC_PRINTVIEWPAGE)) ) break; if ( !(hControl = ::GetDlgItem( hDlg,IDC_PRINTVIEWIMAGE)) ) break; SetLongBit(hControl, GWL_STYLE, IS_RATIO_CONSTRAIN, !m_Distortable ); if (!m_Distortable) { ::GetWindowRect(hControl, &rArea); ::ScreenToClient(hWnd, (LPPOINT)&rArea.left); ::ScreenToClient(hWnd, (LPPOINT)&rArea.right); ::MoveWindow(hControl, rArea.left, rArea.top, RectWidth(&rArea)-1, RectHeight(&rArea)-1, TRUE); } break; case IDC_HEIGHT: if ( ::GetFocus() != ::GetDlgItem( hDlg,id ) ) break; if ( codeNotify != EN_CHANGE ) break; m_Height = GetDlgItemSpinFixed( hDlg, IDC_HEIGHT, &Bool, YES); if (m_MaintainSize) { scale = FGET(FUNITY, m_Height); m_Resolution = FMUL(nlin, scale); SetUnitResolution( m_Resolution ); SetDlgItemSpin( hDlg, IDC_RES, m_Resolution, NO ); } // y = number of new pixels x 100 y = FMUL( m_CropResolution, m_Height ); // calculate scale factor = (new pixels * 100) / old pixels m_ScaleY = ((y * 100L) + nlin/2) / nlin; SetDlgItemSpin( hDlg, IDC_SCALEY, m_ScaleY, NO ); if ( !m_Distortable ) { m_ScaleX = m_ScaleY; x = (((long)npix * (long)y) + (nlin/2))/ (long)nlin; m_Width = FGET( x, m_CropResolution ); SetDlgItemSpinFixed( hDlg, IDC_WIDTH, m_Width, YES ); SetDlgItemSpin( hDlg, IDC_SCALEX, m_ScaleX, NO ); } ImageMemory( hDlg, IDC_MEMORY, m_MaintainSize ? FGET(npix,1) : m_Width, m_MaintainSize ? FGET(nlin,1) : m_Height, m_MaintainSize ? 1 : m_Resolution, m_Depth ); break; case IDC_WIDTH: if ( ::GetFocus() != ::GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; m_Width = GetDlgItemSpinFixed( hDlg, IDC_WIDTH, &Bool, YES ); if (m_MaintainSize) { scale = FGET(FUNITY, m_Width); m_Resolution = FMUL(npix, scale); SetUnitResolution( m_Resolution ); SetDlgItemSpin( hDlg, IDC_RES, m_Resolution, NO ); } x = FMUL( m_CropResolution, m_Width ); m_ScaleX = ((x * 100L) + npix/2L) / (long)npix; SetDlgItemSpin( hDlg, IDC_SCALEX, m_ScaleX, NO ); if ( !m_Distortable ) { m_ScaleY = m_ScaleX; y = (((long)nlin * (long)x) + (npix/2))/ (long)npix; m_Height = FGET( y, m_CropResolution ); SetDlgItemSpinFixed( hDlg, IDC_HEIGHT, m_Height, YES ); SetDlgItemSpin( hDlg, IDC_SCALEY, m_ScaleY, NO ); } ImageMemory( hDlg, IDC_MEMORY, m_MaintainSize ? FGET(npix,1) : m_Width, m_MaintainSize ? FGET(nlin,1) : m_Height, m_MaintainSize ? 1 : m_Resolution, m_Depth ); break; case IDC_RES: if ( ::GetFocus() != ::GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; m_Resolution = GetDlgItemSpin( hDlg, IDC_RES, &Bool, NO ); if ( m_Resolution <= 0 ) m_Resolution = 2; if (m_MaintainSize) { m_Width = FGET(npix, m_Resolution); m_Height = FGET(nlin, m_Resolution); SetUnitResolution( m_Resolution ); if (m_Units != IDC_PREF_UNITPIXELS) { SetDlgItemSpinFixed( hDlg, IDC_WIDTH, m_Width, YES ); SetDlgItemSpinFixed( hDlg, IDC_HEIGHT, m_Height, YES ); y = FMUL( m_CropResolution, m_Height ); m_ScaleY = ((y*100L) + nlin/2) / nlin; SetDlgItemSpin( hDlg, IDC_SCALEY, m_ScaleY, NO ); x = FMUL( m_CropResolution, m_Width ); m_ScaleX = ((x*100L) + npix/2) / npix; SetDlgItemSpin( hDlg, IDC_SCALEX, m_ScaleX, NO ); } } if ( m_Units == IDC_PREF_UNITPIXELS ) { if ( bResAdjust ) { // Extract the values again (inch values changed) m_CropResolution = m_Resolution; SetUnitResolution( m_Resolution ); ::SetFocus( hWnd = ::GetDlgItem( hDlg,IDC_HEIGHT ) ); FORWARD_WM_COMMAND(hDlg, IDC_HEIGHT, hWnd, EN_CHANGE, ::SendMessage); ::SetFocus( hWnd = ::GetDlgItem( hDlg,IDC_WIDTH ) ); FORWARD_WM_COMMAND(hDlg, IDC_WIDTH, hWnd, EN_CHANGE, ::SendMessage); ::SetFocus( ::GetDlgItem( hDlg,id ) ); } else { // Change the edit box SetUnitResolution( m_Resolution ); SetDlgItemSpinFixed( hDlg, IDC_WIDTH, m_Width, YES); SetDlgItemSpinFixed( hDlg, IDC_HEIGHT, m_Height, YES ); } } ImageMemory( hDlg, IDC_MEMORY, m_MaintainSize ? FGET(npix,1) : m_Width, m_MaintainSize ? FGET(nlin,1) : m_Height, m_MaintainSize ? 1 : m_Resolution, m_Depth ); break; case IDC_SCALEX: if ( GetFocus() != GetDlgItem( id ) ) break; if ( codeNotify != EN_CHANGE ) break; m_ScaleX = GetDlgItemSpin( hDlg, IDC_SCALEX, &Bool, NO ); x = (((long)npix * m_ScaleX)+50L)/100L; m_Width = FGET( x, m_CropResolution ); SetDlgItemSpinFixed( hDlg, IDC_WIDTH, m_Width, YES ); if (m_MaintainSize) { scale = FGET(FUNITY, m_Width); m_Resolution = FMUL(npix, scale); SetUnitResolution( m_Resolution ); SetDlgItemSpin( hDlg, IDC_RES, m_Resolution, NO ); } if ( !m_Distortable ) { m_ScaleY = m_ScaleX; y = (((long)nlin * m_ScaleY)+50)/100L; m_Height = FGET( y, m_CropResolution ); SetDlgItemSpinFixed( hDlg, IDC_HEIGHT, m_Height, YES ); SetDlgItemSpin( hDlg, IDC_SCALEY, m_ScaleY, NO ); } ImageMemory( hDlg, IDC_MEMORY, m_MaintainSize ? FGET(npix,1) : m_Width, m_MaintainSize ? FGET(nlin,1) : m_Height, m_MaintainSize ? 1 : m_Resolution, m_Depth ); break; case IDC_SCALEY: if ( GetFocus() != GetDlgItem( id ) ) break; if ( codeNotify != EN_CHANGE ) break; m_ScaleY = GetDlgItemSpin( hDlg, IDC_SCALEY, &Bool, NO ); y = (((long)nlin * m_ScaleY)+50)/100L; m_Height = FGET( y, m_CropResolution ); SetDlgItemSpinFixed( hDlg, IDC_HEIGHT, m_Height, YES ); if (m_MaintainSize) { scale = FGET(FUNITY, m_Height); m_Resolution = FMUL(nlin, scale); SetUnitResolution( m_Resolution ); SetDlgItemSpin( hDlg, IDC_RES, m_Resolution, NO ); } if ( !m_Distortable ) { m_ScaleX = m_ScaleY; x = (((long)npix * m_ScaleX)+50L)/100L; m_Width = FGET( x, m_CropResolution ); SetDlgItemSpinFixed( hDlg, IDC_WIDTH, m_Width, YES); SetDlgItemSpin( hDlg, IDC_SCALEX, m_ScaleX, NO ); } ImageMemory( hDlg, IDC_MEMORY, m_MaintainSize ? FGET(npix,1) : m_Width, m_MaintainSize ? FGET(nlin,1) : m_Height, m_MaintainSize ? 1 : m_Resolution, m_Depth ); break; case IDC_MEMORY: default: bResult = FALSE; break; } return bResult; }
VOID CExpandImageDlg::DoExpandControls(ITEMID id, UINT codeNotify ) /***********************************************************************/ { BOOL Bool; WORD idUnits; LFIXED Right, Bottom; switch( id ) { case IDC_PREF_UNITS: if ( !(idUnits = HandleCombo( GetSafeHwnd(), id, codeNotify )) ) break; Control.Units = idUnits; SetUnitInfo((UNIT_TYPE)(Control.Units-IDC_PREF_UNITINCHES), Control.UnitRes, Control.Points); CheckComboItem(GetSafeHwnd(), IDC_PREF_UNITS, IDC_PREF_UNITFIRST, IDC_PREF_UNITLAST, Control.Units); SetDlgItemSpinFixed( GetSafeHwnd(), IDC_WIDTH, m_Width, YES ); SetDlgItemSpinFixed( GetSafeHwnd(), IDC_HEIGHT, m_Height, YES ); SetDlgItemSpinFixed( GetSafeHwnd(), IDC_EXPANDLEFT, m_Left, YES ); SetDlgItemSpinFixed( GetSafeHwnd(), IDC_EXPANDRIGHT, m_Width-m_OrigWidth-m_Left, YES ); SetDlgItemSpinFixed( GetSafeHwnd(), IDC_EXPANDTOP, m_Top, YES ); SetDlgItemSpinFixed( GetSafeHwnd(), IDC_EXPANDBOTTOM, m_Height-m_OrigHeight-m_Top, YES ); SetUnitLabels(GetSafeHwnd()); break; case IDC_HEIGHT: if (codeNotify == EN_KILLFOCUS) { if (m_Height < m_OrigHeight) { m_Height = m_OrigHeight; m_Top = 0; MessageBeep(0); SetDlgItemSpinFixed( GetSafeHwnd(), IDC_HEIGHT, m_Height, YES ); ControlEnable(GetSafeHwnd(), IDOK, (m_Height > m_OrigHeight) || (m_OrigHeight > m_OrigWidth)); } else break; } else { if ( ::GetFocus() != ::GetDlgItem( GetSafeHwnd(), id ) ) break; if ( codeNotify != EN_CHANGE ) break; m_Height = GetDlgItemSpinFixed( GetSafeHwnd(), IDC_HEIGHT, &Bool, YES); if (m_Height < m_OrigHeight) { ControlEnable(GetSafeHwnd(), IDOK, FALSE); ::SetFocus(::GetDlgItem( GetSafeHwnd(),id)); break; } } if ((m_OrigHeight + m_Top) > m_Height) m_Top = m_Height - m_OrigHeight; SetDlgItemSpinFixed( GetSafeHwnd(), IDC_EXPANDTOP, m_Top, YES ); SetDlgItemSpinFixed( GetSafeHwnd(), IDC_EXPANDBOTTOM,m_Height - m_OrigHeight- m_Top,YES ); ImageMemory( GetSafeHwnd(), IDC_MEMORY, m_Width, m_Height, m_Resolution, m_Depth ); ControlEnable(GetSafeHwnd(), IDOK, (m_Height > m_OrigHeight) || (m_Width > m_OrigWidth)); break; case IDC_WIDTH: if (codeNotify == EN_KILLFOCUS) { if (m_Width < m_OrigWidth) { m_Width = m_OrigWidth; m_Left = 0; MessageBeep(0); SetDlgItemSpinFixed( GetSafeHwnd(), IDC_WIDTH, m_Width, YES ); ControlEnable(GetSafeHwnd(), IDOK, (m_Height > m_OrigHeight) ||(m_Width > m_OrigWidth)); } else break; } else { if ( ::GetFocus() != ::GetDlgItem( GetSafeHwnd(), id ) ) break; if ( codeNotify != EN_CHANGE ) break; m_Width = GetDlgItemSpinFixed( GetSafeHwnd(), IDC_WIDTH, &Bool, YES ); if (m_Width < m_OrigWidth) { ControlEnable(GetSafeHwnd(), IDOK, FALSE); ::SetFocus(::GetDlgItem(GetSafeHwnd(),id)); break; } } if (m_OrigWidth + m_Left > m_Width) m_Left = m_Width - m_OrigWidth; SetDlgItemSpinFixed( GetSafeHwnd(), IDC_EXPANDLEFT, m_Left, YES ); SetDlgItemSpinFixed( GetSafeHwnd(), IDC_EXPANDRIGHT, m_Width - m_OrigWidth - m_Left, YES ); ImageMemory( GetSafeHwnd(), IDC_MEMORY, m_Width, m_Height, m_Resolution, m_Depth ); ControlEnable(GetSafeHwnd(), IDOK, (m_Height > m_OrigHeight) ||(m_Width > m_OrigWidth)); break; case IDC_EXPANDLEFT: if ( GetFocus() != GetDlgItem(id ) ) break; if ( codeNotify != EN_CHANGE ) break; Right = m_Width - m_OrigWidth - m_Left; m_Left = GetDlgItemSpinFixed(GetSafeHwnd(), id, &Bool, YES); m_Width = (m_OrigWidth + m_Left + Right); SetDlgItemSpinFixed( GetSafeHwnd(), IDC_WIDTH, m_Width, YES ); ImageMemory( GetSafeHwnd(), IDC_MEMORY, m_Width, m_Height, m_Resolution,m_Depth ); ControlEnable(GetSafeHwnd(), IDOK, (m_Height > m_OrigHeight) ||(m_Width > m_OrigWidth)); break; case IDC_EXPANDRIGHT: if ( GetFocus() != GetDlgItem( id ) ) break; if ( codeNotify != EN_CHANGE ) break; Right = GetDlgItemSpinFixed(GetSafeHwnd(), id, &Bool, YES); m_Width = m_OrigWidth + m_Left+ Right; SetDlgItemSpinFixed( GetSafeHwnd(), IDC_WIDTH, m_Width, YES ); ImageMemory( GetSafeHwnd(), IDC_MEMORY, m_Width, m_Height, m_Resolution,m_Depth ); ControlEnable(GetSafeHwnd(), IDOK, (m_Height > m_OrigHeight) ||(m_Width > m_OrigWidth)); break; case IDC_EXPANDTOP: if ( GetFocus() != GetDlgItem( id ) ) break; if ( codeNotify != EN_CHANGE ) break; Bottom = m_Height- m_OrigHeight - m_Top; m_Top = GetDlgItemSpinFixed(GetSafeHwnd(), id, &Bool, YES); m_Height = m_OrigHeight + m_Top + Bottom; SetDlgItemSpinFixed(GetSafeHwnd(), IDC_HEIGHT, m_Height, YES ); ImageMemory( GetSafeHwnd(), IDC_MEMORY, m_Width, m_Height, m_Resolution,m_Depth ); ControlEnable(GetSafeHwnd(), IDOK, (m_Height > m_OrigHeight) ||(m_Width > m_OrigWidth)); break; case IDC_EXPANDBOTTOM: if ( GetFocus() != GetDlgItem(id) ) break; if ( codeNotify != EN_CHANGE ) break; Bottom = GetDlgItemSpinFixed(GetSafeHwnd(), id, &Bool, YES); m_Height = m_OrigHeight + m_Top + Bottom; SetDlgItemSpinFixed( GetSafeHwnd(), IDC_HEIGHT, m_Height, YES ); ImageMemory( GetSafeHwnd(), IDC_MEMORY, m_Width, m_Height, m_Resolution,m_Depth ); ControlEnable(GetSafeHwnd(), IDOK, (m_Height > m_OrigHeight) ||(m_Width > m_OrigWidth)); break; default: break; } }
LOCAL void Pos_OnCommand(HWND hDlg, int id, HWND hControl, UINT codeNotify) /************************************************************************/ { int idUnits; BOOL Bool; LFIXED fx, fy; LPIMAGE lpImage; int res; switch (id) { case IDC_PREF_UNITS: if ( !(idUnits = HandleCombo( hDlg, id, codeNotify )) ) break; fx = GetDlgItemSpinFixed( hDlg, IDC_POS_X, &Bool, YES); fy = GetDlgItemSpinFixed( hDlg, IDC_POS_Y, &Bool, YES); Control.Units = idUnits; SetUnitInfo((UNIT_TYPE)(Control.Units-IDC_PREF_UNITINCHES), Control.UnitRes, Control.Points); InitSpin( hDlg, fx, fy,3); break; case IDC_POS_X: if (codeNotify == EN_KILLFOCUS) { fx = GetDlgItemSpinFixed( hDlg, IDC_POS_X, &Bool, YES); InitSpin( hDlg, fx, 0,1); } else { if ( GetFocus() != GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; GetDlgItemSpinFixed( hDlg, IDC_POS_X, &Bool, YES ); } break; case IDC_POS_Y: if (codeNotify == EN_KILLFOCUS) { fy = GetDlgItemSpinFixed( hDlg, IDC_POS_Y, &Bool, YES); InitSpin( hDlg, 0, fy,2); } else { if ( GetFocus() != GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; GetDlgItemSpinFixed( hDlg, IDC_POS_Y, &Bool, YES ); } break; case IDOK: if(lpImage = GetActiveImage()) { fx = GetDlgItemSpinFixed( hDlg, IDC_POS_X, &Bool, YES ); fy = GetDlgItemSpinFixed( hDlg, IDC_POS_Y, &Bool, YES ); ImgGetInfoEx(lpImage, NULL, NULL, NULL, NULL, &res); Control.Units = Edit.SaveUnits; // get pixels lpPosParms->iBaseRes = res; lpPosParms->XOffset = FMUL(res,fx); lpPosParms->YOffset = FMUL(res,fy); AstralDlgEnd( hDlg, TRUE ); } break; case IDCANCEL: Control.Units = Edit.SaveUnits; AstralDlgEnd( hDlg, FALSE ); break; default: break; } }
LOCAL void Convert_OnCommand(HWND hDlg, int id, HWND hControl, UINT codeNotify) /************************************************************************/ { BOOL Bool; switch (id) { case IDC_MINITYPES: // case IDC_MINI256: // case IDC_MINI16: // case IDC_MINI8: // case IDC_MINICUSTOM: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; Convert.MiniType = id; if (Convert.MiniType == IDC_MINI256) Convert.ConvertColors = 256; else if (Convert.MiniType == IDC_MINI16) Convert.ConvertColors = 16; else if (Convert.MiniType == IDC_MINI8) Convert.ConvertColors = 8; Convert_Enable(hDlg); break; case IDC_DITHERTYPES: // case IDC_DITHERPATTERN: // case IDC_DITHERSCATTERED: // case IDC_DITHERNONE: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; if ( id == IDC_DITHERPATTERN ) { Convert.fDither = YES; Convert.fScatter = NO; Convert.ConvertDitherType = DT_PATTERN; } else if ( id == IDC_DITHERSCATTERED ) { Convert.fDither = NO; Convert.fScatter = YES; Convert.ConvertDitherType = DT_SCATTER; } else { Convert.fDither = NO; Convert.fScatter = NO; Convert.ConvertDitherType = DT_NONE; } break; case IDC_PALETTETYPES: // case IDC_PALETTEOPTIMIZED: // case IDC_PALETTESTANDARD: // case IDC_PALETTECUSTOM: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; if (id == IDC_PALETTEOPTIMIZED) Convert.ConvertType = CT_OPTIMIZED; else if (id == IDC_PALETTESTANDARD) Convert.ConvertType = CT_STANDARD; else Convert.ConvertType = CT_CUSTOM; Convert.fOptimize = ( id == IDC_PALETTEOPTIMIZED ); Convert_Enable(hDlg); break; case IDC_PALETTECOLORS: if ( GetFocus() != GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; Convert.ConvertColors = GetDlgItemSpin( hDlg, id, &Bool, NO ); break; case IDC_EXTNAMES: GetExtName( hDlg, IDC_EXTNAMES, IDC_FILENAME, Convert.ConvertPalette, IDN_PALETTE, codeNotify ); break; case IDC_EXTMANAGE: PopupMenu( hDlg, id, IDC_FILENAME ); break; case IDC_ADDEXT: case IDC_DELETEEXT: case IDC_RENAMEEXT: ExtNameManager( hDlg, IDC_EXTNAMES, IDC_FILENAME, Convert.ConvertPalette, IDN_PALETTE, id, NO ); break; case IDOK: // make sure we can open a colormap if (Convert.ConvertType == CT_CUSTOM) { FNAME szFileName; LPCOLORMAP lpColorMap; if ( !LookupExtFile( Convert.ConvertPalette, szFileName, IDN_PALETTE ) ) break; if (!(lpColorMap = Palette_ReadColorMap(szFileName))) break; FrameDestroyColorMap(lpColorMap); } AstralDlgEnd( hDlg, TRUE ); break; case IDCANCEL: AstralDlgEnd( hDlg, FALSE ); break; default: break; } }
LOCAL void Flood_OnCommand(HWND hDlg, int id, HWND hControl, UINT codeNotify) /************************************************************************/ { BOOL Bool; MERGE_MODE MergeMode; int i; switch (id) { case IDC_FLOOD: if ( !SaveToolPreferences( id ) ) break; break; case IDC_TRANSPARENT: if ( GetFocus() != GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; i = GetDlgItemSpin( hDlg, id, &Bool, NO ); Fill.FloodOpacity = 255-TOGRAY(i); SetCommonOpacity(Fill.FloodOpacity); break; case IDC_COLORMODEL: // case IDC_MODEL_RGB: // case IDC_MODEL_HSL: // case IDC_MODEL_LIGHTNESS: // case IDC_MODEL_HUE: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; Fill.idFillColorModel = id - IDC_FIRST_MODEL; SetCommonColorModel(Fill.idFillColorModel); break; case IDC_MERGEMODE: if ((MergeMode = HandleMergeCombo( hDlg, id, FALSE, MM_NORMAL, codeNotify )) < 0) break; Fill.FloodMergeMode = MergeMode; SetCommonMergeMode(Fill.FloodMergeMode); break; case IDOK: // AstralDlgEnd( hDlg, TRUE ); break; case IDCANCEL: // AstralDlgEnd( hDlg, FALSE ); break; case IDC_FLOODRANGE: Fill.FloodRange = GetDlgItemSpin( hDlg, id, &Bool, NO ); SetCommonRange(Fill.FloodRange); break; case IDC_FLOODFADE: Fill.FloodFade = GetDlgItemSpin( hDlg, id, &Bool, NO ); break; default: break; } }
LOCAL void Vignette_OnCommand(HWND hDlg, int id, HWND hControl, UINT codeNotify) /************************************************************************/ { int i; BOOL Bool; MERGE_MODE MergeMode; switch (id) { case IDC_VIGNETTE: if ( !SaveToolPreferences( id ) ) break; break; case IDC_VIGNETTETYPE: // case IDC_VIGLINEAR: // case IDC_VIGRADIAL: // case IDC_VIGCIRCLE: // case IDC_VIGELLIPSE: // case IDC_VIGSQUARE: // case IDC_VIGRECTANGLE: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; Vignette.Gradient = id; break; case IDC_COLORMODEL: // case IDC_MODEL_RGB: // case IDC_MODEL_HL: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; Vignette.VigColorModel = id-IDC_FIRST_MODEL; SetCommonColorModel(Vignette.VigColorModel); break; case IDC_VIGREPEAT: if ( GetFocus() != GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; Vignette.RepeatCount = GetDlgItemSpin( hDlg, id, &Bool, NO); ControlEnable( hDlg, IDC_VIGTRANSITION, Vignette.RepeatCount > 1 ); break; case IDC_VIGTRANSITION: // case IDC_VIGSOFTTRANSITION: // case IDC_VIGHARDTRANSITION: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; Vignette.SoftTransition = id - IDC_VIGHARDTRANSITION; break; case IDC_MERGEMODE: if ((MergeMode = HandleMergeCombo( hDlg, id, FALSE, MM_NORMAL, codeNotify )) < 0) break; Vignette.VigMergeMode = MergeMode; SetCommonMergeMode(Vignette.VigMergeMode); break; case IDC_MIDPOINT: if ( GetFocus() != GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; i = GetDlgItemSpin( hDlg, id, &Bool, NO ); Vignette.Midpoint = (i * 255L) / 100L; break; case IDC_TRANSPARENT: if ( GetFocus() != GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; i = GetDlgItemSpin( hDlg, id, &Bool, NO ); Vignette.VigOpacity = 255-TOGRAY(i); SetCommonOpacity(Vignette.VigOpacity); break; case IDOK: // AstralDlgEnd( hDlg, TRUE ); break; case IDCANCEL: // AstralDlgEnd( hDlg, FALSE ); break; default: break; } }
BOOL WINPROC EXPORT DlgOpenProc( /************************************************************************/ HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) { BOOL Bool; ITEMID id; WORD wMsg, wIndex; int i, ii, l, fp, hi, lo; FNAME szDriveNDir, szFileName, szExtension; HMENU hMenu; STRING szString; char cChar; BOOL bModifySaveName; static BOOL bDisableCancel; switch (msg) { case WM_INITDIALOG: SET_CLASS_HBRBACKGROUND(hDlg, ( HBRUSH )GetStockObject(LTGRAY_BRUSH)); CenterPopup( hDlg ); if ( !DlgDirList(hDlg, szFileSpec, IDC_FLIST, IDC_FPATH, wFileAttr) ) { lstrcpy( szFileSpec, lstrchr( szFileSpec, '*' ) ); DlgDirList(hDlg, szFileSpec, IDC_FLIST, IDC_FPATH, wFileAttr); } SetFileName(hDlg, IDC_FNAME, szFileSpec, szSaveName, fSaving); CheckComboItem( hDlg, IDC_FILETYPES, IDC_ART, IDC_BMP, IDC_ART + (idFileType-IDN_ART) ); SendDlgItemMessage(hDlg, IDC_FNAME, EM_LIMITTEXT, MAX_FNAME_LEN-1, 0L); LoadComboWithDrives( hDlg, IDC_DRIVES ); LoadComboWithDirectories( hDlg, IDC_DIRS, NO ); CheckDlgButton( hDlg, IDC_SAVEPATH, Save.OKtoSavePath ); CheckDlgButton( hDlg, IDC_SAVECOMPRESS, Save.Compressed ); for (i = IDC_ART; bImageOpen && i <= IDC_BMP; ++i) { ii = i-IDC_ART; if (lstrlen(Readers[ii].szDLL)) { lstrcpy(szString, Control.ProgHome); lstrcat(szString, Readers[ii].szDLL); if (!FileExists(szString)) { if ( GetPrivateProfileString( "Micrografx", "Libraries", "", szString, sizeof(STRING), "MGX.INI" ) > 2 ) FixPath( szString ); lstrcat(szString, Readers[ii].szDLL); if (!FileExists(szString)) { ControlEnable( hDlg, i, NO); continue; } } } if (fSaving) ControlEnable( hDlg, i, lpImage && Readers[ii].bSave[FrameDepth(ImgGetBaseEditFrame(lpImage))] ); else ControlEnable( hDlg, i, Readers[ii].bOpen ); } if ( bImageOpen && lpImage ) { idDataType = lpImage->DataType; for (i = IDC_SAVECT; i <= IDC_SAVE24BITCOLOR; ++i) ControlEnable( hDlg, i, Readers[idFileType-IDN_ART].bTypes[i-IDC_SAVECT]); CheckComboItem( hDlg, IDC_DATATYPES, IDC_SAVECT, IDC_SAVE24BITCOLOR, idDataType ); ControlEnable( hDlg, IDC_SAVECOMPRESS, Readers[idFileType-IDN_ART].bCompressed ); } SetFocus( GetDlgItem( hDlg, IDC_FNAME ) ); SendDlgItemMessage(hDlg, IDC_FNAME, EM_SETSEL, NULL, MAKELONG(0, 0x7fff)); bNavigated = NO; bDisableCancel = NO; return( FALSE ); case WM_PALETTECHANGED: break; case WM_MENUSELECT: lo = LOWORD(lParam); hi = HIWORD(lParam); if (hi == 0) break; if (lo == -1) break; if (lo & MF_SYSMENU) break; if (lo & MF_POPUP) { hMenu = (HMENU)wParam; while (GetSubMenu(hMenu, 0)) hMenu = GetSubMenu(hMenu, 0); id = GetMenuItemID(hMenu, 0); if (id <= 0) break; wParam = id - 1; } HintLine( wParam ); break; case WM_SETCURSOR: return( SetupCursor( wParam, lParam, idOpen ) ); case WM_CLOSE: AstralDlgEnd( hDlg, FALSE|2 ); break; case WM_MEASUREITEM: case WM_DRAWITEM: id = ((LPDRAWITEMSTRUCT)lParam)->CtlID; Bool = ( id == IDC_DRIVES || id == IDC_DIRS ); return( OwnerDraw( hDlg, msg, lParam, Bool ) ); // break; case WM_CTLCOLOR: return( (BOOL)SetControlColors( (HDC)wParam, hDlg, (HWND)LOWORD(lParam), HIWORD(lParam) ) ); case WM_COMMAND: if (wParam != IDCANCEL) bDisableCancel = NO; switch(wParam) { case IDC_FILETYPES: // case IDC_ART: // case IDC_TIFF: // case IDC_BMP: if ( !(wParam = HandleCombo( hDlg, wParam, lParam )) ) break; idFileType = IDN_ART + (wParam-IDC_ART); if (bNavigated) { LookupExtension( idFileType, szFileSpec ); } else GetFileLocation( idFileType, szFileSpec ); for (i = IDC_SAVECT; i <= IDC_SAVE24BITCOLOR; ++i) ControlEnable( hDlg, i, Readers[idFileType-IDN_ART].bTypes[i-IDC_SAVECT]); ControlEnable( hDlg, IDC_SAVECOMPRESS, Readers[idFileType-IDN_ART].bCompressed ); SetFileName(hDlg, IDC_FNAME, szFileSpec, szSaveName, NO ); SendMessage( hDlg, WM_COMMAND, IDOK, 0L ); break; case IDC_DATATYPES: // case IDC_SAVECT: // case IDC_SAVELA: // case IDC_SAVESP: // scatterprint // case IDC_SAVE8BITCOLOR: // case IDC_SAVE24BITCOLOR: if ( !(wParam = HandleCombo( hDlg, wParam, lParam )) ) break; idDataType = wParam; break; case IDC_SAVEPATH: Save.OKtoSavePath = (BOOL)SendDlgItemMessage (hDlg, IDC_SAVEPATH, BM_GETCHECK, 0, 0L); // Save.OKtoSavePath = !Save.OKtoSavePath; // CheckDlgButton( hDlg, IDC_SAVEPATH, Save.OKtoSavePath ); break; case IDC_SAVECOMPRESS: Save.Compressed = (BOOL)SendDlgItemMessage (hDlg, IDC_SAVECOMPRESS, BM_GETCHECK, 0, 0L); // Save.Compressed = !Save.Compressed; // CheckDlgButton( hDlg, IDC_SAVECOMPRESS, Save.Compressed ); break; case IDC_DRIVES: wMsg = HIWORD(lParam); if ( wMsg != CBN_SELCHANGE ) break; wIndex = SendDlgItemMessage( hDlg, wParam, CB_GETCURSEL, 0, 0L); SendDlgItemMessage( hDlg, wParam, CB_GETLBTEXT, wIndex, (long)(LPSTR)szDriveNDir ); id = ExtractStringID( szDriveNDir ); if (CHDRIVE( *szDriveNDir - 'a' )) { LoadComboWithDrives(hDlg, IDC_DRIVES); break; } if (!CURRENTDIR(szString, sizeof(szString))) { GetDlgItemText(hDlg, IDC_FPATH, szString, sizeof(szString)); CHDRIVE(*szString - 'a'); LoadComboWithDrives(hDlg, IDC_DRIVES); } //12/15 SetFileName(hDlg, IDC_FNAME, szFileSpec, szSaveName, NO); DlgDirList( hDlg, szFileSpec, IDC_FLIST, IDC_FPATH, wFileAttr ); LoadComboWithDirectories( hDlg, IDC_DIRS, YES ); SetDlgItemText( hDlg, IDC_DISKSPACE, DriveSize( *szDriveNDir - 'a', szString ) ); SetFileName(hDlg, IDC_FNAME, szFileSpec, szSaveName, fSaving ); bNavigated = YES; break; case IDC_DIRS: wMsg = HIWORD(lParam); if ( wMsg == LBN_DBLCLK ) { SendMessage(hDlg, WM_COMMAND, IDOK, 1L); break; } if ( wMsg != LBN_SELCHANGE ) break; wIndex = SendDlgItemMessage( hDlg, wParam, LB_GETCURSEL, 0, 0L); // Figure out how to build the path name based on the selection SendDlgItemMessage( hDlg, wParam, LB_GETTEXT, wIndex, (long)(LPSTR)szDriveNDir ); id = ExtractStringID( szDriveNDir ); if ( id == IDC_PATHICON_OPEN ) i = 0; // Must start building the path from the root else if ( id == IDC_PATHICON_ACTIVE ) i = 9999; // Don't build any path - we're there else i = wIndex; // OK to build a relative path szFileName[0] = '\0'; for ( ; i<=wIndex; i++ ) { SendDlgItemMessage( hDlg, wParam, LB_GETTEXT, i, (long)(LPSTR)szDriveNDir ); id = ExtractStringID( szDriveNDir ); if ( id == IDC_PATHICON_CLOSED && i != wIndex ) continue; lstrcat( szFileName, SkipSpaces(szDriveNDir) ); if ( id != IDC_PATHICON_ROOT ) lstrcat( szFileName, "\\" ); } lstrcat( szFileName, szFileSpec ); SetFileName(hDlg, IDC_FNAME, szFileName, szSaveName, NO ); bNavigated = YES; break; case IDC_FLIST: wMsg = HIWORD(lParam); if ( wMsg == LBN_DBLCLK ) { SendMessage(hDlg, WM_COMMAND, IDOK, 1L); break; } if ( wMsg != LBN_SELCHANGE ) break; /* If a directory is selected... */ if (DlgDirSelectEx(hDlg, szFileName, sizeof(szFileName), wParam)) lstrcat(szFileName, szFileSpec); // 1-2-92 - TMR - always use SetFileName for all FNAME sets // SetDlgItemText(hDlg, IDC_FNAME, szFileName); SetFileName(hDlg, IDC_FNAME, szFileName, szSaveName, NO ); SendDlgItemMessage(hDlg, IDC_FNAME, EM_SETSEL, NULL, MAKELONG(0, 0x7fff)); // SendDlgItemMessage(hDlg, IDC_FNAME, CB_SETEDITSEL, // NULL, MAKELONG(0, 0x7fff)); break; case IDC_FNAME: /* If the name is changed, disable OK if its length goes 0 */ if (HIWORD(lParam) != EN_CHANGE) // if (HIWORD(lParam) != CBN_EDITCHANGE) break; ControlEnable( hDlg, IDOK, (BOOL)SendDlgItemMessage( hDlg, wParam, WM_GETTEXTLENGTH, 0, 0L)); // 1-2-92 - TMR - make sure Edit Box has focus to make sure // that szSaveName only gets overwritten from user input // 1-3-92 - TMR - move this after ControlEnable if (GetFocus() != GetDlgItem(hDlg, IDC_FNAME)) break; if (fSaving) { GetDlgItemText(hDlg, IDC_FNAME, szSaveName, MAX_FNAME_LEN); fUntitled = NO; } break; case IDC_FPATH: wMsg = HIWORD(lParam); if ( wMsg == BN_DOUBLECLICKED ) { SendMessage(hDlg, WM_COMMAND, IDOK, 1L); break; } if ( wMsg != BN_CLICKED ) break; GetDlgItemText(hDlg, wParam, szFileName, sizeof(szFileName)); if ( !szFileName[0] ) break; FixPath( szFileName ); lstrcat( szFileName, szFileSpec ); SetFileName(hDlg, IDC_FNAME, szFileName, szSaveName, NO ); bNavigated = YES; break; case IDOK: GetDlgItemText(hDlg, IDC_FNAME, szFileName,sizeof(szFileName)); bModifySaveName = fSaving && StringsEqual(szFileName, szSaveName); /* Strip off the drive and directory to make */ /* a DlgDirlist() call to switch over to them */ /* Loop backwards over the file name */ l = lstrlen(szFileName); while( --l >= 0 ) { cChar = szFileName[l]; /* If we find a wildcard, the next DlgDirList() takes */ /* care of drive and directory switching; so get out */ if ( cChar == '?' || cChar == '*' ) break; /* If we find a drive or directory, handle it and get out */ if ( cChar == '\\' || cChar == ':' ) { lstrcpy(szDriveNDir, szFileName); l++; szDriveNDir[l] = '\0'; lstrcat(szDriveNDir, szFileSpec); // 1-3-92 - TMR - Handle directory change error if (DlgDirList(hDlg, szDriveNDir, IDC_FLIST, IDC_FPATH, wFileAttr)) lstrcpy( szFileName, &szFileName[l] ); else { szDriveNDir[l] = '\0'; Message(IDS_EDIRECTORYCHANGE, Lowercase(szDriveNDir)); szFileName[0] = '\0'; } break; } } // 1-3-92 - TMR add extension if none present /* Check to see if the file has an extension... */ if ( !lstrchr( szFileName, '.' ) ) // if no extension... if ( LookupExtension( idFileType, szExtension ) ) { if (lstrlen(szFileName)) lstrcat( szFileName, extension(szExtension) ); else lstrcat( szFileName, szExtension); } if (bModifySaveName) lstrcpy(szSaveName, szFileName); /* Try to display a new list box */ if ( !szFileName[0] ) lstrcat(szFileName, szFileSpec); if (DlgDirList(hDlg, szFileName, IDC_FLIST, IDC_FPATH, wFileAttr)) { /* A wildcard was found and a new list displayed */ lstrcpy(szFileSpec, szFileName); SetFileName(hDlg, IDC_FNAME, szFileSpec, szSaveName, fSaving ); LoadComboWithDrives( hDlg, IDC_DRIVES ); LoadComboWithDirectories( hDlg, IDC_DIRS, YES ); break; } // If there is still a path or wildcards in the name, the // file specification must be invalid if (lstrchr(szFileName, '\\') || lstrchr(szFileName, ':') || lstrchr(szFileName, '?') || lstrchr(szFileName, '*')) { lstrcpy(szString, szFileName); stripfile(szString); Message(IDS_EDIRECTORYCHANGE, Lowercase(szString)); lstrcpy(szFileSpec, filename(szFileName)); lstrcpy(szFileName, szFileSpec); // is this needed? SetFileName(hDlg, IDC_FNAME, szFileSpec, szSaveName, fSaving ); break; } /* No wildcards, and the drive and dir have been changed */ LoadComboWithDrives( hDlg, IDC_DRIVES ); LoadComboWithDirectories( hDlg, IDC_DIRS, YES ); /* Check to see if the file has 8 characters or less... */ if ( fSaving ) RemoveWhiteSpace( szFileName ); FixFileName( szFileName ); /* Check to see if the file has an extension... */ if ( !lstrchr( szFileName, '.' ) ) // if no extension... if ( LookupExtension( idFileType, szExtension ) ) lstrcat( szFileName, extension(szExtension) ); // Build the fully qualified path name GetDlgItemText( hDlg, IDC_FPATH, szString, sizeof(szString) ); FixPath( szString ); lstrcat( szString, szFileName ); /* Check to see if the file exists... */ if ( (fp = _lopen( szString, OF_READ ) ) < 0 ) { /* The file does not exist */ if ( !fSaving ) { Message(IDS_EOPEN, Lowercase(szString)); break; } } else { _lclose( fp ); if ( fSaving ) { if ( !AstralAffirm( IDS_OVERWRITEIMAGE, Lowercase(szString) ) ) break; } } lstrcpy( szFileSpec, szString ); AstralDlgEnd(hDlg, TRUE|2); break; case IDC_CANCEL: case IDCANCEL: if ( bDisableCancel && !LOWORD(lParam) ) break; GetDlgItemText(hDlg, IDC_FPATH, szFileSpec,sizeof(szFileSpec)); AstralDlgEnd(hDlg, FALSE|2); break; default: return( FALSE ); } break; default: return( FALSE ); } return( TRUE ); }
BOOL CMiscPrefPage::OnCommand(WPARAM wParam, LPARAM lParam) { HWND hActiveWnd = GetActiveDoc(); HWND hDlg = GetSafeHwnd(); int id = GET_WM_COMMAND_ID(wParam, lParam); UINT codeNotify = GET_WM_COMMAND_CMD(wParam, lParam); switch (id) { case IDC_PREF_POUCH: if ( ::GetFocus() != ::GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; ::GetDlgItemText( hDlg, id, Control.PouchPath, sizeof(Control.PouchPath)); FixPath( Lowercase( Control.PouchPath ) ); SetModified(TRUE); break; case IDC_PREF_TABLET: // case IDC_PREF_TABLETUNUSED: // case IDC_PREF_TABLETOPACITY: // case IDC_PREF_TABLETSIZE: // case IDC_PREF_TABLETBOTH: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; Control.UseTablet = id-IDC_PREF_TABLETUNUSED; SetModified(TRUE); break; case IDC_PREF_STARTMACRO: GetExtNameN( hDlg, id, IDC_FILENAME, Names.StartMacro, IDN_MACRO, codeNotify, IDS_NONE, NO ); SetModified(TRUE); break; case IDC_PREF_MASKTINT: // case IDC_PREF_MASKTINT1: // case IDC_PREF_MASKTINT2: // case IDC_PREF_MASKTINT3: // case IDC_PREF_MASKTINT4: // case IDC_PREF_MASKTINT5: // case IDC_PREF_MASKTINT6: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; Control.MaskTint = id - IDC_PREF_MASKTINT1; SetModified(TRUE); break; case IDC_PREF_TOOLSETTINGS: Control.IndependentSettings = !Control.IndependentSettings; ::CheckDlgButton(hDlg, id, Control.IndependentSettings); SetModified(TRUE); break; case IDC_CMS_ENABLED: Control.CMSEnabled = CMSOpen( !Control.CMSEnabled ); ::CheckDlgButton(hDlg, id, Control.CMSEnabled); SetModified(TRUE); break; case IDC_PREF_PASTEATREALSIZE: Mask.PasteAtRealSize = !Mask.PasteAtRealSize; ::CheckDlgButton( hDlg, IDC_PREF_PASTEATREALSIZE, Mask.PasteAtRealSize); SetModified(TRUE); break; case IDC_PREF_USEGRAYSCALEICONS: Control.UseGrayScaleIcons = !Control.UseGrayScaleIcons; ::CheckDlgButton( hDlg, IDC_PREF_USEGRAYSCALEICONS, Control.UseGrayScaleIcons); SetModified(TRUE); break; case IDC_PREF_DISABLEAUTOSCROLL: Control.DisableAutoScroll = !Control.DisableAutoScroll; ::CheckDlgButton( hDlg, IDC_PREF_DISABLEAUTOSCROLL, Control.DisableAutoScroll); SetModified(TRUE); break; case IDC_PREF_DISABLEDITHER: Vignette.DisableDither = !Vignette.DisableDither; ::CheckDlgButton( hDlg, IDC_PREF_DISABLEDITHER, Vignette.DisableDither); SetModified(TRUE); break; case IDC_PREF_FILETYPE: if( Control.Retail ) { if (! (id = TableHandleCombo(hDlg, FileType_Table, sizeof(FileType_Table)/sizeof(ITEMID), id, codeNotify))) break; } else { if (! (id = TableHandleCombo(hDlg, FileType_TableOEM, sizeof(FileType_TableOEM)/sizeof(ITEMID), id, codeNotify))) break; } Control.DefaultFileType = AppFileType(id); SetModified(TRUE); break; default: return (CPPPropertyPage::OnCommand(wParam, lParam)); break; } return(TRUE); }
BOOL CUnitsPrefPage::OnCommand(WPARAM wParam, LPARAM lParam) { BOOL Bool; LPSTR lpUnit; HWND hActiveWnd = GetActiveDoc(); HWND hDlg = GetSafeHwnd(); int id = GET_WM_COMMAND_ID(wParam, lParam); UINT codeNotify = GET_WM_COMMAND_CMD(wParam, lParam); switch (id) { case IDC_PREF_USERULERS: View.UseRulers = !View.UseRulers; ::CheckDlgButton( hDlg, id, View.UseRulers ); SetModified(TRUE); break; case IDC_PREF_DISPLAYPIXELS: Control.DisplayPixelValue = !Control.DisplayPixelValue; ::CheckDlgButton( hDlg, id, !Control.DisplayPixelValue ); SetModified(TRUE); break; case IDC_PREF_SCREENWIDTH: if ( ::GetFocus() != ::GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; Control.ScreenWidth = AstralGetDlgItemFixed( hDlg, id, &Bool, NO); SetModified(TRUE); break; case IDC_PREF_UNITS: // case IDC_PREF_UNITINCHES: // case IDC_PREF_UNITMM: // case IDC_PREF_UNITCM: // case IDC_PREF_UNITPICAS: // case IDC_PREF_UNITPIXELS: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; Control.Units = id; SetUnitInfo((UNIT_TYPE)(Control.Units-IDC_PREF_UNITINCHES), Control.UnitRes, Control.Points); if ( AstralStr( Control.Units-IDC_PREF_UNITINCHES+IDS_INCHES, &lpUnit ) ) ::SetDlgItemText( hDlg, IDC_WIDTHLABEL, lpUnit ); ControlEnable( hDlg, IDC_PREF_SCREENWIDTH, Control.Units != IDC_PREF_UNITPIXELS ); if ( Control.Units != IDC_PREF_UNITPIXELS ) AstralSetDlgItemFixed( hDlg, IDC_PREF_SCREENWIDTH, Control.ScreenWidth, NO ); else ::SetDlgItemInt( hDlg, IDC_PREF_SCREENWIDTH, GetSystemMetrics( SM_CXSCREEN ), NO ); SetModified(TRUE); break; default: return (CPPPropertyPage::OnCommand(wParam, lParam)); break; } return(TRUE); }
LOCAL void ShieldFloat_OnCommand(HWND hDlg, int id, HWND hControl, UINT codeNotify) /************************************************************************/ { int i; BOOL Bool, active; BYTE mask; long Color; ITEMID idLastTool; HWND hActiveWnd; char Buff[10]; hActiveWnd = GetActiveDoc(); switch (id) { case IDC_MAP_PROBE: GetWindowText(hControl, Buff, 10); id = atoi(Buff); if (id < 1 || id > 8) break; id += IDC_MASKCOLOR1 - 1; ShowWindow(GetDlgItem(hDlg, id), SW_SHOW); SetFocus(GetDlgItem(hDlg, id)); ShowWindow(hControl, SW_HIDE); case IDC_MASKCOLOR1: case IDC_MASKCOLOR2: case IDC_MASKCOLOR3: case IDC_MASKCOLOR4: case IDC_MASKCOLOR5: case IDC_MASKCOLOR6: case IDC_MASKCOLOR7: case IDC_MASKCOLOR8: ColorMask.MaskShield = i = id - IDC_MASKCOLOR1; if ( codeNotify != 1 /*Not A DoubleClick*/ ) { if ( hActiveWnd ) bProbePending = YES; } else { bProbePending = NO; if ( !ColorPicker( &ColorMask.MaskColor[i], NULL ) ) break; CopyRGB( &ColorMask.MaskColor[i].rgb, &Color ); SetWindowLong( GetDlgItem( hDlg, id ), GWL_ACTIVE, Color ); AstralControlRepaint( hDlg, IDC_MASKCOLOR1 + i ); } mask = 1 << (id - IDC_MASKCOLOR1); if (ColorMask.Mask & mask) { SetupShield(); break; } id = id - IDC_MASKCOLOR1 + IDC_MASKACTIVE1; case IDC_MASKACTIVE1: case IDC_MASKACTIVE2: case IDC_MASKACTIVE3: case IDC_MASKACTIVE4: case IDC_MASKACTIVE5: case IDC_MASKACTIVE6: case IDC_MASKACTIVE7: case IDC_MASKACTIVE8: mask = 1 << (id - IDC_MASKACTIVE1); ColorMask.Mask ^= mask; active = ColorMask.Mask & mask; CheckDlgButton( hDlg, id, active ); SetupShield(); break; case IDC_MASKRANGE1: case IDC_MASKRANGE2: case IDC_MASKRANGE3: case IDC_MASKRANGE4: case IDC_MASKRANGE5: case IDC_MASKRANGE6: case IDC_MASKRANGE7: case IDC_MASKRANGE8: if ( GetFocus() != GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; ColorMask.MaskRange[id-IDC_MASKRANGE1] = GetDlgItemSpin( hDlg, id, &Bool, NO ); SetupShield(); break; case IDC_SHIELD_IFHIDDEN: ColorMask.IfHidden = !ColorMask.IfHidden; CheckDlgButton( hDlg, id, !ColorMask.IfHidden ); break; case IDC_SHIELDSELECT: // case IDC_MASKINCLUDE: // case IDC_MASKEXCLUDE: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; ColorMask.Include = ( id == IDC_MASKINCLUDE ); if ( Tool.hRibbon ) SendMessage( Tool.hRibbon, WM_SHIELDCHANGE, 0, 0L ); break; case IDC_PREVIEW: if (!hActiveWnd) break; idLastTool = ActivateTool(id); CreateProc( hActiveWnd, 0, 0, idLastTool ); bPreview = YES; break; case IDC_RESET: TurnOffShieldPreview(); break; default: break; } }