comparison android/dw.cpp @ 2710:98cc4476b376

Android: Add comments, TODOs for functions that should eventually be implmented. And descriptions of ones that probably don't need to be on Android.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Mon, 22 Nov 2021 03:02:13 +0000
parents 3cb5aa73dace
children 26bb1e4a97d0
comparison
equal deleted inserted replaced
2709:3cb5aa73dace 2710:98cc4476b376
2828 * Parameters: 2828 * Parameters:
2829 * handle: Handle to the MLE to freeze. 2829 * handle: Handle to the MLE to freeze.
2830 */ 2830 */
2831 void API dw_mle_freeze(HWND handle) 2831 void API dw_mle_freeze(HWND handle)
2832 { 2832 {
2833 /* Don't think this is necessary on Android */
2833 } 2834 }
2834 2835
2835 /* 2836 /*
2836 * Resumes redrawing of an MLE box. 2837 * Resumes redrawing of an MLE box.
2837 * Parameters: 2838 * Parameters:
2838 * handle: Handle to the MLE to thaw. 2839 * handle: Handle to the MLE to thaw.
2839 */ 2840 */
2840 void API dw_mle_thaw(HWND handle) 2841 void API dw_mle_thaw(HWND handle)
2841 { 2842 {
2843 /* Don't think this is necessary on Android */
2842 } 2844 }
2843 2845
2844 HWND _dw_text_new(const char *text, ULONG cid, int status) 2846 HWND _dw_text_new(const char *text, ULONG cid, int status)
2845 { 2847 {
2846 JNIEnv *env; 2848 JNIEnv *env;
2962 * Returns: 2964 * Returns:
2963 * The selected color or the current color if cancelled. 2965 * The selected color or the current color if cancelled.
2964 */ 2966 */
2965 unsigned long API dw_color_choose(unsigned long value) 2967 unsigned long API dw_color_choose(unsigned long value)
2966 { 2968 {
2969 /* TODO: Implement this */
2967 return value; 2970 return value;
2968 } 2971 }
2969 2972
2970 /* Draw a point on a window (preferably a render window). 2973 /* Draw a point on a window (preferably a render window).
2971 * Parameters: 2974 * Parameters:
3198 * Returns: 3201 * Returns:
3199 * A handle to a tree window or nullptr on failure. 3202 * A handle to a tree window or nullptr on failure.
3200 */ 3203 */
3201 HWND API dw_tree_new(ULONG cid) 3204 HWND API dw_tree_new(ULONG cid)
3202 { 3205 {
3206 /* TODO: Implement the tree if possible. */
3203 return nullptr; 3207 return nullptr;
3204 } 3208 }
3205 3209
3206 /* 3210 /*
3207 * Inserts an item into a tree window (widget) after another item. 3211 * Inserts an item into a tree window (widget) after another item.
3215 * Returns: 3219 * Returns:
3216 * A handle to a tree item or nullptr on failure. 3220 * A handle to a tree item or nullptr on failure.
3217 */ 3221 */
3218 HTREEITEM API dw_tree_insert_after(HWND handle, HTREEITEM item, const char *title, HICN icon, HTREEITEM parent, void *itemdata) 3222 HTREEITEM API dw_tree_insert_after(HWND handle, HTREEITEM item, const char *title, HICN icon, HTREEITEM parent, void *itemdata)
3219 { 3223 {
3224 /* TODO: Implement the tree if possible. */
3220 return nullptr; 3225 return nullptr;
3221 } 3226 }
3222 3227
3223 /* 3228 /*
3224 * Inserts an item into a tree window (widget). 3229 * Inserts an item into a tree window (widget).
3231 * Returns: 3236 * Returns:
3232 * A handle to a tree item or nullptr on failure. 3237 * A handle to a tree item or nullptr on failure.
3233 */ 3238 */
3234 HTREEITEM API dw_tree_insert(HWND handle, const char *title, HICN icon, HTREEITEM parent, void *itemdata) 3239 HTREEITEM API dw_tree_insert(HWND handle, const char *title, HICN icon, HTREEITEM parent, void *itemdata)
3235 { 3240 {
3241 /* TODO: Implement the tree if possible. */
3236 return nullptr; 3242 return nullptr;
3237 } 3243 }
3238 3244
3239 /* 3245 /*
3240 * Gets the text an item in a tree window (widget). 3246 * Gets the text an item in a tree window (widget).
3244 * Returns: 3250 * Returns:
3245 * A malloc()ed buffer of item text to be dw_free()ed or nullptr on error. 3251 * A malloc()ed buffer of item text to be dw_free()ed or nullptr on error.
3246 */ 3252 */
3247 char * API dw_tree_get_title(HWND handle, HTREEITEM item) 3253 char * API dw_tree_get_title(HWND handle, HTREEITEM item)
3248 { 3254 {
3255 /* TODO: Implement the tree if possible. */
3249 return nullptr; 3256 return nullptr;
3250 } 3257 }
3251 3258
3252 /* 3259 /*
3253 * Gets the text an item in a tree window (widget). 3260 * Gets the text an item in a tree window (widget).
3257 * Returns: 3264 * Returns:
3258 * A handle to a tree item or nullptr on failure. 3265 * A handle to a tree item or nullptr on failure.
3259 */ 3266 */
3260 HTREEITEM API dw_tree_get_parent(HWND handle, HTREEITEM item) 3267 HTREEITEM API dw_tree_get_parent(HWND handle, HTREEITEM item)
3261 { 3268 {
3269 /* TODO: Implement the tree if possible. */
3262 return nullptr; 3270 return nullptr;
3263 } 3271 }
3264 3272
3265 /* 3273 /*
3266 * Sets the text and icon of an item in a tree window (widget). 3274 * Sets the text and icon of an item in a tree window (widget).
3270 * title: The text title of the entry. 3278 * title: The text title of the entry.
3271 * icon: Handle to coresponding icon. 3279 * icon: Handle to coresponding icon.
3272 */ 3280 */
3273 void API dw_tree_item_change(HWND handle, HTREEITEM item, const char *title, HICN icon) 3281 void API dw_tree_item_change(HWND handle, HTREEITEM item, const char *title, HICN icon)
3274 { 3282 {
3283 /* TODO: Implement the tree if possible. */
3275 } 3284 }
3276 3285
3277 /* 3286 /*
3278 * Sets the item data of a tree item. 3287 * Sets the item data of a tree item.
3279 * Parameters: 3288 * Parameters:
3281 * item: Handle of the item to be modified. 3290 * item: Handle of the item to be modified.
3282 * itemdata: User defined data to be associated with item. 3291 * itemdata: User defined data to be associated with item.
3283 */ 3292 */
3284 void API dw_tree_item_set_data(HWND handle, HTREEITEM item, void *itemdata) 3293 void API dw_tree_item_set_data(HWND handle, HTREEITEM item, void *itemdata)
3285 { 3294 {
3295 /* TODO: Implement the tree if possible. */
3286 } 3296 }
3287 3297
3288 /* 3298 /*
3289 * Gets the item data of a tree item. 3299 * Gets the item data of a tree item.
3290 * Parameters: 3300 * Parameters:
3293 * Returns: 3303 * Returns:
3294 * A pointer to tree item data or nullptr on failure. 3304 * A pointer to tree item data or nullptr on failure.
3295 */ 3305 */
3296 void * API dw_tree_item_get_data(HWND handle, HTREEITEM item) 3306 void * API dw_tree_item_get_data(HWND handle, HTREEITEM item)
3297 { 3307 {
3308 /* TODO: Implement the tree if possible. */
3298 return nullptr; 3309 return nullptr;
3299 } 3310 }
3300 3311
3301 /* 3312 /*
3302 * Sets this item as the active selection. 3313 * Sets this item as the active selection.
3304 * handle: Handle to the tree window (widget) to be selected. 3315 * handle: Handle to the tree window (widget) to be selected.
3305 * item: Handle to the item to be selected. 3316 * item: Handle to the item to be selected.
3306 */ 3317 */
3307 void API dw_tree_item_select(HWND handle, HTREEITEM item) 3318 void API dw_tree_item_select(HWND handle, HTREEITEM item)
3308 { 3319 {
3320 /* TODO: Implement the tree if possible. */
3309 } 3321 }
3310 3322
3311 /* 3323 /*
3312 * Removes all nodes from a tree. 3324 * Removes all nodes from a tree.
3313 * Parameters: 3325 * Parameters:
3314 * handle: Handle to the window (widget) to be cleared. 3326 * handle: Handle to the window (widget) to be cleared.
3315 */ 3327 */
3316 void API dw_tree_clear(HWND handle) 3328 void API dw_tree_clear(HWND handle)
3317 { 3329 {
3330 /* TODO: Implement the tree if possible. */
3318 } 3331 }
3319 3332
3320 /* 3333 /*
3321 * Expands a node on a tree. 3334 * Expands a node on a tree.
3322 * Parameters: 3335 * Parameters:
3323 * handle: Handle to the tree window (widget). 3336 * handle: Handle to the tree window (widget).
3324 * item: Handle to node to be expanded. 3337 * item: Handle to node to be expanded.
3325 */ 3338 */
3326 void API dw_tree_item_expand(HWND handle, HTREEITEM item) 3339 void API dw_tree_item_expand(HWND handle, HTREEITEM item)
3327 { 3340 {
3341 /* TODO: Implement the tree if possible. */
3328 } 3342 }
3329 3343
3330 /* 3344 /*
3331 * Collapses a node on a tree. 3345 * Collapses a node on a tree.
3332 * Parameters: 3346 * Parameters:
3333 * handle: Handle to the tree window (widget). 3347 * handle: Handle to the tree window (widget).
3334 * item: Handle to node to be collapsed. 3348 * item: Handle to node to be collapsed.
3335 */ 3349 */
3336 void API dw_tree_item_collapse(HWND handle, HTREEITEM item) 3350 void API dw_tree_item_collapse(HWND handle, HTREEITEM item)
3337 { 3351 {
3352 /* TODO: Implement the tree if possible. */
3338 } 3353 }
3339 3354
3340 /* 3355 /*
3341 * Removes a node from a tree. 3356 * Removes a node from a tree.
3342 * Parameters: 3357 * Parameters:
4093 * Parameters: 4108 * Parameters:
4094 * handle: Handle to the window (widget) to be optimized. 4109 * handle: Handle to the window (widget) to be optimized.
4095 */ 4110 */
4096 void API dw_container_optimize(HWND handle) 4111 void API dw_container_optimize(HWND handle)
4097 { 4112 {
4113 /* Not necessary with no columns */
4098 } 4114 }
4099 4115
4100 /* 4116 /*
4101 * Inserts an icon into the taskbar. 4117 * Inserts an icon into the taskbar.
4102 * Parameters: 4118 * Parameters:
4488 * Note: This is only necessary on platforms that 4504 * Note: This is only necessary on platforms that
4489 * don't handle transparency automatically 4505 * don't handle transparency automatically
4490 */ 4506 */
4491 void API dw_pixmap_set_transparent_color( HPIXMAP pixmap, ULONG color ) 4507 void API dw_pixmap_set_transparent_color( HPIXMAP pixmap, ULONG color )
4492 { 4508 {
4509 /* Not necessary on Android, all versions support transparency. */
4493 } 4510 }
4494 4511
4495 /* 4512 /*
4496 * Creates a pixmap from internal resource graphic specified by id. 4513 * Creates a pixmap from internal resource graphic specified by id.
4497 * Parameters: 4514 * Parameters:
4876 * x: Pointer to variable to store X coordinate or nullptr. 4893 * x: Pointer to variable to store X coordinate or nullptr.
4877 * y: Pointer to variable to store Y coordinate or nullptr. 4894 * y: Pointer to variable to store Y coordinate or nullptr.
4878 */ 4895 */
4879 void API dw_pointer_query_pos(long *x, long *y) 4896 void API dw_pointer_query_pos(long *x, long *y)
4880 { 4897 {
4898 /* No mouse pointer on Android */
4899 if(x)
4900 *x = 0;
4901 if(y)
4902 *y = 0;
4881 } 4903 }
4882 4904
4883 /* 4905 /*
4884 * Sets the X and Y coordinates of the mouse pointer. 4906 * Sets the X and Y coordinates of the mouse pointer.
4885 * Parameters: 4907 * Parameters:
4886 * x: X coordinate. 4908 * x: X coordinate.
4887 * y: Y coordinate. 4909 * y: Y coordinate.
4888 */ 4910 */
4889 void API dw_pointer_set_pos(long x, long y) 4911 void API dw_pointer_set_pos(long x, long y)
4890 { 4912 {
4913 /* No mouse pointer on Android */
4891 } 4914 }
4892 4915
4893 /* 4916 /*
4894 * Create a menu object to be popped up. 4917 * Create a menu object to be popped up.
4895 * Parameters: 4918 * Parameters:
5350 * handle: Handle to widget for which to change. 5373 * handle: Handle to widget for which to change.
5351 * cursortype: ID of the pointer you want. 5374 * cursortype: ID of the pointer you want.
5352 */ 5375 */
5353 void API dw_window_set_pointer(HWND handle, int pointertype) 5376 void API dw_window_set_pointer(HWND handle, int pointertype)
5354 { 5377 {
5378 /* No mouse pointer on Android */
5355 } 5379 }
5356 5380
5357 int _dw_window_hide_show(HWND handle, int state) 5381 int _dw_window_hide_show(HWND handle, int state)
5358 { 5382 {
5359 JNIEnv *env; 5383 JNIEnv *env;
5438 * Returns: 5462 * Returns:
5439 * DW_ERROR_NONE (0) on success. 5463 * DW_ERROR_NONE (0) on success.
5440 */ 5464 */
5441 int API dw_window_set_border(HWND handle, int border) 5465 int API dw_window_set_border(HWND handle, int border)
5442 { 5466 {
5467 /* No overlapping windows on Android, so no border */
5443 return DW_ERROR_GENERAL; 5468 return DW_ERROR_GENERAL;
5444 } 5469 }
5445 5470
5446 /* 5471 /*
5447 * Sets the style of a given window (widget). 5472 * Sets the style of a given window (widget).
5522 * window: Window (widget) to look for the ENTER press. 5547 * window: Window (widget) to look for the ENTER press.
5523 * next: Window (widget) to move to next (or click) 5548 * next: Window (widget) to move to next (or click)
5524 */ 5549 */
5525 void API dw_window_click_default(HWND handle, HWND next) 5550 void API dw_window_click_default(HWND handle, HWND next)
5526 { 5551 {
5552 /* TODO: See if this is possible on Android */
5527 } 5553 }
5528 5554
5529 /* 5555 /*
5530 * Captures the mouse input to this window even if it is outside the bounds. 5556 * Captures the mouse input to this window even if it is outside the bounds.
5531 * Parameters: 5557 * Parameters:
5532 * handle: Handle to receive mouse input. 5558 * handle: Handle to receive mouse input.
5533 */ 5559 */
5534 void API dw_window_capture(HWND handle) 5560 void API dw_window_capture(HWND handle)
5535 { 5561 {
5562 /* No mouse pointer on Android */
5536 } 5563 }
5537 5564
5538 /* 5565 /*
5539 * Releases previous mouse capture. 5566 * Releases previous mouse capture.
5540 */ 5567 */
5541 void API dw_window_release(void) 5568 void API dw_window_release(void)
5542 { 5569 {
5570 /* No mouse pointer on Android */
5543 } 5571 }
5544 5572
5545 /* 5573 /*
5546 * Changes a window's parent to newparent. 5574 * Changes a window's parent to newparent.
5547 * Parameters: 5575 * Parameters:
5548 * handle: The window handle to destroy. 5576 * handle: The window handle to destroy.
5549 * newparent: The window's new parent window. 5577 * newparent: The window's new parent window.
5550 */ 5578 */
5551 void API dw_window_reparent(HWND handle, HWND newparent) 5579 void API dw_window_reparent(HWND handle, HWND newparent)
5552 { 5580 {
5581 /* TODO: Do we need to do implement this? */
5553 } 5582 }
5554 5583
5555 /* 5584 /*
5556 * Sets the font used by a specified window (widget) handle. 5585 * Sets the font used by a specified window (widget) handle.
5557 * Parameters: 5586 * Parameters:
5625 * Parameters: 5654 * Parameters:
5626 * fontname: Font name in Dynamic Windows format. 5655 * fontname: Font name in Dynamic Windows format.
5627 */ 5656 */
5628 void API dw_font_set_default(const char *fontname) 5657 void API dw_font_set_default(const char *fontname)
5629 { 5658 {
5659 /* TODO: Implement this */
5630 } 5660 }
5631 5661
5632 /* 5662 /*
5633 * Destroys a window and all of it's children. 5663 * Destroys a window and all of it's children.
5634 * Parameters: 5664 * Parameters:
5716 * handle: Handle to the window (widget). 5746 * handle: Handle to the window (widget).
5717 * bubbletext: The text in the floating bubble tooltip. 5747 * bubbletext: The text in the floating bubble tooltip.
5718 */ 5748 */
5719 void API dw_window_set_tooltip(HWND handle, const char *bubbletext) 5749 void API dw_window_set_tooltip(HWND handle, const char *bubbletext)
5720 { 5750 {
5751 /* No mouse pointer on Android */
5721 } 5752 }
5722 5753
5723 void _dw_window_set_enabled(HWND handle, jboolean state) 5754 void _dw_window_set_enabled(HWND handle, jboolean state)
5724 { 5755 {
5725 JNIEnv *env; 5756 JNIEnv *env;
5833 * handle: Handle to the window. 5864 * handle: Handle to the window.
5834 * icon: Handle to icon to be used. 5865 * icon: Handle to icon to be used.
5835 */ 5866 */
5836 void API dw_window_set_icon(HWND handle, HICN icon) 5867 void API dw_window_set_icon(HWND handle, HICN icon)
5837 { 5868 {
5869 /* TODO: See if this is possible, the icon is controlled by app resources */
5838 } 5870 }
5839 5871
5840 /* 5872 /*
5841 * Gets the child window handle with specified ID. 5873 * Gets the child window handle with specified ID.
5842 * Parameters: 5874 * Parameters:
5870 * Returns: 5902 * Returns:
5871 * DW_ERROR_NONE (0) on success. 5903 * DW_ERROR_NONE (0) on success.
5872 */ 5904 */
5873 int API dw_window_minimize(HWND handle) 5905 int API dw_window_minimize(HWND handle)
5874 { 5906 {
5907 /* TODO: Not sure if we should do anything here */
5875 return DW_ERROR_GENERAL; 5908 return DW_ERROR_GENERAL;
5876 } 5909 }
5877 5910
5878 /* Causes entire window to be invalidated and redrawn. 5911 /* Causes entire window to be invalidated and redrawn.
5879 * Parameters: 5912 * Parameters:
5880 * handle: Toplevel window handle to be redrawn. 5913 * handle: Toplevel window handle to be redrawn.
5881 */ 5914 */
5882 void API dw_window_redraw(HWND handle) 5915 void API dw_window_redraw(HWND handle)
5883 { 5916 {
5917 /* Shouldn't be necessary on Android */
5884 } 5918 }
5885 5919
5886 /* 5920 /*
5887 * Makes the window topmost. 5921 * Makes the window topmost.
5888 * Parameters: 5922 * Parameters:
5890 * Returns: 5924 * Returns:
5891 * DW_ERROR_NONE (0) on success. 5925 * DW_ERROR_NONE (0) on success.
5892 */ 5926 */
5893 int API dw_window_raise(HWND handle) 5927 int API dw_window_raise(HWND handle)
5894 { 5928 {
5929 /* TODO: Not sure if we should do anything here */
5895 return DW_ERROR_GENERAL; 5930 return DW_ERROR_GENERAL;
5896 } 5931 }
5897 5932
5898 /* 5933 /*
5899 * Makes the window bottommost. 5934 * Makes the window bottommost.
5902 * Returns: 5937 * Returns:
5903 * DW_ERROR_NONE (0) on success. 5938 * DW_ERROR_NONE (0) on success.
5904 */ 5939 */
5905 int API dw_window_lower(HWND handle) 5940 int API dw_window_lower(HWND handle)
5906 { 5941 {
5942 /* TODO: Not sure if we should do anyting here */
5907 return DW_ERROR_GENERAL; 5943 return DW_ERROR_GENERAL;
5908 } 5944 }
5909 5945
5910 /* 5946 /*
5911 * Sets the size of a given window (widget). 5947 * Sets the size of a given window (widget).
5914 * width: New width in pixels. 5950 * width: New width in pixels.
5915 * height: New height in pixels. 5951 * height: New height in pixels.
5916 */ 5952 */
5917 void API dw_window_set_size(HWND handle, ULONG width, ULONG height) 5953 void API dw_window_set_size(HWND handle, ULONG width, ULONG height)
5918 { 5954 {
5955 /* Not possible on Android */
5919 } 5956 }
5920 5957
5921 /* 5958 /*
5922 * Gets the size the system thinks the widget should be. 5959 * Gets the size the system thinks the widget should be.
5923 * Parameters: 5960 * Parameters:
5965 * horz: DW_GRAV_LEFT (default), DW_GRAV_RIGHT or DW_GRAV_CENTER. 6002 * horz: DW_GRAV_LEFT (default), DW_GRAV_RIGHT or DW_GRAV_CENTER.
5966 * vert: DW_GRAV_TOP (default), DW_GRAV_BOTTOM or DW_GRAV_CENTER. 6003 * vert: DW_GRAV_TOP (default), DW_GRAV_BOTTOM or DW_GRAV_CENTER.
5967 */ 6004 */
5968 void API dw_window_set_gravity(HWND handle, int horz, int vert) 6005 void API dw_window_set_gravity(HWND handle, int horz, int vert)
5969 { 6006 {
6007 /* This is not possible on Android */
5970 } 6008 }
5971 6009
5972 /* 6010 /*
5973 * Sets the position of a given window (widget). 6011 * Sets the position of a given window (widget).
5974 * Parameters: 6012 * Parameters:
5976 * x: X location from the bottom left. 6014 * x: X location from the bottom left.
5977 * y: Y location from the bottom left. 6015 * y: Y location from the bottom left.
5978 */ 6016 */
5979 void API dw_window_set_pos(HWND handle, LONG x, LONG y) 6017 void API dw_window_set_pos(HWND handle, LONG x, LONG y)
5980 { 6018 {
6019 /* This is not possible on Android */
5981 } 6020 }
5982 6021
5983 /* 6022 /*
5984 * Sets the position and size of a given window (widget). 6023 * Sets the position and size of a given window (widget).
5985 * Parameters: 6024 * Parameters:
5989 * width: Width of the widget. 6028 * width: Width of the widget.
5990 * height: Height of the widget. 6029 * height: Height of the widget.
5991 */ 6030 */
5992 void API dw_window_set_pos_size(HWND handle, LONG x, LONG y, ULONG width, ULONG height) 6031 void API dw_window_set_pos_size(HWND handle, LONG x, LONG y, ULONG width, ULONG height)
5993 { 6032 {
6033 /* This is not possible on Android */
5994 } 6034 }
5995 6035
5996 /* 6036 /*
5997 * Gets the position and size of a given window (widget). 6037 * Gets the position and size of a given window (widget).
5998 * Parameters: 6038 * Parameters:
7429 * Returns: 7469 * Returns:
7430 * A handle to the print object or nullptr on failure. 7470 * A handle to the print object or nullptr on failure.
7431 */ 7471 */
7432 HPRINT API dw_print_new(const char *jobname, unsigned long flags, unsigned int pages, void *drawfunc, void *drawdata) 7472 HPRINT API dw_print_new(const char *jobname, unsigned long flags, unsigned int pages, void *drawfunc, void *drawdata)
7433 { 7473 {
7474 /* TODO: Implement printing */
7434 return nullptr; 7475 return nullptr;
7435 } 7476 }
7436 7477
7437 /* 7478 /*
7438 * Runs the print job, causing the draw page callbacks to fire. 7479 * Runs the print job, causing the draw page callbacks to fire.
7442 * Returns: 7483 * Returns:
7443 * DW_ERROR_UNKNOWN on error or DW_ERROR_NONE on success. 7484 * DW_ERROR_UNKNOWN on error or DW_ERROR_NONE on success.
7444 */ 7485 */
7445 int API dw_print_run(HPRINT print, unsigned long flags) 7486 int API dw_print_run(HPRINT print, unsigned long flags)
7446 { 7487 {
7488 /* TODO: Implement printing */
7447 return DW_ERROR_UNKNOWN; 7489 return DW_ERROR_UNKNOWN;
7448 } 7490 }
7449 7491
7450 /* 7492 /*
7451 * Cancels the print job, typically called from a draw page callback. 7493 * Cancels the print job, typically called from a draw page callback.
7452 * Parameters: 7494 * Parameters:
7453 * print: Handle to the print object returned by dw_print_new(). 7495 * print: Handle to the print object returned by dw_print_new().
7454 */ 7496 */
7455 void API dw_print_cancel(HPRINT print) 7497 void API dw_print_cancel(HPRINT print)
7456 { 7498 {
7499 /* TODO: Implement printing */
7457 } 7500 }
7458 7501
7459 /* 7502 /*
7460 * Creates a new system notification if possible. 7503 * Creates a new system notification if possible.
7461 * Parameters: 7504 * Parameters: