LibreOffice Module toolkit (master) 1
btndlg.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#ifndef INCLUDED_VCL_BTNDLG_HXX
21#define INCLUDED_VCL_BTNDLG_HXX
22
25
26#include <vector>
27#include <memory>
28
29struct ImplBtnDlgItem;
30class PushButton;
31class Button;
32
33#define BUTTONDIALOG_BUTTON_NOTFOUND (sal_uInt16(0xFFFF))
34
36{
37 NONE = 0x0000,
38 Default = 0x0001,
39 OK = 0x0002,
40 Cancel = 0x0004,
41 Help = 0x0008,
42 Focus = 0x0010,
43};
44namespace o3tl
45{
46 template<> struct typed_flags<ButtonDialogFlags> : is_typed_flags<ButtonDialogFlags, 0x001f> {};
47}
48
49class ButtonDialog : public Dialog
50{
51public:
52 virtual ~ButtonDialog() override;
53 virtual void dispose() override;
54
55 virtual void Resize() override;
56 virtual void StateChanged( StateChangedType nStateChange ) override;
57
58 void SetPageSizePixel( const Size& rSize ) { maPageSize = rSize; }
59
60 void AddButton( StandardButtonType eType, sal_uInt16 nId, ButtonDialogFlags nBtnFlags, tools::Long nSepPixel = 0 );
61 void RemoveButton( sal_uInt16 nId );
62
63protected:
64 ButtonDialog( WindowType nType );
66
67private:
68 ButtonDialog( const ButtonDialog & ) = delete;
69 ButtonDialog& operator=( const ButtonDialog& ) = delete;
70
71private:
72 std::vector<std::unique_ptr<ImplBtnDlgItem>> m_ItemList;
76 sal_uInt16 mnCurButtonId;
77 sal_uInt16 mnFocusButtonId;
79
82 DECL_LINK( ImplClickHdl, Button* pBtn, void );
83 void ImplPosControls();
84
85};
86
87#endif // INCLUDED_VCL_BTNDLG_HXX
88
89/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
ButtonDialogFlags
Definition: btndlg.hxx:36
void AddButton(StandardButtonType eType, sal_uInt16 nId, ButtonDialogFlags nBtnFlags, tools::Long nSepPixel=0)
Definition: btndlg.cxx:245
virtual void Resize() override
Definition: btndlg.cxx:211
ButtonDialog & operator=(const ButtonDialog &)=delete
tools::Long mnButtonSize
Definition: btndlg.hxx:75
bool mbFormat
Definition: btndlg.hxx:78
DECL_LINK(ImplClickHdl, Button *pBtn, void)
sal_uInt16 mnCurButtonId
Definition: btndlg.hxx:76
virtual void StateChanged(StateChangedType nStateChange) override
Definition: btndlg.cxx:215
VclPtr< PushButton > ImplCreatePushButton(ButtonDialogFlags nBtnFlags)
Definition: btndlg.cxx:67
tools::Long ImplGetButtonSize()
Definition: btndlg.cxx:89
sal_uInt16 mnFocusButtonId
Definition: btndlg.hxx:77
std::vector< std::unique_ptr< ImplBtnDlgItem > > m_ItemList
Definition: btndlg.hxx:72
void ImplInitButtonDialogData()
Definition: btndlg.cxx:37
void RemoveButton(sal_uInt16 nId)
Definition: btndlg.cxx:286
Size maCtrlSize
Definition: btndlg.hxx:74
void ImplPosControls()
Definition: btndlg.cxx:133
ButtonDialog(const ButtonDialog &)=delete
void SetPageSizePixel(const Size &rSize)
Definition: btndlg.hxx:58
Size maPageSize
Definition: btndlg.hxx:73
virtual void dispose() override
Definition: btndlg.cxx:56
ButtonDialog(WindowType nType)
Definition: btndlg.cxx:45
virtual ~ButtonDialog() override
Definition: btndlg.cxx:51
#define OK
NONE
long Long
StateChangedType
WindowType
StandardButtonType