Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/widget/gtk/nsGTKToolkit.h
Line
Count
Source (jump to first uncovered line)
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/* vim:expandtab:shiftwidth=4:tabstop=4:
3
 */
4
/* This Source Code Form is subject to the terms of the Mozilla Public
5
 * License, v. 2.0. If a copy of the MPL was not distributed with this
6
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7
8
#ifndef GTKTOOLKIT_H
9
#define GTKTOOLKIT_H
10
11
#include "nsString.h"
12
#include <gtk/gtk.h>
13
14
/**
15
 * Wrapper around the thread running the message pump.
16
 * The toolkit abstraction is necessary because the message pump must
17
 * execute within the same thread that created the widget under Win32.
18
 */
19
20
class nsGTKToolkit
21
{
22
public:
23
    nsGTKToolkit();
24
25
    static nsGTKToolkit* GetToolkit();
26
27
0
    static void Shutdown() {
28
0
      delete gToolkit;
29
0
      gToolkit = nullptr;
30
0
    }
31
32
    /**
33
     * Get/set our value of DESKTOP_STARTUP_ID. When non-empty, this is applied
34
     * to the next toplevel window to be shown or focused (and then immediately
35
     * cleared).
36
     */
37
0
    void SetDesktopStartupID(const nsACString& aID) { mDesktopStartupID = aID; }
38
0
    void GetDesktopStartupID(nsACString* aID) { *aID = mDesktopStartupID; }
39
40
    /**
41
     * Get/set the timestamp value to be used, if non-zero, to focus the
42
     * next top-level window to be shown or focused (upon which it is cleared).
43
     */
44
0
    void SetFocusTimestamp(uint32_t aTimestamp) { mFocusTimestamp = aTimestamp; }
45
0
    uint32_t GetFocusTimestamp() { return mFocusTimestamp; }
46
47
private:
48
    static nsGTKToolkit* gToolkit;
49
50
    nsCString      mDesktopStartupID;
51
    uint32_t       mFocusTimestamp;
52
};
53
54
#endif  // GTKTOOLKIT_H