1# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
2# vim: set filetype=python:
3# This Source Code Form is subject to the terms of the Mozilla Public
4# License, v. 2.0. If a copy of the MPL was not distributed with this
5# file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
7Headers = [
8    '/widget/gtk/nsWidgetFactory.h',
9]
10
11InitFunc = 'nsWidgetGtk2ModuleCtor'
12UnloadFunc = 'nsWidgetGtk2ModuleDtor'
13
14Classes = [
15    {
16        'cid': '{2d96b3df-c051-11d1-a827-0040959a28c9}',
17        'contract_ids': ['@mozilla.org/widget/appshell/gtk;1'],
18        'legacy_constructor': 'nsAppShellConstructor',
19        'headers': ['/widget/gtk/nsWidgetFactory.h'],
20        'processes': ProcessSelector.ALLOW_IN_GPU_RDD_VR_AND_SOCKET_PROCESS,
21    },
22    {
23        'cid': '{c401eb80-f9ea-11d3-bb6f-e732b73ebe7c}',
24        'contract_ids': ['@mozilla.org/gfx/screenmanager;1'],
25        'singleton': True,
26        'type': 'mozilla::widget::ScreenManager',
27        'headers': ['mozilla/StaticPtr.h', 'mozilla/widget/ScreenManager.h'],
28        'constructor': 'mozilla::widget::ScreenManager::GetAddRefedSingleton',
29        'processes': ProcessSelector.ALLOW_IN_GPU_AND_MAIN_PROCESS,
30    },
31    {
32        'cid': '{a9339876-0027-430f-b953-84c9c11c2da3}',
33        'contract_ids': ['@mozilla.org/widget/taskbarprogress/gtk;1'],
34        'type': 'TaskbarProgress',
35        'headers': ['/widget/gtk/TaskbarProgress.h'],
36    },
37    {
38        'cid': '{0f872c8c-3ee6-46bd-92a2-69652c6b474e}',
39        'contract_ids': ['@mozilla.org/colorpicker;1'],
40        'type': 'nsColorPicker',
41        'headers': ['/widget/gtk/nsColorPicker.h'],
42        'processes': ProcessSelector.MAIN_PROCESS_ONLY,
43    },
44    {
45        'cid': '{bd57cee8-1dd1-11b2-9fe7-95cf4709aea3}',
46        'contract_ids': ['@mozilla.org/filepicker;1'],
47        'type': 'nsFilePicker',
48        'headers': ['/widget/gtk/nsFilePicker.h'],
49        'processes': ProcessSelector.MAIN_PROCESS_ONLY,
50    },
51    {
52        'cid': '{948a0023-e3a7-11d2-96cf-0060b0fb9956}',
53        'contract_ids': ['@mozilla.org/widget/htmlformatconverter;1'],
54        'type': 'nsHTMLFormatConverter',
55        'headers': ['/widget/nsHTMLFormatConverter.h'],
56    },
57    {
58        'cid': '{b148eed2-236d-11d3-b35c-00a0cc3c1cde}',
59        'contract_ids': ['@mozilla.org/sound;1'],
60        'singleton': True,
61        'type': 'nsISound',
62        'constructor': 'nsSound::GetInstance',
63        'headers': ['/widget/gtk/nsSound.h'],
64        'processes': ProcessSelector.MAIN_PROCESS_ONLY,
65    },
66    {
67        'cid': '{8b5314bc-db01-11d2-96ce-0060b0fb9956}',
68        'contract_ids': ['@mozilla.org/widget/transferable;1'],
69        'type': 'nsTransferable',
70        'headers': ['/widget/nsTransferable.h'],
71    },
72    {
73        'cid': '{e221df9b-3d66-4045-9a66-5720949f8d10}',
74        'contract_ids': ['@mozilla.org/applicationchooser;1'],
75        'type': 'nsApplicationChooser',
76        'headers': ['/widget/gtk/nsApplicationChooser.h'],
77        'processes': ProcessSelector.MAIN_PROCESS_ONLY,
78    },
79]
80
81if defined('MOZ_X11'):
82    Classes += [
83        {
84            'js_name': 'clipboard',
85            'cid': '{8b5314ba-db01-11d2-96ce-0060b0fb9956}',
86            'contract_ids': ['@mozilla.org/widget/clipboard;1'],
87            'interfaces': ['nsIClipboard'],
88            'type': 'nsIClipboard',
89            'processes': ProcessSelector.MAIN_PROCESS_ONLY,
90            'overridable': True,
91        },
92        {
93            'cid': '{77221d5a-1dd2-11b2-8c69-c710f15d2ed5}',
94            'contract_ids': ['@mozilla.org/widget/clipboardhelper;1'],
95            'type': 'nsClipboardHelper',
96            'headers': ['/widget/nsClipboardHelper.h'],
97        },
98        {
99            'cid': '{8b5314bb-db01-11d2-96ce-0060b0fb9956}',
100            'contract_ids': ['@mozilla.org/widget/dragservice;1'],
101            'singleton': True,
102            'type': 'nsDragService',
103            'headers': ['/widget/gtk/nsDragService.h'],
104            'constructor': 'nsDragService::GetInstance',
105            'processes': ProcessSelector.MAIN_PROCESS_ONLY,
106        },
107        {
108            'name': 'GfxInfo',
109            'cid': '{d755a760-9f27-11df-0800-200c9a664242}',
110            'contract_ids': ['@mozilla.org/gfx/info;1'],
111            'type': 'mozilla::widget::GfxInfo',
112            'headers': ['/widget/gtk/GfxInfo.h'],
113            'init_method': 'Init',
114            'processes': ProcessSelector.ALLOW_IN_GPU_PROCESS,
115        },
116        {
117            'cid': '{6987230e-0098-4e78-bc5f-1493ee7519fa}',
118            'contract_ids': ['@mozilla.org/widget/useridleservice;1'],
119            'singleton': True,
120            'type': 'nsUserIdleService',
121            'headers': ['/widget/gtk/nsUserIdleServiceGTK.h'],
122            'constructor': 'nsUserIdleServiceGTK::GetInstance',
123        },
124    ]
125
126if defined('NS_PRINTING'):
127    Classes += [
128        {
129            'cid': '{d3f69889-e13a-4321-980c-a39332e21f34}',
130            'contract_ids': ['@mozilla.org/gfx/devicecontextspec;1'],
131            'type': 'nsDeviceContextSpecGTK',
132            'headers': ['/widget/gtk/nsDeviceContextSpecG.h'],
133        },
134        {
135            'cid': '{06beec76-a183-4d9f-85dd-085f26da565a}',
136            'contract_ids': ['@mozilla.org/widget/printdialog-service;1'],
137            'type': 'nsPrintDialogServiceGTK',
138            'headers': ['/widget/gtk/nsPrintDialogGTK.h'],
139            'init_method': 'Init',
140        },
141        {
142            'cid': '{2f977d53-5485-11d4-87e2-0010a4e75ef2}',
143            'contract_ids': ['@mozilla.org/gfx/printsession;1'],
144            'type': 'nsPrintSession',
145            'headers': ['/widget/nsPrintSession.h'],
146            'init_method': 'Init',
147        },
148        {
149            'cid': '{841387c8-72e6-484b-9296-bf6eea80d58a}',
150            'contract_ids': ['@mozilla.org/gfx/printsettings-service;1'],
151            'type': 'nsPrintSettingsServiceGTK',
152            'headers': ['/widget/gtk/nsPrintSettingsServiceGTK.h'],
153            'init_method': 'Init',
154        },
155        {
156            'cid': '{a6cf9129-15b3-11d2-932e-00805f8add32}',
157            'contract_ids': ['@mozilla.org/gfx/printerlist;1'],
158            'type': 'nsPrinterListCUPS',
159            'headers': ['/widget/nsPrinterListCUPS.h'],
160        },
161    ]
162