Browse Source

fixed mouse events not given to scroll bars in ZeichnungHintergrund

Kolja Strohm 1 year ago
parent
commit
031d0c81d3
2 changed files with 28 additions and 0 deletions
  1. 23 0
      Zeichnung.cpp
  2. 5 0
      Zeichnung.h

+ 23 - 0
Zeichnung.cpp

@@ -496,6 +496,29 @@ ZeichnungHintergrund::~ZeichnungHintergrund()
     if (vertikalScrollBar) vertikalScrollBar->release();
 }
 
+void ZeichnungHintergrund::doMausEreignis(MausEreignis& me, bool userRet)
+{
+    if (userRet)
+    {
+        int rbr = 0;
+        if (hatStyle(Style::Rahmen) && rahmen) rbr = rahmen->getRBreite();
+        bool vs = hatStyle(Style::VScroll) && vertikalScrollBar;
+        bool hs = hatStyle(Style::HScroll) && horizontalScrollBar;
+        if (vs)
+        {
+            if (hs)
+                horizontalScrollBar->doMausMessage(
+                    rbr, gr.y - rbr - 15, gr.x - rbr * 2 - 15, 15, me);
+            vertikalScrollBar->doMausMessage(
+                gr.x - rbr - 15, rbr, 15, gr.y - rbr * 2, me);
+        }
+        else if (hs)
+            horizontalScrollBar->doMausMessage(
+                rbr, gr.y - rbr - 15, gr.x - rbr * 2, 15, me);
+    }
+    me.verarbeitet = userRet;
+}
+
 void ZeichnungHintergrund::setHintergrundBild(
     Bild* bild) // setzt das Hintergrund Bild
 {

+ 5 - 0
Zeichnung.h

@@ -310,6 +310,11 @@ namespace Framework
         Punkt innenPosition;
         Punkt innenSize;
 
+    protected:
+        //! Verarbeitet Maus Nachrichten
+        //! \param me Das Ereignis, was durch die Mauseingabe ausgelößt wurde
+        DLLEXPORT void doMausEreignis(MausEreignis& me, bool userRet) override;
+
     public:
         //! Konstruktor
         DLLEXPORT ZeichnungHintergrund();