bool iwObservate::Draw_() { if ((x != last_x) || (y != last_y)) { view->SetX(GetX() + 10); view->SetY(GetY() + 15); last_x = x; last_y = y; } if (!GetMinimized()) { RoadsBuilding road; road.mode = RM_DISABLED; road.point_x = 0; road.point_y = 0; road.start_x = 0; road.start_y = 0; view->Draw(GAMECLIENT.GetPlayerID(), NULL, true, view->GetGameWorldViewer()->GetSelX(), view->GetGameWorldViewer()->GetSelY(), road); } return(IngameWindow::Draw_()); }
void IngameWindow::MouseLeftUp(const MouseCoords& mc) { // Bewegung stoppen move = false; // beiden Buttons oben links und rechts prfen const Rect rec[2] = { GetLeftButtonRect(), GetRightButtonRect() }; for(unsigned char i = 0; i < 2; ++i) { button_state[i] = BUTTON_UP; if(Coll(mc.x, mc.y, rec[i])) { if(i) { SetMinimized(!GetMinimized()); LOADER.GetSoundN("sound", 113)->Play(255, false); } else if(!modal) Close(); } } }
void TimeTrack::WriteXML(XMLWriter &xmlFile) { xmlFile.StartTag(wxT("timetrack")); xmlFile.WriteAttr(wxT("name"), mName); //xmlFile.WriteAttr(wxT("channel"), mChannel); //xmlFile.WriteAttr(wxT("offset"), mOffset, 8); xmlFile.WriteAttr(wxT("height"), GetActualHeight()); xmlFile.WriteAttr(wxT("minimized"), GetMinimized()); xmlFile.WriteAttr(wxT("rangelower"), mRangeLower, 12); xmlFile.WriteAttr(wxT("rangeupper"), mRangeUpper, 12); xmlFile.WriteAttr(wxT("displaylog"), GetDisplayLog()); xmlFile.WriteAttr(wxT("interpolatelog"), GetInterpolateLog()); mEnvelope->WriteXML(xmlFile); xmlFile.EndTag(wxT("timetrack")); }
void TrackList::UpdatePendingTracks() { auto pUpdater = mUpdaters.begin(); for (const auto &pendingTrack : mPendingUpdates) { // Copy just a part of the track state, according to the update // function const auto &updater = *pUpdater; auto src = FindById( pendingTrack->GetId() ); if (pendingTrack && src) { if (updater) updater( *pendingTrack, *src ); pendingTrack->DoSetY(src->GetY()); pendingTrack->DoSetHeight(src->GetActualHeight()); pendingTrack->DoSetMinimized(src->GetMinimized()); pendingTrack->DoSetLinked(src->GetLinked()); } ++pUpdater; } }
bool iwObservate::Draw_() { if ((x_ != last_x) || (y_ != last_y)) { view->SetPos(MapPoint(GetX() + 10, GetY() + 15)); last_x = x_; last_y = y_; } if (!GetMinimized()) { RoadsBuilding road; road.mode = RM_DISABLED; road.point = MapPoint(0, 0); road.start = MapPoint(0, 0); view->Draw(GAMECLIENT.GetPlayerID(), NULL, true, view->GetGameWorldViewer().GetSel(), road); } return(IngameWindow::Draw_()); }
UIHandle::Result TrackPanelResizeHandle::Drag (const TrackPanelMouseEvent &evt, AudacityProject *pProject) { auto pTrack = pProject->GetTracks()->Lock(mpTrack); if ( !pTrack ) return RefreshCode::Cancelled; const wxMouseEvent &event = evt.event; TrackList *const tracks = pProject->GetTracks(); int delta = (event.m_y - mMouseClickY); // On first drag, jump out of minimized mode. Initial height // will be height of minimized track. // // This used to be in HandleResizeClick(), but simply clicking // on a resize border would switch the minimized state. if (pTrack->GetMinimized()) { Track *link = pTrack->GetLink(); pTrack->SetHeight(pTrack->GetHeight()); pTrack->SetMinimized(false); if (link) { link->SetHeight(link->GetHeight()); link->SetMinimized(false); // Initial values must be reset since they weren't based on the // minimized heights. mInitialUpperTrackHeight = link->GetHeight(); mInitialTrackHeight = pTrack->GetHeight(); } } // Common pieces of code for MONO_WAVE_PAN and otherwise. auto doResizeBelow = [&] (Track *prev, bool WXUNUSED(vStereo)) { double proportion = static_cast < double >(mInitialTrackHeight) / (mInitialTrackHeight + mInitialUpperTrackHeight); int newTrackHeight = static_cast < int > (mInitialTrackHeight + delta * proportion); int newUpperTrackHeight = static_cast < int > (mInitialUpperTrackHeight + delta * (1.0 - proportion)); //make sure neither track is smaller than its minimum height if (newTrackHeight < pTrack->GetMinimizedHeight()) newTrackHeight = pTrack->GetMinimizedHeight(); if (newUpperTrackHeight < prev->GetMinimizedHeight()) newUpperTrackHeight = prev->GetMinimizedHeight(); pTrack->SetHeight(newTrackHeight); prev->SetHeight(newUpperTrackHeight); }; auto doResizeBetween = [&] (Track *next, bool WXUNUSED(vStereo)) { int newUpperTrackHeight = mInitialUpperTrackHeight + delta; int newTrackHeight = mInitialTrackHeight - delta; // make sure neither track is smaller than its minimum height if (newTrackHeight < next->GetMinimizedHeight()) { newTrackHeight = next->GetMinimizedHeight(); newUpperTrackHeight = mInitialUpperTrackHeight + mInitialTrackHeight - next->GetMinimizedHeight(); } if (newUpperTrackHeight < pTrack->GetMinimizedHeight()) { newUpperTrackHeight = pTrack->GetMinimizedHeight(); newTrackHeight = mInitialUpperTrackHeight + mInitialTrackHeight - pTrack->GetMinimizedHeight(); } pTrack->SetHeight(newUpperTrackHeight); next->SetHeight(newTrackHeight); }; auto doResize = [&] { int newTrackHeight = mInitialTrackHeight + delta; if (newTrackHeight < pTrack->GetMinimizedHeight()) newTrackHeight = pTrack->GetMinimizedHeight(); pTrack->SetHeight(newTrackHeight); }; //STM: We may be dragging one or two (stereo) tracks. // If two, resize proportionally if we are dragging the lower track, and // adjust compensatively if we are dragging the upper track. switch( mMode ) { case IsResizingBelowLinkedTracks: { Track *prev = tracks->GetPrev(pTrack.get()); doResizeBelow(prev, false); break; } case IsResizingBetweenLinkedTracks: { Track *next = tracks->GetNext(pTrack.get()); doResizeBetween(next, false); break; } case IsResizing: { doResize(); break; } default: // don't refresh in this case. return RefreshCode::RefreshNone; } return RefreshCode::RefreshAll; }