# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

with Files('**'):
    BUG_COMPONENT = ('Core', 'XP Toolkit/Widgets: XUL')

with Files('*Menu*'):
    BUG_COMPONENT = ('Core', 'XP Toolkit/Widgets: Menus')

if CONFIG['ENABLE_TESTS']:
    MOCHITEST_MANIFESTS += ['test/mochitest.ini']
    MOCHITEST_CHROME_MANIFESTS += ['test/chrome.ini']
    BROWSER_CHROME_MANIFESTS += ['test/browser.ini']

XPIDL_SOURCES += [
    'nsIBoxObject.idl',
    'nsIContainerBoxObject.idl',
    'nsIListBoxObject.idl',
    'nsIMenuBoxObject.idl',
    'nsIScrollBoxObject.idl',
    'nsISliderListener.idl',
]

XPIDL_MODULE = 'layout_xul'

EXPORTS += [
    'nsBox.h',
    'nsIScrollbarMediator.h',
    'nsPIBoxObject.h',
    'nsPIListBoxObject.h',
    'nsXULPopupManager.h',
]

EXPORTS.mozilla.dom += [
    'BoxObject.h',
    'ContainerBoxObject.h',
    'ListBoxObject.h',
    'MenuBoxObject.h',
    'PopupBoxObject.h',
    'ScrollBoxObject.h',
]

UNIFIED_SOURCES += [
    'BoxObject.cpp',
    'nsBox.cpp',
    'nsBoxFrame.cpp',
    'nsBoxLayout.cpp',
    'nsBoxLayoutState.cpp',
    'nsButtonBoxFrame.cpp',
    'nsRepeatService.cpp',
    'nsRootBoxFrame.cpp',
    'nsScrollbarButtonFrame.cpp',
    'nsScrollbarFrame.cpp',
    'nsScrollBoxFrame.cpp',
    'nsSliderFrame.cpp',
    'nsSprocketLayout.cpp',
    'nsStackFrame.cpp',
    'nsStackLayout.cpp',
    'nsXULTooltipListener.cpp',
]

if CONFIG['MOZ_XUL']:
    UNIFIED_SOURCES += [
        'ContainerBoxObject.cpp',
        'ListBoxObject.cpp',
        'MenuBoxObject.cpp',
        'nsDeckFrame.cpp',
        'nsDocElementBoxFrame.cpp',
        'nsGroupBoxFrame.cpp',
        'nsImageBoxFrame.cpp',
        'nsLeafBoxFrame.cpp',
        'nsListBoxBodyFrame.cpp',
        'nsListBoxLayout.cpp',
        'nsListItemFrame.cpp',
        'nsMenuBarFrame.cpp',
        'nsMenuBarListener.cpp',
        'nsMenuFrame.cpp',
        'nsMenuPopupFrame.cpp',
        'nsPopupSetFrame.cpp',
        'nsProgressMeterFrame.cpp',
        'nsResizerFrame.cpp',
        'nsSplitterFrame.cpp',
        'nsTextBoxFrame.cpp',
        'nsTitleBarFrame.cpp',
        'nsXULLabelFrame.cpp',
        'nsXULPopupManager.cpp',
        'PopupBoxObject.cpp',
        'ScrollBoxObject.cpp',
    ]

if CONFIG['MOZ_XUL']:
    DIRS += ['tree', 'grid']

include('/ipc/chromium/chromium-config.mozbuild')

FINAL_LIBRARY = 'xul'
LOCAL_INCLUDES += [
    '../base',
    '../generic',
    '../painting',
    '../style',
    '/dom/base',
    '/dom/xul',
]

if CONFIG['GNU_CXX']:
    CXXFLAGS += ['-Wno-error=shadow']
