| 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 } |