--- a/javauis/lcdui_akn/javalcdui/src/CMIDToLcduiObserver.cpp Thu Jul 15 18:31:06 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/src/CMIDToLcduiObserver.cpp Thu Aug 19 09:48:13 2010 +0300
@@ -75,7 +75,7 @@
//
#ifdef RD_JAVA_NGA_ENABLED
void CMIDToLcduiObserver::RegisterControl(
- CCoeControl& aControl, MDirectContainer* aCallbackContainer /*= NULL*/)
+ CCoeControl& aControl, MDirectContainer* /*aCallbackContainer*/)
#else
void CMIDToLcduiObserver::RegisterControl(CCoeControl& aControl)
#endif
@@ -90,18 +90,6 @@
// Appending of control failed
DEBUG("CMIDToLcduiObserver::RegisterControl - Append failed");
}
-
-#ifdef RD_JAVA_NGA_ENABLED
- if (aCallbackContainer)
- {
- TToLcduiEventData data;
- data.iType = ENotifyContentAdded;
- data.iContainer = aCallbackContainer;
- data.iControl = &aControl;
- data.iConsumer = NULL;
- iEventQueue.Send(data);
- }
-#endif
}
}
@@ -164,7 +152,7 @@
TToLcduiEventData data;
data.iType = EDSAResourcesCallbackEvent;
data.iControl = &aControl;
- data.iConsumer = &aConsumer;
+ data.iConsumer = (void*)&aConsumer;
// Add event to the queue
iEventQueue.Send(data);
@@ -187,7 +175,7 @@
// Prepare event data
TToLcduiEventData data;
data.iType = EUICallbackEvent;
- data.iConsumer = &aConsumer;
+ data.iConsumer = (void*)&aConsumer;
data.iId = aCallbackId;
// Add event to the queue
@@ -215,10 +203,13 @@
DoFlushControl(data.iControl, data.iRect);
break;
case EDSAResourcesCallbackEvent:
- DoInvokeDSAResourcesCallback(data.iControl, data.iConsumer);
+ DoInvokeDSAResourcesCallback(data.iControl, (MUiEventConsumer*)data.iConsumer);
break;
case EUICallbackEvent:
- DoInvokeUICallback(data.iConsumer, data.iId);
+ DoInvokeUICallback((MUiEventConsumer*)data.iConsumer, data.iId);
+ break;
+ case ELcduiEvent:
+ DoInvokeLcduiEvent((MMIDLcduiEventConsumer*)data.iConsumer,data.iId);
break;
#ifdef RD_JAVA_NGA_ENABLED
case ENotifyContentAdded:
@@ -286,6 +277,15 @@
}
}
+void CMIDToLcduiObserver::DoInvokeLcduiEvent(
+ MMIDLcduiEventConsumer* aConsumer,
+ TInt aCallbackId)
+{
+ if (aConsumer)
+ {
+ aConsumer->HandleLcduiEvent(aCallbackId);
+ }
+}
// ---------------------------------------------------------------------------
// CMIDToLcduiObserver::DoInvokeUICallback
@@ -299,6 +299,7 @@
aConsumer->MdcUICallback(aCallbackId);
}
+
#ifdef RD_JAVA_NGA_ENABLED
// ---------------------------------------------------------------------------
// CMIDToLcduiObserver::DoInvokeNotifyContentAdded
@@ -314,3 +315,26 @@
}
}
#endif
+
+// ---------------------------------------------------------------------------
+// CSwtDcObserver::InvokeDcEvent
+// Asynchronously sends an event into a consumer.
+// The call may origin in other than eswt thread.
+// ---------------------------------------------------------------------------
+//
+void CMIDToLcduiObserver::InvokeLcduiEvent(
+ MMIDLcduiEventConsumer& aConsumer,
+ TInt aCallbackId)
+{
+ // Can run in non lcdui thread
+
+ // Prepare event data
+ TToLcduiEventData data;
+ data.iType = ELcduiEvent;
+ data.iConsumer = (void*)&aConsumer;
+ data.iId = aCallbackId;
+
+ // Add event to the queue
+ iEventQueue.Send(data);
+}
+