int GvMField::set(const char* s) { //delete contents makeRoom(0); // TRACE("Parsing an MField from :%s\n",s); if (strcmp(s,"[]") == 0) { setDefault(TRUE); OnChanged(); return(1); } // create a parser GvInput in; in.setString(s); in.version = 2.0; in.vrml2 = 1; // read int ret = this->readValue(&in); setDefault(FALSE); OnChanged(); return ret; }
void Graphics::drawEllipse(float x, float y, float width, float height) { x += width/2; y += height/2; float w = width*0.5; float w_ = w*SIN45; float cw_ = w*TAN22; float h = height*0.5; float h_ = h*SIN45; float ch_ = h*TAN22; Flush(); mPathData->moveTo(x+w,y); mPathData->curveTo(x+w, y+ch_, x+w_, y+h_); mPathData->curveTo(x+cw_,y+h, x, y+h); mPathData->curveTo(x-cw_,y+h, x-w_, y+h_); mPathData->curveTo(x-w, y+ch_, x-w, y); mPathData->curveTo(x-w, y-ch_, x-w_, y-h_); mPathData->curveTo(x-cw_,y-h, x, y-h); mPathData->curveTo(x+cw_,y-h, x+w_, y-h_); mPathData->curveTo(x+w, y-ch_, x+w, y); Flush(); OnChanged(); }
SVGTransform* SVGTransformListMutable::consolidate() { if (m_p->m_items.GetSize() > 0) { SVGTransform* pTransform = new SVGTransform; pTransform->m_type = SVG_TRANSFORM_MATRIX; pTransform->m_matrix->GetM() = consolidateToMatrix2(); //??? pTransform->m_matrix->m_pListener = pTransform; pTransform->m_owner = this; // pTransform->m_pListener = this; RemoveAll(); m_p->m_items.Add(pTransform); OnChanged(); /* if (m_pListener) { m_pListener->OnChanged(this); } */ return pTransform; } return NULL; }
void prefs_file::reset() { CheckDlgButton(IDC_CHECK_FILE1, default_cfg_file1_enable); CheckDlgButton(IDC_CHECK_FILE2, default_cfg_file2_enable); CheckDlgButton(IDC_CHECK_FILE3, default_cfg_file3_enable); CheckDlgButton(IDC_CHECK_RESAMPLE1, default_cfg_file1_resample); CheckDlgButton(IDC_CHECK_RESAMPLE2, default_cfg_file2_resample); CheckDlgButton(IDC_CHECK_RESAMPLE3, default_cfg_file3_resample); m_slider_level1.SetPos(default_cfg_file1_level); m_slider_level2.SetPos(default_cfg_file2_level); m_slider_level3.SetPos(default_cfg_file3_level); SetDlgItemText(IDC_EDIT_FILE1, L""); SetDlgItemText(IDC_EDIT_FILE2, L""); SetDlgItemText(IDC_EDIT_FILE3, L""); SetDlgItemText(IDC_LABEL_INFO1, L""); SetDlgItemText(IDC_LABEL_INFO2, L""); SetDlgItemText(IDC_LABEL_INFO3, L""); RefreshFileLevelLabel(); OnChanged(); }
void CMyPreferences::reset() { int n, o; char temp[16]; SendDlgItemMessage( IDC_INDEFINITE, BM_SETCHECK, default_cfg_indefinite ); SendDlgItemMessage( IDC_WRITE, BM_SETCHECK, default_cfg_write ); SendDlgItemMessage( IDC_WNSFE, BM_SETCHECK, default_cfg_write_nsfe ); SendDlgItemMessage( IDC_NSFEPL, BM_SETCHECK, default_cfg_nsfe_ignore_playlists ); SendDlgItemMessage( IDC_NSF4011, BM_SETCHECK, default_cfg_nsf_ignore_w4011 ); SendDlgItemMessage( IDC_ANTISURROUND, BM_SETCHECK, default_cfg_spc_anti_surround ); SendDlgItemMessage( IDC_GD3JAPANESE, BM_SETCHECK, default_cfg_vgm_gd3_prefers_japanese ); SendDlgItemMessage( IDC_EFFECTS, BM_SETCHECK, default_cfg_effects_enable ); for(n=IDC_FORMAT_NSF,o=0;n<=IDC_FORMAT_SFM;n++,o++) { SendDlgItemMessage( n, BM_SETCHECK, !! ( default_cfg_format_enable & ( 1 << o ) ) ); } print_time_crap( default_cfg_default_length, (char *)&temp ); uSetDlgItemText( m_hWnd, IDC_DLENGTH, (char *)&temp ); print_time_crap( default_cfg_default_fade, (char *)&temp ); uSetDlgItemText( m_hWnd, IDC_DFADE, (char *)&temp ); SendDlgItemMessage( IDC_SLIDER_BASS, TBM_SETPOS, 1, default_cfg_effects_bass ); SendDlgItemMessage( IDC_SLIDER_TREBLE, TBM_SETPOS, 1, default_cfg_effects_treble ); SendDlgItemMessage( IDC_SLIDER_ECHO_DEPTH, TBM_SETPOS, 1, default_cfg_effects_echo_depth ); SetDlgItemInt( IDC_SAMPLERATE, default_cfg_sample_rate, FALSE ); SendDlgItemMessage( IDC_VGMLOOPCOUNT, CB_SETCURSEL, default_cfg_vgm_loop_count ); enable_vgm_loop_count( !default_cfg_indefinite ); SendDlgItemMessage( IDC_INTERPOLATION, CB_SETCURSEL, default_cfg_spc_interpolation + 2 ); OnChanged(); }
void Graphics::clear(bool inForceFreeHardware) { mFillJob.clear(); mLineJob.clear(); mTileJob.clear(); // clear jobs for(int i=0;i<mJobs.size();i++) mJobs[i].clear(); mJobs.resize(0); if (mHardwareData) { if (inForceFreeHardware || mClearCount<4) { delete mHardwareData; mHardwareData = 0; } else mHardwareData->clear(); if (!inForceFreeHardware) mClearCount++; } mPathData->clear(); mExtent0 = Extent2DF(); mRotation0 = 0; mBuiltHardware = 0; mMeasuredJobs = 0; mCursor = UserPoint(0,0); OnChanged(); }
void Graphics::drawGraphicsDatum(IGraphicsData *inData) { switch(inData->GetType()) { case gdtUnknown: break; case gdtTrianglePath: break; case gdtPath: { GraphicsPath *path = inData->AsPath(); drawPath(path->commands, path->data, path->winding); break; } case gdtEndFill: endFill(); break; case gdtSolidFill: case gdtGradientFill: case gdtBitmapFill: { IGraphicsFill *fill = inData->AsIFill(); if (fill->isSolidStyle()) { Flush(false,true); endTiles(); if (mFillJob.mFill) mFillJob.mFill->DecRef(); mFillJob.mFill = fill; mFillJob.mFill->IncRef(); if (mFillJob.mCommand0 == mPathData->commands.size()) mPathData->initPosition(mCursor); } else if (mLineJob.mStroke) { Flush(true,false); mLineJob.mStroke = mLineJob.mStroke->CloneWithFill(fill); } } break; case gdtStroke: { Flush(true,false); if (mLineJob.mStroke) { mLineJob.mStroke->DecRef(); mLineJob.mStroke = 0; } GraphicsStroke *stroke = inData->AsStroke(); if (stroke->thickness>=0 && stroke->fill) { mLineJob.mStroke = stroke; mLineJob.mStroke->IncRef(); if (mLineJob.mCommand0 == mPathData->commands.size()) mPathData->initPosition(mCursor); } } break; } OnChanged(); }
void Graphics::endTiles() { if (mTileJob.mFill) { mTileJob.mFill->DecRef(); mTileJob.mFill = 0; OnChanged(); } }
void FAnimLinkableElement::ChangeLinkMethod(EAnimLinkMethod::Type NewLinkMethod) { if(NewLinkMethod != LinkMethod) { // Switch to the new link method and resolve it LinkMethod = NewLinkMethod; OnChanged(GetTime()); } }
void Graphics::arcTo(float cx, float cy, float x, float y) { if ( (mFillJob.mFill && mFillJob.mCommand0==mPathData->commands.size()) || (mLineJob.mStroke && mLineJob.mCommand0==mPathData->commands.size()) ) mPathData->initPosition(mCursor); mPathData->arcTo(cx,cy,x,y); mCursor = UserPoint(x,y); OnChanged(); }
int GvMaterial::OnFieldChanged(GvField *field) { isEmissiveColorOnly = -1; hasTransparency = -1; maxNumValues = -1; OnChanged(); // ?? return(1); }
ribi::QtDasWahreSchlagerfestCanvas::QtDasWahreSchlagerfestCanvas( const int width, const int height) : QtCanvas(CreateCanvas(width,height)), m_widget(CreateWidget(width,height)) { m_widget->m_signal_changed.connect( boost::bind(&ribi::QtDasWahreSchlagerfestCanvas::OnChanged,this)); OnChanged(); }
void Graphics::beginTiles(Surface *bitmapData,bool inSmooth,int inBlendMode, int inMode, int inCount) { endFill(); lineStyle(-1); Flush(); if (mTileJob.mFill) mTileJob.mFill->DecRef(); mTileJob.mFill = new GraphicsBitmapFill(bitmapData,Matrix(),false,inSmooth); mTileJob.mFill->IncRef(); mTileJob.mBlendMode = inBlendMode; mTileJob.mTileCount = inCount; mTileJob.mTileMode = inMode; OnChanged(); }
void SVGTransformListMutable::clear() { if (m_p->m_items.GetSize() > 0) { RemoveAll(); OnChanged(); /* if (m_pListener) { m_pListener->OnChanged(this); } */ } }
void Graphics::curveTo(float cx, float cy, float x, float y) { if ( (mFillJob.mFill && mFillJob.mCommand0==mPathData->commands.size()) || (mLineJob.mStroke && mLineJob.mCommand0==mPathData->commands.size()) ) mPathData->initPosition(mCursor); if ( (fabs(mCursor.x-cx)<EPSILON && fabs(mCursor.y-cy)<EPSILON) || (fabs(x-cx)<EPSILON && fabs(y-cy)<EPSILON) ) { mPathData->lineTo(x,y); } else mPathData->curveTo(cx,cy,x,y); mCursor = UserPoint(x,y); OnChanged(); }
SVGTransform* SVGTransformListMutable::insertItemBefore(SVGTransform* newItem, unsigned int index) { if (newItem == NULL) THROW(std::exception("null pointer")); m_p->m_items.InsertAt(index, newItem); // newItem->m_pListener = this; newItem->m_owner = this; OnChanged(); /* if (m_pListener) { m_pListener->OnChanged(this); } */ return newItem; }
void CMyPreferences::apply() { char temp[16]; int t = GetDlgItemInt( IDC_SAMPLERATE, NULL, FALSE ); if ( t < 6000 ) t = 6000; else if ( t > 96000 ) t = 96000; SetDlgItemInt( IDC_SAMPLERATE, t, FALSE ); itoa( t, temp, 10 ); cfg_history_rate.add_item(temp); cfg_sample_rate = t; cfg_vgm_loop_count = SendDlgItemMessage( IDC_VGMLOOPCOUNT, CB_GETCURSEL ); cfg_spc_interpolation = SendDlgItemMessage( IDC_INTERPOLATION, CB_GETCURSEL ) - 2; t = parse_time_crap( string_utf8_from_window( GetDlgItem( IDC_DLENGTH ) ) ); if ( t != BORK_TIME ) cfg_default_length = t; else { print_time_crap( cfg_default_length, (char *)&temp ); uSetDlgItemText( m_hWnd, IDC_DLENGTH, (char *)&temp ); } t = parse_time_crap( string_utf8_from_window( GetDlgItem( IDC_DFADE ) ) ); if ( t != BORK_TIME ) cfg_default_fade = t; else { print_time_crap( cfg_default_fade, (char *)&temp ); uSetDlgItemText( m_hWnd, IDC_DFADE, (char *)&temp ); } cfg_indefinite = SendDlgItemMessage( IDC_INDEFINITE, BM_GETCHECK ); cfg_write = SendDlgItemMessage( IDC_WRITE, BM_GETCHECK ); cfg_write_nsfe = SendDlgItemMessage( IDC_WNSFE, BM_GETCHECK ); cfg_nsfe_ignore_playlists = SendDlgItemMessage( IDC_NSFEPL, BM_GETCHECK ); cfg_nsf_ignore_w4011 = SendDlgItemMessage( IDC_NSF4011, BM_GETCHECK ); cfg_spc_anti_surround = SendDlgItemMessage( IDC_ANTISURROUND, BM_GETCHECK ); cfg_vgm_gd3_prefers_japanese = SendDlgItemMessage( IDC_GD3JAPANESE, BM_GETCHECK ); cfg_effects_enable = SendDlgItemMessage( IDC_EFFECTS, BM_GETCHECK ); cfg_format_enable = ~0; for (unsigned wp = IDC_FORMAT_NSF; wp <= IDC_FORMAT_SFM; wp++) { unsigned bit = 1 << ( wp - IDC_FORMAT_NSF ); unsigned mask = ~0 ^ bit; cfg_format_enable = ( cfg_format_enable & mask ) | ( bit * SendDlgItemMessage( wp, BM_GETCHECK ) ); } cfg_effects_bass = SendDlgItemMessage( IDC_SLIDER_BASS, TBM_GETPOS ); cfg_effects_treble = SendDlgItemMessage( IDC_SLIDER_TREBLE, TBM_GETPOS ); cfg_effects_echo_depth = SendDlgItemMessage( IDC_SLIDER_ECHO_DEPTH, TBM_GETPOS ); OnChanged(); //our dialog content has not changed but the flags have - our currently shown values now match the settings so the apply button can be disabled }
SVGTransform* SVGTransformListMutable::appendItem(SVGTransform* newItem) { if (newItem == NULL) THROW(std::exception("null pointer")); m_p->m_items.Add(newItem); // newItem->m_pListener = this; newItem->m_owner = this; OnChanged(); /* if (m_pListener) { m_pListener->OnChanged(this); } */ return newItem; }
void prefs_file::OnButtonClick(UINT, int id, CWindow) { switch (id) { case IDC_BROWSE1: LoadFile(IDC_EDIT_FILE1, IDC_LABEL_INFO1, IDC_SLIDER_LEVEL1, IDC_CHECK_FILE1); break; case IDC_BROWSE2: LoadFile(IDC_EDIT_FILE2, IDC_LABEL_INFO2, IDC_SLIDER_LEVEL2, IDC_CHECK_FILE2); break; case IDC_BROWSE3: LoadFile(IDC_EDIT_FILE3, IDC_LABEL_INFO3, IDC_SLIDER_LEVEL3, IDC_CHECK_FILE3); break; default: break; } OnChanged(); }
void Graphics::drawPath(const QuickVec<uint8> &inCommands, const QuickVec<float> &inData, WindingRule inWinding ) { int n = inCommands.size(); if (n==0 || inData.size()<2) return; const UserPoint *point = (UserPoint *)&inData[0]; const UserPoint *last = point + inData.size()/2; if ( (mFillJob.mFill && mFillJob.mCommand0==mPathData->commands.size()) || (mLineJob.mStroke && mLineJob.mCommand0==mPathData->commands.size()) ) mPathData->initPosition(mCursor); for(int i=0;i<n && point<last;i++) { switch(inCommands[i]) { case pcWideMoveTo: point++; if (point==last) break; case pcMoveTo: mPathData->moveTo(point->x,point->y); mCursor = *point++; break; case pcWideLineTo: point++; if (point==last) break; case pcLineTo: mPathData->lineTo(point->x,point->y); mCursor = *point++; break; case pcCurveTo: if (point+1==last) break; mPathData->curveTo(point->x,point->y,point[1].x,point[1].y); mCursor = point[1]; point += 2; } } OnChanged(); }
//Återställer dialogvärdena void CMyPreferences::reset() { SetDlgItemInt(IDC_COMPORT, default_cfg_ComPort, FALSE); SetDlgItemInt(IDC_BAUD, default_cfg_Baud, FALSE); SetDlgItemInt(IDC_SignAdress, default_cfg_SignAdress, FALSE); uSetDlgItemText(*this, IDC_PatternPlaying, default_cfg_PatternPlaying); uSetDlgItemText(*this, IDC_PatternPaused, default_cfg_PatternPaused); uSetDlgItemText(*this, IDC_PatternStopped, default_cfg_PatternStopped); HWND EB = GetDlgItem(IDC_Clock); SendMessage(EB, BM_SETCHECK, default_cfg_Clock ? BST_CHECKED : BST_UNCHECKED, 0); //? = inline if HWND CB1 = GetDlgItem(IDC_ModePlaying); HWND CB2 = GetDlgItem(IDC_ModePaused); HWND CB3 = GetDlgItem(IDC_ModeStopped); SendMessage(CB1, CB_SETCURSEL, default_cfg_ModePlaying - 'A', 0); SendMessage(CB2, CB_SETCURSEL, default_cfg_ModePaused - 'A', 0); SendMessage(CB3, CB_SETCURSEL, default_cfg_ModeStopped - 'A', 0); OnChanged(); }
//Värkställer dialogvärdena void CMyPreferences::apply() { cfg_COMPort = GetDlgItemInt(IDC_COMPORT, NULL, FALSE); cfg_BaudRate = GetDlgItemInt(IDC_BAUD, NULL, FALSE); cfg_SignAdress = GetDlgItemInt(IDC_SignAdress, NULL, FALSE); uGetDlgItemText(*this, IDC_PatternPlaying, cfg_PatternPlaying); uGetDlgItemText(*this, IDC_PatternPaused, cfg_PatternPaused); uGetDlgItemText(*this, IDC_PatternStopped, cfg_PatternStopped); HWND EB = GetDlgItem(IDC_Clock); cfg_UseClock = (SendMessage(EB, BM_GETCHECK,0 , 0) == BST_CHECKED); HWND CB1 = GetDlgItem(IDC_ModePlaying); HWND CB2 = GetDlgItem(IDC_ModePaused); HWND CB3 = GetDlgItem(IDC_ModeStopped); cfg_ModePlaying = 'A' + SendMessage(CB1, CB_GETCURSEL, 0, 0); cfg_ModePaused = 'A' + SendMessage(CB2, CB_GETCURSEL, 0, 0); cfg_ModeStopped = 'A' + SendMessage(CB3, CB_GETCURSEL, 0, 0); OnChanged(); //our dialog content has not changed but the flags have - our currently shown values now match the settings so the apply button can be disabled }
SVGTransform* SVGTransformListMutable::removeItem(unsigned int index) { if (index < m_p->m_items.GetSize()) { SVGTransform* old = m_p->m_items[index]; m_p->m_items.RemoveAt(index); OnChanged(); /* if (m_pListener) { m_pListener->OnChanged(this); } */ return old; } else { ASSERT(0); return NULL; } }
void CMyPreferences::OnEditChange(UINT, int, CWindow) { //Avaktiverar stoppat fältet när använd klocka checkas HWND EB = GetDlgItem(IDC_Clock); bool UseClock = (SendMessage(EB, BM_GETCHECK,0 , 0) == BST_CHECKED); HWND PAT = GetDlgItem(IDC_PatternStopped); HWND MODE = GetDlgItem(IDC_ModeStopped); if(UseClock) { ::EnableWindow(PAT, FALSE); ::EnableWindow(MODE, FALSE); }else { ::EnableWindow(PAT, TRUE); ::EnableWindow(MODE, TRUE); } OnChanged(); }
void CDialogPref::LoadProps(bool reset /*= false*/) { if (reset) g_sci_prop_sets.reset(); pfc::stringcvt::string_os_from_utf8_fast conv; t_sci_prop_set_list & prop_sets = g_sci_prop_sets.val(); m_props.DeleteAllItems(); for (t_size i = 0; i < prop_sets.get_count(); ++i) { conv.convert(prop_sets[i].key); m_props.AddItem(i, 0, conv); conv.convert(prop_sets[i].val); m_props.AddItem(i, 1, conv); } OnChanged(); }
int GvField::set(const GvField *value) { if (this == value) { // hg 20.04.99 // already equal pointers ! // had problems with this = this because array destroyed before copy OnChanged(); return TRUE; } // TBD: to do check type, no part of proper scene graph construction *this = *value; // virtual /* already called by = operator setDefault(FALSE); return OnChanged(); */ // copy default flag ?? // if (value->isDefault()) setDefault(TRUE); return TRUE; }
void prefs_file::apply() { cfg_file1_enable = IsDlgButtonChecked(IDC_CHECK_FILE1); cfg_file2_enable = IsDlgButtonChecked(IDC_CHECK_FILE2); cfg_file3_enable = IsDlgButtonChecked(IDC_CHECK_FILE3); cfg_file1_resample = IsDlgButtonChecked(IDC_CHECK_RESAMPLE1); cfg_file2_resample = IsDlgButtonChecked(IDC_CHECK_RESAMPLE2); cfg_file3_resample = IsDlgButtonChecked(IDC_CHECK_RESAMPLE3); cfg_file1_level = m_slider_level1.GetPos(); cfg_file2_level = m_slider_level2.GetPos(); cfg_file3_level = m_slider_level3.GetPos(); wchar_t wstr[1024]; // convert filenames to char GetDlgItemText(IDC_EDIT_FILE1, (LPTSTR)wstr, sizeof(wstr)); cfg_file1_filename.set_string((util::wstr2str(wstr)).c_str()); GetDlgItemText(IDC_EDIT_FILE2, (LPTSTR)wstr, sizeof(wstr)); cfg_file2_filename.set_string((util::wstr2str(wstr)).c_str()); GetDlgItemText(IDC_EDIT_FILE3, (LPTSTR)wstr, sizeof(wstr)); cfg_file3_filename.set_string((util::wstr2str(wstr)).c_str()); // convert metadata string to char GetDlgItemText(IDC_LABEL_INFO1, (LPTSTR)wstr, sizeof(wstr)); cfg_file1_metadata.set_string((util::wstr2str(wstr)).c_str()); GetDlgItemText(IDC_LABEL_INFO2, (LPTSTR)wstr, sizeof(wstr)); cfg_file2_metadata.set_string((util::wstr2str(wstr)).c_str()); GetDlgItemText(IDC_LABEL_INFO3, (LPTSTR)wstr, sizeof(wstr)); cfg_file3_metadata.set_string((util::wstr2str(wstr)).c_str()); OnChanged(); //our dialog content has not changed but the flags have - our currently shown values now match the settings so the apply button can be disabled }
ribi::QtTestDrawCanvasMainDialog::QtTestDrawCanvasMainDialog(QWidget *parent) : QtHideAndShowDialog(parent), ui(new Ui::QtTestDrawCanvasMainDialog), m_canvas(CreateCanvas()), m_surface_plot(new ribi::QtSurfacePlotWidget) { #ifndef NDEBUG Test(); #endif ui->setupUi(this); { assert(ui->verticalLayout); QtCanvas * const qtcanvas { new QtCanvas(m_canvas) }; ui->verticalLayout->addWidget(qtcanvas); ui->verticalLayout->addWidget(m_surface_plot); } { const double w = m_canvas->GetWidth(); const double h = m_canvas->GetHeight(); ui->box_circle_x->setValue(0.5 * w); ui->box_circle_y->setValue(0.5 * h); ui->box_circle_r->setValue(0.4 * h); ui->box_dot_x->setValue(0.5 * w); ui->box_dot_y->setValue(0.5 * h); ui->box_line_x1->setValue(0.25 * w); ui->box_line_y1->setValue(0.25 * h); ui->box_line_x2->setValue(0.75 * w); ui->box_line_y2->setValue(0.75 * h); } OnChanged(); }
void Graphics::drawRoundRect(float x,float y,float width,float height,float rx,float ry) { rx *= 0.5; ry *= 0.5; float w = width*0.5; x+=w; if (rx>w) rx = w; float lw = w - rx; float w_ = lw + rx*SIN45; float cw_ = lw + rx*TAN22; float h = height*0.5; y+=h; if (ry>h) ry = h; float lh = h - ry; float h_ = lh + ry*SIN45; float ch_ = lh + ry*TAN22; Flush(); mPathData->moveTo(x+w,y+lh); mPathData->curveTo(x+w, y+ch_, x+w_, y+h_); mPathData->curveTo(x+cw_,y+h, x+lw, y+h); mPathData->lineTo(x-lw, y+h); mPathData->curveTo(x-cw_,y+h, x-w_, y+h_); mPathData->curveTo(x-w, y+ch_, x-w, y+lh); mPathData->lineTo( x-w, y-lh); mPathData->curveTo(x-w, y-ch_, x-w_, y-h_); mPathData->curveTo(x-cw_,y-h, x-lw, y-h); mPathData->lineTo(x+lw, y-h); mPathData->curveTo(x+cw_,y-h, x+w_, y-h_); mPathData->curveTo(x+w, y-ch_, x+w, y-lh); mPathData->lineTo(x+w, y+lh); Flush(); OnChanged(); }
void CDialogPref::reset() { g_cfg_safe_mode = true; LoadProps(true); OnChanged(); }