From ee86bfe013174747523653b5c2f4cdded4b0f9e9 Mon Sep 17 00:00:00 2001 From: Mirek Fidler Date: Sat, 27 Jun 2026 16:19:48 +0200 Subject: [PATCH] uppsrc: Virtual Popups reverted --- Makefile | 121 --------- Makefile.in | 121 --------- uppsrc/CtrlCore/CocoApp.mm | 8 +- uppsrc/CtrlCore/CocoWin.mm | 4 +- uppsrc/CtrlCore/Ctrl.cpp | 15 +- uppsrc/CtrlCore/CtrlChild.cpp | 11 +- uppsrc/CtrlCore/CtrlCore.h | 34 +-- uppsrc/CtrlCore/CtrlCore.iml | 358 ++++++++++++++----------- uppsrc/CtrlCore/CtrlCore.upp | 1 - uppsrc/CtrlCore/CtrlDraw.cpp | 77 +----- uppsrc/CtrlCore/CtrlKbd.cpp | 18 +- uppsrc/CtrlCore/CtrlMouse.cpp | 37 +-- uppsrc/CtrlCore/CtrlPos.cpp | 31 +-- uppsrc/CtrlCore/GtkAfter.h | 3 +- uppsrc/CtrlCore/GtkApp.cpp | 3 +- uppsrc/CtrlCore/GtkCreate.cpp | 4 - uppsrc/CtrlCore/GtkCtrl.h | 2 +- uppsrc/CtrlCore/GtkEvent.cpp | 2 - uppsrc/CtrlCore/GtkTop.h | 1 + uppsrc/CtrlCore/GtkWnd.cpp | 12 +- uppsrc/CtrlCore/TopWin32.cpp | 5 +- uppsrc/CtrlCore/VirtualPopup.cpp | 92 ------- uppsrc/CtrlCore/Win32Wnd.cpp | 15 +- uppsrc/CtrlCore/X11App.cpp | 6 +- uppsrc/CtrlCore/X11Wnd.cpp | 8 +- uppsrc/CtrlCore/src.tpp/Ctrl_en-us.tpp | 17 -- uppsrc/CtrlLib/DisplayPopup.cpp | 2 +- uppsrc/CtrlLib/MenuBar.cpp | 2 +- uppsrc/CtrlLib/PopUpList.cpp | 2 +- uppsrc/CtrlLib/PopupTable.cpp | 2 +- uppsrc/CtrlLib/ToolTip.cpp | 6 +- uppsrc/VirtualGui/Wnd.cpp | 8 +- uppsrc/ide/About.cpp | 4 +- uppsrc/ide/ide.lay | 3 +- uppsrc/ide/ide.upp | 1 - upptst/VirtualPopup/VirtualPopup.upp | 10 - upptst/VirtualPopup/main.cpp | 75 ------ upptst/VirtualPopup/todo.txt | 24 -- 38 files changed, 285 insertions(+), 860 deletions(-) delete mode 100644 uppsrc/CtrlCore/VirtualPopup.cpp delete mode 100644 upptst/VirtualPopup/VirtualPopup.upp delete mode 100644 upptst/VirtualPopup/main.cpp delete mode 100644 upptst/VirtualPopup/todo.txt diff --git a/Makefile b/Makefile index 758f19d99..7dfea320b 100644 --- a/Makefile +++ b/Makefile @@ -74941,125 +74941,6 @@ $(OutDir_CtrlCore)CtrlCoreInit.o: $(UPPDIR1)CtrlCore/CtrlCoreInit.cpp \ $(UPPDIR1)uppconfig.h $(CXX) -c -x c++ $(CXXFLAGS) $(CINC) $(Macro_CtrlCore) $(UPPDIR1)CtrlCore/CtrlCoreInit.cpp -o $(OutDir_CtrlCore)CtrlCoreInit.o -$(OutDir_CtrlCore)VirtualPopup.o: $(UPPDIR1)CtrlCore/VirtualPopup.cpp \ - $(UPPDIR1)Core/Algo.h \ - $(UPPDIR1)Core/App.h \ - $(UPPDIR1)Core/AString.hpp \ - $(UPPDIR1)Core/Atomic.h \ - $(UPPDIR1)Core/BiCont.h \ - $(UPPDIR1)Core/BinUndoRedo.h \ - $(UPPDIR1)Core/Callback.h \ - $(UPPDIR1)Core/CallbackN.i \ - $(UPPDIR1)Core/CallbackNP.i \ - $(UPPDIR1)Core/CallbackR.i \ - $(UPPDIR1)Core/CharFilter.h \ - $(UPPDIR1)Core/CharSet.h \ - $(UPPDIR1)Core/CharSet.i \ - $(UPPDIR1)Core/CoAlgo.h \ - $(UPPDIR1)Core/Color.h \ - $(UPPDIR1)Core/Complex.h \ - $(UPPDIR1)Core/config.h \ - $(UPPDIR1)Core/Convert.h \ - $(UPPDIR1)Core/Convert.hpp \ - $(UPPDIR1)Core/Core.h \ - $(UPPDIR1)Core/CoSort.h \ - $(UPPDIR1)Core/CoWork.h \ - $(UPPDIR1)Core/Defs.h \ - $(UPPDIR1)Core/Diag.h \ - $(UPPDIR1)Core/FileMapping.h \ - $(UPPDIR1)Core/FilterStream.h \ - $(UPPDIR1)Core/FixedMap.h \ - $(UPPDIR1)Core/Fn.h \ - $(UPPDIR1)Core/Format.h \ - $(UPPDIR1)Core/Function.h \ - $(UPPDIR1)Core/Gtypes.h \ - $(UPPDIR1)Core/Hash.h \ - $(UPPDIR1)Core/Heap.h \ - $(UPPDIR1)Core/HttpStatusCode.i \ - $(UPPDIR1)Core/Huge.h \ - $(UPPDIR1)Core/i18n.h \ - $(UPPDIR1)Core/Index.h \ - $(UPPDIR1)Core/Index.hpp \ - $(UPPDIR1)Core/Inet.h \ - $(UPPDIR1)Core/InMap.hpp \ - $(UPPDIR1)Core/InVector.h \ - $(UPPDIR1)Core/InVector.hpp \ - $(UPPDIR1)Core/JSON.h \ - $(UPPDIR1)Core/Lang.h \ - $(UPPDIR1)Core/Lang_s.h \ - $(UPPDIR1)Core/LocalProcess.h \ - $(UPPDIR1)Core/Map.h \ - $(UPPDIR1)Core/Map.hpp \ - $(UPPDIR1)Core/Mem.h \ - $(UPPDIR1)Core/Mt.h \ - $(UPPDIR1)Core/Obsolete.h \ - $(UPPDIR1)Core/Ops.h \ - $(UPPDIR1)Core/Other.h \ - $(UPPDIR1)Core/Other.hpp \ - $(UPPDIR1)Core/Parser.h \ - $(UPPDIR1)Core/Path.h \ - $(UPPDIR1)Core/Profile.h \ - $(UPPDIR1)Core/Ptr.h \ - $(UPPDIR1)Core/Range.h \ - $(UPPDIR1)Core/Sort.h \ - $(UPPDIR1)Core/Sorted.h \ - $(UPPDIR1)Core/SplitMerge.h \ - $(UPPDIR1)Core/Stream.h \ - $(UPPDIR1)Core/String.h \ - $(UPPDIR1)Core/t_.h \ - $(UPPDIR1)Core/TimeDate.h \ - $(UPPDIR1)Core/Topic.h \ - $(UPPDIR1)Core/Topt.h \ - $(UPPDIR1)Core/Tuple.h \ - $(UPPDIR1)Core/Utf.hpp \ - $(UPPDIR1)Core/Util.h \ - $(UPPDIR1)Core/Uuid.h \ - $(UPPDIR1)Core/Value.h \ - $(UPPDIR1)Core/Value.hpp \ - $(UPPDIR1)Core/ValueCache.h \ - $(UPPDIR1)Core/ValueUtil.h \ - $(UPPDIR1)Core/ValueUtil.hpp \ - $(UPPDIR1)Core/Vcont.h \ - $(UPPDIR1)Core/Vcont.hpp \ - $(UPPDIR1)Core/Win32Util.h \ - $(UPPDIR1)Core/XML.h \ - $(UPPDIR1)Core/Xmlize.h \ - $(UPPDIR1)Core/Xmlize.hpp \ - $(UPPDIR1)Core/z.h \ - $(UPPDIR1)CtrlCore/CtrlCore.h \ - $(UPPDIR1)CtrlCore/CtrlCore.iml \ - $(UPPDIR1)CtrlCore/MKeys.h \ - $(UPPDIR1)CtrlCore/TopWindow.h \ - $(UPPDIR1)CtrlCore/VirtualPopup.cpp \ - $(UPPDIR1)Draw/Cham.h \ - $(UPPDIR1)Draw/DDARasterizer.h \ - $(UPPDIR1)Draw/Display.h \ - $(UPPDIR1)Draw/Draw.h \ - $(UPPDIR1)Draw/DrawImg.iml \ - $(UPPDIR1)Draw/FontInt.h \ - $(UPPDIR1)Draw/Image.h \ - $(UPPDIR1)Draw/ImageOp.h \ - $(UPPDIR1)Draw/iml_header.h \ - $(UPPDIR1)Draw/Raster.h \ - $(UPPDIR1)Draw/SDraw.h \ - $(UPPDIR1)Draw/SIMD.h \ - $(UPPDIR1)guiplatform.h \ - $(UPPDIR1)Painter/BufferPainter.h \ - $(UPPDIR1)Painter/LinearPath.h \ - $(UPPDIR1)Painter/Painter.h \ - $(UPPDIR1)Painter/Painter.hpp \ - $(UPPDIR1)Painter/Painting.h \ - $(UPPDIR1)plugin/png/png.h \ - $(UPPDIR1)RichText/Diagram.h \ - $(UPPDIR1)RichText/Para.h \ - $(UPPDIR1)RichText/RichText.h \ - $(UPPDIR1)RichText/RichText.iml \ - $(UPPDIR1)RichText/Table.h \ - $(UPPDIR1)RichText/Text.h \ - $(UPPDIR1)RichText/Txt.h \ - $(UPPDIR1)uppconfig.h - $(CXX) -c -x c++ $(CXXFLAGS) $(CINC) $(Macro_CtrlCore) $(UPPDIR1)CtrlCore/VirtualPopup.cpp -o $(OutDir_CtrlCore)VirtualPopup.o - $(OutDir_CtrlCore)TopWindow.o: $(UPPDIR1)CtrlCore/TopWindow.cpp \ $(UPPDIR1)Core/Algo.h \ $(UPPDIR1)Core/App.h \ @@ -80910,7 +80791,6 @@ $(OutDir_CtrlCore)CtrlCore.a: \ $(OutDir_CtrlCore)LocalLoop.o \ $(OutDir_CtrlCore)Preedit.o \ $(OutDir_CtrlCore)CtrlCoreInit.o \ - $(OutDir_CtrlCore)VirtualPopup.o \ $(OutDir_CtrlCore)TopWindow.o \ $(OutDir_CtrlCore)DrawWin32.o \ $(OutDir_CtrlCore)DrawOpWin32.o \ @@ -80977,7 +80857,6 @@ $(OutDir_CtrlCore)CtrlCore.a: \ $(OutDir_CtrlCore)LocalLoop.o \ $(OutDir_CtrlCore)Preedit.o \ $(OutDir_CtrlCore)CtrlCoreInit.o \ - $(OutDir_CtrlCore)VirtualPopup.o \ $(OutDir_CtrlCore)TopWindow.o \ $(OutDir_CtrlCore)DrawWin32.o \ $(OutDir_CtrlCore)DrawOpWin32.o \ diff --git a/Makefile.in b/Makefile.in index 758f19d99..7dfea320b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -74941,125 +74941,6 @@ $(OutDir_CtrlCore)CtrlCoreInit.o: $(UPPDIR1)CtrlCore/CtrlCoreInit.cpp \ $(UPPDIR1)uppconfig.h $(CXX) -c -x c++ $(CXXFLAGS) $(CINC) $(Macro_CtrlCore) $(UPPDIR1)CtrlCore/CtrlCoreInit.cpp -o $(OutDir_CtrlCore)CtrlCoreInit.o -$(OutDir_CtrlCore)VirtualPopup.o: $(UPPDIR1)CtrlCore/VirtualPopup.cpp \ - $(UPPDIR1)Core/Algo.h \ - $(UPPDIR1)Core/App.h \ - $(UPPDIR1)Core/AString.hpp \ - $(UPPDIR1)Core/Atomic.h \ - $(UPPDIR1)Core/BiCont.h \ - $(UPPDIR1)Core/BinUndoRedo.h \ - $(UPPDIR1)Core/Callback.h \ - $(UPPDIR1)Core/CallbackN.i \ - $(UPPDIR1)Core/CallbackNP.i \ - $(UPPDIR1)Core/CallbackR.i \ - $(UPPDIR1)Core/CharFilter.h \ - $(UPPDIR1)Core/CharSet.h \ - $(UPPDIR1)Core/CharSet.i \ - $(UPPDIR1)Core/CoAlgo.h \ - $(UPPDIR1)Core/Color.h \ - $(UPPDIR1)Core/Complex.h \ - $(UPPDIR1)Core/config.h \ - $(UPPDIR1)Core/Convert.h \ - $(UPPDIR1)Core/Convert.hpp \ - $(UPPDIR1)Core/Core.h \ - $(UPPDIR1)Core/CoSort.h \ - $(UPPDIR1)Core/CoWork.h \ - $(UPPDIR1)Core/Defs.h \ - $(UPPDIR1)Core/Diag.h \ - $(UPPDIR1)Core/FileMapping.h \ - $(UPPDIR1)Core/FilterStream.h \ - $(UPPDIR1)Core/FixedMap.h \ - $(UPPDIR1)Core/Fn.h \ - $(UPPDIR1)Core/Format.h \ - $(UPPDIR1)Core/Function.h \ - $(UPPDIR1)Core/Gtypes.h \ - $(UPPDIR1)Core/Hash.h \ - $(UPPDIR1)Core/Heap.h \ - $(UPPDIR1)Core/HttpStatusCode.i \ - $(UPPDIR1)Core/Huge.h \ - $(UPPDIR1)Core/i18n.h \ - $(UPPDIR1)Core/Index.h \ - $(UPPDIR1)Core/Index.hpp \ - $(UPPDIR1)Core/Inet.h \ - $(UPPDIR1)Core/InMap.hpp \ - $(UPPDIR1)Core/InVector.h \ - $(UPPDIR1)Core/InVector.hpp \ - $(UPPDIR1)Core/JSON.h \ - $(UPPDIR1)Core/Lang.h \ - $(UPPDIR1)Core/Lang_s.h \ - $(UPPDIR1)Core/LocalProcess.h \ - $(UPPDIR1)Core/Map.h \ - $(UPPDIR1)Core/Map.hpp \ - $(UPPDIR1)Core/Mem.h \ - $(UPPDIR1)Core/Mt.h \ - $(UPPDIR1)Core/Obsolete.h \ - $(UPPDIR1)Core/Ops.h \ - $(UPPDIR1)Core/Other.h \ - $(UPPDIR1)Core/Other.hpp \ - $(UPPDIR1)Core/Parser.h \ - $(UPPDIR1)Core/Path.h \ - $(UPPDIR1)Core/Profile.h \ - $(UPPDIR1)Core/Ptr.h \ - $(UPPDIR1)Core/Range.h \ - $(UPPDIR1)Core/Sort.h \ - $(UPPDIR1)Core/Sorted.h \ - $(UPPDIR1)Core/SplitMerge.h \ - $(UPPDIR1)Core/Stream.h \ - $(UPPDIR1)Core/String.h \ - $(UPPDIR1)Core/t_.h \ - $(UPPDIR1)Core/TimeDate.h \ - $(UPPDIR1)Core/Topic.h \ - $(UPPDIR1)Core/Topt.h \ - $(UPPDIR1)Core/Tuple.h \ - $(UPPDIR1)Core/Utf.hpp \ - $(UPPDIR1)Core/Util.h \ - $(UPPDIR1)Core/Uuid.h \ - $(UPPDIR1)Core/Value.h \ - $(UPPDIR1)Core/Value.hpp \ - $(UPPDIR1)Core/ValueCache.h \ - $(UPPDIR1)Core/ValueUtil.h \ - $(UPPDIR1)Core/ValueUtil.hpp \ - $(UPPDIR1)Core/Vcont.h \ - $(UPPDIR1)Core/Vcont.hpp \ - $(UPPDIR1)Core/Win32Util.h \ - $(UPPDIR1)Core/XML.h \ - $(UPPDIR1)Core/Xmlize.h \ - $(UPPDIR1)Core/Xmlize.hpp \ - $(UPPDIR1)Core/z.h \ - $(UPPDIR1)CtrlCore/CtrlCore.h \ - $(UPPDIR1)CtrlCore/CtrlCore.iml \ - $(UPPDIR1)CtrlCore/MKeys.h \ - $(UPPDIR1)CtrlCore/TopWindow.h \ - $(UPPDIR1)CtrlCore/VirtualPopup.cpp \ - $(UPPDIR1)Draw/Cham.h \ - $(UPPDIR1)Draw/DDARasterizer.h \ - $(UPPDIR1)Draw/Display.h \ - $(UPPDIR1)Draw/Draw.h \ - $(UPPDIR1)Draw/DrawImg.iml \ - $(UPPDIR1)Draw/FontInt.h \ - $(UPPDIR1)Draw/Image.h \ - $(UPPDIR1)Draw/ImageOp.h \ - $(UPPDIR1)Draw/iml_header.h \ - $(UPPDIR1)Draw/Raster.h \ - $(UPPDIR1)Draw/SDraw.h \ - $(UPPDIR1)Draw/SIMD.h \ - $(UPPDIR1)guiplatform.h \ - $(UPPDIR1)Painter/BufferPainter.h \ - $(UPPDIR1)Painter/LinearPath.h \ - $(UPPDIR1)Painter/Painter.h \ - $(UPPDIR1)Painter/Painter.hpp \ - $(UPPDIR1)Painter/Painting.h \ - $(UPPDIR1)plugin/png/png.h \ - $(UPPDIR1)RichText/Diagram.h \ - $(UPPDIR1)RichText/Para.h \ - $(UPPDIR1)RichText/RichText.h \ - $(UPPDIR1)RichText/RichText.iml \ - $(UPPDIR1)RichText/Table.h \ - $(UPPDIR1)RichText/Text.h \ - $(UPPDIR1)RichText/Txt.h \ - $(UPPDIR1)uppconfig.h - $(CXX) -c -x c++ $(CXXFLAGS) $(CINC) $(Macro_CtrlCore) $(UPPDIR1)CtrlCore/VirtualPopup.cpp -o $(OutDir_CtrlCore)VirtualPopup.o - $(OutDir_CtrlCore)TopWindow.o: $(UPPDIR1)CtrlCore/TopWindow.cpp \ $(UPPDIR1)Core/Algo.h \ $(UPPDIR1)Core/App.h \ @@ -80910,7 +80791,6 @@ $(OutDir_CtrlCore)CtrlCore.a: \ $(OutDir_CtrlCore)LocalLoop.o \ $(OutDir_CtrlCore)Preedit.o \ $(OutDir_CtrlCore)CtrlCoreInit.o \ - $(OutDir_CtrlCore)VirtualPopup.o \ $(OutDir_CtrlCore)TopWindow.o \ $(OutDir_CtrlCore)DrawWin32.o \ $(OutDir_CtrlCore)DrawOpWin32.o \ @@ -80977,7 +80857,6 @@ $(OutDir_CtrlCore)CtrlCore.a: \ $(OutDir_CtrlCore)LocalLoop.o \ $(OutDir_CtrlCore)Preedit.o \ $(OutDir_CtrlCore)CtrlCoreInit.o \ - $(OutDir_CtrlCore)VirtualPopup.o \ $(OutDir_CtrlCore)TopWindow.o \ $(OutDir_CtrlCore)DrawWin32.o \ $(OutDir_CtrlCore)DrawOpWin32.o \ diff --git a/uppsrc/CtrlCore/CocoApp.mm b/uppsrc/CtrlCore/CocoApp.mm index 4dec97d6b..6b1b855d9 100644 --- a/uppsrc/CtrlCore/CocoApp.mm +++ b/uppsrc/CtrlCore/CocoApp.mm @@ -285,7 +285,7 @@ void WakeUpGuiThread(void) } } -Rect Ctrl::GetWndWorkArea() const +Rect Ctrl::GetWorkArea() const { return StdGetWorkArea(); } @@ -296,7 +296,7 @@ Rect MakeScreenRect(NSScreen *screen, CGRect r) return MakeRect(r, Upp::Ctrl::SCL(1)); } -void Ctrl::GetWorkAreas(Array& rc) +void Ctrl::GetWorkArea(Array& rc) { Upp::GuiLock __; for(NSScreen *screen in [NSScreen screens]) @@ -307,7 +307,7 @@ void Ctrl::GetWorkAreas(Array& rc) Rect Ctrl::GetVirtualWorkArea() { Array rc; - GetWorkAreas(rc); + GetWorkArea(rc); Rect r(0, 0, 0, 0); for(int i = 0; i < rc.GetCount(); i++) if(i) @@ -335,7 +335,7 @@ Rect Ctrl::GetVirtualScreenArea() Rect Ctrl::GetPrimaryWorkArea() { Array rc; - GetWorkAreas(rc); + GetWorkArea(rc); return rc.GetCount() ? rc[0] : Rect(0, 0, 0, 0); } diff --git a/uppsrc/CtrlCore/CocoWin.mm b/uppsrc/CtrlCore/CocoWin.mm index 818bbf643..783eadc3c 100644 --- a/uppsrc/CtrlCore/CocoWin.mm +++ b/uppsrc/CtrlCore/CocoWin.mm @@ -37,7 +37,7 @@ static Vector> mmtopctrl; // should work without Ptr, but let us be de bool Ctrl::always_use_bundled_icon = false; -Ctrl *Ctrl::GetOwnerWnd() +Ctrl *Ctrl::GetOwner() { GuiLock __; return top && GetTop()->coco ? GetTop()->coco->owner : NULL; @@ -177,7 +177,7 @@ void Ctrl::WndDestroy() owner->SetWndFocus(); } -Vector Ctrl::GetTopWndCtrls() +Vector Ctrl::GetTopCtrls() { Vector h; for(Ctrl *p : mmtopctrl) diff --git a/uppsrc/CtrlCore/Ctrl.cpp b/uppsrc/CtrlCore/Ctrl.cpp index d083ba456..31d4b7fba 100644 --- a/uppsrc/CtrlCore/Ctrl.cpp +++ b/uppsrc/CtrlCore/Ctrl.cpp @@ -288,7 +288,7 @@ bool Ctrl::IsOpen() const { GuiLock __; const Ctrl *q = GetTopCtrl(); - return q->IsVirtualPopUp() || q->isopen && q->IsWndOpen(); + return q->isopen && q->IsWndOpen(); } void Ctrl::Show(bool ashow) { @@ -626,10 +626,7 @@ void Ctrl::Close() if(GetParent()) return; StateH(CLOSE); USRLOG(" CLOSE " + Desc(this)); - if(IsVirtualPopUp()) - CloseVirtualPopUp(); - else - WndDestroy(); + WndDestroy(); visible = true; popup = false; } @@ -864,14 +861,6 @@ static bool _ClickFocus; bool Ctrl::ClickFocus() { return _ClickFocus; } void Ctrl::ClickFocus(bool cf) { _ClickFocus = cf; } -Vector Ctrl::GetTopCtrls() -{ - Vector tops = GetTopWndCtrls(); - for(Ctrl *c : virtual_popups) - if(c) - tops << c; - return tops; -} Vector Ctrl::GetTopWindows() { diff --git a/uppsrc/CtrlCore/CtrlChild.cpp b/uppsrc/CtrlCore/CtrlChild.cpp index a7d40d34f..58a6d9da1 100644 --- a/uppsrc/CtrlCore/CtrlChild.cpp +++ b/uppsrc/CtrlCore/CtrlChild.cpp @@ -285,15 +285,6 @@ Ctrl *Ctrl::GetTopCtrl() } } -Ctrl *Ctrl::GetOwner() -{ - if(IsVirtualPopUp()) { - Top *top = GetTop(); - return top ? top->owner->GetTopWindow() : nullptr; - } - return GetOwnerWnd(); -} - const Ctrl *Ctrl::GetTopCtrl() const { return const_cast(this)->GetTopCtrl(); } const Ctrl *Ctrl::GetOwner() const { return const_cast(this)->GetOwner(); } Ctrl *Ctrl::GetTopCtrlOwner() { return GetTopCtrl()->GetOwner(); } @@ -312,7 +303,7 @@ TopWindow *Ctrl::GetTopWindow() if(w) return w; q = q->GetOwner(); } - return nullptr; + return NULL; } const TopWindow *Ctrl::GetTopWindow() const diff --git a/uppsrc/CtrlCore/CtrlCore.h b/uppsrc/CtrlCore/CtrlCore.h index 9dd25e8fa..f93b3f332 100644 --- a/uppsrc/CtrlCore/CtrlCore.h +++ b/uppsrc/CtrlCore/CtrlCore.h @@ -504,14 +504,12 @@ private: }; friend struct UDropTarget; - + struct Top { GUIPLATFORM_CTRL_TOP_DECLS - Ptr owner; - bool virtual_dropshadow = false; + Ptr owner; }; - - static Vector> virtual_popups; + Frame frame; LogPos pos;//8 @@ -635,10 +633,8 @@ private: Image FrameMouseEventH(int event, Point p, int zdelta, dword keyflags); Image MEvent0(int e, Point p, int zd); Image DispatchMouse(int e, Point p, int zd = 0); - Image DispatchMouse2(int e, Point p, int zd); Image DispatchMouseEvent(int e, Point p, int zd = 0); void LogMouseEvent(const char *f, const Ctrl *ctrl, int event, Point p, int zdelta, dword keyflags); - Ctrl *GetTopCaptureCtrl() const; struct CallBox; static void PerformCall(CallBox *cbox); @@ -711,8 +707,6 @@ private: static void DoKillFocus(Ptr pfocusCtrl, Ptr nfocusCtrl); static void DoSetFocus(Ptr pfocusCtrl, Ptr nfocusCtrl, bool activate); - Ctrl *GetOwnerWnd(); - bool SetFocus0(bool activate); void ActivateWnd(); void ClickActivateWnd(); @@ -734,10 +728,6 @@ private: void WndFree(); void WndDestroy(); - Rect GetWndWorkArea() const; - - static Vector GetTopWndCtrls(); - void SysEndLoop(); String Name0() const; @@ -1335,6 +1325,7 @@ public: bool IsPopUp() const { return popup; } + static void EventLoop(Ctrl *loopctrl = NULL); static int GetLoopLevel() { return LoopLevel; } static Ctrl *GetLoopCtrl() { return LoopCtrl; } @@ -1395,11 +1386,9 @@ public: static Rect GetVirtualScreenArea(); static Rect GetPrimaryWorkArea(); static Rect GetPrimaryScreenArea(); - static void GetWorkAreas(Array& rc); + static void GetWorkArea(Array& rc); static Rect GetWorkArea(Point pt); - static Rect GetWorkArea(const Ctrl *owner, Point pt); static Rect GetMouseWorkArea() { return GetWorkArea(GetMousePos()); } - static Rect GetMouseWorkArea(Ctrl *owner) { return GetWorkArea(owner, GetMousePos()); } static int GetKbdDelay(); static int GetKbdSpeed(); static bool IsAlphaSupported(); @@ -1444,19 +1433,6 @@ public: Ctrl(); virtual ~Ctrl(); -#ifndef flagDEVELOP_VIRTUALPOPUPS // .Makes virtual popup interface public -private: -#endif - Image VirtualPopUpDropShadow(); - Rect GetVirtualPopUpOverRect(); - void RefreshVirtualPopUp(); - void VirtualPopUp(Ctrl *owner, bool activate, bool dropshadow = false); - bool IsVirtualPopUp() const; - Rect GetVirtualPopUpRect(const Rect& vp_frame_rect) const; - Rect GetVirtualPopUpRect() const; - void CloseVirtualPopUp(); - static bool use_virtual_popups; - private: // support for for(Ctrl& q : *this) class CtrlConstIterator { protected: diff --git a/uppsrc/CtrlCore/CtrlCore.iml b/uppsrc/CtrlCore/CtrlCore.iml index 8c273764c..da5bcaf10 100644 --- a/uppsrc/CtrlCore/CtrlCore.iml +++ b/uppsrc/CtrlCore/CtrlCore.iml @@ -1,9 +1,8 @@ PREMULTIPLIED -VERSION(20260403) -IMAGE_ID(WinClose) -IMAGE_ID(WinMinimize) -IMAGE_ID(WinMaximize) -IMAGE_ID(WinMaximized) +IMAGE_ID(WinClose__UHD) +IMAGE_ID(WinMinimize__UHD) +IMAGE_ID(WinMaximize__UHD) +IMAGE_ID(WinMaximized__UHD) IMAGE_ID(DndMoveX11) IMAGE_ID(DndMove) IMAGE_ID(DndMove98) @@ -12,6 +11,16 @@ IMAGE_ID(DndNone98) IMAGE_ID(DndCopy) IMAGE_ID(DndCopy98) IMAGE_ID(DndData) +IMAGE_ID(GtkBarButton__UHD) +IMAGE_ID(GtkBarButtonH__UHD) +IMAGE_ID(GtkBarClose__UHD) +IMAGE_ID(GtkBarMaximize__UHD) +IMAGE_ID(GtkBarMinimize__UHD) +IMAGE_ID(GtkBarOverlap__UHD) +IMAGE_ID(WinClose) +IMAGE_ID(WinMinimize) +IMAGE_ID(WinMaximize) +IMAGE_ID(WinMaximized) IMAGE_ID(GtkBarButton) IMAGE_ID(GtkBarButtonH) IMAGE_ID(GtkBarClose) @@ -20,158 +29,191 @@ IMAGE_ID(GtkBarMinimize) IMAGE_ID(GtkBarOverlap) IMAGE_BEGIN_DATA -IMAGE_DATA(120,156,237,157,109,168,101,85,25,199,31,179,102,140,130,178,140,64,168,134,96,68,36,34,10,63,164,227,84,211,64,47) -IMAGE_DATA(90,24,38,130,89,70,145,52,126,168,24,66,166,134,166,17,242,133,114,34,95,122,33,17,41,163,55,211,80,18,50,16) -IMAGE_DATA(236,131,144,31,82,199,8,211,137,26,178,105,154,9,199,33,53,199,23,102,247,44,207,89,115,207,221,103,237,189,215,222) -IMAGE_DATA(123,173,245,172,245,236,255,95,254,222,115,246,61,119,63,207,255,249,237,181,207,203,221,94,79,221,68,155,8,130,60,85) -IMAGE_DATA(205,173,85,62,249,170,154,181,201,39,95,253,49,218,102,225,155,175,233,113,26,102,209,55,155,198,89,12,205,164,105,22) -IMAGE_DATA(99,179,104,152,69,168,12,37,207,34,116,239,37,206,34,86,207,37,205,34,118,175,37,204,34,85,143,57,207,34,117,111) -IMAGE_DATA(57,206,66,170,167,156,102,33,221,139,116,253,92,122,144,238,35,151,25,72,246,147,219,12,172,82,246,149,235,12,172,82) -IMAGE_DATA(244,151,251,12,172,98,246,89,202,12,172,98,244,91,218,12,172,66,246,93,234,12,172,66,244,95,250,12,172,198,228,208) -IMAGE_DATA(50,3,171,33,121,180,205,192,170,79,46,173,51,176,242,201,167,125,6,86,109,57,167,50,3,43,204,96,69,152,193,138) -IMAGE_DATA(48,131,153,48,7,172,11,35,156,39,241,188,105,132,215,81,253,242,105,157,197,144,92,218,102,49,38,143,150,89,132,200) -IMAGE_DATA(81,250,44,66,246,95,234,44,98,244,93,218,44,98,246,91,202,44,82,244,153,251,44,82,246,151,235,44,36,250,202,109) -IMAGE_DATA(22,146,253,228,50,139,28,250,144,238,65,186,126,14,189,228,52,3,169,158,114,156,129,85,170,222,114,158,129,85,236,30) -IMAGE_DATA(75,152,129,85,172,94,75,154,129,85,232,158,75,156,129,85,168,222,75,158,129,213,216,12,26,102,96,53,52,139,166,25) -IMAGE_DATA(88,245,205,164,113,6,86,125,178,105,157,129,213,152,99,66,155,134,156,35,180,74,123,62,40,128,78,221,64,27,164,123) -IMAGE_DATA(128,32,8,130,32,8,130,32,8,130,32,8,130,32,8,130,244,171,237,23,123,48,12,195,176,156,33,8,130,32,8,130) -IMAGE_DATA(32,8,130,32,8,130,32,8,130,32,8,130,32,8,154,136,124,254,99,194,106,237,9,39,28,51,201,255,66,211,203,142) -IMAGE_DATA(158,59,115,182,252,108,246,110,233,185,53,171,194,188,245,204,226,189,38,242,20,243,74,247,144,212,30,235,180,52,181,102) -IMAGE_DATA(236,177,198,75,210,144,188,165,171,207,49,172,42,175,167,75,23,242,34,47,242,150,43,228,69,94,228,45,87,200,139,188) -IMAGE_DATA(200,91,174,144,23,121,145,183,92,33,47,242,34,111,185,66,94,228,69,222,114,133,188,200,139,188,229,10,121,145,23,121) -IMAGE_DATA(203,21,242,34,47,242,150,43,228,69,94,228,45,87,206,92,83,187,158,16,215,139,22,159,185,207,49,60,5,59,103,162) -IMAGE_DATA(212,86,210,125,164,206,187,148,185,196,99,126,192,185,87,107,222,46,105,201,187,164,144,255,103,66,137,144,82,18,135,27) -IMAGE_DATA(63,226,42,73,103,77,153,91,58,95,202,220,210,153,82,103,150,206,147,195,241,157,74,83,204,108,133,204,211,200,108,132) -IMAGE_DATA(204,250,243,26,13,205,156,197,155,135,49,127,92,195,51,111,91,173,28,242,122,177,242,204,236,91,43,135,188,67,51,251) -IMAGE_DATA(204,36,103,35,111,217,121,130,103,46,224,195,247,174,158,189,127,206,241,179,185,101,181,74,145,55,55,5,201,219,226,220) -IMAGE_DATA(20,251,156,149,155,144,23,121,125,30,143,188,200,155,131,144,23,121,125,30,143,188,200,155,131,144,23,121,125,30,143,188) -IMAGE_DATA(200,155,131,144,23,121,125,30,143,188,200,155,131,144,23,121,125,30,63,165,188,67,246,35,165,49,121,199,236,71,74,67) -IMAGE_DATA(243,142,221,143,148,66,245,137,188,138,243,42,254,125,168,83,138,127,223,237,148,226,235,25,188,247,87,152,135,72,186,231) -IMAGE_DATA(148,89,167,152,119,41,115,225,215,19,246,206,156,121,222,208,202,53,239,120,173,227,127,22,131,6,217,233,112,217,96,155) -IMAGE_DATA(231,126,75,234,250,70,243,30,110,97,95,146,184,135,202,106,222,195,93,137,123,168,22,37,208,67,85,87,226,30,150,234) -IMAGE_DATA(39,238,193,89,63,97,15,141,245,19,245,208,90,63,65,15,157,245,35,247,208,85,211,122,63,251,1,246,213,236,83,98) -IMAGE_DATA(213,167,229,243,145,169,251,87,246,253,20,231,252,184,148,215,81,223,212,254,46,197,121,126,168,215,218,239,232,193,212,223) -IMAGE_DATA(25,161,54,209,10,223,223,209,108,206,119,57,234,155,237,102,246,155,35,213,191,152,253,115,90,57,190,55,56,122,136,57) -IMAGE_DATA(3,147,235,75,180,250,216,74,57,3,83,243,20,90,206,214,52,131,84,106,154,65,74,45,214,150,168,111,152,92,50,175) -IMAGE_DATA(107,207,63,169,101,122,144,122,125,10,65,16,20,71,153,126,24,176,126,238,215,166,174,191,240,100,107,158,104,206,72,220) -IMAGE_DATA(67,253,9,255,178,196,61,184,222,128,164,236,161,233,77,80,170,30,150,234,39,238,193,89,63,97,15,141,245,19,245,208) -IMAGE_DATA(90,63,65,15,157,245,35,247,208,85,211,250,78,246,119,216,31,99,159,20,171,62,45,159,143,76,221,31,177,191,69,113) -IMAGE_DATA(206,143,75,121,29,245,77,237,79,80,156,231,135,122,173,59,29,61,152,250,103,71,168,77,180,194,119,59,205,230,124,153) -IMAGE_DATA(163,190,217,110,102,191,62,82,253,211,217,151,210,202,241,189,206,209,67,204,25,152,92,239,165,213,199,86,202,25,152,154) -IMAGE_DATA(39,209,114,182,148,51,112,41,229,12,26,123,88,168,45,81,223,204,250,140,121,93,137,215,103,182,7,169,215,167,16,4) -IMAGE_DATA(65,113,148,233,135,1,98,245,23,158,108,197,234,11,246,224,122,3,34,86,95,160,135,165,250,137,123,112,214,79,216,67) -IMAGE_DATA(99,253,68,61,180,214,79,208,67,103,253,200,61,116,213,76,154,159,210,159,143,150,242,74,212,175,213,74,217,131,171,70) -IMAGE_DATA(234,250,206,237,137,57,228,82,191,241,88,180,95,247,238,221,187,234,126,215,215,190,197,235,251,168,247,51,224,235,144,252) -IMAGE_DATA(199,238,247,205,80,207,18,251,103,58,118,55,54,255,168,226,132,252,200,31,249,103,58,118,55,52,127,176,175,125,139,71) -IMAGE_DATA(232,1,106,82,166,31,6,224,202,0,194,149,1,2,61,44,213,79,220,131,179,126,194,30,26,235,39,234,161,181,126,130) -IMAGE_DATA(30,58,235,71,238,161,171,166,53,174,12,200,235,202,128,53,199,17,93,248,62,162,61,87,18,29,189,129,31,247,117,162) -IMAGE_DATA(23,223,70,116,31,245,187,148,221,214,232,115,101,192,154,87,19,237,250,6,209,225,31,18,61,251,97,162,127,158,78,244) -IMAGE_DATA(232,167,136,246,221,198,189,124,145,104,255,90,162,173,252,184,151,121,214,239,117,101,192,241,156,251,122,174,253,53,162,67) -IMAGE_DATA(124,251,155,188,237,3,236,141,175,32,186,134,251,57,122,136,31,127,57,247,197,219,206,98,191,220,163,135,94,87,6,112) -IMAGE_DATA(19,123,238,33,122,225,85,68,223,231,251,140,128,222,206,121,47,231,70,254,251,32,215,231,5,178,255,97,254,153,55,17) -IMAGE_DATA(253,154,191,119,50,251,184,142,250,189,174,12,216,197,53,56,251,127,248,246,249,236,119,176,63,119,45,209,145,71,120,59) -IMAGE_DATA(243,127,128,3,95,241,51,162,231,63,78,244,24,127,239,253,236,53,30,51,112,201,57,3,115,172,109,33,250,55,223,222) -IMAGE_DATA(196,185,175,48,181,31,226,218,235,103,199,158,57,63,108,249,1,209,51,23,17,237,229,219,231,177,95,51,176,62,209,202) -IMAGE_DATA(241,121,236,202,128,107,248,56,231,89,31,230,80,63,229,129,60,245,200,74,109,46,73,103,114,254,79,222,206,124,206,155) -IMAGE_DATA(229,55,253,188,110,68,253,165,43,3,248,96,189,239,15,92,147,155,57,250,224,124,230,243,58,103,178,79,230,94,238,48) -IMAGE_DATA(252,79,36,186,109,190,237,196,17,245,109,15,199,94,159,242,193,180,249,43,124,140,29,224,26,12,119,31,111,219,193,190) -IMAGE_DATA(128,253,145,55,16,221,252,11,162,231,62,77,116,208,220,103,191,139,253,202,145,245,151,196,179,223,250,5,94,99,191,229) -IMAGE_DATA(252,188,104,15,243,201,113,207,85,68,7,238,230,158,184,145,131,188,22,191,202,15,123,15,251,205,228,119,30,232,43,179) -IMAGE_DATA(207,179,94,207,107,236,163,204,153,235,255,253,131,124,14,226,53,249,75,222,206,167,36,218,200,126,43,123,109,132,218,86) -IMAGE_DATA(230,220,98,214,183,89,99,230,56,63,151,253,110,246,59,105,150,59,102,109,43,115,110,49,235,219,172,49,115,156,155,99) -IMAGE_DATA(205,240,142,49,115,8,10,171,76,63,12,16,171,191,240,100,43,86,95,176,7,215,27,16,177,250,2,61,44,213,79,220) -IMAGE_DATA(131,179,126,194,30,26,235,39,234,161,181,126,130,30,58,235,71,238,161,171,102,210,252,148,254,124,180,148,87,162,126,173) -IMAGE_DATA(150,79,15,111,52,255,226,55,101,21,191,8,175,110,152,189,1,174,62,219,191,103,87,141,174,250,47,213,230,55,165,213) -IMAGE_DATA(205,179,55,134,199,204,111,194,170,237,253,122,104,122,108,107,15,55,241,182,43,29,219,111,228,109,135,26,190,215,83,141) -IMAGE_DATA(245,77,206,123,29,251,191,142,183,241,155,226,234,66,246,195,195,88,120,245,240,109,190,125,117,109,223,223,227,251,127,153) -IMAGE_DATA(215,54,247,111,141,88,223,28,107,95,94,184,111,106,239,94,168,109,100,143,139,145,245,137,28,199,167,201,127,253,124,219) -IMAGE_DATA(117,181,220,86,119,240,253,207,132,169,191,177,190,193,228,186,159,253,227,5,222,245,199,4,226,223,40,115,124,155,15,3) -IMAGE_DATA(206,118,212,184,61,220,236,91,181,149,107,152,55,255,59,216,151,206,207,65,230,254,197,203,181,163,189,41,54,51,190,104) -IMAGE_DATA(158,247,252,200,51,207,84,199,211,252,124,92,83,138,15,34,32,104,156,50,253,48,0,87,6,16,174,12,16,232,97,169) -IMAGE_DATA(126,226,30,156,245,19,246,208,88,63,81,15,173,245,19,244,208,89,63,114,15,93,53,113,101,64,158,87,6,4,171,63) -IMAGE_DATA(119,73,127,51,160,126,108,186,252,161,249,126,124,212,247,111,6,84,215,254,170,170,62,191,171,170,46,216,89,85,231,110) -IMAGE_DATA(159,217,220,54,219,230,143,63,103,222,131,143,250,254,205,128,234,247,15,85,213,141,191,169,170,171,126,50,251,222,142,155) -IMAGE_DATA(102,183,205,182,249,99,205,31,188,220,226,89,191,73,77,51,168,30,253,71,85,221,243,199,170,186,245,222,217,247,110,185) -IMAGE_DATA(123,118,219,108,11,88,159,104,133,231,226,223,12,168,246,63,177,116,126,122,201,127,250,91,240,250,174,191,25,80,29,126) -IMAGE_DATA(186,170,30,63,88,85,143,61,62,171,247,231,189,179,219,102,91,224,250,182,135,197,215,167,213,255,158,171,170,39,159,170) -IMAGE_DATA(170,3,79,206,234,253,235,137,217,109,179,45,66,253,186,170,23,94,172,170,35,207,87,213,51,71,170,234,233,103,103,54) -IMAGE_DATA(183,205,182,20,245,61,28,179,190,89,215,231,204,107,52,185,207,250,239,171,117,243,125,111,105,113,159,243,31,4,201,40) -IMAGE_DATA(211,15,3,196,234,47,60,217,138,213,23,236,193,245,6,68,172,190,64,15,75,245,19,247,224,172,159,176,135,198,250,137) -IMAGE_DATA(122,104,173,159,160,135,206,250,145,123,232,170,153,52,63,165,63,31,45,229,149,168,95,171,149,178,7,87,141,212,245,157) -IMAGE_DATA(219,91,122,240,121,51,48,186,175,182,250,17,215,106,227,177,232,218,94,95,51,245,199,244,237,165,94,171,105,159,93,245) -IMAGE_DATA(107,95,135,228,63,118,223,145,97,85,79,139,94,204,60,38,191,79,143,29,243,119,101,241,109,33,72,253,84,249,235,162) -IMAGE_DATA(4,249,61,28,51,127,159,221,197,200,239,189,35,42,55,127,176,175,125,139,71,232,1,106,210,58,124,96,5,65,16,4) -IMAGE_DATA(65,16,180,168,169,191,24,14,246,2,122,76,254,16,245,9,249,145,31,249,241,97,0,212,168,211,182,209,54,233,30,162) -IMAGE_DATA(105,231,206,157,213,24,75,247,15,173,104,44,75,48,207,75,169,120,130,119,58,245,157,253,190,125,251,70,25,172,227,43) -IMAGE_DATA(21,203,208,204,165,231,150,187,114,225,57,150,183,244,28,115,83,9,76,135,176,150,158,171,180,74,230,10,206,205,210,196) -IMAGE_DATA(21,156,87,75,43,87,95,206,210,243,143,165,169,112,157,34,231,41,114,245,225,44,205,101,172,192,85,47,103,176,213,203) -IMAGE_DATA(24,108,245,50,6,215,113,156,165,249,181,9,108,245,50,6,91,189,140,193,86,47,99,176,213,203,24,108,245,50,6,91) -IMAGE_DATA(189,140,193,86,47,99,176,213,205,24,108,101,25,167,98,11,190,50,124,99,49,6,91,221,140,193,86,222,177,248,130,109) -IMAGE_DATA(62,14,205,24,231,229,188,28,250,60,13,182,249,57,20,95,172,221,60,29,106,13,131,109,190,30,203,23,107,55,111,143) -IMAGE_DATA(93,195,96,155,191,135,242,197,218,45,195,67,215,48,216,150,227,190,124,177,118,203,114,223,53,12,182,229,25,124,117,219) -IMAGE_DATA(151,47,216,150,107,31,198,224,91,174,193,87,183,187,248,130,109,249,110,99,12,190,229,27,124,117,27,124,117,187,137,47) -IMAGE_DATA(216,234,177,139,49,248,234,49,248,234,54,248,234,54,248,234,118,157,47,216,234,115,253,119,134,224,171,203,224,171,219,224) -IMAGE_DATA(171,219,224,171,219,224,171,219,224,171,219,224,171,219,224,171,219,224,171,219,224,171,219,224,171,219,224,171,219,224,171,219) -IMAGE_DATA(224,171,219,224,171,219,248,29,176,94,227,250,13,221,6,95,221,6,95,221,6,95,221,118,241,5,99,29,110,98,11,190) -IMAGE_DATA(58,12,190,186,13,190,186,221,198,23,140,203,118,23,91,240,45,219,224,171,219,62,124,193,184,76,251,178,5,223,50,61) -IMAGE_DATA(148,47,24,231,239,58,175,46,190,88,195,101,185,47,91,172,225,114,60,100,237,98,13,151,227,161,108,177,134,243,247,152) -IMAGE_DATA(181,139,53,156,191,199,178,197,26,206,215,33,214,46,214,112,190,14,197,22,107,56,63,135,92,187,88,195,249,57,52,91) -IMAGE_DATA(48,206,199,177,216,214,249,130,177,44,219,24,124,193,88,55,91,23,99,233,220,83,113,42,182,117,190,96,156,150,109,10) -IMAGE_DATA(190,96,172,155,45,24,235,103,11,198,250,217,130,177,126,182,86,96,172,151,173,21,24,235,101,107,5,198,122,217,90,129) -IMAGE_DATA(177,94,182,86,245,158,193,185,155,107,41,108,173,192,88,47,91,43,48,214,203,118,81,224,172,147,235,162,92,249,166,192) -IMAGE_DATA(185,41,183,52,143,88,154,10,231,169,113,93,84,83,118,13,156,219,178,73,207,61,181,52,113,6,215,102,149,204,25,92) -IMAGE_DATA(253,213,54,171,156,88,119,245,41,61,199,220,213,53,191,212,188,125,251,145,158,91,137,242,157,109,40,230,125,235,73,207) -IMAGE_DATA(71,147,250,206,62,150,165,231,48,21,129,231,244,4,150,171,117,218,54,218,38,221,67,52,1,182,30,225,100,173,75,210) -IMAGE_DATA(47,178,192,59,188,250,206,126,247,238,221,163,12,214,241,149,138,101,104,230,210,115,203,93,185,240,28,203,91,122,142,185) -IMAGE_DATA(169,4,166,67,88,75,207,85,90,37,115,5,231,102,105,226,10,206,171,165,149,171,47,103,233,249,199,210,84,184,78,145) -IMAGE_DATA(243,20,185,250,112,150,230,50,86,224,170,151,51,216,234,101,12,182,122,25,131,235,56,206,210,252,218,4,182,122,25,131) -IMAGE_DATA(173,94,198,96,171,151,49,216,234,101,12,182,122,25,131,173,94,198,96,171,151,49,216,234,102,12,182,178,140,83,177,5) -IMAGE_DATA(95,25,190,177,24,131,173,110,198,96,43,239,88,124,193,54,31,135,102,140,243,114,94,14,125,158,6,219,252,28,138,47) -IMAGE_DATA(214,110,158,14,181,134,193,54,95,143,229,139,181,155,183,199,174,97,176,205,223,67,249,98,237,150,225,161,107,24,108,203) -IMAGE_DATA(113,95,190,88,187,101,185,239,26,6,219,242,12,190,186,237,203,23,108,203,181,15,99,240,45,215,224,171,219,93,124,193) -IMAGE_DATA(182,124,183,49,6,223,242,13,190,186,13,190,186,221,196,23,108,245,216,197,24,124,245,24,124,117,27,124,117,27,124,117) -IMAGE_DATA(187,206,23,108,245,185,254,59,67,240,213,101,240,213,109,240,213,109,240,213,109,240,213,109,240,213,109,240,213,109,240,213) -IMAGE_DATA(109,240,213,109,240,213,109,240,213,109,240,213,109,240,213,109,240,213,109,240,213,109,252,14,88,175,113,253,134,110,131,175) -IMAGE_DATA(110,131,175,110,131,175,110,187,248,130,177,14,55,177,5,95,29,6,95,221,6,95,221,110,227,11,198,101,187,139,45,248) -IMAGE_DATA(150,109,240,213,109,31,190,96,92,166,125,217,130,111,153,30,202,23,140,243,119,157,87,23,95,172,225,178,220,151,45,214) -IMAGE_DATA(112,57,30,178,118,177,134,203,241,80,182,88,195,249,123,204,218,197,26,206,223,99,217,98,13,231,235,16,107,23,107,56) -IMAGE_DATA(95,135,98,139,53,156,159,67,174,93,172,225,252,28,154,45,24,231,227,88,108,235,124,193,88,150,109,12,190,96,172,155) -IMAGE_DATA(173,139,177,116,238,169,56,21,219,58,95,48,78,203,54,5,95,48,214,205,22,140,245,179,5,99,253,108,193,88,63,91) -IMAGE_DATA(43,48,214,203,214,10,140,245,178,181,2,99,189,108,173,192,88,47,91,171,122,207,224,220,205,181,20,182,86,96,172,151) -IMAGE_DATA(173,21,24,235,101,187,40,112,214,201,117,81,174,124,83,224,220,148,91,154,71,44,77,133,243,212,184,46,170,41,187,6) -IMAGE_DATA(206,109,217,164,231,158,90,154,56,131,107,179,74,230,12,174,254,106,155,85,78,172,187,250,148,158,99,238,234,154,95,106) -IMAGE_DATA(222,190,253,72,207,173,68,249,206,54,20,243,190,245,164,231,163,73,125,103,31,203,210,115,152,138,192,115,122,2,203,213) -IMAGE_DATA(250,63,95,245,29,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) -IMAGE_END_DATA(3904, 14) +IMAGE_DATA(120,156,237,150,91,10,194,64,16,4,61,142,231,240,254,119,138,136,54,129,128,178,143,217,157,238,118,10,242,23,72,117) +IMAGE_DATA(145,215,253,113,123,220,138,162,145,227,115,184,210,178,239,184,28,110,180,236,187,158,227,214,162,117,223,183,243,28,90,244) +IMAGE_DATA(110,115,108,49,186,201,169,197,236,22,135,22,81,27,148,91,68,187,43,182,88,229,172,212,98,181,171,66,139,93,142,204) +IMAGE_DATA(45,118,187,49,182,200,114,98,106,145,237,146,125,125,22,135,108,15,150,6,153,62,108,13,192,78,47,214,6,96,135,31) +IMAGE_DATA(123,3,176,210,83,165,1,88,225,171,214,0,68,122,171,54,0,17,254,234,13,192,204,14,151,6,96,100,143,91,3,208) +IMAGE_DATA(179,203,181,1,104,217,231,222,0,252,218,249,47,13,64,53,56,169,6,39,213,224,77,117,168,231,226,69,189,39,235,187) +IMAGE_DATA(249,162,254,163,250,246,185,182,24,217,229,214,98,102,143,75,139,136,29,234,45,34,253,85,91,172,240,86,107,177,210,87) +IMAGE_DATA(165,197,14,79,246,22,59,253,88,91,100,120,177,181,200,244,97,105,193,224,145,237,144,125,125,6,23,166,6,89,78,140) +IMAGE_DATA(13,192,46,55,230,6,96,181,163,66,3,176,202,85,169,1,136,118,86,108,0,162,220,149,27,128,217,13,14,13,192,232) +IMAGE_DATA(22,167,6,160,119,147,99,3,208,179,205,181,1,152,185,39,220,24,121,71,184,226,190,175,8,224,9,0,58,37,178,0) +IMAGE_END_DATA(320, 1) IMAGE_BEGIN_DATA -IMAGE_DATA(120,156,237,216,65,110,26,80,16,68,65,206,227,19,178,244,205,201,54,11,12,177,205,103,186,39,85,210,223,143,250,73) -IMAGE_DATA(8,248,184,94,174,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,184,219,244,1,119,36,222,212) -IMAGE_DATA(232,246,215,75,145,120,83,163,219,157,55,45,241,166,70,247,118,156,222,51,241,166,102,73,123,38,221,178,73,194,174,9) -IMAGE_DATA(55,108,54,185,175,182,239,49,177,179,182,239,245,206,189,181,157,241,142,221,181,157,117,114,127,109,51,156,232,160,109,150) -IMAGE_DATA(87,246,208,54,211,43,186,104,155,237,55,125,180,237,240,147,78,218,118,249,78,47,109,59,253,75,55,109,187,61,234,167) -IMAGE_DATA(237,14,218,238,167,237,126,218,238,166,239,94,62,159,247,242,253,106,47,191,143,246,242,255,198,94,223,233,166,113,151,159) -IMAGE_DATA(244,210,184,195,111,58,105,156,237,21,125,52,206,244,202,46,26,103,57,209,67,227,12,39,59,104,60,235,29,251,107,60) -IMAGE_DATA(227,157,187,107,252,94,19,123,107,252,30,147,59,107,124,86,194,190,9,55,108,148,180,107,210,45,27,36,238,153,120,83) -IMAGE_DATA(179,196,29,19,111,106,150,184,99,226,77,205,18,119,76,188,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) -IMAGE_DATA(0,0,86,248,184,94,174,211,55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,247,221,202,31,143,77) -IMAGE_DATA(247,209,247,172,233,62,250,158,53,221,71,223,179,166,251,232,123,214,116,31,125,207,106,217,173,229,206,52,45,187,181,220) -IMAGE_DATA(153,166,101,183,150,59,211,180,236,214,114,103,154,150,221,90,238,76,211,178,91,203,157,105,90,118,107,185,51,77,203,110) -IMAGE_DATA(45,119,166,105,217,173,229,206,52,45,187,181,220,153,166,101,183,150,59,211,180,236,214,114,103,154,150,221,90,238,76,211) -IMAGE_DATA(178,91,203,157,105,90,118,107,185,51,77,203,110,45,119,166,105,217,173,229,206,52,45,187,181,220,153,166,101,183,150,59) -IMAGE_DATA(211,180,236,214,114,103,154,150,221,90,238,76,211,178,91,203,157,105,90,118,107,185,51,77,203,110,45,119,166,105,217,173) -IMAGE_DATA(229,206,52,45,187,181,220,153,166,101,183,150,59,211,180,236,214,114,103,154,150,221,90,238,76,211,178,91,203,157,105,90) -IMAGE_DATA(118,107,185,51,77,203,110,45,119,166,105,217,173,229,206,52,45,187,181,220,153,166,101,183,150,59,211,180,236,214,114,103) -IMAGE_DATA(154,175,118,107,121,60,54,221,71,223,179,166,251,232,123,214,116,31,125,207,154,238,163,239,89,211,125,244,5,0,0,0) -IMAGE_DATA(0,0,0,0,0,0,0,0,0,0,0,0,128,37,62,174,151,235,244,13,0,0,0,0,0,0,0,0,0,0,0,0) -IMAGE_DATA(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,220,173,252,241,216,116,31) -IMAGE_DATA(125,207,154,238,163,239,89,211,125,244,61,107,186,143,190,103,77,247,209,23,0,0,0,0,0,0,0,0,0,0,0,0) -IMAGE_DATA(0,0,0,0,150,248,184,94,174,211,55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,92,62,63,63,111,109,111) -IMAGE_DATA(122,179,38,211,173,244,61,107,186,149,190,103,77,183,210,247,172,233,86,250,158,53,221,74,223,255,151,190,187,233,187,155) -IMAGE_DATA(190,187,233,187,155,190,187,233,251,212,173,228,221,165,239,83,211,221,244,61,107,186,155,190,103,77,119,211,247,172,233,110) -IMAGE_DATA(250,158,53,221,77,223,179,190,181,103,218,61,250,62,165,239,110,250,238,166,239,110,250,238,166,239,110,250,238,166,239,110) -IMAGE_DATA(250,238,166,239,110,250,238,166,239,110,250,238,166,239,110,250,238,166,239,110,250,238,166,239,110,250,238,166,239,110,250,238) -IMAGE_DATA(166,239,110,250,238,166,239,110,250,238,166,239,110,250,238,86,221,151,167,210,246,76,187,167,93,218,158,105,247,180,251,106) -IMAGE_DATA(207,180,199,207,76,119,211,247,172,233,110,250,158,53,221,77,223,179,166,187,233,123,214,116,55,125,1,0,0,0,0,0) -IMAGE_DATA(0,0,0,0,0,0,0,0,0,0,96,161,63,198,138,116,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) -IMAGE_END_DATA(928, 4) +IMAGE_DATA(120,156,237,219,59,14,130,64,0,69,81,58,89,10,139,96,255,219,194,74,11,33,195,39,145,225,205,156,147,188,210,100) +IMAGE_DATA(174,1,26,113,154,135,121,0,0,0,0,0,128,63,91,204,204,236,145,3,0,0,0,0,0,0,58,49,29,248,51,225) +IMAGE_DATA(242,26,199,239,134,250,63,104,30,218,198,153,119,59,11,159,125,252,10,103,46,182,54,216,251,219,92,253,172,55,173,199) +IMAGE_DATA(222,218,103,184,117,7,238,211,52,197,198,19,247,120,146,43,189,233,206,92,195,77,245,30,92,58,189,122,245,230,210,171) +IMAGE_DATA(87,111,46,189,122,245,230,210,171,87,111,46,189,122,245,230,210,171,87,111,46,189,122,245,230,210,171,87,111,46,189,122) +IMAGE_DATA(245,230,210,171,87,111,174,205,174,222,222,39,244,190,104,124,243,153,107,184,135,109,126,39,141,238,163,246,57,238,238,93) +IMAGE_DATA(53,39,94,243,23,158,189,173,246,238,105,165,119,229,13,34,7,85,191,0,0,0,0,0,0,0,0,0,0,0,0,0) +IMAGE_END_DATA(224, 2) + +IMAGE_BEGIN_DATA +IMAGE_DATA(120,156,237,154,49,82,195,48,16,69,213,145,91,64,149,225,16,46,115,15,186,212,28,129,146,11,112,2,26,46,144,134) +IMAGE_DATA(27,208,112,2,250,28,195,104,7,139,152,72,182,23,89,218,93,219,255,49,219,48,138,254,127,178,113,152,73,238,27,215) +IMAGE_DATA(184,66,180,10,163,133,134,171,166,187,182,171,164,183,182,159,164,183,182,147,180,179,182,143,133,251,91,138,45,58,7,224) +IMAGE_DATA(188,13,103,2,206,235,247,37,114,157,219,155,221,238,119,38,246,169,54,137,14,165,125,199,178,44,248,178,174,21,211,153) +IMAGE_DATA(155,101,193,55,215,153,115,38,150,7,190,203,246,41,238,204,248,59,213,102,170,51,251,117,137,215,90,115,13,72,248,90) +IMAGE_DATA(163,136,239,200,88,163,246,51,203,26,240,133,47,103,61,124,225,107,1,248,194,151,179,30,190,240,181,0,124,225,203,89) +IMAGE_DATA(15,95,248,90,0,190,240,229,172,135,47,124,45,0,95,248,114,214,111,201,55,103,31,45,230,248,206,217,71,139,92,223) +IMAGE_DATA(185,251,104,81,170,39,124,87,236,187,226,207,67,147,172,248,243,238,36,43,254,62,3,123,191,133,77,14,218,157,37,93) +IMAGE_DATA(183,232,27,57,47,252,251,132,255,118,54,238,91,26,171,190,243,185,243,63,125,209,34,155,230,19,196,14,221,220,74,231) +IMAGE_DATA(19,93,135,87,63,71,225,14,109,160,235,112,18,238,208,246,81,232,208,94,35,220,33,202,23,238,144,204,23,236,48,152) +IMAGE_DATA(47,212,97,52,95,160,195,100,126,229,14,83,153,97,206,126,62,253,60,251,217,215,202,119,241,243,136,114,191,252,124,184) +IMAGE_DATA(58,207,199,200,55,145,79,217,47,174,206,251,195,117,214,57,209,129,242,159,42,100,59,119,185,190,239,238,231,156,79,137) +IMAGE_DATA(124,250,61,157,253,161,82,254,131,159,55,119,185,191,155,68,135,154,103,64,94,143,238,239,189,37,121,6,148,185,119,177) +IMAGE_DATA(219,208,25,72,49,116,6,146,244,179,53,242,233,154,28,187,220,240,252,145,134,58,104,253,127,10,0,0,85,248,6,45) +IMAGE_DATA(43,44,163,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) +IMAGE_END_DATA(480, 2) + +IMAGE_BEGIN_DATA +IMAGE_DATA(120,156,237,154,91,136,77,81,24,199,255,227,50,147,40,183,145,82,52,169,121,147,68,30,144,113,45,50,17,33,229,30) +IMAGE_DATA(81,51,15,212,36,133,144,114,203,45,204,132,72,226,129,16,226,137,7,229,69,241,98,152,23,151,121,48,15,52,102,212) +IMAGE_DATA(52,145,92,155,237,255,57,123,159,115,236,189,246,217,103,159,115,214,90,231,97,127,245,157,189,215,218,251,236,223,255,251) +IMAGE_DATA(214,229,156,181,91,168,65,13,178,204,129,93,115,92,175,117,125,152,105,190,152,171,97,43,125,186,97,13,142,103,174,134) +IMAGE_DATA(157,134,53,56,217,102,65,131,227,55,195,26,2,124,195,26,148,124,131,26,66,249,134,52,228,228,27,208,16,201,215,172) +IMAGE_DATA(33,138,233,249,3,250,105,250,50,122,181,46,62,130,243,145,112,175,210,143,67,207,252,24,136,87,193,23,246,26,232,249) +IMAGE_DATA(125,240,179,30,40,52,8,191,94,3,27,200,180,239,30,164,242,188,83,193,151,122,201,125,173,38,254,84,122,35,50,253) +IMAGE_DATA(187,70,161,65,103,14,36,174,217,248,191,111,153,204,129,48,171,17,140,205,100,14,84,102,50,7,161,26,178,216,54,248) +IMAGE_DATA(146,235,233,46,215,198,255,51,79,131,173,255,167,137,37,150,88,98,122,172,76,95,6,88,227,103,253,216,90,227,91,212) +IMAGE_DATA(160,90,128,88,227,91,208,16,224,27,214,160,228,27,212,16,202,55,164,33,39,223,128,134,72,190,102,13,81,76,163,241) +IMAGE_DATA(195,252,124,20,136,215,6,223,199,50,169,65,197,48,205,87,214,27,110,135,114,225,135,246,69,239,216,209,209,241,95,57) +IMAGE_DATA(234,24,23,238,127,134,95,79,1,199,66,226,79,151,227,198,224,143,69,247,119,34,30,87,108,252,69,193,145,196,159,196) +IMAGE_DATA(175,249,59,17,143,43,52,254,146,29,227,194,53,104,72,44,204,202,244,101,64,178,51,0,201,206,0,11,26,2,124,195) +IMAGE_DATA(26,148,124,131,26,66,249,134,52,228,228,27,208,16,201,215,172,33,138,233,121,178,51,160,188,118,6,84,86,0,171,231) +IMAGE_DATA(0,237,135,129,190,22,222,183,31,248,51,1,120,202,107,243,227,240,93,143,179,51,160,114,8,112,242,32,208,123,17,248) +IMAGE_DATA(190,8,248,48,21,120,187,30,248,120,135,90,182,3,157,85,64,19,239,235,151,39,63,214,206,128,254,140,187,153,236,189) +IMAGE_DATA(64,15,207,143,177,110,1,189,110,32,112,130,122,250,122,120,255,1,234,98,221,76,250,128,60,52,196,218,25,64,17,237) +IMAGE_DATA(143,129,223,131,129,243,44,179,9,48,145,241,30,160,144,47,173,228,115,128,116,182,241,59,99,129,123,188,54,134,94,17) +IMAGE_DATA(193,143,181,51,224,36,25,140,253,51,207,87,210,39,209,183,156,1,126,188,102,61,219,255,5,3,62,116,3,248,181,2) +IMAGE_DATA(120,199,107,243,232,149,121,228,64,101,202,28,72,95,107,0,62,241,124,46,227,62,36,236,151,100,215,166,250,158,204,15) +IMAGE_DATA(13,23,128,111,107,129,14,158,47,167,15,45,144,15,100,250,103,122,103,192,9,246,115,230,186,151,65,93,103,66,190,190) +IMAGE_DATA(206,176,137,196,12,198,191,238,46,219,103,121,42,126,209,51,162,8,126,96,103,0,59,235,211,103,100,82,76,95,171,155) +IMAGE_DATA(115,151,51,131,62,134,90,238,75,251,15,7,238,184,117,195,139,224,123,26,210,255,79,217,153,230,239,98,31,235,34,131) +IMAGE_DATA(141,251,145,117,251,232,171,232,139,71,1,87,110,2,63,55,2,221,82,166,79,161,15,42,146,31,48,230,190,105,27,199) +IMAGE_DATA(216,67,198,207,65,219,203,201,177,253,8,208,245,136,154,40,164,155,99,113,55,111,155,69,31,135,252,230,129,184,38,207) +IMAGE_DATA(156,57,146,99,108,9,219,153,252,247,11,57,7,113,76,222,98,61,167,36,212,209,199,211,171,52,176,61,147,185,69,198) +IMAGE_DATA(183,140,49,233,231,75,233,211,232,147,145,138,91,39,219,51,153,91,100,124,203,24,147,126,46,125,77,218,91,71,206,19) +IMAGE_DATA(75,172,180,86,166,47,3,172,241,179,126,108,173,241,45,106,80,45,64,172,241,45,104,8,240,13,107,80,242,13,106,8) +IMAGE_DATA(229,27,210,144,147,111,64,67,36,95,179,134,40,166,209,248,97,126,62,10,196,107,131,239,99,229,163,97,180,124,112,81) +IMAGE_DATA(230,240,79,184,211,146,90,0,59,155,227,107,86,49,162,248,255,216,92,148,58,87,82,11,195,180,115,17,230,236,137,167) +IMAGE_DATA(33,236,222,156,26,46,179,238,176,162,254,18,235,122,66,174,197,180,80,190,196,249,68,241,252,179,172,227,162,216,89,77) +IMAGE_DATA(111,43,172,45,242,210,112,138,231,71,125,207,62,199,242,27,151,45,229,219,26,249,210,215,118,100,149,133,253,42,139,45) +IMAGE_DATA(230,245,139,34,249,128,162,127,74,252,205,110,221,89,95,220,158,221,103,121,83,105,248,117,254,10,137,235,57,253,90,86) +IMAGE_DATA(123,251,239,41,81,251,135,154,244,111,121,25,80,175,96,220,45,93,238,115,90,19,25,178,248,223,71,111,116,231,32,41) +IMAGE_DATA(111,8,178,181,45,138,37,199,107,221,120,87,106,206,121,153,90,127,184,243,177,207,76,188,136,72,44,177,162,236,47,6) +IMAGE_DATA(32,123,164,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) +IMAGE_END_DATA(1152, 4) + +IMAGE_BEGIN_DATA +IMAGE_DATA(120,156,237,154,63,107,20,81,20,197,223,71,176,240,3,108,99,99,111,147,202,86,180,208,202,194,94,140,31,32,8,130) +IMAGE_DATA(164,179,16,65,11,43,177,16,237,180,10,54,22,130,126,0,65,16,11,45,68,12,81,20,130,130,241,191,112,221,231,204) +IMAGE_DATA(184,147,217,55,51,111,118,222,223,51,231,192,33,147,201,50,231,222,251,219,59,187,217,68,205,212,76,213,36,42,174,164) +IMAGE_DATA(244,161,210,7,66,231,107,149,53,156,157,123,45,112,13,82,169,172,97,35,112,13,82,87,132,26,164,169,192,53,44,229) +IMAGE_DATA(7,174,193,152,31,176,134,214,252,64,53,116,230,7,168,161,55,223,115,13,125,153,149,183,230,190,54,247,169,185,15,250) +IMAGE_DATA(202,87,203,247,35,157,123,123,238,43,202,207,253,113,169,95,67,190,206,62,163,252,188,62,52,179,182,12,53,232,252,227) +IMAGE_DATA(30,178,149,90,240,189,168,138,57,111,24,242,245,121,61,251,67,158,242,143,204,125,94,45,158,223,51,67,13,245,25,52) +IMAGE_DATA(159,155,38,31,43,175,99,35,221,215,81,181,255,185,213,53,3,185,126,95,228,220,85,145,211,155,34,39,47,22,214,199) +IMAGE_DATA(250,92,249,248,19,101,13,54,210,153,7,213,50,223,182,25,200,147,103,34,55,31,136,92,190,91,252,236,210,173,226,88) +IMAGE_DATA(159,43,31,123,99,238,117,203,252,54,181,205,64,94,190,21,121,244,84,228,222,227,226,103,119,30,22,199,250,156,195,124) +IMAGE_DATA(165,22,60,111,215,243,223,239,46,221,159,254,249,249,107,231,249,154,201,90,153,91,221,127,228,243,158,200,246,71,145,87) +IMAGE_DATA(219,69,222,139,55,197,177,62,231,56,191,170,161,254,254,84,190,253,20,249,244,69,228,195,167,34,239,221,110,113,172,207) +IMAGE_DATA(121,200,111,74,126,255,17,249,241,75,228,235,15,145,189,239,133,245,177,62,23,34,223,194,62,243,245,94,159,40,51,218) +IMAGE_DATA(60,100,255,135,106,86,94,123,189,195,67,238,127,20,21,71,137,126,24,16,45,191,246,98,27,45,63,98,13,166,95,64) +IMAGE_DATA(162,229,71,168,97,41,63,112,13,198,252,128,53,180,230,7,170,161,51,63,64,13,189,249,158,107,232,203,12,218,191,10) +IMAGE_DATA(127,63,90,234,55,70,126,35,43,100,13,166,140,208,249,198,243,29,53,216,252,50,48,186,174,174,124,143,187,218,250,92) +IMAGE_DATA(52,157,111,238,76,243,49,67,107,105,102,181,93,179,47,191,241,117,149,254,255,127,111,232,97,95,77,117,215,123,30,211) +IMAGE_DATA(191,77,141,61,243,55,245,98,91,130,147,252,80,253,55,165,2,244,111,97,159,253,15,185,156,143,254,173,47,164,242,237) +IMAGE_DATA(223,217,215,161,225,30,106,160,218,52,227,7,86,20,69,81,20,69,81,117,77,253,205,176,179,55,208,99,250,119,145,175) +IMAGE_DATA(216,63,251,103,255,252,48,128,106,213,225,11,234,66,236,26,188,105,115,115,83,198,56,118,253,212,66,99,89,146,121,90) +IMAGE_DATA(10,197,147,188,195,105,232,236,119,118,118,70,153,172,253,43,20,75,215,204,99,207,45,117,165,194,115,44,239,216,115,76) +IMAGE_DATA(77,57,48,93,133,117,236,185,198,86,206,92,201,185,93,72,92,201,121,191,80,185,218,114,142,61,127,95,154,10,215,41) +IMAGE_DATA(114,158,34,87,27,206,177,185,140,21,185,226,114,38,91,92,198,100,139,203,152,92,199,113,142,205,175,75,100,139,203,152) +IMAGE_DATA(108,113,25,147,45,46,99,178,197,101,76,182,184,140,201,22,151,49,217,226,50,38,91,108,198,100,27,151,113,40,182,228) +IMAGE_DATA(27,135,175,47,198,100,139,205,152,108,227,219,23,95,178,77,199,174,25,243,190,156,150,93,223,167,201,54,61,187,226,203) +IMAGE_DATA(221,77,211,174,118,152,108,211,245,88,190,220,221,180,61,118,135,201,54,125,175,202,151,187,155,135,87,221,97,178,205,199) +IMAGE_DATA(67,249,114,119,243,242,208,29,38,219,252,76,190,216,182,229,75,182,249,218,134,49,249,230,107,242,197,118,31,95,178,205) +IMAGE_DATA(223,93,140,201,55,127,147,47,182,201,23,219,109,124,201,22,199,38,198,228,139,99,242,197,54,249,98,155,124,177,221,228) +IMAGE_DATA(75,182,120,110,254,205,144,124,177,76,190,216,38,95,108,147,47,182,201,23,219,228,139,109,242,197,54,249,98,155,124,177) +IMAGE_DATA(77,190,216,38,95,108,147,47,182,201,23,219,228,139,109,242,197,54,255,6,140,107,254,255,6,182,201,23,219,228,139,109) +IMAGE_DATA(242,197,182,137,47,25,99,184,141,45,249,98,152,124,177,77,190,216,238,226,75,198,121,187,143,45,249,230,109,242,197,182) +IMAGE_DATA(13,95,50,206,211,182,108,201,55,79,175,202,151,140,211,119,147,87,31,95,238,112,94,30,202,150,59,156,143,87,217,93) +IMAGE_DATA(238,112,62,94,149,45,119,56,125,143,217,93,238,112,250,30,203,150,59,156,174,93,236,46,119,56,93,187,98,203,29,78) +IMAGE_DATA(207,46,119,151,59,156,158,93,179,37,227,116,236,139,109,147,47,25,199,101,235,131,47,25,99,179,53,49,142,221,247,84) +IMAGE_DATA(28,138,109,147,47,25,135,101,27,130,47,25,99,179,37,99,124,182,100,140,207,150,140,241,217,86,34,99,92,182,149,200) +IMAGE_DATA(24,151,109,37,50,198,101,91,137,140,113,217,86,106,214,76,206,253,92,115,97,91,137,140,113,217,86,34,99,92,182,117) +IMAGE_DATA(145,51,38,215,186,76,253,77,129,115,91,223,177,121,248,210,84,56,79,141,107,93,109,189,35,112,238,234,45,246,220,67) +IMAGE_DATA(11,137,51,185,182,43,103,206,228,106,175,174,89,165,196,186,175,206,216,115,76,93,125,243,11,205,219,182,158,216,115,203) +IMAGE_DATA(81,182,179,117,197,124,104,94,236,249,32,105,232,236,125,57,246,28,166,34,242,156,158,200,114,191,254,2,145,219,214,121) +IMAGE_END_DATA(1248, 4) + +IMAGE_BEGIN_DATA +IMAGE_DATA(120,156,237,218,65,78,195,64,16,5,81,206,195,9,89,230,138,57,17,172,44,18,43,182,199,158,177,187,187,92,95,170) +IMAGE_DATA(53,201,60,53,27,248,254,249,250,249,162,238,241,120,252,246,20,253,249,221,255,122,45,53,207,181,171,60,245,190,110,123) +IMAGE_DATA(223,254,249,124,118,165,245,249,187,202,114,180,121,244,187,101,95,22,207,94,239,232,119,204,182,10,166,71,172,163,223,53) +IMAGE_DATA(122,149,93,117,94,30,201,85,231,247,81,93,91,157,163,223,255,172,221,197,245,142,206,119,116,109,113,142,118,233,157,174) +IMAGE_DATA(92,103,109,185,198,218,114,141,117,237,115,142,246,91,155,182,92,99,109,185,198,218,114,141,181,229,26,107,203,53,214,150) +IMAGE_DATA(107,172,45,215,88,91,182,177,182,177,198,87,217,234,27,227,123,150,177,182,108,99,109,227,59,203,87,219,60,141,54,246) +IMAGE_DATA(247,114,174,70,255,158,214,54,95,163,124,189,221,156,141,186,97,109,243,214,235,235,237,230,174,247,134,181,205,223,81,95) +IMAGE_DATA(111,183,70,71,111,88,219,58,237,245,245,118,107,181,247,134,181,173,151,190,236,90,125,181,173,91,139,177,190,117,211,151) +IMAGE_DATA(221,150,175,182,245,91,51,214,183,126,250,178,211,151,221,146,175,182,156,62,25,235,203,73,95,118,250,178,211,151,221,220) +IMAGE_DATA(87,91,94,243,191,25,234,203,74,95,118,250,178,211,151,157,190,236,244,101,167,47,59,125,217,233,203,78,95,118,250,178) +IMAGE_DATA(211,151,157,190,236,244,101,167,47,59,255,6,204,205,255,223,96,167,47,59,125,217,233,203,238,147,175,198,140,150,108,245) +IMAGE_DATA(101,164,47,59,125,217,173,249,106,92,187,45,91,125,107,167,47,187,22,95,141,107,214,106,171,111,205,142,250,106,156,191) +IMAGE_DATA(185,215,150,175,55,92,171,189,182,222,112,157,142,220,174,55,92,167,163,182,222,112,254,122,110,215,27,206,95,175,173,55) +IMAGE_DATA(156,183,17,183,235,13,231,109,148,173,55,156,175,145,183,235,13,231,107,180,173,198,121,58,203,118,238,171,113,172,237,25) +IMAGE_DATA(190,26,179,109,63,25,71,127,239,187,116,149,237,220,87,227,107,109,175,240,213,152,109,171,49,223,86,99,190,173,198,124) +IMAGE_DATA(219,105,26,115,109,167,105,204,181,157,166,49,215,118,154,198,92,219,105,243,207,172,243,182,107,21,219,105,26,115,109,167) +IMAGE_DATA(105,204,181,125,157,206,76,215,215,125,250,126,119,112,94,250,222,209,30,103,237,46,206,119,115,125,221,210,119,39,56,175) +IMAGE_DATA(125,183,232,119,191,122,36,103,93,151,87,217,89,215,246,173,189,85,38,235,173,207,25,253,142,217,183,245,126,87,123,183) +IMAGE_DATA(126,158,232,119,171,184,214,183,29,101,190,247,231,69,191,15,105,123,223,254,172,162,223,225,46,211,243,126,211,242,125,127) +IMAGE_DATA(247,87,34,215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) +IMAGE_END_DATA(640, 1) + +IMAGE_BEGIN_DATA +IMAGE_DATA(120,156,237,216,75,10,194,80,16,68,81,215,227,10,221,125,156,58,8,226,39,239,117,117,115,14,100,222,212,133,16,189) +IMAGE_DATA(63,110,143,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,220,81,125,192,137,196,155,58,58,94) +IMAGE_DATA(158,20,137,55,117,116,156,60,213,18,111,234,232,108,199,234,61,19,111,234,44,105,207,164,91,38,73,216,53,225,134,201) +IMAGE_DATA(42,247,213,118,143,138,157,181,221,107,231,222,218,214,216,177,187,182,181,86,238,175,109,134,21,29,180,205,114,101,15,109) +IMAGE_DATA(51,93,209,69,219,108,255,244,209,182,135,95,58,105,219,203,55,189,180,237,233,147,110,218,246,246,174,159,182,51,104,59) +IMAGE_DATA(159,182,243,105,59,155,190,115,121,63,207,229,251,106,46,191,143,230,242,255,198,92,223,116,211,184,151,95,122,105,220,195) +IMAGE_DATA(63,157,52,206,118,69,31,141,51,93,217,69,227,44,43,122,104,156,97,101,7,141,107,237,216,95,227,26,59,119,215,120) +IMAGE_DATA(175,138,189,53,222,163,114,103,141,215,74,216,55,225,134,137,146,118,77,186,101,130,196,61,19,111,234,44,113,199,196,155) +IMAGE_DATA(58,75,220,49,241,166,206,18,119,76,188,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,70,120,2) +IMAGE_DATA(156,202,31,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) +IMAGE_END_DATA(320, 1) + +IMAGE_BEGIN_DATA +IMAGE_DATA(120,156,237,209,193,9,2,64,16,4,65,227,49,66,179,215,8,244,119,220,180,84,193,254,135,222,231,235,241,122,0,0) +IMAGE_DATA(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,147,222,241,227,183,219,255,241,223,179,110,255,199,127,207,186,253) +IMAGE_DATA(31,255,61,235,246,127,252,247,172,219,255,241,223,179,42,221,42,59,215,84,186,85,118,174,169,116,171,236,92,83,233,86) +IMAGE_DATA(217,185,166,210,173,178,115,77,165,91,101,231,154,74,183,202,206,53,149,110,149,157,107,42,221,42,59,215,84,186,85,118) +IMAGE_DATA(174,169,116,171,236,92,83,233,86,217,185,166,210,173,178,115,77,165,91,101,231,154,74,183,202,206,53,149,110,149,157,107) +IMAGE_DATA(42,221,42,59,215,84,186,85,118,174,169,116,171,236,92,83,233,86,217,185,166,210,173,178,115,77,165,91,101,231,154,74) +IMAGE_DATA(183,202,206,53,149,110,149,157,107,42,221,42,59,215,84,186,85,118,174,169,116,171,236,92,83,233,86,217,185,166,210,173) +IMAGE_DATA(178,115,77,165,91,101,231,154,74,183,202,206,53,149,110,149,157,107,42,221,42,59,215,84,186,85,118,174,169,116,171,236) +IMAGE_DATA(92,83,233,86,217,185,230,91,183,202,241,219,237,255,248,239,89,183,255,227,191,103,221,254,143,255,158,117,251,63,254,123) +IMAGE_DATA(214,237,255,248,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,137,15,205,212,237,88,0,0,0,0) +IMAGE_END_DATA(320, 1) + +IMAGE_BEGIN_DATA +IMAGE_DATA(120,156,237,209,65,13,0,32,12,4,65,244,160,176,238,193,1,191,230,82,50,147,172,130,221,181,106,1,0,0,0,0) +IMAGE_DATA(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48) +IMAGE_DATA(214,25,30,111,233,63,254,246,74,255,241,183,87,250,143,191,189,210,127,252,237,149,254,227,47,0,0,0,0,0,0,0) +IMAGE_DATA(0,0,0,0,0,0,0,0,0,124,226,2,64,145,32,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) +IMAGE_END_DATA(128, 1) + +IMAGE_BEGIN_DATA +IMAGE_DATA(120,156,237,209,193,9,2,81,16,68,193,141,199,8,61,110,230,107,2,202,162,48,244,255,109,21,204,125,232,247,120,30) +IMAGE_DATA(207,3,0,0,0,0,0,0,0,0,0,0,0,0,0,32,237,60,207,107,183,75,111,182,147,116,43,125,103,165,91,233) +IMAGE_DATA(59,43,221,74,223,89,233,86,250,206,74,183,210,247,127,233,219,77,223,110,250,118,211,183,155,190,221,244,189,117,109,114) +IMAGE_DATA(111,233,123,43,221,77,223,89,233,110,250,206,74,119,211,119,86,186,155,190,179,210,221,244,157,245,213,158,171,253,163,239) +IMAGE_DATA(45,125,187,233,219,77,223,110,250,118,211,183,155,190,221,244,237,166,111,55,125,187,233,219,77,223,110,250,118,211,183,155) +IMAGE_DATA(190,221,244,237,166,111,55,125,187,233,219,77,223,110,250,118,211,183,155,190,221,244,237,166,111,55,125,187,233,219,109,235) +IMAGE_DATA(190,220,90,109,207,213,254,217,221,106,123,174,246,207,238,62,237,185,218,241,155,116,55,125,103,165,187,233,59,43,221,77) +IMAGE_DATA(223,89,233,110,250,206,74,119,211,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,189,0,154,158,72) +IMAGE_DATA(59,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) +IMAGE_END_DATA(288, 1) diff --git a/uppsrc/CtrlCore/CtrlCore.upp b/uppsrc/CtrlCore/CtrlCore.upp index 9a75620c1..bfedf2fff 100644 --- a/uppsrc/CtrlCore/CtrlCore.upp +++ b/uppsrc/CtrlCore/CtrlCore.upp @@ -35,7 +35,6 @@ file LocalLoop.cpp, Preedit.cpp, CtrlCoreInit.cpp, - VirtualPopup.cpp, TopWindow.h, TopWindow.cpp, lay0.h, diff --git a/uppsrc/CtrlCore/CtrlDraw.cpp b/uppsrc/CtrlCore/CtrlDraw.cpp index 8e1b5cc2a..37bf7a5f7 100644 --- a/uppsrc/CtrlCore/CtrlDraw.cpp +++ b/uppsrc/CtrlCore/CtrlDraw.cpp @@ -20,7 +20,7 @@ void Ctrl::RefreshFrame(const Rect& r) { if(!IsOpen() || !IsVisible() || r.IsEmpty()) return; LTIMING("RefreshFrame"); - LLOG("RefreshFrame " << Name() << ' ' << r); + LLOG("RefreshRect " << Name() << ' ' << r); if(GuiPlatformRefreshFrameSpecial(r)) return; if(!top && !IsDHCtrl()) { @@ -33,12 +33,7 @@ void Ctrl::RefreshFrame(const Rect& r) { else { LLOG("WndInvalidateRect: " << r << ' ' << Name()); LTIMING("RefreshFrame InvalidateRect"); - if(IsVirtualPopUp()) { - LLOG("VirtualRefresh " << r); - GetOwner()->RefreshFrame(GetVirtualPopUpRect(r)); - } - else - WndInvalidateRect(r); + WndInvalidateRect(r); } } @@ -57,8 +52,8 @@ void Ctrl::Refresh(const Rect& area) { void Ctrl::Refresh() { sCheckGuiLock(); GuiLock __; // Beware: Even if we have ThreadHasGuiLock ASSERT, we still can be the main thread! - LLOG("Refresh " << Name() << " full:" << fullrefresh); if(fullrefresh || !IsVisible() || !IsOpen()) return; + LLOG("Refresh " << Name() << " full:" << fullrefresh); Rect r = Rect(GetSize()).Inflated(OverPaint()); if(r.IsEmpty()) return; @@ -281,54 +276,17 @@ void Ctrl::UpdateArea0(SystemDraw& draw, const Rect& clip, int backpaint) LLOG("========== UPDATE AREA " << UPP::Name(this) << ", clip: " << clip << " =========="); ExcludeDHCtrls(draw, GetRect().GetSize(), clip); auto DoCtrlPaint = [&](SystemDraw& w, const Rect& clip) { - bool just_popup = false; - Rect screen_clip = clip.Offseted(GetScreenRect().TopLeft()); - for(Ptr p : virtual_popups) - if(p && p->GetTopWindow() == this && p->GetScreenRect().Contains(screen_clip)) { - just_popup = true; - break; - } - if(!just_popup) { - #if defined(PLATFORM_WIN32) && !defined(VIRTUALGUI) - PaintWinBarBackground(w, clip); - #endif - CtrlPaint(w, clip); - #if defined(PLATFORM_WIN32) && !defined(VIRTUALGUI) - PaintWinBar(w, clip); - #endif - } - for(Ptr p : virtual_popups) { - if(p && p->GetTopWindow() == this) { - LLOG("*** Update Virtual Popup area " << clip); - Point off = p->GetScreenRect().TopLeft() - GetScreenRect().TopLeft(); - const Top *top = p->GetTop(); - if(top && top->virtual_dropshadow) { - Rect r(off, p->GetScreenRect().GetSize()); - static Image shadow; - static int dark = -1; - if((int)IsDarkTheme() != dark) { - dark = IsDarkTheme(); - int r = DPI(20); - ImageBuffer iw(2 * r, 2 * r); - for(int x = 0; x < r; x++) - for(int y = 0; y < r; y++) { - int alpha = int(sqr(max(r - Distance(Pointf(r, r), Pointf(x, y)), 0.0)) / r / r * 50); - iw[y][x] = alpha * Black(); - } - shadow = WithHotSpots(HorzSymm(RotateAntiClockwise(HorzSymm(iw))), Point(r, r), Point(r, r)); - } - ChPaint(w, r.Inflated(DPI(20)), shadow); - } - w.Offset(off); - p->CtrlPaint(w, clip - off); - w.End(); - p->RemoveFullRefresh(); - } - } + #if defined(PLATFORM_WIN32) && !defined(VIRTUALGUI) + PaintWinBarBackground(w, clip); + #endif + CtrlPaint(w, clip); + #if defined(PLATFORM_WIN32) && !defined(VIRTUALGUI) + PaintWinBar(w, clip); + #endif for(PaintHook h : painthook()) h(this, w, clip); }; - if(globalbackbuffer) { // Host already provides the backbuffer + if(globalbackbuffer) { DoCtrlPaint(draw, clip); LLOG("========== END (TARGET IS BACKBUFFER)"); } @@ -396,12 +354,8 @@ void Ctrl::DoSync(Ctrl *q, Rect r, bool inframe) ASSERT(q); LLOG("DoSync " << UPP::Name(q) << " " << r); Ctrl *top = q->GetTopRect(r, inframe); - if(top && top->IsOpen()) { - if(top->IsVirtualPopUp()) - top->GetTopWindow()->WndUpdate(top->GetVirtualPopUpRect(r)); - else - top->WndUpdate(r); - } + if(top && top->IsOpen()) + top->WndUpdate(r); } void Ctrl::Sync() @@ -411,10 +365,7 @@ void Ctrl::Sync() Ctrl *parent = GetParent(); if(top && IsOpen()) { LLOG("Sync UpdateWindow " << Name()); - if(IsVirtualPopUp()) - GetTopWindow()->WndUpdate(GetVirtualPopUpOverRect()); - else - WndUpdate(); + WndUpdate(); } else if(parent) diff --git a/uppsrc/CtrlCore/CtrlKbd.cpp b/uppsrc/CtrlCore/CtrlKbd.cpp index 3be498880..9e6ab4ce1 100644 --- a/uppsrc/CtrlCore/CtrlKbd.cpp +++ b/uppsrc/CtrlCore/CtrlKbd.cpp @@ -151,6 +151,7 @@ void Ctrl::DoDeactivate(Ptr pfocusCtrl, Ptr nfocusCtrl) Ptr ptop = pfocusCtrl->GetTopCtrl(); Ctrl *ntop = nfocusCtrl ? nfocusCtrl->GetTopCtrl() : NULL; if(ntop != ptop && !ptop->destroying) { + LLOG("DoDeactivate " << UPP::Name(ptop) << " in favor of " << UPP::Name(ntop)); ptop->DeactivateBy(ntop); ptop->Deactivate(); if(ptop) @@ -280,20 +281,9 @@ void Ctrl::ClickActivateWnd() { GuiLock __; LLOG("Ctrl::ClickActivateWnd " << Name(this)); - if(this == ~focusCtrlWnd && focusCtrl) { - Ctrl *target = this; - Point sp = GetMousePos(); - for(Ctrl *q : ReverseRange(virtual_popups)) { - Rect sr = q->GetScreenRect(); - if(q->GetOwner() == this && sr.Contains(sp)) { - target = q; - break; - } - } - if(focusCtrl->GetTopCtrl() != target) { - LLOG("Ctrl::ClickActivateWnd -> ActivateWnd"); - target->ActivateWnd(); - } + if(this == ~focusCtrlWnd && focusCtrl && focusCtrl->GetTopCtrl() != this) { + LLOG("Ctrl::ClickActivateWnd -> ActivateWnd"); + ActivateWnd(); } } diff --git a/uppsrc/CtrlCore/CtrlMouse.cpp b/uppsrc/CtrlCore/CtrlMouse.cpp index 161520e08..80da93945 100644 --- a/uppsrc/CtrlCore/CtrlMouse.cpp +++ b/uppsrc/CtrlCore/CtrlMouse.cpp @@ -315,7 +315,7 @@ Ctrl *Ctrl::ChildFromPoint(Point& pt) const } } } - return nullptr; + return NULL; } for(q = GetLastChild(); q; q = q->GetPrev()) { if(q->InFrame() && q->IsMouseActive()) { @@ -326,7 +326,7 @@ Ctrl *Ctrl::ChildFromPoint(Point& pt) const } } } - return nullptr; + return NULL; } Image Ctrl::MEvent0(int e, Point p, int zd) @@ -549,19 +549,6 @@ bool sDblTime(int time) } Image Ctrl::DispatchMouse(int e, Point p, int zd) { - for(Ctrl *popup : ReverseRange(virtual_popups)) { - if(popup && popup->GetTopWindow() == this) { - Rect r = popup->GetVirtualPopUpRect(popup->GetScreenRect().GetSize()); - if(r.Contains(p)) { - p -= r.TopLeft(); - return popup->DispatchMouse2(e, p, zd); - } - } - } - return DispatchMouse2(e, p, zd); -} - -Image Ctrl::DispatchMouse2(int e, Point p, int zd) { GuiLock __; EventLevelDo ___; if(((e == MOUSEWHEEL)||(e == MOUSEHWHEEL)) && !zd) // ignore non-scroll wheel events @@ -654,8 +641,7 @@ Image Ctrl::DispatchMouseEvent(int e, Point p, int zd) { if(!IsEnabled()) return Image::Arrow(); Ctrl *top = this; - bool wheel = findarg(e, MOUSEWHEEL, MOUSEHWHEEL) >= 0; - if(wheel && !GetParent()) { + if(((e == MOUSEWHEEL)||(e == MOUSEHWHEEL)) && !GetParent()) { Ctrl *w = GetFocusCtrl(); if(w) { top = w->GetTopCtrl(); @@ -666,19 +652,10 @@ Image Ctrl::DispatchMouseEvent(int e, Point p, int zd) { return q ? q->DispatchMouseEvent(e, p, zd) : top->MEvent0(e, p, zd); } -Ctrl *Ctrl::GetTopCaptureCtrl() const -{ - const Ctrl *q = GetTopCtrl(); - return const_cast(q->IsVirtualPopUp() ? q->GetTopWindow() : q); -} - bool Ctrl::SetCapture() { GuiLock __; ReleaseCtrlCapture(); - Ctrl *q = GetTopCaptureCtrl(); - if(q->IsVirtualPopUp()) - q = q->GetOwner(); - if(!q->SetWndCapture()) return false; + if(!GetTopCtrl()->SetWndCapture()) return false; captureCtrl = mouseCtrl = this; return true; } @@ -693,7 +670,7 @@ bool Ctrl::ReleaseCtrlCapture() { LLOG("ReleaseCtrlCapture"); if(captureCtrl) { captureCtrl->CancelMode(); - Ctrl *w = captureCtrl->GetTopCaptureCtrl(); + Ctrl *w = captureCtrl->GetTopCtrl(); captureCtrl = NULL; CheckMouseCtrl(); if(w->HasWndCapture()) { @@ -708,13 +685,13 @@ bool Ctrl::HasCapture() const { GuiLock __; if(captureCtrl != this) return false; - return captureCtrl == this && GetTopCaptureCtrl()->HasWndCapture(); + return captureCtrl == this && GetTopCtrl()->HasWndCapture(); } Ctrl * Ctrl::GetCaptureCtrl() { GuiLock __; - return captureCtrl && captureCtrl->GetTopCaptureCtrl()->HasWndCapture() ? captureCtrl : NULL; + return captureCtrl && captureCtrl->GetTopCtrl()->HasWndCapture() ? captureCtrl : NULL; } Ctrl *Ctrl::GetVisibleChild(Ctrl *ctrl, Point p, bool pointinframe) diff --git a/uppsrc/CtrlCore/CtrlPos.cpp b/uppsrc/CtrlCore/CtrlPos.cpp index 826c65776..68416dd40 100644 --- a/uppsrc/CtrlCore/CtrlPos.cpp +++ b/uppsrc/CtrlCore/CtrlPos.cpp @@ -129,16 +129,6 @@ Size Ctrl::AddFrameSize(int cx, int cy) const return sz; } -Rect Ctrl::GetWorkArea() const -{ - if(use_virtual_popups) { - const TopWindow *win = GetTopWindow(); - if(win) - return win->GetScreenRect(); - } - return GetWndWorkArea(); -} - int EditFieldIsThin(); Size Ctrl::GetMinSize() const @@ -232,6 +222,7 @@ void Ctrl::SetPos0(LogPos p, bool _inframe) Rect from = GetRect().Size(); Top *top = GetTopRect(from, true)->GetTop(); if(top) { + LTIMING("SetPos0 MoveCtrl"); pos = p; inframe = _inframe; Rect to = GetRect().Size(); @@ -242,13 +233,11 @@ void Ctrl::SetPos0(LogPos p, bool _inframe) } } RefreshFrame(); - RefreshVirtualPopUp(); } pos = p; inframe = _inframe; UpdateRect(); StateH(POSITION); - RefreshVirtualPopUp(); } void Ctrl::UpdateRect0(bool sync) @@ -287,12 +276,8 @@ Ctrl& Ctrl::SetPos(LogPos p, bool _inframe) else { ASSERT(p.x.GetAlign() == ALIGN_LEFT); ASSERT(p.y.GetAlign() == ALIGN_TOP); - if(IsVirtualPopUp()) - SetPos0(p, _inframe); - else { - Rect pwa = GetPrimaryWorkArea(); - WndSetPos(OffsetMegaRect(CalcRect(p, pwa, pwa))); - } + Rect pwa = GetPrimaryWorkArea(); + WndSetPos(OffsetMegaRect(CalcRect(p, pwa, pwa))); StateH(POSITION); } } @@ -350,7 +335,6 @@ void Ctrl::SetRect(int x, int y, int cx, int cy) Rect r = RectC(x, y, cx, cy); MegaRect(r); SetPos(LogPos(PosLeft(r.left, r.Width()), PosTop(r.top, r.Height())), false); - RefreshVirtualPopUp(); } void Ctrl::SetWndRect(const Rect& r) @@ -461,25 +445,20 @@ Rect Ctrl::GetWorkArea(Point pt) { GuiLock __; Array rc; - GetWorkAreas(rc); + GetWorkArea(rc); for(int i = 0; i < rc.GetCount(); i++) if(rc[i].Contains(pt)) return rc[i]; return GetPrimaryWorkArea(); } -Rect Ctrl::GetWorkArea(const Ctrl *owner, Point pt) -{ - return owner ? owner->GetTopCtrl()->GetWorkArea() : GetWorkArea(pt); -} - Rect Ctrl::StdGetWorkArea() const { GuiLock __; const Ctrl *top = GetTopCtrl(); if(top && top->IsOpen()) - return GetWorkArea(GetOwner(), top->GetScreenRect().TopLeft()); + return GetWorkArea(top->GetScreenRect().TopLeft()); return GetPrimaryWorkArea(); } diff --git a/uppsrc/CtrlCore/GtkAfter.h b/uppsrc/CtrlCore/GtkAfter.h index 28543a0a2..1f8346ea5 100644 --- a/uppsrc/CtrlCore/GtkAfter.h +++ b/uppsrc/CtrlCore/GtkAfter.h @@ -9,6 +9,7 @@ public: class DHCtrl : Ctrl {}; +bool InitGtkApp(int argc, char **argv, const char **envptr); void ExitGtkApp(); #define GUI_APP_MAIN \ @@ -17,7 +18,7 @@ void GuiMainFn_(); \ int main(int argc, char **argv, const char **envptr) { \ UPP::AppInit__(argc, (const char **)argv, envptr); \ GUI_APP_MAIN_HOOK \ - if (!UPP::Ctrl::InitGtkApp(argc, argv, envptr)) \ + if (!UPP::InitGtkApp(argc, argv, envptr)) \ return -1; \ UPP::AppExecute__(GuiMainFn_); \ UPP::Ctrl::CloseTopCtrls(); \ diff --git a/uppsrc/CtrlCore/GtkApp.cpp b/uppsrc/CtrlCore/GtkApp.cpp index f9ef7a955..34dc32d5b 100644 --- a/uppsrc/CtrlCore/GtkApp.cpp +++ b/uppsrc/CtrlCore/GtkApp.cpp @@ -101,7 +101,7 @@ extern Event custom_titleb extern Function is_custom_titlebar__; extern Function custom_titlebar_make__; -bool Ctrl::InitGtkApp(int argc, char **argv, const char **envptr) +bool InitGtkApp(int argc, char **argv, const char **envptr) { LLOG(rmsecs() << " InitGtkApp"); @@ -129,7 +129,6 @@ bool Ctrl::InitGtkApp(int argc, char **argv, const char **envptr) Ctrl::scale = 1; #if GTK_CHECK_VERSION(3, 10, 0) if(Ctrl::IsWayland()) { - Ctrl::use_virtual_popups = true; GtkWidget *window; window = gtk_window_new(GTK_WINDOW_POPUP); gtk_window_set_default_size (GTK_WINDOW (window), 1, 1); diff --git a/uppsrc/CtrlCore/GtkCreate.cpp b/uppsrc/CtrlCore/GtkCreate.cpp index 7c5cccc34..ffbadddf0 100644 --- a/uppsrc/CtrlCore/GtkCreate.cpp +++ b/uppsrc/CtrlCore/GtkCreate.cpp @@ -265,10 +265,6 @@ void Ctrl::PopUp(Ctrl *owner, bool savebits, bool activate, bool, bool) { GuiLock __; LLOG("POPUP " << Name() << ", " << GetRect() << ", activate " << activate); - if(use_virtual_popups && owner) { - VirtualPopUp(owner, activate); - return; - } Create(owner ? owner->GetTopCtrl() : GetActiveCtrl(), true); popup = true; Ptr _this = this; diff --git a/uppsrc/CtrlCore/GtkCtrl.h b/uppsrc/CtrlCore/GtkCtrl.h index 649b71756..149ba1b12 100644 --- a/uppsrc/CtrlCore/GtkCtrl.h +++ b/uppsrc/CtrlCore/GtkCtrl.h @@ -185,6 +185,7 @@ static void SetCustomBarDragPrevention(); void SyncPreventCustomBarDragPrevention(); + friend bool InitGtkApp(int argc, char **argv, const char **envptr); friend void GuiPlatformGripResize(TopWindow *q); public: // really private: @@ -200,7 +201,6 @@ public: // really private: Gclipboard(GdkAtom type); }; - static bool InitGtkApp(int argc, char **argv, const char **envptr); static Gclipboard& gclipboard(); static Gclipboard& gselection(); static String RenderPrimarySelection(const Value& fmt); diff --git a/uppsrc/CtrlCore/GtkEvent.cpp b/uppsrc/CtrlCore/GtkEvent.cpp index 19fe0d3f5..4fbba1d72 100644 --- a/uppsrc/CtrlCore/GtkEvent.cpp +++ b/uppsrc/CtrlCore/GtkEvent.cpp @@ -878,8 +878,6 @@ void Ctrl::Proc() void Ctrl::SyncWndRect() { - if(IsVirtualPopUp()) - return; WndRectsSync(); Rect rect = GetWndScreenRect(); TopWindow *tw = dynamic_cast(this); diff --git a/uppsrc/CtrlCore/GtkTop.h b/uppsrc/CtrlCore/GtkTop.h index 785160b98..6a18da19e 100644 --- a/uppsrc/CtrlCore/GtkTop.h +++ b/uppsrc/CtrlCore/GtkTop.h @@ -47,4 +47,5 @@ private: static gboolean StateEvent(GtkWidget *widget, GdkEventWindowState *event, gpointer user_data); friend class Ctrl; + friend bool InitGtkApp(int argc, char **argv, const char **envptr); diff --git a/uppsrc/CtrlCore/GtkWnd.cpp b/uppsrc/CtrlCore/GtkWnd.cpp index 42347e6b3..302d9bcad 100644 --- a/uppsrc/CtrlCore/GtkWnd.cpp +++ b/uppsrc/CtrlCore/GtkWnd.cpp @@ -58,7 +58,7 @@ bool Ctrl::IsCompositedGui() return true; // limits some GUI effects that do not play well with advanced desktops } -Vector Ctrl::GetTopWndCtrls() +Vector Ctrl::GetTopCtrls() { GuiLock __; Vector h; @@ -80,8 +80,6 @@ void Ctrl::SetMouseCursor(const Image& image) topctrl = mouseCtrl->GetTopCtrl(); else topctrl = GetActiveCtrl(); - if(topctrl && topctrl->IsVirtualPopUp()) - topctrl = topctrl->GetTopWindow(); if(topctrl) top = topctrl->GetTop(); if(top && id != top->cursor_id) { @@ -122,7 +120,7 @@ void Ctrl::SetMouseCursor(const Image& image) } } -Ctrl *Ctrl::GetOwnerWnd() +Ctrl *Ctrl::GetOwner() { GuiLock __; Top *top = GetTop(); @@ -282,12 +280,12 @@ void Ctrl::SetAlpha(byte alpha) GuiLock __; } -Rect Ctrl::GetWndWorkArea() const +Rect Ctrl::GetWorkArea() const { return StdGetWorkArea(); } -void Ctrl::GetWorkAreas(Array& rc) +void Ctrl::GetWorkArea(Array& rc) { GuiLock __; rc.Clear(); @@ -323,7 +321,7 @@ Rect Ctrl::GetVirtualWorkArea() GuiLock __; Rect r = GetPrimaryWorkArea(); Array rc; - GetWorkAreas(rc); + GetWorkArea(rc); for(int i = 0; i < rc.GetCount(); i++) r |= rc[i]; return r; diff --git a/uppsrc/CtrlCore/TopWin32.cpp b/uppsrc/CtrlCore/TopWin32.cpp index ab2d98c6f..bf00b517e 100644 --- a/uppsrc/CtrlCore/TopWin32.cpp +++ b/uppsrc/CtrlCore/TopWin32.cpp @@ -283,9 +283,8 @@ void TopWindow::CenterRect(HWND hwnd, int center) ::AdjustWindowRect(frmrc, WS_OVERLAPPEDWINDOW, FALSE); #endif Rect r, wr; - Ctrl *owner = Windows().Get(hwnd, nullptr); - wr = (owner ? owner->GetWorkArea() : Ctrl::GetWorkArea()).Deflated(-frmrc.left, -frmrc.top, - frmrc.right - sz.cx, frmrc.bottom - sz.cy); + wr = Ctrl::GetWorkArea().Deflated(-frmrc.left, -frmrc.top, + frmrc.right - sz.cx, frmrc.bottom - sz.cy); sz.cx = min(sz.cx, wr.Width()); sz.cy = min(sz.cy, wr.Height()); if(center == 1) { diff --git a/uppsrc/CtrlCore/VirtualPopup.cpp b/uppsrc/CtrlCore/VirtualPopup.cpp deleted file mode 100644 index f9dcc5f80..000000000 --- a/uppsrc/CtrlCore/VirtualPopup.cpp +++ /dev/null @@ -1,92 +0,0 @@ -#include "CtrlCore.h" - -#define LLOG(x) -#define LDUMP(x) - -namespace Upp { - -// Virtual popups are intended as implementation option for "difficult" backends, e.g. Wayland - -Vector> Ctrl::virtual_popups; - -Rect Ctrl::GetVirtualPopUpOverRect() -{ - Rect r = GetVirtualPopUpRect(); - const Top *top = GetTop(); - return top && top->virtual_dropshadow ? r.Inflated(DPI(20)) : r; -} - -void Ctrl::RefreshVirtualPopUp() -{ - if(IsVirtualPopUp()) - GetOwner()->RefreshFrame(GetVirtualPopUpOverRect()); -} - -void Ctrl::VirtualPopUp(Ctrl *owner, bool activate, bool dropshadow) -{ - ASSERT(!IsOpen()); - ASSERT(owner && owner->GetTopWindow()); - - Top *vtop = new Top; - SetTop(vtop); - vtop->owner = owner; - vtop->virtual_dropshadow = dropshadow; - - virtual_popups << this; - - if(activate) - SetFocus(); - - popup = true; - - RefreshVirtualPopUp(); -} - -bool Ctrl::IsVirtualPopUp() const -{ - const Top *top = GetTop(); - if(top && top->owner) - for(Ctrl *q : virtual_popups) - if(q == this) - return true; - return false; -} - -Rect Ctrl::GetVirtualPopUpRect(const Rect& vp_frame_rect) const -{ // converts frame rect to owner frame rect - ASSERT(IsVirtualPopUp()); - const TopWindow *win = GetTopWindow(); - if(!win) - return Rect(0, 0, 0, 0); - Rect sr = win->GetScreenRect(); - Rect r = vp_frame_rect.Offseted(GetScreenRect().TopLeft()) & GetScreenRect() & sr; -// DLOG("+++ GetVirtualPopUpRect"); -// DDUMP(GetOwner()->GetScreenRect()); -// DDUMP(GetRect()); -// DDUMP(GetScreenRect()); - return Rect(r.TopLeft() - sr.TopLeft(), r.GetSize()); -} - -Rect Ctrl::GetVirtualPopUpRect() const -{ - return GetVirtualPopUpRect(GetScreenRect().GetSize()); -} - -void Ctrl::CloseVirtualPopUp() -{ - ASSERT(IsVirtualPopUp()); - RefreshVirtualPopUp(); - popup = false; - virtual_popups.RemoveIf([&](int i) { - return virtual_popups[i] == this || !virtual_popups[i]; - }); - DeleteTop(); -} - -bool Ctrl::use_virtual_popups -#ifdef flagDEVELOP_VIRTUALPOPUPS - = true -#endif -; - -}; \ No newline at end of file diff --git a/uppsrc/CtrlCore/Win32Wnd.cpp b/uppsrc/CtrlCore/Win32Wnd.cpp index e523173d2..cd597af3e 100644 --- a/uppsrc/CtrlCore/Win32Wnd.cpp +++ b/uppsrc/CtrlCore/Win32Wnd.cpp @@ -385,7 +385,7 @@ VectorMap< HWND, Ptr >& Ctrl::Windows() return map; } -Vector Ctrl::GetTopWndCtrls() +Vector Ctrl::GetTopCtrls() { Vector v; VectorMap< HWND, Ptr >& w = Windows(); @@ -423,7 +423,7 @@ HWND Ctrl::GetOwnerHWND() const return GetWindow(hwnd, GW_OWNER); } -Ctrl *Ctrl::GetOwnerWnd() +Ctrl *Ctrl::GetOwner() { GuiLock __; HWND hwnd = GetOwnerHWND(); @@ -504,7 +504,6 @@ void Ctrl::Create(HWND parent, DWORD style, DWORD exstyle, bool savebits, int sh LLOG("Ctrl::Create(parent = " << (void *)parent << ") in " <& rc) +void Ctrl::GetWorkArea(Array& rc) { GuiLock __; MultiMon().EnumDisplayMonitors(NULL, NULL, &sMonEnumProc, (LPARAM)&rc); @@ -971,7 +970,7 @@ Rect Ctrl::GetVirtualWorkArea() { Rect out = GetPrimaryWorkArea(); Array rc; - GetWorkAreas(rc); + GetWorkArea(rc); for(int i = 0; i < rc.GetCount(); i++) out |= rc[i]; return out; @@ -1170,10 +1169,6 @@ void Ctrl::PopUpHWND(HWND owner, bool savebits, bool activate, bool dropshadow, void Ctrl::PopUp(Ctrl *owner, bool savebits, bool activate, bool dropshadow, bool topmost) { popup = false; - if(use_virtual_popups && owner) { - VirtualPopUp(owner, activate); - return; - } Ctrl *q = owner ? owner->GetTopCtrl() : GetActiveCtrl(); PopUpHWND(q ? q->GetHWND() : NULL, savebits, activate, dropshadow, topmost); Top *top = GetTop(); diff --git a/uppsrc/CtrlCore/X11App.cpp b/uppsrc/CtrlCore/X11App.cpp index 434eff79e..cbb891f6d 100644 --- a/uppsrc/CtrlCore/X11App.cpp +++ b/uppsrc/CtrlCore/X11App.cpp @@ -519,7 +519,7 @@ Rect Ctrl::GetDefaultWindowRect() return RectC(left + pos + 20, top + pos + 20, cx, cy); } -void Ctrl::GetWorkAreas(Array& out) +void Ctrl::GetWorkArea(Array& out) { Vector workAreas = FindScreensResolutions(); Vector struts = FindScreensStruts(); @@ -536,7 +536,7 @@ void Ctrl::GetWorkAreas(Array& out) out.Add(GetPrimaryWorkArea()); } -Rect Ctrl::GetWndWorkArea() const +Rect Ctrl::GetWorkArea() const { GuiLock __; return StdGetWorkArea(); @@ -567,7 +567,7 @@ Rect Ctrl::GetPrimaryWorkArea() static Rect r; if(r.right == 0) { Array rc; - GetWorkAreas(rc); + GetWorkArea(rc); rc.GetCount() ? r = rc[0] : r = GetVirtualScreenArea(); } return r; diff --git a/uppsrc/CtrlCore/X11Wnd.cpp b/uppsrc/CtrlCore/X11Wnd.cpp index d00daa1b8..4f9f8b00a 100644 --- a/uppsrc/CtrlCore/X11Wnd.cpp +++ b/uppsrc/CtrlCore/X11Wnd.cpp @@ -258,6 +258,10 @@ void Ctrl::ProcessEvent(XEvent *event) && event->type != MotionNotify) for(XEventMap *m = sXevent; m->ID; m++) if(m->ID == event->type) { + if(!s_starttime) + s_starttime = msecs(); + int t = msecs() - s_starttime; + VppLog() << Format("%d.%01d", t / 1000, t % 1000); VppLog() << " EVENT " << Format("%-20.20s", m->name); VppLog() << "[window: " << event->xany.window << "] "; if(q >= 0) @@ -560,7 +564,7 @@ void Ctrl::WndDestroy() FocusSync(); } -Vector Ctrl::GetTopWndCtrls() +Vector Ctrl::GetTopCtrls() { GuiLock __; Vector v; @@ -652,7 +656,7 @@ bool Ctrl::IsCompositedGui() return b; } -Ctrl *Ctrl::GetOwnerWnd() +Ctrl *Ctrl::GetOwner() { GuiLock __; if(!IsOpen()) return NULL; diff --git a/uppsrc/CtrlCore/src.tpp/Ctrl_en-us.tpp b/uppsrc/CtrlCore/src.tpp/Ctrl_en-us.tpp index 79971dfc0..9040aa5f7 100644 --- a/uppsrc/CtrlCore/src.tpp/Ctrl_en-us.tpp +++ b/uppsrc/CtrlCore/src.tpp/Ctrl_en-us.tpp @@ -2642,11 +2642,6 @@ ryScreenArea]()&] in Windows is the display with start menu.&] [s3;%- &] [s4;%- &] -[s5;:Upp`:`:Ctrl`:`:GetWorkAreas`(Array`&`):%- [@(0.0.255) static] -[@(0.0.255) void] [* GetWorkAreas](Array[@(0.0.255) `&] [*@3 rc])&] -[s2; Returns all available work areas.&] -[s3;%- &] -[s4;%- &] [s5;:Ctrl`:`:GetWorkArea`(Point`):%- [@(0.0.255) static] [_^Rect^ Rect]_[* GetWorkArea]([_^Point^ P oint]_[*@3 pt])&] [s2; Returns the recangle of work area which contains [%-*@3 pt]. If @@ -2654,24 +2649,12 @@ oint]_[*@3 pt])&] area.&] [s3; &] [s4;%- &] -[s5;:Upp`:`:Ctrl`:`:GetWorkArea`(const Ctrl`*`,Point`):%- [@(0.0.255) static] -Rect [* GetWorkArea]([@(0.0.255) const] Ctrl [@(0.0.255) `*][*@3 owner], -Point [*@3 pt])&] -[s2; If [%-*@3 owner] is not nullptr, return owner`->GetWorkArea(), -otherwise GetWorkArea([%-*@3 pt)].&] -[s3;%- &] -[s4;%- &] [s5;:Ctrl`:`:GetMouseWorkArea`(`):%- [@(0.0.255) static] [_^Rect^ Rect]_[* GetMouseWorkArea ]()&] [s2; Returns the work are which contains mouse cursor. Same as GetWorkArea(GetMousePo s()).&] [s3;%- &] [s4;%- &] -[s5;:Upp`:`:Ctrl`:`:GetMouseWorkArea`(Ctrl`*`):%- [@(0.0.255) static] -Rect [* GetMouseWorkArea](Ctrl [@(0.0.255) `*][*@3 owner])&] -[s2; Same as GetWorArea([%-*@3 owner], GetMousePos()).&] -[s3;%- &] -[s4;%- &] [s5;:Ctrl`:`:GetKbdDelay`(`):%- [@(0.0.255) static] [@(0.0.255) int]_[* GetKbdDelay]()&] [s2;b17;a17; Returns delay of keyboard before autorepeat starts when key is pressed.&] diff --git a/uppsrc/CtrlLib/DisplayPopup.cpp b/uppsrc/CtrlLib/DisplayPopup.cpp index e6fbd3a23..7985075b9 100644 --- a/uppsrc/CtrlLib/DisplayPopup.cpp +++ b/uppsrc/CtrlLib/DisplayPopup.cpp @@ -26,7 +26,7 @@ DisplayPopup::DisplayPopup() void DisplayPopup::PaintHook(Ctrl *tw, Draw& w, const Rect& clip) { if(ctrl && tw && !IsNull(screen_rect) && ctrl->HasMouseDeep() && - (tw == ctrl->GetTopCtrl() || tw->IsPopUp() && tw == ctrl->GetTopCtrl()->GetOwner())) { + (tw == ctrl->GetTopCtrl() || tw == ctrl->GetTopCtrl()->GetOwner())) { Rect r = screen_rect - tw->GetScreenRect().TopLeft(); DrawFrame(w, r, SBlack()); r.Deflate(1, 1); diff --git a/uppsrc/CtrlLib/MenuBar.cpp b/uppsrc/CtrlLib/MenuBar.cpp index dfb86180d..ab56f2e82 100644 --- a/uppsrc/CtrlLib/MenuBar.cpp +++ b/uppsrc/CtrlLib/MenuBar.cpp @@ -545,7 +545,7 @@ void MenuBar::PopUp(Ctrl *owner, Point p, Size rsz) szcy = false; WhenHelp = parentmenu->WhenHelp; } - Rect workarea = GetWorkArea(owner, p); + Rect workarea = GetWorkArea(p); restorefocus = GetFocusCtrl(); LLOG("PopUp " << UPP::Name(this) << " set restorefocus:" << UPP::Name(restorefocus)); diff --git a/uppsrc/CtrlLib/PopUpList.cpp b/uppsrc/CtrlLib/PopUpList.cpp index d20e102b9..2d76d491a 100644 --- a/uppsrc/CtrlLib/PopUpList.cpp +++ b/uppsrc/CtrlLib/PopUpList.cpp @@ -273,7 +273,7 @@ void PopUpList::PopUp(Ctrl *owner, int x, int top, int bottom, int width) { popup.Create(this); int h = popup->ac.AddFrameSize(width, min(droplines * popup->ac.GetLineCy(), popup->ac.GetTotalCy())).cy; Rect rt = RectC(x, bottom, width, h); - Rect area = Ctrl::GetWorkArea(owner, Point(x, top)); + Rect area = Ctrl::GetWorkArea(Point(x, top)); bool up = false; if(rt.bottom > area.bottom) { up = true; diff --git a/uppsrc/CtrlLib/PopupTable.cpp b/uppsrc/CtrlLib/PopupTable.cpp index 0eadc34c0..0b1e4c116 100644 --- a/uppsrc/CtrlLib/PopupTable.cpp +++ b/uppsrc/CtrlLib/PopupTable.cpp @@ -73,7 +73,7 @@ void PopUpTable::PopUp(Ctrl *owner, int x, int top, int bottom, int width) { DoClose(); int h = AddFrameSize(width, min(droplines * GetLineCy(), GetTotalCy())).cy; Rect rt = RectC(x, bottom, width, h); - Rect area = Ctrl::GetWorkArea(owner, Point(x, top)); + Rect area = Ctrl::GetWorkArea(Point(x, top)); bool up = false; if(rt.bottom > area.bottom) { up = true; diff --git a/uppsrc/CtrlLib/ToolTip.cpp b/uppsrc/CtrlLib/ToolTip.cpp index 0942c3e81..18556334d 100644 --- a/uppsrc/CtrlLib/ToolTip.cpp +++ b/uppsrc/CtrlLib/ToolTip.cpp @@ -24,7 +24,7 @@ void ToolTip::Paint(Draw& w) void ToolTip::PopUp(Ctrl *owner, Point p, bool effect) { LLOG("ToolTip::PopUp" << Desc(owner) << " @ " << p); - Rect r = GetMouseWorkArea(owner); + Rect r = GetMouseWorkArea(); Size sz = GetMinSize(); p.x = max(p.x + sz.cx > r.right ? r.right - sz.cx : p.x, r.left); p.y = max(p.y + sz.cy > r.bottom ? r.bottom - sz.cy : p.y, r.top); @@ -75,7 +75,7 @@ void ShowToolTip() if(text.GetCount() && top && (top->IsForeground() || top->IsPopUp())) { LLOG("-> foreground"); Size sz = q.GetMinSize(); - Rect r = Ctrl::GetMouseWorkArea(top); + Rect r = Ctrl::GetMouseWorkArea(); Point p = GetMousePos() + Size(0, DPI(22)); if(p.y + sz.cy > r.bottom) p = GetMousePos() - Size(0, DPI(6)) - sz.cy; @@ -188,7 +188,7 @@ void QTFPopUp::PopUp(Ctrl *parent) { Rect r = Rect(0, 0, width, maxheight); GetFrame().FrameLayout(r); int cy = min(maxheight, GetHeight(r.Width()) + maxheight - r.Height()); - Rect area = GetMouseWorkArea(parent); + Rect area = GetMouseWorkArea(); Point p = GetMousePos(); r.top = max(area.top, p.y + 16); r.bottom = r.top + cy; diff --git a/uppsrc/VirtualGui/Wnd.cpp b/uppsrc/VirtualGui/Wnd.cpp index 6d9ce0aec..1c664e70e 100644 --- a/uppsrc/VirtualGui/Wnd.cpp +++ b/uppsrc/VirtualGui/Wnd.cpp @@ -59,7 +59,7 @@ bool Ctrl::IsCompositedGui() return false; } -Vector Ctrl::GetTopWndCtrls() +Vector Ctrl::GetTopCtrls() { Vector ctrl; if(desktop) @@ -70,7 +70,7 @@ Vector Ctrl::GetTopWndCtrls() return ctrl; } -Ctrl *Ctrl::GetOwnerWnd() +Ctrl *Ctrl::GetOwner() { GuiLock __; int q = FindTopCtrl(); @@ -212,13 +212,13 @@ void Ctrl::SetAlpha(byte alpha) GuiLock __; } -Rect Ctrl::GetWndWorkArea() const +Rect Ctrl::GetWorkArea() const { GuiLock __; return GetVirtualScreenArea(); } -void Ctrl::GetWorkAreas(Array& rc) +void Ctrl::GetWorkArea(Array& rc) { GuiLock __; Array r; diff --git a/uppsrc/ide/About.cpp b/uppsrc/ide/About.cpp index 2cdb70b94..9b02718e5 100644 --- a/uppsrc/ide/About.cpp +++ b/uppsrc/ide/About.cpp @@ -199,7 +199,7 @@ Size SplashCtrl::MakeLogo(Ctrl& parent, Array& ctrl, bool splash) SplashCtrl::SplashCtrl() { - SetRect(GetPrimaryWorkArea().CenterRect(MakeLogo(*this, ctrl) + 2)); + SetRect(GetWorkArea().CenterRect(MakeLogo(*this, ctrl) + 2)); SetFrame(BlackFrame()); } @@ -228,7 +228,7 @@ public: AboutDlg() { Size isz = SplashCtrl::MakeLogo(*this, ctrl, true); - int cx = min(isz.cx * 2, GetPrimaryWorkArea().GetWidth()); + int cx = min(isz.cx * 2, GetWorkArea().GetWidth()); SetRect(0, 0, cx, isz.cy); about.SetQTF(GetTopic("ide/app/About_en-us"), Zoom(DPI(120), 1024)); about.SetZoom(Zoom(1, 1)); diff --git a/uppsrc/ide/ide.lay b/uppsrc/ide/ide.lay index b5125fe12..58b21aae8 100644 --- a/uppsrc/ide/ide.lay +++ b/uppsrc/ide/ide.lay @@ -1026,4 +1026,5 @@ LAYOUT(SeqLayout, 764, 544) ITEM(Upp::Label, dv___18, SetLabel(t_("Prefix")).LeftPosZ(448, 32).TopPosZ(8, 19)) ITEM(Upp::Label, dv___19, SetLabel(t_("Postfix")).LeftPosZ(672, 32).TopPosZ(8, 19)) ITEM(Upp::EditString, postfix, LeftPosZ(708, 48).TopPosZ(8, 19)) -END_LAYOUT \ No newline at end of file +END_LAYOUT + diff --git a/uppsrc/ide/ide.upp b/uppsrc/ide/ide.upp index 740963347..6e5e56533 100644 --- a/uppsrc/ide/ide.upp +++ b/uppsrc/ide/ide.upp @@ -126,7 +126,6 @@ file mainconfig "" = "GUI", - "" = "GUI DEVELOP_VIRTUALPOPUPS", "" = "GUI LCLANG", "" = "GUI USEMALLOC", "" = "GUI HEAPDBG CHECKINIT", diff --git a/upptst/VirtualPopup/VirtualPopup.upp b/upptst/VirtualPopup/VirtualPopup.upp deleted file mode 100644 index e670a6e43..000000000 --- a/upptst/VirtualPopup/VirtualPopup.upp +++ /dev/null @@ -1,10 +0,0 @@ -uses - CtrlLib; - -file - main.cpp, - todo.txt; - -mainconfig - "" = "GUI DEVELOP_VIRTUALPOPUPS"; - diff --git a/upptst/VirtualPopup/main.cpp b/upptst/VirtualPopup/main.cpp deleted file mode 100644 index 167a066e3..000000000 --- a/upptst/VirtualPopup/main.cpp +++ /dev/null @@ -1,75 +0,0 @@ -#include - -using namespace Upp; - -struct MyApp : TopWindow { - DropList dl, dl2; - ArrayCtrl popup; - MenuBar menu; - - void Dump() { - DUMP(popup.IsOpen()); - DUMP(popup.IsVisible()); - DUMP(Ctrl::Name(popup.GetTopCtrl())); - DUMP(Ctrl::Name(popup.GetTopWindow())); - DUMP(Ctrl::Name(popup.GetOwner())); - DUMP(Ctrl::Name(popup.GetOwnerCtrl())); - } - - void RightDown(Point p, dword keyflags) override { - if(popup.IsOpen()) { - popup.Close(); - LOG("========= CLOSE"); - } - else { - Rect sr = GetScreenRect(); - sr.Offset(100, 100); - sr.SetSize(300, 300); - popup.SetRect(sr); - popup.VirtualPopUp(this, true); - LOG("========= OPEN"); - } - Dump(); - } - - MyApp() { - *this << dl.LeftPosZ(10, 1000).TopPos(10) - << dl2.LeftPosZ(10, 1000).TopPos(150); - for(int i = 0; i < 100; i++) { - dl.Add(i); - dl2.Add(i); - } - - popup.SetFrame(BlackFrame()); - popup.AddColumn("Test"); - popup.AddColumn("Test"); - popup.MouseMoveCursor(); - popup.WhenLeftDouble = [=] { - String s = "\1"; - for(Ctrl *c : GetTopCtrls()) - s << Name(c) << "\n"; - PromptOK(s); - }; - popup.WhenSel = [=] { - DUMP(popup.IsPopUp()); - }; - for(int i = 0; i < 100; i++) - popup.Add(i); -// lbl = "This is virtual popup"; - AddFrame(menu); - menu.Sub("Menu", [](Bar& bar) { - for(int i = 0; i < 10; i++) - bar.Add("Open", [] { SelectFileOpen("*\n*.txt"); }); - bar.Sub("Submenu", [](Bar& bar) { - bar.Add("SubTest", [] { PromptOK("SubTest"); }); - }); - }); - } -}; - -GUI_APP_MAIN -{ - Ctrl::use_virtual_popups = true; - - MyApp().Run(); -} diff --git a/upptst/VirtualPopup/todo.txt b/upptst/VirtualPopup/todo.txt deleted file mode 100644 index 7299e8852..000000000 --- a/upptst/VirtualPopup/todo.txt +++ /dev/null @@ -1,24 +0,0 @@ -- show / hide ? -- splash screens - -============ DONE: -- dropshadow -- optimize paint -- GetWorkArea -- PromptOK -- is open -- get owner -- get owner ctrl -- close -- Close -- _DBG_ win->Refresh(); CtrlCore/VirtualPopup.cpp:19 -- refresh -- GetTopCtrls -- IsMouseActive -- IsVisible -- GetOwner -> GetMainWindow -- mouse -- mouse capture -- mouse wheel crashes -- scrollbar (frame mouse event?) -- keyboard