LibreOffice Module avmedia (master) 1
win/window.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#pragma once
21
22#include <sal/config.h>
23
24#include <WinDef.h>
25
26#include "wincommon.hxx"
29#include <mutex>
30
31#include <com/sun/star/media/XPlayerWindow.hpp>
32
33struct IVideoWindow;
34
35namespace avmedia::win {
36
37class Player;
38
39
40class Window : public ::cppu::WeakImplHelper< css::media::XPlayerWindow,
41 css::lang::XServiceInfo >
42{
43public:
44
45 Window( Player& rPlayer );
46 ~Window() override;
47
48 bool create( const css::uno::Sequence< css::uno::Any >& aArguments );
49 void processGraphEvent();
50 void updatePointer();
51
52 // XPlayerWindow
53 virtual void SAL_CALL update( ) override;
54 virtual sal_Bool SAL_CALL setZoomLevel( css::media::ZoomLevel ZoomLevel ) override;
55 virtual css::media::ZoomLevel SAL_CALL getZoomLevel( ) override;
56 virtual void SAL_CALL setPointerType( sal_Int32 nPointerType ) override;
57
58 // XWindow
59 virtual void SAL_CALL setPosSize( sal_Int32 X, sal_Int32 Y, sal_Int32 Width, sal_Int32 Height, sal_Int16 Flags ) override;
60 virtual css::awt::Rectangle SAL_CALL getPosSize( ) override;
61 virtual void SAL_CALL setVisible( sal_Bool Visible ) override;
62 virtual void SAL_CALL setEnable( sal_Bool Enable ) override;
63 virtual void SAL_CALL setFocus( ) override;
64 virtual void SAL_CALL addWindowListener( const css::uno::Reference< css::awt::XWindowListener >& xListener ) override;
65 virtual void SAL_CALL removeWindowListener( const css::uno::Reference< css::awt::XWindowListener >& xListener ) override;
66 virtual void SAL_CALL addFocusListener( const css::uno::Reference< css::awt::XFocusListener >& xListener ) override;
67 virtual void SAL_CALL removeFocusListener( const css::uno::Reference< css::awt::XFocusListener >& xListener ) override;
68 virtual void SAL_CALL addKeyListener( const css::uno::Reference< css::awt::XKeyListener >& xListener ) override;
69 virtual void SAL_CALL removeKeyListener( const css::uno::Reference< css::awt::XKeyListener >& xListener ) override;
70 virtual void SAL_CALL addMouseListener( const css::uno::Reference< css::awt::XMouseListener >& xListener ) override;
71 virtual void SAL_CALL removeMouseListener( const css::uno::Reference< css::awt::XMouseListener >& xListener ) override;
72 virtual void SAL_CALL addMouseMotionListener( const css::uno::Reference< css::awt::XMouseMotionListener >& xListener ) override;
73 virtual void SAL_CALL removeMouseMotionListener( const css::uno::Reference< css::awt::XMouseMotionListener >& xListener ) override;
74 virtual void SAL_CALL addPaintListener( const css::uno::Reference< css::awt::XPaintListener >& xListener ) override;
75 virtual void SAL_CALL removePaintListener( const css::uno::Reference< css::awt::XPaintListener >& xListener ) override;
76
77 // XComponent
78 virtual void SAL_CALL dispose( ) override;
79 virtual void SAL_CALL addEventListener( const css::uno::Reference< css::lang::XEventListener >& xListener ) override;
80 virtual void SAL_CALL removeEventListener( const css::uno::Reference< css::lang::XEventListener >& aListener ) override;
81
82 // XServiceInfo
83 virtual OUString SAL_CALL getImplementationName( ) override;
84 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
85 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) override;
86
87public:
88
89 void fireMousePressedEvent( const css::awt::MouseEvent& rEvt );
90 void fireMouseReleasedEvent( const css::awt::MouseEvent& rEvt );
91 void fireMouseMovedEvent( const css::awt::MouseEvent& rEvt );
92 void fireKeyPressedEvent( const css::awt::KeyEvent& rEvt );
93 void fireKeyReleasedEvent( const css::awt::KeyEvent& rEvt );
94 void fireSetFocusEvent( const css::awt::FocusEvent& rEvt );
95 HWND getParentWnd() const { return mnParentWnd; }
96
97private:
98
99 std::mutex maMutex;
107 css::media::ZoomLevel meZoomLevel;
112
114};
115
116} // namespace avmedia::win
117
118/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual void SAL_CALL addPaintListener(const css::uno::Reference< css::awt::XPaintListener > &xListener) override
virtual void SAL_CALL setEnable(sal_Bool Enable) override
Definition: window.cxx:337
virtual void SAL_CALL addEventListener(const css::uno::Reference< css::lang::XEventListener > &xListener) override
virtual void SAL_CALL removeEventListener(const css::uno::Reference< css::lang::XEventListener > &aListener) override
void fireMouseReleasedEvent(const css::awt::MouseEvent &rEvt)
Definition: window.cxx:443
virtual void SAL_CALL dispose() override
Definition: window.cxx:421
virtual css::media::ZoomLevel SAL_CALL getZoomLevel() override
Definition: window.cxx:285
virtual void SAL_CALL removeKeyListener(const css::uno::Reference< css::awt::XKeyListener > &xListener) override
void fireKeyPressedEvent(const css::awt::KeyEvent &rEvt)
virtual css::awt::Rectangle SAL_CALL getPosSize() override
Definition: window.cxx:304
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Definition: window.cxx:471
virtual void SAL_CALL removeWindowListener(const css::uno::Reference< css::awt::XWindowListener > &xListener) override
virtual void SAL_CALL addFocusListener(const css::uno::Reference< css::awt::XFocusListener > &xListener) override
comphelper::OInterfaceContainerHelper4< css::awt::XMouseMotionListener > maMouseMotionListeners
Definition: win/window.hxx:104
virtual void SAL_CALL addMouseMotionListener(const css::uno::Reference< css::awt::XMouseMotionListener > &xListener) override
virtual void SAL_CALL setFocus() override
Definition: window.cxx:343
void fireSetFocusEvent(const css::awt::FocusEvent &rEvt)
Definition: window.cxx:455
css::media::ZoomLevel meZoomLevel
Definition: win/window.hxx:107
virtual void SAL_CALL addWindowListener(const css::uno::Reference< css::awt::XWindowListener > &xListener) override
virtual void SAL_CALL setPointerType(sal_Int32 nPointerType) override
Definition: window.cxx:290
void ImplLayoutVideoWindow()
Definition: window.cxx:115
HWND getParentWnd() const
Definition: win/window.hxx:95
comphelper::OInterfaceContainerHelper4< css::awt::XMouseListener > maMouseListeners
Definition: win/window.hxx:103
virtual sal_Bool SAL_CALL setZoomLevel(css::media::ZoomLevel ZoomLevel) override
comphelper::OInterfaceContainerHelper4< css::awt::XKeyListener > maKeyListeners
Definition: win/window.hxx:102
bool create(const css::uno::Sequence< css::uno::Any > &aArguments)
Definition: window.cxx:200
virtual void SAL_CALL removeMouseMotionListener(const css::uno::Reference< css::awt::XMouseMotionListener > &xListener) override
~Window() override
Definition: window.cxx:109
Window(Player &rPlayer)
Definition: window.cxx:100
comphelper::OInterfaceContainerHelper4< css::awt::XPaintListener > maPaintListeners
Definition: win/window.hxx:105
virtual void SAL_CALL addKeyListener(const css::uno::Reference< css::awt::XKeyListener > &xListener) override
virtual void SAL_CALL removeFocusListener(const css::uno::Reference< css::awt::XFocusListener > &xListener) override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
Definition: window.cxx:466
virtual void SAL_CALL addMouseListener(const css::uno::Reference< css::awt::XMouseListener > &xListener) override
virtual void SAL_CALL setPosSize(sal_Int32 X, sal_Int32 Y, sal_Int32 Width, sal_Int32 Height, sal_Int16 Flags) override
Definition: window.cxx:295
virtual OUString SAL_CALL getImplementationName() override
Definition: window.cxx:461
virtual void SAL_CALL removePaintListener(const css::uno::Reference< css::awt::XPaintListener > &xListener) override
void fireMouseMovedEvent(const css::awt::MouseEvent &rEvt)
Definition: window.cxx:449
void fireKeyReleasedEvent(const css::awt::KeyEvent &rEvt)
virtual void SAL_CALL removeMouseListener(const css::uno::Reference< css::awt::XMouseListener > &xListener) override
virtual void SAL_CALL update() override
Definition: window.cxx:261
comphelper::OInterfaceContainerHelper4< css::awt::XWindowListener > maWindowListeners
Definition: win/window.hxx:100
comphelper::OInterfaceContainerHelper4< css::lang::XEventListener > maEventListeners
Definition: win/window.hxx:106
void fireMousePressedEvent(const css::awt::MouseEvent &rEvt)
Definition: window.cxx:437
virtual void SAL_CALL setVisible(sal_Bool Visible) override
Definition: window.cxx:324
void processGraphEvent()
Definition: window.cxx:238
comphelper::OInterfaceContainerHelper4< css::awt::XFocusListener > maFocusListeners
Definition: win/window.hxx:101
Sequence< PropertyValue > aArguments
unsigned char sal_Bool