// // ICRoot::HandleEvent // U32 ICRoot::HandleEvent(Event &e) { if (e.type == IFace::EventID()) { // Handle interface events switch (e.subType) { case IFace::DISPLAYMODECHANGED: { // Modify window size size.x = e.iface.p1; size.y = e.iface.p2; SetupPaintInfo(); // Refresh all active controls (twice, since the alignment function // changed to not Deactivate/Activate controls that are already active RefreshControls(); RefreshControls(); // Notify all children return (IControl::HandleEvent(e)); } } } // If a custom event handler is installed chain to it if (gameHandler) { return gameHandler(e); } // Unhandled return (FALSE); }
void DlgEditMusic::s_EditEndPos(QTime NewValue) { if (StopMaj) return; MusicObject->EndPos=NewValue; ui->EndPosEd->setTime(MusicObject->EndPos); SetCurrentPos(MusicObject->EndPos); RefreshControls(); }
void LastFMSettingsPage::Logout() { ui_->username->clear(); ui_->password->clear(); RefreshControls(false); service_->SignOut(); }
void DlgEditMusic::s_DefEndPos() { if (StopMaj) return; MusicObject->EndPos=GetCurrentPos(); if (MusicObject->EndPos>=MusicObject->GetRealDuration()) MusicObject->EndPos=MusicObject->GetRealDuration().addMSecs(-1); ui->CustomRuler->EndPos=QTime(0,0,0,0).msecsTo(MusicObject->EndPos); RefreshControls(); }
BOOL CControlsDlg::OnInitDialog() { CExtNCW<CExtResizableDialog>::OnInitDialog(); m_Ctrls.InsertColumn(0, "Control name", 0, 150); m_Ctrls.InsertColumn(1, "Key", 0, 150); m_Ctrls.InsertColumn(2, "Player", 0, 100); RefreshControls(); CExtBitmap Bitmap; Bitmap.LoadBMP_Resource(MAKEINTRESOURCE(IDB_ICONADD)); m_Add.SetIcon(Bitmap.CreateHICON()); Bitmap.LoadBMP_Resource(MAKEINTRESOURCE(IDB_ICONEDIT)); m_Edit.SetIcon(Bitmap.CreateHICON()); Bitmap.LoadBMP_Resource(MAKEINTRESOURCE(IDB_ICONDELETE)); m_Remove.SetIcon(Bitmap.CreateHICON()); m_Ctrls.SetExtendedStyle(LVS_EX_FULLROWSELECT); // Resizing dlgMan.Load(this->m_hWnd, "Software\\Construct\\ControlsDlg"); dlgAnchor.Init(this->m_hWnd); dlgAnchor.Add(IDC_CONTROLSLIST, ANCHOR_TOPLEFT | ANCHOR_BOTTOMRIGHT); dlgAnchor.Add(IDC_ADD, ANCHOR_LEFT | ANCHOR_BOTTOM); dlgAnchor.Add(IDC_REMOVE, ANCHOR_LEFT | ANCHOR_BOTTOM); dlgAnchor.Add(IDC_RENAME, ANCHOR_LEFT | ANCHOR_BOTTOM); dlgAnchor.Add(IDOK, ANCHOR_RIGHT | ANCHOR_BOTTOM); return TRUE; }
void OBSBasicTransform::SetItemQt(OBSSceneItem newItem) { item = newItem; if (item) RefreshControls(); setEnabled(!!item); }
void LastFMSettingsPage::Load() { ui_->scrobble->setChecked(service_->IsScrobblingEnabled()); ui_->love_ban_->setChecked(service_->AreButtonsVisible()); ui_->scrobble_button->setChecked(service_->IsScrobbleButtonVisible()); ui_->prefer_albumartist->setChecked(service_->PreferAlbumArtist()); RefreshControls(service_->IsAuthenticated()); }
void DlgEditMusic::DoInitDialog() { ui->SeekLeftBt->setIcon(QApplication::style()->standardIcon(QStyle::SP_MediaSkipBackward)); ui->SeekRightBt->setIcon(QApplication::style()->standardIcon(QStyle::SP_MediaSkipForward)); ui->StartPosEd->setCurrentSection(QDateTimeEdit::MSecSection); ui->StartPosEd->setCurrentSectionIndex(3); ui->StartPosEd->MsecStep=1;//MusicObject->GetFPSDuration(); ui->EndPosEd->setCurrentSection(QDateTimeEdit::MSecSection); ui->EndPosEd->setCurrentSectionIndex(3); ui->EndPosEd->MsecStep =1;//MusicObject->GetFPSDuration(); Music.SetFPS(double(1000)/ApplicationConfig->PreviewFPS,2,ApplicationConfig->PreviewSamplingRate,AV_SAMPLE_FMT_S16); ui->CustomRuler->EditStartEnd =true; ui->CustomRuler->setSingleStep(25); // Disable all during sound analyse ui->CustomRuler->setEnabled(false); ui->DefStartPosBT->setEnabled(false); ui->DefEndPosBT->setEnabled(false); ui->SeekLeftBt->setEnabled(false); ui->SeekRightBt->setEnabled(false); ui->StartPosEd->setEnabled(false); ui->EndPosEd->setEnabled(false); ui->VideoPlayerPlayPauseBT->setEnabled(false); SetCurrentPos(MusicObject->StartPos); RefreshControls(); connect(&Timer,SIGNAL(timeout()),this,SLOT(s_TimerEvent())); connect(ui->VideoPlayerPlayPauseBT,SIGNAL(clicked()),this,SLOT(s_VideoPlayerPlayPauseBT())); // Slider controls connect(ui->CustomRuler,SIGNAL(sliderPressed()),this,SLOT(s_SliderPressed())); connect(ui->CustomRuler,SIGNAL(sliderReleased()),this,SLOT(s_SliderReleased())); connect(ui->CustomRuler,SIGNAL(valueChanged(int)),this,SLOT(s_SliderMoved(int))); connect(ui->CustomRuler,SIGNAL(PositionChangeByUser()),this,SLOT(s_PositionChangeByUser())); connect(ui->CustomRuler,SIGNAL(StartEndChangeByUser()),this,SLOT(s_StartEndChangeByUser())); connect(ui->CustomRuler,SIGNAL(StartEndChangeByUser()),this,SLOT(s_StartEndChangeByUser())); // Edit controls connect(ui->DefStartPosBT,SIGNAL(clicked()),this,SLOT(s_DefStartPos())); connect(ui->DefEndPosBT,SIGNAL(clicked()),this,SLOT(s_DefEndPos())); connect(ui->SeekLeftBt,SIGNAL(clicked()),this,SLOT(s_SeekLeft())); connect(ui->SeekRightBt,SIGNAL(clicked()),this,SLOT(s_SeekRight())); connect(ui->StartPosEd,SIGNAL(timeChanged(QTime)),this,SLOT(s_EditStartPos(QTime))); connect(ui->EndPosEd,SIGNAL(timeChanged(QTime)),this,SLOT(s_EditEndPos(QTime))); audio_outputStream->setBufferSize(MixedMusic.NbrPacketForFPS*MixedMusic.SoundPacketSize*BUFFERING_NBR_AUDIO_FRAME); audio_outputDevice=audio_outputStream->start(); #if QT_VERSION >= 0x050000 audio_outputStream->setVolume(ApplicationConfig->PreviewSoundVolume); #endif audio_outputStream->suspend(); }
// End of sound analyse void DlgEditMusic::s_EndSoundAnalyse() { ui->CustomRuler->setEnabled(true); ui->DefStartPosBT->setEnabled(true); ui->DefEndPosBT->setEnabled(true); ui->SeekLeftBt->setEnabled(true); ui->SeekRightBt->setEnabled(true); ui->StartPosEd->setEnabled(true); ui->EndPosEd->setEnabled(true); ui->VideoPlayerPlayPauseBT->setEnabled(true); Timer.stop(); RefreshControls(); // Activate player SetPlayerToPlay(); QApplication::restoreOverrideCursor(); }
sampleCount LadspaEffect::ProcessBlock(float **inbuf, float **outbuf, sampleCount size) { for (int i = 0; i < mAudioIns; i++) { mData->connect_port(mMaster, mInputPorts[i], inbuf[i]); } for (int i = 0; i < mAudioOuts; i++) { mData->connect_port(mMaster, mOutputPorts[i], outbuf[i]); } mData->run(mMaster, size); RefreshControls(true); return size; }
bool Transaction::RefreshDialogsAndControls() { HWND hDialog = NULL; HWND hDialogParent = ::FindWindowEx(m_hMainWindow, NULL, TEXT("AfxMDIFrame42s"), NULL); if (hDialogParent == NULL) return false; // 等待界面稳定 ::Sleep(1000); m_controls.clear(); while (true) { hDialog = ::FindWindowEx(hDialogParent, hDialog, TEXT("#32770"), NULL); if (hDialog == NULL) break; RefreshControls(hDialog); } return true; }
void LastFMSettingsPage::AuthenticationComplete(bool success, const QString& message) { if (!waiting_for_auth_) return; // Wasn't us that was waiting for auth waiting_for_auth_ = false; if (success) { // Clear password just to be sure ui_->password->clear(); // Save settings Save(); } else { QString dialog_text = tr("Your Last.fm credentials were incorrect"); if (!message.isEmpty()) { dialog_text = message; } QMessageBox::warning(this, tr("Authentication failed"), dialog_text); } RefreshControls(success); }
bool PulseInputAdvancedDialog::Create (wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style){ SetExtraStyle(wxWS_EX_BLOCK_EVENTS); if (! wxDialog::Create (parent, id, caption, pos, size, style)) return false; CreateControls(); GetSizer()->Fit(this); GetSizer()->SetSizeHints(this); Center(); RefreshControls(); m_dialogInitialized = true; return true; }
void _ControllerRangeSettings::MessageReceived(BMessage *msg) { switch (msg->what) { case ArpConfigureImpl::CONFIG_REPORT_MSG: { /* Interrupt reports from the int controls, because we need to * annotate them with more info. */ const char* p; if (mTable && mLowCtrl && mHighCtrl && msg->FindString("arp:param", &p) == B_OK && p && (strcmp(p, _LOW_VALUE) == 0 || strcmp(p, _HIGH_VALUE) == 0)) { int32 cc = mTable->CurrentSelection(), low = mLowCtrl->Value(), high = mHighCtrl->Value(); if (cc >= 0 && cc < ARP_CONTROLLER_SIZE) { BMessage upd, m; if (m.AddInt32(_CC_STR, cc) == B_OK && m.AddInt32(_LOW_VALUE, low) == B_OK && m.AddInt32(_HIGH_VALUE, high) == B_OK && upd.AddMessage(_RANGE_MSG, &m) == B_OK) { Implementation().SendConfiguration(&upd); RefreshControls(upd); } } break; } } case ARP_PUT_CONFIGURATION_MSG: { /* Right now this only happens as a result of the table being * selected, but if there are ever more controls generating * this message this will need to be a little smarter. */ RefreshRangeControls(); /* Don't break -- let the superclass handle, too. */ } default: inherited::MessageReceived(msg); } }
void DlgFileExplorer::DoInitDialog() { connect(ui->Browser,SIGNAL(DoRefreshControls()),this,SLOT(RefreshControls())); connect(ui->Browser,SIGNAL(DoAddFiles()),this,SLOT(accept())); connect(ui->Browser,SIGNAL(DoOpenFile()),this,SLOT(OpenFile())); ui->Browser->DoInitDialog(); }
// wenn die listbox geändert wurde static void OnListItemsChange(HWND hwndDlg) { SendMessage(hwndDlg, WM_SETREDRAW, FALSE, 0); SaveLatestChanges(hwndDlg); // set new selection last_selcount = SendDlgItemMessage(hwndDlg, IDC_ITEMS, LB_GETSELCOUNT, 0, 0); if (last_selcount > 0) { int n, itemData, first_item; // get selected indizes SendDlgItemMessage(hwndDlg, IDC_ITEMS, LB_GETSELITEMS, 64, (LPARAM) last_indizes); // initialize with first items value first_item = SendDlgItemMessage(hwndDlg, IDC_ITEMS, LB_GETITEMDATA, last_indizes[0], 0) - ID_EXTBK_FIRST; StatusItems_t *pFirst = StatusItems[first_item]; StatusItems_t DialogSettingForMultiSel = *StatusItems[first_item]; for (n = 0; n < last_selcount; n++) { itemData = SendDlgItemMessage(hwndDlg, IDC_ITEMS, LB_GETITEMDATA, last_indizes[n], 0); if (itemData == ID_EXTBKSEPARATOR) continue; StatusItems_t *p = StatusItems[itemData - ID_EXTBK_FIRST]; if (p->ALPHA != pFirst->ALPHA) DialogSettingForMultiSel.ALPHA = -1; if (p->COLOR != pFirst->COLOR) DialogSettingForMultiSel.COLOR = CLCDEFAULT_COLOR; if (p->COLOR2 != pFirst->COLOR2) DialogSettingForMultiSel.COLOR2 = CLCDEFAULT_COLOR2; if (p->COLOR2_TRANSPARENT != pFirst->COLOR2_TRANSPARENT) DialogSettingForMultiSel.COLOR2_TRANSPARENT = CLCDEFAULT_COLOR2_TRANSPARENT; if (p->TEXTCOLOR != pFirst->TEXTCOLOR) DialogSettingForMultiSel.TEXTCOLOR = CLCDEFAULT_TEXTCOLOR; if (p->CORNER != pFirst->CORNER) DialogSettingForMultiSel.CORNER = CLCDEFAULT_CORNER; if (p->GRADIENT != pFirst->GRADIENT) DialogSettingForMultiSel.GRADIENT = CLCDEFAULT_GRADIENT; if (p->IGNORED != pFirst->IGNORED) DialogSettingForMultiSel.IGNORED = CLCDEFAULT_IGNORE; if (p->MARGIN_BOTTOM != pFirst->MARGIN_BOTTOM) DialogSettingForMultiSel.MARGIN_BOTTOM = -1; if (p->MARGIN_LEFT != pFirst->MARGIN_LEFT) DialogSettingForMultiSel.MARGIN_LEFT = -1; if (p->MARGIN_RIGHT != pFirst->MARGIN_RIGHT) DialogSettingForMultiSel.MARGIN_RIGHT = -1; if (p->MARGIN_TOP != pFirst->MARGIN_TOP) DialogSettingForMultiSel.MARGIN_TOP = -1; if (p->BORDERSTYLE != pFirst->BORDERSTYLE) DialogSettingForMultiSel.BORDERSTYLE = -1; } if (last_selcount == 1 && pFirst->statusID == ID_EXTBKSEPARATOR) { ChangeControlItems(hwndDlg, 0, 0); last_selcount = 0; } else ChangeControlItems(hwndDlg, 1, 0); FillOptionDialogByStatusItem(hwndDlg, &DialogSettingForMultiSel); InvalidateRect(GetDlgItem(hwndDlg, IDC_ITEMS), NULL, FALSE); } SendMessage(hwndDlg, WM_SETREDRAW, TRUE, 0); RefreshControls(hwndDlg); }
void DlgEditMusic::s_EditStartPos(QTime NewValue) { if (StopMaj) return; MusicObject->StartPos=NewValue; SetCurrentPos(MusicObject->StartPos); RefreshControls(); }
void DlgEditMusic::s_DefStartPos() { if (StopMaj) return; MusicObject->StartPos=GetCurrentPos(); ui->CustomRuler->StartPos=QTime(0,0,0,0).msecsTo(MusicObject->StartPos); RefreshControls(); }
bool LadspaEffect::PopulateUI(wxWindow *parent) { mParent = parent; mEventHelper = new LadspaEffectEventHelper(this); mParent->PushEventHandler(mEventHelper); mToggles = new wxCheckBox*[mData->PortCount]; mSliders = new wxSlider*[mData->PortCount]; mFields = new wxTextCtrl*[mData->PortCount]; mLabels = new wxStaticText*[mData->PortCount]; memset(mFields, 0, mData->PortCount * sizeof(wxTextCtrl *)); wxSizer *marginSizer = new wxBoxSizer(wxVERTICAL); if (mNumInputControls) { wxSizer *paramSizer = new wxStaticBoxSizer(wxVERTICAL, mParent, _("Effect Settings")); wxFlexGridSizer *gridSizer = new wxFlexGridSizer(5, 0, 0); gridSizer->AddGrowableCol(3); wxControl *item; // Add the duration control for generators if (GetType() == EffectTypeGenerate) { item = new wxStaticText(mParent, 0, _("Duration:")); gridSizer->Add(item, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5); mDuration = new NumericTextCtrl(NumericConverter::TIME, mParent, ID_DURATION, _("hh:mm:ss + milliseconds"), mHost->GetDuration(), mSampleRate, wxDefaultPosition, wxDefaultSize, true); mDuration->SetName(_("Duration")); mDuration->EnableMenu(); gridSizer->Add(mDuration, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); gridSizer->Add(1, 1, 0); gridSizer->Add(1, 1, 0); gridSizer->Add(1, 1, 0); } for (unsigned long p = 0; p < mData->PortCount; p++) { LADSPA_PortDescriptor d = mData->PortDescriptors[p]; if (LADSPA_IS_PORT_AUDIO(d) || LADSPA_IS_PORT_OUTPUT(d)) { continue; } wxString labelText = LAT1CTOWX(mData->PortNames[p]); item = new wxStaticText(mParent, 0, labelText + wxT(":")); gridSizer->Add(item, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5); wxString fieldText; LADSPA_PortRangeHint hint = mData->PortRangeHints[p]; if (LADSPA_IS_HINT_TOGGLED(hint.HintDescriptor)) { mToggles[p] = new wxCheckBox(mParent, ID_TOGGLES + p, wxT("")); mToggles[p]->SetName(labelText); mToggles[p]->SetValue(mInputControls[p] > 0); gridSizer->Add(mToggles[p], 0, wxALL, 5); gridSizer->Add(1, 1, 0); gridSizer->Add(1, 1, 0); gridSizer->Add(1, 1, 0); continue; } wxString bound; double lower = -FLT_MAX; double upper = FLT_MAX; bool haslo = false; bool hashi = false; bool forceint = false; if (LADSPA_IS_HINT_BOUNDED_BELOW(hint.HintDescriptor)) { lower = hint.LowerBound; haslo = true; } if (LADSPA_IS_HINT_BOUNDED_ABOVE(hint.HintDescriptor)) { upper = hint.UpperBound; hashi = true; } if (LADSPA_IS_HINT_SAMPLE_RATE(hint.HintDescriptor)) { lower *= mSampleRate; upper *= mSampleRate; forceint = true; } // Don't specify a value at creation time. This prevents unwanted events // being sent to the OnTextCtrl() handler before the associated slider // has been created. mFields[p] = new wxTextCtrl(mParent, ID_TEXTS + p); mFields[p]->SetName(labelText); gridSizer->Add(mFields[p], 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); wxString str; if (haslo) { if (LADSPA_IS_HINT_INTEGER(hint.HintDescriptor) || forceint) { str.Printf(wxT("%d"), (int)(lower + 0.5)); } else { str = Internat::ToDisplayString(lower); } item = new wxStaticText(mParent, 0, str); gridSizer->Add(item, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5); } else { gridSizer->Add(1, 1, 0); } mSliders[p] = new wxSlider(mParent, ID_SLIDERS + p, 0, 0, 1000, wxDefaultPosition, wxSize(200, -1)); mSliders[p]->SetName(labelText); gridSizer->Add(mSliders[p], 0, wxALIGN_CENTER_VERTICAL | wxEXPAND | wxALL, 5); if (hashi) { if (LADSPA_IS_HINT_INTEGER(hint.HintDescriptor) || forceint) { str.Printf(wxT("%d"), (int)(upper + 0.5)); } else { str = Internat::ToDisplayString(upper); } item = new wxStaticText(mParent, 0, str); gridSizer->Add(item, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT | wxALL, 5); } else { gridSizer->Add(1, 1, 0); } if (LADSPA_IS_HINT_INTEGER(hint.HintDescriptor) || forceint) { fieldText.Printf(wxT("%d"), (int)(mInputControls[p] + 0.5)); wxIntegerValidator<float> vld(&mInputControls[p]); vld.SetRange(haslo ? lower : INT_MIN, hashi ? upper : INT_MAX); mFields[p]->SetValidator(vld); } else { fieldText = Internat::ToDisplayString(mInputControls[p]); // > 12 decimal places can cause rounding errors in display. wxFloatingPointValidator<float> vld(12, &mInputControls[p]); vld.SetRange(haslo ? lower : -FLT_MAX, hashi ? upper : FLT_MAX); // Set number of decimal places if (upper - lower < 10.0) { vld.SetStyle(wxNUM_VAL_THREE_TRAILING_ZEROES); } else if (upper - lower < 100.0) { vld.SetStyle(wxNUM_VAL_TWO_TRAILING_ZEROES); } else { vld.SetStyle(wxNUM_VAL_ONE_TRAILING_ZERO); } mFields[p]->SetValidator(vld); } // Set the textctrl value. This will trigger an event so OnTextCtrl() // can update the slider. mFields[p]->SetValue(fieldText); } paramSizer->Add(gridSizer, 1, wxEXPAND | wxALL, 5); marginSizer->Add(paramSizer, 1, wxEXPAND | wxALL, 5); } if (mNumOutputControls > 0 ) { wxSizer *paramSizer = new wxStaticBoxSizer(wxVERTICAL, mParent, _("Effect Output")); wxFlexGridSizer *gridSizer = new wxFlexGridSizer(2, 0, 0); gridSizer->AddGrowableCol(3); wxControl *item; for (unsigned long p = 0; p < mData->PortCount; p++) { LADSPA_PortDescriptor d = mData->PortDescriptors[p]; if (LADSPA_IS_PORT_AUDIO(d) || LADSPA_IS_PORT_INPUT(d)) { continue; } wxString labelText = LAT1CTOWX(mData->PortNames[p]); item = new wxStaticText(mParent, 0, labelText + wxT(":")); gridSizer->Add(item, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5); wxString fieldText; mFields[p] = new wxTextCtrl(mParent, wxID_ANY, fieldText, wxDefaultPosition, wxDefaultSize, wxTE_READONLY); mFields[p]->SetName(labelText); gridSizer->Add(mFields[p], 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); } paramSizer->Add(gridSizer, 1, wxEXPAND | wxALL, 5); marginSizer->Add(paramSizer, 1, wxEXPAND | wxALL, 5); RefreshControls(true); } mParent->SetSizer(marginSizer); return true; }
static void OnListItemsChange(HWND hwndDlg) { SendMessage(hwndDlg, WM_SETREDRAW, FALSE, 0); SaveLatestChanges(hwndDlg); // set new selection last_selcount = SendMessage(GetDlgItem(hwndDlg, IDC_ITEMS), LB_GETSELCOUNT, 0, 0); if (last_selcount > 0) { int n, real_index, itemData, first_item; TStatusItem DialogSettingForMultiSel; // get selected indizes SendMessage(GetDlgItem(hwndDlg, IDC_ITEMS), LB_GETSELITEMS, 64, (LPARAM) last_indizes); // initialize with first items value first_item = SendDlgItemMessage(hwndDlg, IDC_ITEMS, LB_GETITEMDATA, last_indizes[0], 0) - ID_EXTBK_FIRST; DialogSettingForMultiSel = StatusItems[first_item]; for (n = 0; n < last_selcount; n++) { itemData = SendDlgItemMessage(hwndDlg, IDC_ITEMS, LB_GETITEMDATA, last_indizes[n], 0); if (itemData != ID_EXTBKSEPARATOR) { real_index = itemData - ID_EXTBK_FIRST; if (StatusItems[real_index].ALPHA != StatusItems[first_item].ALPHA) DialogSettingForMultiSel.ALPHA = -1; if (StatusItems[real_index].COLOR != StatusItems[first_item].COLOR) DialogSettingForMultiSel.COLOR = CLCDEFAULT_COLOR; if (StatusItems[real_index].COLOR2 != StatusItems[first_item].COLOR2) DialogSettingForMultiSel.COLOR2 = CLCDEFAULT_COLOR2; if (StatusItems[real_index].ALPHA2 != StatusItems[first_item].ALPHA2) DialogSettingForMultiSel.ALPHA2 = -1; if (StatusItems[real_index].TEXTCOLOR != StatusItems[first_item].TEXTCOLOR) DialogSettingForMultiSel.TEXTCOLOR = CLCDEFAULT_TEXTCOLOR; if (StatusItems[real_index].CORNER != StatusItems[first_item].CORNER) DialogSettingForMultiSel.CORNER = CLCDEFAULT_CORNER; if (StatusItems[real_index].GRADIENT != StatusItems[first_item].GRADIENT) DialogSettingForMultiSel.GRADIENT = CLCDEFAULT_GRADIENT; if (StatusItems[real_index].IGNORED != StatusItems[first_item].IGNORED) DialogSettingForMultiSel.IGNORED = CLCDEFAULT_IGNORE; if (StatusItems[real_index].MARGIN_BOTTOM != StatusItems[first_item].MARGIN_BOTTOM) DialogSettingForMultiSel.MARGIN_BOTTOM = -1; if (StatusItems[real_index].MARGIN_LEFT != StatusItems[first_item].MARGIN_LEFT) DialogSettingForMultiSel.MARGIN_LEFT = -1; if (StatusItems[real_index].MARGIN_RIGHT != StatusItems[first_item].MARGIN_RIGHT) DialogSettingForMultiSel.MARGIN_RIGHT = -1; if (StatusItems[real_index].MARGIN_TOP != StatusItems[first_item].MARGIN_TOP) DialogSettingForMultiSel.MARGIN_TOP = -1; if (StatusItems[real_index].dwFlags != StatusItems[first_item].dwFlags) DialogSettingForMultiSel.dwFlags = -1; } } if (last_selcount == 1 && StatusItems[first_item].statusID == ID_EXTBKSEPARATOR) { ChangeControlItems(hwndDlg, 0, 0); last_selcount = 0; } else { ChangeControlItems(hwndDlg, 1, 0); } FillOptionDialogByStatusItem(hwndDlg, &DialogSettingForMultiSel); InvalidateRect(GetDlgItem(hwndDlg, IDC_ITEMS), NULL, FALSE); } SendMessage(hwndDlg, WM_SETREDRAW, TRUE, 0); RefreshControls(hwndDlg); }