Mercurial > dwindows
comparison ios/dw.m @ 2723:27fd270cb0db
iOS: Implement initial color in the color picker dialog.
Also fix a main thread warning in dw_scrollbar_new().
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Thu, 09 Dec 2021 12:40:17 +0000 |
parents | 2987bf90c7c9 |
children | 2dd68d2810ca |
comparison
equal
deleted
inserted
replaced
2722:cacde852e2db | 2723:27fd270cb0db |
---|---|
1062 if (@available(iOS 14.0, *)) | 1062 if (@available(iOS 14.0, *)) |
1063 { | 1063 { |
1064 DWDialog *dialog = dw_dialog_new(NULL); | 1064 DWDialog *dialog = dw_dialog_new(NULL); |
1065 UIColorPickerViewController *picker = [[UIColorPickerViewController alloc] init]; | 1065 UIColorPickerViewController *picker = [[UIColorPickerViewController alloc] init]; |
1066 DWColorPickerDelegate *delegate = [[DWColorPickerDelegate alloc] init]; | 1066 DWColorPickerDelegate *delegate = [[DWColorPickerDelegate alloc] init]; |
1067 unsigned long color = [[params firstObject] unsignedLongValue]; | |
1067 | 1068 |
1068 /* Setup our picker */ | 1069 /* Setup our picker */ |
1069 [picker setSupportsAlpha:NO]; | 1070 [picker setSupportsAlpha:NO]; |
1070 /* Unhide our hidden window and make it key */ | 1071 /* Unhide our hidden window and make it key */ |
1071 [hiddenWindow setHidden:NO]; | 1072 [hiddenWindow setHidden:NO]; |
1072 [hiddenWindow makeKeyAndVisible]; | 1073 [hiddenWindow makeKeyAndVisible]; |
1073 [delegate setDialog:dialog]; | 1074 [delegate setDialog:dialog]; |
1074 [picker setDelegate:delegate]; | 1075 [picker setDelegate:delegate]; |
1076 [picker setSelectedColor:[UIColor colorWithRed: DW_RED_VALUE(color)/255.0 green: DW_GREEN_VALUE(color)/255.0 blue: DW_BLUE_VALUE(color)/255.0 alpha: 1]]; | |
1075 /* Wait for them to pick a color */ | 1077 /* Wait for them to pick a color */ |
1076 [[hiddenWindow rootViewController] presentViewController:picker animated:YES completion:nil]; | 1078 [[hiddenWindow rootViewController] presentViewController:picker animated:YES completion:nil]; |
1077 [params addObject:[NSNumber numberWithUnsignedLong:DW_POINTER_TO_UINT(dw_dialog_wait(dialog))]]; | 1079 [params addObject:[NSNumber numberWithUnsignedLong:DW_POINTER_TO_UINT(dw_dialog_wait(dialog))]]; |
1078 /* Once the dialog is gone we can rehide our window */ | 1080 /* Once the dialog is gone we can rehide our window */ |
1079 [hiddenWindow resignKeyWindow]; | 1081 [hiddenWindow resignKeyWindow]; |
4559 * Parameters: | 4561 * Parameters: |
4560 * vertical: TRUE or FALSE if scrollbar is vertical. | 4562 * vertical: TRUE or FALSE if scrollbar is vertical. |
4561 * increments: Number of increments available. | 4563 * increments: Number of increments available. |
4562 * id: An ID to be used with dw_window_from_id() or 0L. | 4564 * id: An ID to be used with dw_window_from_id() or 0L. |
4563 */ | 4565 */ |
4564 HWND API dw_scrollbar_new(int vertical, ULONG cid) | 4566 DW_FUNCTION_DEFINITION(dw_scrollbar_new, HWND, int vertical, ULONG cid) |
4567 DW_FUNCTION_ADD_PARAM2(vertical, cid) | |
4568 DW_FUNCTION_RETURN(dw_scrollbar_new, HWND) | |
4569 DW_FUNCTION_RESTORE_PARAM2(vertical, int, cid, ULONG) | |
4565 { | 4570 { |
4566 DWSlider *slider = dw_slider_new(vertical, 1, cid); | 4571 DWSlider *slider = dw_slider_new(vertical, 1, cid); |
4567 [slider setMinimumTrackTintColor:[UIColor clearColor]]; | 4572 [slider setMinimumTrackTintColor:[UIColor clearColor]]; |
4568 [slider setMaximumTrackTintColor:[UIColor clearColor]]; | 4573 [slider setMaximumTrackTintColor:[UIColor clearColor]]; |
4569 return slider; | 4574 DW_FUNCTION_RETURN_THIS(slider); |
4570 } | 4575 } |
4571 | 4576 |
4572 /* | 4577 /* |
4573 * Returns the position of the scrollbar. | 4578 * Returns the position of the scrollbar. |
4574 * Parameters: | 4579 * Parameters: |
5597 * Returns: | 5602 * Returns: |
5598 * The selected color or the current color if cancelled. | 5603 * The selected color or the current color if cancelled. |
5599 */ | 5604 */ |
5600 unsigned long API dw_color_choose(unsigned long value) | 5605 unsigned long API dw_color_choose(unsigned long value) |
5601 { | 5606 { |
5602 NSMutableArray *params = [NSMutableArray arrayWithObject:[NSNumber numberWithUnsignedLong:value]]; | 5607 NSMutableArray *params = [NSMutableArray arrayWithObject:[NSNumber numberWithUnsignedLong:_dw_get_color(value)]]; |
5603 unsigned long newcolor = value; | 5608 unsigned long newcolor = value; |
5604 | 5609 |
5605 [DWObj safeCall:@selector(colorPicker:) withObject:params]; | 5610 [DWObj safeCall:@selector(colorPicker:) withObject:params]; |
5606 if([params count] > 1) | 5611 if([params count] > 1) |
5607 newcolor = [[params lastObject] unsignedLongValue]; | 5612 newcolor = [[params lastObject] unsignedLongValue]; |