diff os2/dw.c @ 346:81fae15885d7

Implemented switch-page on OS/2, and changed the signal prototype to unsigned long instead of int. Also dw_notebook_page_query should return unsigned long as well.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Fri, 11 Apr 2003 13:35:50 +0000
parents 4029240b5e63
children 0137c30f485e
line wrap: on
line diff
--- a/os2/dw.c	Fri Apr 11 12:26:54 2003 +0000
+++ b/os2/dw.c	Fri Apr 11 13:35:50 2003 +0000
@@ -94,7 +94,7 @@
 } SignalList;
 
 /* List of signals and their equivilent OS/2 message */
-#define SIGNALMAX 14
+#define SIGNALMAX 15
 
 SignalList SignalTranslate[SIGNALMAX] = {
 	{ WM_SIZE,         DW_SIGNAL_CONFIGURE },
@@ -110,7 +110,8 @@
 	{ LN_SELECT,       DW_SIGNAL_LIST_SELECT },
 	{ CN_EMPHASIS,     DW_SIGNAL_ITEM_SELECT },
 	{ WM_SETFOCUS,     DW_SIGNAL_SET_FOCUS },
-	{ SLN_SLIDERTRACK, DW_SIGNAL_VALUE_CHANGED }
+	{ SLN_SLIDERTRACK, DW_SIGNAL_VALUE_CHANGED },
+	{ BKN_PAGESELECTED,DW_SIGNAL_SWITCH_PAGE }
 };
 
 /* This function adds a signal handler callback into the linked list.
@@ -2295,7 +2296,19 @@
 								}
 							}
 						}
-
+						break;
+					case BKN_PAGESELECTED:
+						{
+							PAGESELECTNOTIFY *psn = (PAGESELECTNOTIFY *)mp2;
+
+							if(psn && tmp->window == psn->hwndBook)
+							{
+								int (* API switchpagefunc)(HWND, unsigned long, void *) = (int (* API)(HWND, unsigned long, void *))tmp->signalfunction;
+
+								result = switchpagefunc(tmp->window, psn->ulPageIdNew, tmp->data);
+								tmp = NULL;
+							}
+						}
 						break;
 					}
 				}
@@ -5036,9 +5049,9 @@
  * Parameters:
  *          handle: Handle to the notebook widget.
  */
-unsigned int API dw_notebook_page_query(HWND handle)
-{
-	return (int)WinSendMsg(handle, BKM_QUERYPAGEID,0L, MPFROM2SHORT(BKA_TOP, BKA_MAJOR));
+unsigned long API dw_notebook_page_query(HWND handle)
+{
+	return (unsigned long)WinSendMsg(handle, BKM_QUERYPAGEID,0L, MPFROM2SHORT(BKA_TOP, BKA_MAJOR));
 }
 
 /*