void DockWindow::ContainerDragEnd(DockCont &dc) { KillTimeCallback(TIMEID_ANIMATE_DELAY); if (!dc.IsFloating()) return; HighlightCtrl &hl = GetHighlightCtrl(); Ctrl *p = hl.GetParent(); int align = DOCK_NONE; if (p) for (int i = 0; i < 4; i++) if (p == &dockpane[i]) align = i; if (animatewnd && (p || align != DOCK_NONE)) { FloatAnimate(dc, hl.GetScreenRect()); } if (align != DOCK_NONE) { Unfloat(dc); dc.StateDocked(*this); dockpane[align].Swap(hl, dc); } else if (DockCont *target = dynamic_cast<DockCont *>(p)) { StopHighlight(false); bool nest = (GetMouseFlags() & NestedToggleKey()) ? !IsNestedTabs() : IsNestedTabs(); DockContainerAsTab(*target, dc, nest && dc.GetCount() > 1); } else StopHighlight(false); if (dc.GetParent()) dc.SetFocus(); }
void ShowToolTip() { LLOG("ShowToolTip"); CloseToolTip(); if(tipctrl) { String text = tipctrl->GetTip(); LLOG("-> showing tip: " << text << " tipctrl: " << UPP::Name(tipctrl)); Ctrl *top = tipctrl->GetTopCtrl(); if(!text.IsEmpty() && top && (top->IsForeground() || top->IsPopUp())) { LLOG("-> foreground"); ToolTip& q = AppToolTip(); q.Set(text); Size sz = q.GetMinSize(); Rect r = top->GetWorkArea(); Point p = GetMousePos() + Size(0, 22); if(p.y + sz.cy > r.bottom) p = GetMousePos() - Size(0, 22); q.PopUp(top, p, !showmode); showmode = true; KillTimeCallback((void *)EndShowMode); return; } LLOG("-> background / empty text, top = " << UPP::Name(top)); } SetTimeCallback(200, callback(EndShowMode), (void *)EndShowMode); }
void TopWindow::SyncTitle() { GuiLock __; LLOG("SyncTitle: " << title); KillTimeCallback(TIMEID_DEFSYNCTITLE); SetTimeCallback(0, THISBACK(DefSyncTitle), TIMEID_DEFSYNCTITLE); LLOG("*SyncTitle: " << title); }
void RichTextView::Layout() { sizetracking = false; if(IsOpen() && lazy) { sizetracking = true; KillTimeCallback(TIMEID_ENDSIZETRACKING); SetTimeCallback(250, THISBACK(EndSizeTracking), TIMEID_ENDSIZETRACKING); } SetSb(); Refresh(); }
void DockWindow::ContainerDragMove(DockCont &dc) { HighlightCtrl &hl = GetHighlightCtrl(); Point p = GetMousePos(); if (hl.GetParent()) { if (!hl.bounds.Contains(p)) StopHighlight(IsAnimatedHighlight()); return KillTimeCallback(TIMEID_ANIMATE_DELAY); } animdelay ? KillSetTimeCallback(animdelay, THISBACK1(StartHighlight, &dc), TIMEID_ANIMATE_DELAY) : StartHighlight(&dc); }
void SyncToolTip(Ctrl *ctrl) { if(ctrl != tipctrl || ctrl && ctrl->GetTip() != AppToolTip().Get()) { LLOG("ToolTipHook / ctrl change " << UPP::Name(ctrl) << " -> " << UPP::Name(ctrl)); tipctrl = ctrl; KillTimeCallback((void *)SyncToolTip); if(showmode) ShowToolTip(); else { LLOG("ToolTipHook -> SetTimeCallback"); SetTimeCallback(GUI_ToolTipDelay(), callback(ShowToolTip), (void *)SyncToolTip); } } }
void AutoHideBar::RemoveCtrl(DockCont& c, int ix) { if (c.IsOpen()) c.Close(); if (ctrl == &c) { if (popup.IsOpen()) popup.Close(); ctrl->Remove(); //KillTimeCallback(TIMEID_ANIMATE); KillTimeCallback(TIMEID_HIDE_TIMEOUT); ctrl = NULL; } if (ix >= 0) DockTabBar::Close(ix); if (GetCount() == autohide) RefreshParentLayout(); }
bool ToolTipHook(Ctrl *ctrl, bool inframe, int event, Point p, int zdelta, dword keyflags) { if(event == Ctrl::MOUSEMOVE && ctrl != &AppToolTip()) { SyncToolTip(Ctrl::GetVisibleChild(ctrl, p, inframe)); LLOG("ToolTipHook MOUSEMOVE " << UPP::Name(ctrl) << " inframe: " << inframe); } if(event == Ctrl::MOUSELEAVE) { LLOG("ToolTipHook MOUSELEAVE " << UPP::Name(ctrl)); CloseToolTip(); KillTimeCallback((void *)EndShowMode); SetTimeCallback(1000, callback(EndShowMode), (void *)EndShowMode); } if((event & Ctrl::ACTION) == Ctrl::DOWN) { LLOG("ToolTipHook DOWN"); CloseToolTip(); EndShowMode(); } return false; }
void DockWindow::FrameAnimateTick() { bool done = true; for (int i = 0; i < 4; i++) { FrameAnim &a = frameanim[i]; if (a.inc) { int sz = dockframe[i].GetSize() + a.inc; if (a.inc > 0 && sz >= a.target || a.inc < 0 && sz <= a.target) { sz = a.target; a.inc = 0; if (sz == 0) dockframe[i].Hide(); } else done = false; dockframe[i].SetSize(sz); } } if (done) KillTimeCallback(TIMEID_ANIMATE); }
void ScatterCtrl::Paint(Draw& w) { GuiLock __; if (IsNull(highlight_0) && highlighting) { highlighting = false; KillTimeCallback(); } if (!IsNull(highlight_0) && !highlighting) { highlighting = true; SetTimeCallback(-200, THISBACK(TimerCallback)); } TimeStop t; lastRefresh0_ms = GetTickCount(); if (IsEnabled()) { if (mode == MD_DRAW) { ScatterCtrl::SetDrawing(w, GetSize(), 1); PlotTexts(w, GetSize(), 1); } else { ImageBuffer ib(GetSize()); BufferPainter bp(ib, mode); ScatterCtrl::SetDrawing(bp, GetSize(), 1); w.DrawImage(0, 0, ib); PlotTexts(w, GetSize(), 1); } if (HasFocus()) { w.DrawLine(0, 0, GetSize().cx, 0, 2, LtGray()); w.DrawLine(0, 0, 0, GetSize().cy, 2, LtGray()); int delta = -2; #ifdef PLATFORM_WIN32 delta = 0; #endif w.DrawLine(GetSize().cx+delta, 0, GetSize().cx+delta, GetSize().cy, 2, LtGray()); w.DrawLine(0, GetSize().cy+delta, GetSize().cx, GetSize().cy+delta, 2, LtGray()); } } lastRefresh_ms = t.Elapsed(); }
void Ctrl::KillSetTimeCallback(int delay_ms, Callback cb, int id) { KillTimeCallback(id); SetTimeCallback(delay_ms, cb, id); }
void MenuBar::Post(Event<Bar&> bar) { KillTimeCallback(TIMEID_POST); SetTimeCallback(0, THISBACK1(Set, bar), TIMEID_POST); }
void MenuBar::KillDelayedClose() { KillTimeCallback(TIMEID_SUBMENUCLOSE); KillTimeCallback(TIMEID_STOP); }
void SubMenuItem::MouseLeave() { if(HasFocus() && GetParent()) GetParent()->SetFocus(); KillTimeCallback(TIMEID_PULL); }
void AutoHideBar::MouseEnter(Point p, dword keyflags) { if (ctrl && ctrl->IsOpen()) KillTimeCallback(2); TabInterface::MouseEnter(p, keyflags); }
void ToolBar::Post(Event<Bar&> bar) { KillTimeCallback(TIMEID_POST); SetTimeCallback(0, PTEBACK1(Set, bar), TIMEID_POST); }
void Tab5_Dynamic::Stop() { KillTimeCallback(); bStart.Enable(); bStop.Disable(); }
void FileList::EndEdit() { KillTimeCallback(TIMEID_STARTEDIT); int b = edit.HasFocus(); edit.Hide(); if(b) SetFocus(); }
void FileList::KillEdit() { KillTimeCallback(TIMEID_STARTEDIT); }
// AutoHide bar void AutoHideBar::MouseEnter(Point p, dword keyflags) { if (ctrl && ctrl->IsOpen()) KillTimeCallback(TIMEID_HIDE_TIMEOUT); DockTabBar::MouseEnter(p, keyflags); }