ui/win32/button.c

changeset 814
bcb3c7d486f3
parent 665
73689d24080c
child 815
7ddf5fb7ec2a
equal deleted inserted replaced
813:6d9066951cdb 814:bcb3c7d486f3
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26 * POSSIBILITY OF SUCH DAMAGE. 26 * POSSIBILITY OF SUCH DAMAGE.
27 */ 27 */
28 28
29 #include "button.h" 29 #include "button.h"
30 #include "widget.h"
31
32 static W32WidgetClass button_widget_class = {
33 .enable = w32_widget_default_enable,
34 .show = w32_widget_default_show,
35 .get_preferred_size = ui_button_get_preferred_size,
36 .destroy = w32_widget_default_destroy
37 };
30 38
31 UIWIDGET ui_button_create(UiObject *obj, UiButtonArgs *args) { 39 UIWIDGET ui_button_create(UiObject *obj, UiButtonArgs *args) {
32 return NULL; 40 HINSTANCE hInstance = GetModuleHandle(NULL);
41 UiContainerPrivate *container = ui_obj_container(obj);
42 HWND parent = ui_container_get_parent(container);
43 UiLayout layout = UI_ARGS2LAYOUT(args);
44
45 HWND hwnd = CreateWindow(
46 "BUTTON",
47 args->label,
48 WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
49 0, 0, 100, 30,
50 parent,
51 (HMENU)0,
52 hInstance,
53 NULL);
54
55 W32Widget *widget = w32_widget_create(&button_widget_class, hwnd, sizeof(W32Button));
56 ui_container_add(container, widget, &layout);
57
58 return widget;
33 } 59 }
60
61 W32Size ui_button_get_preferred_size(W32Widget *widget) {
62 W32Size size;
63 size.width = 100;
64 size.height = 30;
65 return size;
66 }

mercurial