How to bring a window to “Stay on Top” and to “Stay on Background”

I am writing a little application, that shows some widgets on desktop (e.g. with CPU resources, Memory resources, etc.)

There I have a settings menu, where I want to choose the following:

  • Widget -> Always on Top
  • Widget -> Acting as normal Window
  • Widget -> Stay on Background

So, the feature “Always on Top” works as I would like to have it (with wx.STAY_ON_TOP ) -> window is not getting minimized (if all other windows are getting minimized -> this is ok)

BUT: For “Stay on Background” the window should stay directly “over” the background and should not get minimized -> if all windows are getting minimized.

Putting the Frame with .lower() to the background is obviously not enough. I am looking for something like wx.STAY_ON_BACKGROUND In addition, with clicking on it, the window can be brought to front again (-> this is also NOT what I want)

Has anybody an idea?

if location == 0:
    # Always on Top
    #
    new_style = actual_style | wx.STAY_ON_TOP
    self.SetWindowStyle(new_style)

elif location == 1:
    # Normal
    #
    new_style = actual_style ^ wx.STAY_ON_TOP
    self.SetWindowStyle(new_style)          

elif location == 2:
    # On Background
    #
    new_style = actual_style ^ wx.STAY_ON_TOP
    self.SetWindowStyle(new_style)

    self.Lower()