widget/gonk/nsWindow.h

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* Copyright 2012 Mozilla Foundation and Mozilla contributors
     2  *
     3  * Licensed under the Apache License, Version 2.0 (the "License");
     4  * you may not use this file except in compliance with the License.
     5  * You may obtain a copy of the License at
     6  *
     7  *     http://www.apache.org/licenses/LICENSE-2.0
     8  *
     9  * Unless required by applicable law or agreed to in writing, software
    10  * distributed under the License is distributed on an "AS IS" BASIS,
    11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  * See the License for the specific language governing permissions and
    13  * limitations under the License.
    14  */
    16 #ifndef nsWindow_h
    17 #define nsWindow_h
    19 #include "nsBaseWidget.h"
    20 #include "nsRegion.h"
    21 #include "nsIIdleServiceInternal.h"
    23 extern nsIntRect gScreenBounds;
    25 namespace mozilla {
    26 namespace gl {
    27 class GLContext;
    28 }
    29 namespace layers {
    30 class LayersManager;
    31 }
    32 }
    34 namespace android {
    35 class FramebufferNativeWindow;
    36 }
    38 namespace widget {
    39 struct InputContext;
    40 struct InputContextAction;
    41 }
    43 class nsWindow : public nsBaseWidget
    44 {
    45 public:
    46     nsWindow();
    47     virtual ~nsWindow();
    49     static void DoDraw(void);
    50     static nsEventStatus DispatchInputEvent(mozilla::WidgetGUIEvent& aEvent,
    51                                             bool* aWasCaptured = nullptr);
    53     NS_IMETHOD Create(nsIWidget *aParent,
    54                       void *aNativeParent,
    55                       const nsIntRect &aRect,
    56                       nsDeviceContext *aContext,
    57                       nsWidgetInitData *aInitData);
    58     NS_IMETHOD Destroy(void);
    60     NS_IMETHOD Show(bool aState);
    61     virtual bool IsVisible() const;
    62     NS_IMETHOD ConstrainPosition(bool aAllowSlop,
    63                                  int32_t *aX,
    64                                  int32_t *aY);
    65     NS_IMETHOD Move(double aX,
    66                     double aY);
    67     NS_IMETHOD Resize(double aWidth,
    68                       double aHeight,
    69                       bool  aRepaint);
    70     NS_IMETHOD Resize(double aX,
    71                       double aY,
    72                       double aWidth,
    73                       double aHeight,
    74                       bool aRepaint);
    75     NS_IMETHOD Enable(bool aState);
    76     virtual bool IsEnabled() const;
    77     NS_IMETHOD SetFocus(bool aRaise = false);
    78     NS_IMETHOD ConfigureChildren(const nsTArray<nsIWidget::Configuration>&);
    79     NS_IMETHOD Invalidate(const nsIntRect &aRect);
    80     virtual void* GetNativeData(uint32_t aDataType);
    81     NS_IMETHOD SetTitle(const nsAString& aTitle)
    82     {
    83         return NS_OK;
    84     }
    85     virtual nsIntPoint WidgetToScreenOffset();
    86     NS_IMETHOD DispatchEvent(mozilla::WidgetGUIEvent* aEvent,
    87                              nsEventStatus& aStatus);
    88     NS_IMETHOD CaptureRollupEvents(nsIRollupListener *aListener,
    89                                    bool aDoCapture)
    90     {
    91         return NS_ERROR_NOT_IMPLEMENTED;
    92     }
    93     NS_IMETHOD ReparentNativeWidget(nsIWidget* aNewParent);
    95     NS_IMETHOD MakeFullScreen(bool aFullScreen) /*MOZ_OVERRIDE*/;
    97     virtual float GetDPI();
    98     virtual double GetDefaultScaleInternal();
    99     virtual mozilla::layers::LayerManager*
   100         GetLayerManager(PLayerTransactionChild* aShadowManager = nullptr,
   101                         LayersBackend aBackendHint = mozilla::layers::LayersBackend::LAYERS_NONE,
   102                         LayerManagerPersistence aPersistence = LAYER_MANAGER_CURRENT,
   103                         bool* aAllowRetaining = nullptr);
   104     gfxASurface* GetThebesSurface();
   106     NS_IMETHOD_(void) SetInputContext(const InputContext& aContext,
   107                                       const InputContextAction& aAction);
   108     NS_IMETHOD_(InputContext) GetInputContext();
   110     virtual uint32_t GetGLFrameBufferFormat() MOZ_OVERRIDE;
   112     virtual nsIntRect GetNaturalBounds() MOZ_OVERRIDE;
   113     virtual bool NeedsPaint();
   115     virtual Composer2D* GetComposer2D() MOZ_OVERRIDE;
   117 protected:
   118     nsWindow* mParent;
   119     bool mVisible;
   120     InputContext mInputContext;
   121     nsCOMPtr<nsIIdleServiceInternal> mIdleService;
   123     void BringToTop();
   125     // Call this function when the users activity is the direct cause of an
   126     // event (like a keypress or mouse click).
   127     void UserActivity();
   128 };
   130 #endif /* nsWindow_h */

mercurial