FINAL CUT
fwidget_flags.h
1 /***********************************************************************
2 * fwidget_flags.h - Struct to store widget properties in flags (⚑) *
3 * *
4 * This file is part of the FINAL CUT widget toolkit *
5 * *
6 * Copyright 2022-2023 Markus Gans *
7 * *
8 * FINAL CUT is free software; you can redistribute it and/or modify *
9 * it under the terms of the GNU Lesser General Public License as *
10 * published by the Free Software Foundation; either version 3 of *
11 * the License, or (at your option) any later version. *
12 * *
13 * FINAL CUT is distributed in the hope that it will be useful, but *
14 * WITHOUT ANY WARRANTY; without even the implied warranty of *
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16 * GNU Lesser General Public License for more details. *
17 * *
18 * You should have received a copy of the GNU Lesser General Public *
19 * License along with this program. If not, see *
20 * <http://www.gnu.org/licenses/>. *
21 ***********************************************************************/
22 
23 
24 #ifndef FWIDGET_FLAGS_H
25 #define FWIDGET_FLAGS_H
26 
27 #if !defined (USE_FINAL_H) && !defined (COMPILE_FINAL_CUT)
28  #error "Only <final/final.h> can be included directly."
29 #endif
30 
31 #include "final/ftypes.h"
32 
33 namespace finalcut
34 {
35 
37 {
38  uInt16 active : 1;
39  uInt16 scrollable : 1;
40  uInt16 resizeable : 1;
41  uInt16 minimizable : 1;
42  uInt16 flat : 1;
43  uInt16 no_border : 1;
44  uInt16 no_underline : 1;
45  uInt16 ignore_padding : 1;
46  uInt16 : 8; // padding bits
47 };
48 
50 {
51  uInt16 visible : 1;
52  uInt16 hidden : 1;
53  uInt16 shown : 1;
54  uInt16 modal : 1;
55  uInt16 always_on_top : 1;
56  uInt16 visible_cursor : 1;
57  uInt16 : 10; // padding bits
58 };
59 
61 {
62  uInt16 focus : 1;
63  uInt16 focusable : 1;
64  uInt16 : 14; // padding bits
65 };
66 
68 {
69  uInt16 shadow : 1;
70  uInt16 trans_shadow : 1;
71  uInt16 : 14; // padding bits
72 };
73 
75 {
76  uInt16 window_widget : 1;
77  uInt16 dialog_widget : 1;
78  uInt16 menu_widget : 1;
79  uInt16 : 13; // padding bits
80 };
81 
82 // Main struct, which contains all the data
84 {
85  FWidgetFeature feature;
86  FWidgetVisibility visibility;
87  FWidgetFocus focus;
88  FWidgetShadow shadow;
89  FWidgetType type;
90 };
91 
92 } // namespace finalcut
93 
94 #endif // FWIDGET_FLAGS_H
Definition: fwidget_flags.h:83
Definition: fwidget_flags.h:74
Definition: fwidget_flags.h:49
Definition: fwidget_flags.h:36
Definition: fwidget_flags.h:60
Definition: class_template.cpp:25
Definition: fwidget_flags.h:67