LibreOffice Module toolkit (master)
1
toolkit
inc
helper
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
23
#include <
vcl/toolkit/dialog.hxx
>
24
#include <
o3tl/typed_flags_set.hxx
>
25
26
#include <vector>
27
#include <memory>
28
29
struct
ImplBtnDlgItem
;
30
class
PushButton
;
31
class
Button
;
32
33
#define BUTTONDIALOG_BUTTON_NOTFOUND (sal_uInt16(0xFFFF))
34
35
enum class
ButtonDialogFlags
36
{
37
NONE
= 0x0000,
38
Default
= 0x0001,
39
OK
= 0x0002,
40
Cancel
= 0x0004,
41
Help
= 0x0008,
42
Focus
= 0x0010,
43
};
44
namespace
o3tl
45
{
46
template
<>
struct
typed_flags
<
ButtonDialogFlags
> :
is_typed_flags
<ButtonDialogFlags, 0x001f> {};
47
}
48
49
class
ButtonDialog
:
public
Dialog
50
{
51
public
:
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
63
protected
:
64
ButtonDialog
(
WindowType
nType );
65
tools::Long
ImplGetButtonSize
();
66
67
private
:
68
ButtonDialog
(
const
ButtonDialog
& ) =
delete
;
69
ButtonDialog
&
operator=
(
const
ButtonDialog
& ) =
delete
;
70
71
private
:
72
std::vector<std::unique_ptr<ImplBtnDlgItem>>
m_ItemList
;
73
Size
maPageSize
;
74
Size
maCtrlSize
;
75
tools::Long
mnButtonSize
;
76
sal_uInt16
mnCurButtonId
;
77
sal_uInt16
mnFocusButtonId
;
78
bool
mbFormat
;
79
80
void
ImplInitButtonDialogData
();
81
VclPtr<PushButton>
ImplCreatePushButton
(
ButtonDialogFlags
nBtnFlags );
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: */
SwCopyFlags::Default
@ Default
ButtonDialogFlags
ButtonDialogFlags
Definition:
btndlg.hxx:36
ButtonDialog
Definition:
btndlg.hxx:50
ButtonDialog::AddButton
void AddButton(StandardButtonType eType, sal_uInt16 nId, ButtonDialogFlags nBtnFlags, tools::Long nSepPixel=0)
Definition:
btndlg.cxx:245
ButtonDialog::Resize
virtual void Resize() override
Definition:
btndlg.cxx:211
ButtonDialog::operator=
ButtonDialog & operator=(const ButtonDialog &)=delete
ButtonDialog::mnButtonSize
tools::Long mnButtonSize
Definition:
btndlg.hxx:75
ButtonDialog::mbFormat
bool mbFormat
Definition:
btndlg.hxx:78
ButtonDialog::DECL_LINK
DECL_LINK(ImplClickHdl, Button *pBtn, void)
ButtonDialog::mnCurButtonId
sal_uInt16 mnCurButtonId
Definition:
btndlg.hxx:76
ButtonDialog::StateChanged
virtual void StateChanged(StateChangedType nStateChange) override
Definition:
btndlg.cxx:215
ButtonDialog::ImplCreatePushButton
VclPtr< PushButton > ImplCreatePushButton(ButtonDialogFlags nBtnFlags)
Definition:
btndlg.cxx:67
ButtonDialog::ImplGetButtonSize
tools::Long ImplGetButtonSize()
Definition:
btndlg.cxx:89
ButtonDialog::mnFocusButtonId
sal_uInt16 mnFocusButtonId
Definition:
btndlg.hxx:77
ButtonDialog::m_ItemList
std::vector< std::unique_ptr< ImplBtnDlgItem > > m_ItemList
Definition:
btndlg.hxx:72
ButtonDialog::ImplInitButtonDialogData
void ImplInitButtonDialogData()
Definition:
btndlg.cxx:37
ButtonDialog::RemoveButton
void RemoveButton(sal_uInt16 nId)
Definition:
btndlg.cxx:286
ButtonDialog::maCtrlSize
Size maCtrlSize
Definition:
btndlg.hxx:74
ButtonDialog::ImplPosControls
void ImplPosControls()
Definition:
btndlg.cxx:133
ButtonDialog::ButtonDialog
ButtonDialog(const ButtonDialog &)=delete
ButtonDialog::SetPageSizePixel
void SetPageSizePixel(const Size &rSize)
Definition:
btndlg.hxx:58
ButtonDialog::maPageSize
Size maPageSize
Definition:
btndlg.hxx:73
ButtonDialog::dispose
virtual void dispose() override
Definition:
btndlg.cxx:56
ButtonDialog::ButtonDialog
ButtonDialog(WindowType nType)
Definition:
btndlg.cxx:45
ButtonDialog::~ButtonDialog
virtual ~ButtonDialog() override
Definition:
btndlg.cxx:51
Button
Dialog
Help
PushButton
Size
VclPtr< PushButton >
dialog.hxx
OK
#define OK
FloatWinPopupEndFlags::Cancel
@ Cancel
NONE
NONE
o3tl
tools::Long
long Long
ControlPart::Focus
@ Focus
ImplBtnDlgItem
Definition:
btndlg.cxx:28
o3tl::is_typed_flags
o3tl::typed_flags
typed_flags_set.hxx
StateChangedType
StateChangedType
WindowType
WindowType
StandardButtonType
StandardButtonType
Generated on Sun Jul 30 2023 04:29:33 for LibreOffice Module toolkit (master) by
1.9.3