Rename unzip tool.
[SquirrelJME.git] / nanocoat / include / lib / scritchui / win32 / win32.h
blob0f119f3baa4a42f57e851410afbe6981efa73380
1 /* -*- Mode: C; indent-tabs-mode: t; tab-width: 4 -*-
2 // ---------------------------------------------------------------------------
3 // SquirrelJME
4 // Copyright (C) Stephanie Gawroriski <xer@multiphasicapps.net>
5 // ---------------------------------------------------------------------------
6 // SquirrelJME is under the Mozilla Public License Version 2.0.
7 // See license.mkd for licensing and copyright information.
8 // -------------------------------------------------------------------------*/
10 /**
11 * Win32 ScritchUI Implementation.
13 * @since 2024/07/30
16 #ifndef SQUIRRELJME_WIN32_H
17 #define SQUIRRELJME_WIN32_H
19 #include "lib/scritchui/scritchui.h"
20 #include "lib/scritchui/scritchuiImpl.h"
21 #include "lib/scritchui/scritchuiPencil.h"
23 /* Anti-C++. */
24 #ifdef __cplusplus
25 #ifndef SJME_CXX_IS_EXTERNED
26 #define SJME_CXX_IS_EXTERNED
27 #define SJME_CXX_SQUIRRELJME_WIN32_H
28 extern "C"
30 #endif /* #ifdef SJME_CXX_IS_EXTERNED */
31 #endif /* #ifdef __cplusplus */
33 /*--------------------------------------------------------------------------*/
35 /** Window handle. */
36 #define SJME_SUI_WIN32_H_HWND 0
38 /** Menu handle. */
39 #define SJME_SUI_WIN32_H_HMENU 0
41 /** Menu sub handle. */
42 #define SJME_SUI_WIN32_H_HSUBMENU 1
44 /** Window class atom. */
45 #define SJME_SUI_WIN32_H_HWNDATOM 2
47 /** Void window handle. */
48 #define SJME_SUI_WIN32_H_VOID 3
50 /** Are we on Windows 9x? */
51 #define SJME_SUI_WIN32_V_WIN9X 3
53 /** Win32 pencil functions. */
54 extern const sjme_scritchui_pencilImplFunctions
55 sjme_scritchui_win32_pencilFunctions;
57 sjme_errorCode sjme_scritchui_win32_apiInit(
58 sjme_attrInNotNull sjme_scritchui inState);
60 sjme_errorCode sjme_scritchui_win32_componentFocusGrab(
61 sjme_attrInNotNull sjme_scritchui inState,
62 sjme_attrInNotNull sjme_scritchui_uiComponent inComponent);
64 sjme_errorCode sjme_scritchui_win32_componentFocusHas(
65 sjme_attrInNotNull sjme_scritchui inState,
66 sjme_attrInNotNull sjme_scritchui_uiComponent inComponent,
67 sjme_attrOutNotNull sjme_jboolean* outHasFocus);
69 sjme_errorCode sjme_scritchui_win32_componentPosition(
70 sjme_attrInNotNull sjme_scritchui inState,
71 sjme_attrInNotNull sjme_scritchui_uiComponent inComponent,
72 sjme_attrOutNullable sjme_jint* outX,
73 sjme_attrOutNullable sjme_jint* outY);
75 sjme_errorCode sjme_scritchui_win32_componentRepaint(
76 sjme_attrInNotNull sjme_scritchui inState,
77 sjme_attrInNotNull sjme_scritchui_uiComponent inComponent,
78 sjme_attrInPositive sjme_jint x,
79 sjme_attrInPositive sjme_jint y,
80 sjme_attrInPositiveNonZero sjme_jint width,
81 sjme_attrInPositiveNonZero sjme_jint height);
83 sjme_errorCode sjme_scritchui_win32_componentRevalidate(
84 sjme_attrInNotNull sjme_scritchui inState,
85 sjme_attrInNotNull sjme_scritchui_uiComponent inComponent);
87 sjme_errorCode sjme_scritchui_win32_componentSetPaintListener(
88 sjme_attrInNotNull sjme_scritchui inState,
89 sjme_attrInNotNull sjme_scritchui_uiComponent inComponent,
90 SJME_SCRITCHUI_SET_LISTENER_ARGS(paint));
92 sjme_errorCode sjme_scritchui_win32_containerAdd(
93 sjme_attrInNotNull sjme_scritchui inState,
94 sjme_attrInNotNull sjme_scritchui_uiComponent inContainer,
95 sjme_attrInNotNull sjme_scritchui_uiContainer inContainerData,
96 sjme_attrInNotNull sjme_scritchui_uiComponent addComponent);
98 sjme_errorCode sjme_scritchui_win32_containerRemove(
99 sjme_attrInNotNull sjme_scritchui inState,
100 sjme_attrInNotNull sjme_scritchui_uiComponent inContainer,
101 sjme_attrInNotNull sjme_scritchui_uiContainer inContainerData,
102 sjme_attrInNotNull sjme_scritchui_uiComponent removeComponent);
104 sjme_errorCode sjme_scritchui_win32_containerSetBounds(
105 sjme_attrInNotNull sjme_scritchui inState,
106 sjme_attrInNotNull sjme_scritchui_uiComponent inContainer,
107 sjme_attrInNotNull sjme_scritchui_uiComponent inComponent,
108 sjme_attrInPositive sjme_jint x,
109 sjme_attrInPositive sjme_jint y,
110 sjme_attrInPositiveNonZero sjme_jint width,
111 sjme_attrInPositiveNonZero sjme_jint height);
113 sjme_errorCode sjme_scritchui_win32_componentSize(
114 sjme_attrInNotNull sjme_scritchui inState,
115 sjme_attrInNotNull sjme_scritchui_uiComponent inComponent,
116 sjme_attrOutNullable sjme_jint* outWidth,
117 sjme_attrOutNullable sjme_jint* outHeight);
119 sjme_errorCode sjme_scritchui_win32_labelSetString(
120 sjme_attrInNotNull sjme_scritchui inState,
121 sjme_attrInNotNull sjme_scritchui_uiCommon inCommon,
122 sjme_attrInNullable sjme_lpcstr inString);
124 sjme_errorCode sjme_scritchui_win32_lafElementColor(
125 sjme_attrInNotNull sjme_scritchui inState,
126 sjme_attrInNullable sjme_scritchui_uiComponent inContext,
127 sjme_attrOutNotNull sjme_jint* outRGB,
128 sjme_attrInValue sjme_scritchui_lafElementColorType elementColor);
130 sjme_errorCode sjme_scritchui_win32_loopExecuteLater(
131 sjme_attrInNotNull sjme_scritchui inState,
132 sjme_attrInNotNull sjme_thread_mainFunc callback,
133 sjme_attrInNullable sjme_thread_parameter anything);
135 sjme_errorCode sjme_scritchui_win32_loopIterate(
136 sjme_attrInNotNull sjme_scritchui inState,
137 sjme_attrInValue sjme_jboolean blocking,
138 sjme_attrOutNullable sjme_jboolean* outHasTerminated);
140 sjme_errorCode sjme_scritchui_win32_menuBarNew(
141 sjme_attrInNotNull sjme_scritchui inState,
142 sjme_attrInNotNull sjme_scritchui_uiMenuBar inMenuBar,
143 sjme_attrInNullable sjme_pointer ignored);
145 sjme_errorCode sjme_scritchui_win32_menuInsert(
146 sjme_attrInNotNull sjme_scritchui inState,
147 sjme_attrInNotNull sjme_scritchui_uiMenuKind intoMenu,
148 sjme_attrInPositive sjme_jint atIndex,
149 sjme_attrInNotNull sjme_scritchui_uiMenuKind childItem);
151 sjme_errorCode sjme_scritchui_win32_menuItemNew(
152 sjme_attrInNotNull sjme_scritchui inState,
153 sjme_attrInNotNull sjme_scritchui_uiMenuItem inMenuItem,
154 sjme_attrInNotNull const sjme_scritchui_impl_initParamMenuItem* init);
156 sjme_errorCode sjme_scritchui_win32_menuNew(
157 sjme_attrInNotNull sjme_scritchui inState,
158 sjme_attrInNotNull sjme_scritchui_uiMenu inMenu,
159 sjme_attrInNullable sjme_pointer ignored);
161 sjme_errorCode sjme_scritchui_win32_menuRemove(
162 sjme_attrInNotNull sjme_scritchui inState,
163 sjme_attrInNotNull sjme_scritchui_uiMenuKind fromMenu,
164 sjme_attrInPositive sjme_jint atIndex);
166 sjme_errorCode sjme_scritchui_win32_panelEnableFocus(
167 sjme_attrInNotNull sjme_scritchui inState,
168 sjme_attrInNotNull sjme_scritchui_uiPanel inPanel,
169 sjme_attrInValue sjme_jboolean enableFocus,
170 sjme_attrInValue sjme_jboolean defaultFocus);
172 sjme_errorCode sjme_scritchui_win32_panelNew(
173 sjme_attrInNotNull sjme_scritchui inState,
174 sjme_attrInNotNull sjme_scritchui_uiPanel inPanel,
175 sjme_attrInNullable sjme_pointer ignored);
177 sjme_errorCode sjme_scritchui_win32_screens(
178 sjme_attrInNotNull sjme_scritchui inState,
179 sjme_attrOutNotNull sjme_scritchui_uiScreen* outScreens,
180 sjme_attrInOutNotNull sjme_jint* inOutNumScreens);
182 sjme_errorCode sjme_scritchui_win32_scrollPanelNew(
183 sjme_attrInNotNull sjme_scritchui inState,
184 sjme_attrInNotNull sjme_scritchui_uiScrollPanel inScrollPanel,
185 sjme_attrInNullable sjme_pointer ignored);
187 sjme_errorCode sjme_scritchui_win32_viewGetView(
188 sjme_attrInNotNull sjme_scritchui inState,
189 sjme_attrInNotNull sjme_scritchui_uiComponent inComponent,
190 sjme_attrOutNotNull sjme_scritchui_rect* outViewRect);
192 sjme_errorCode sjme_scritchui_win32_viewSetArea(
193 sjme_attrInNotNull sjme_scritchui inState,
194 sjme_attrInNotNull sjme_scritchui_uiComponent inComponent,
195 sjme_attrInNotNull const sjme_scritchui_dim* inViewArea,
196 sjme_attrInNotNull const sjme_scritchui_dim* inViewPage);
198 sjme_errorCode sjme_scritchui_win32_viewSetView(
199 sjme_attrInNotNull sjme_scritchui inState,
200 sjme_attrInNotNull sjme_scritchui_uiComponent inComponent,
201 sjme_attrInNotNull const sjme_scritchui_point* inViewPos);
203 sjme_errorCode sjme_scritchui_win32_windowContentMinimumSize(
204 sjme_attrInNotNull sjme_scritchui inState,
205 sjme_attrInNotNull sjme_scritchui_uiWindow inWindow,
206 sjme_attrInPositiveNonZero sjme_jint width,
207 sjme_attrInPositiveNonZero sjme_jint height);
209 sjme_errorCode sjme_scritchui_win32_windowNew(
210 sjme_attrInNotNull sjme_scritchui inState,
211 sjme_attrInNotNull sjme_scritchui_uiWindow inWindow,
212 sjme_attrInNullable sjme_pointer ignored);
214 sjme_errorCode sjme_scritchui_win32_windowSetMenuBar(
215 sjme_attrInNotNull sjme_scritchui inState,
216 sjme_attrInNotNull sjme_scritchui_uiWindow inWindow,
217 sjme_attrInNullable sjme_scritchui_uiMenuBar inMenuBar);
219 sjme_errorCode sjme_scritchui_win32_windowSetVisible(
220 sjme_attrInNotNull sjme_scritchui inState,
221 sjme_attrInNotNull sjme_scritchui_uiWindow inWindow,
222 sjme_attrInValue sjme_jboolean isVisible);
224 /*--------------------------------------------------------------------------*/
226 /* Anti-C++. */
227 #ifdef __cplusplus
228 #ifdef SJME_CXX_SQUIRRELJME_WIN32_H
230 #undef SJME_CXX_SQUIRRELJME_WIN32_H
231 #undef SJME_CXX_IS_EXTERNED
232 #endif /* #ifdef SJME_CXX_SQUIRRELJME_WIN32_H */
233 #endif /* #ifdef __cplusplus */
235 #endif /* SQUIRRELJME_WIN32_H */