textinput/peninputcommonctrls/src/peninputdropdownlist/peninputdropdownlist.cpp
branchRCL_3
changeset 7 a47de9135b21
parent 0 eb1f2e154e89
child 18 c8fb4cf7b3ae
--- a/textinput/peninputcommonctrls/src/peninputdropdownlist/peninputdropdownlist.cpp	Fri Feb 19 23:09:27 2010 +0200
+++ b/textinput/peninputcommonctrls/src/peninputdropdownlist/peninputdropdownlist.cpp	Fri Mar 12 15:44:07 2010 +0200
@@ -508,7 +508,12 @@
             {
             ChangeActiveList(iListManager->ListExpandableMultiRowWithoutIcon());
             }
-            break;            
+            break;
+        case EListExpandableMultiRowWithoutIconWithBubble:
+        	{
+        	ChangeActiveList(iListManager->ListMultiRowWithoutIconWithBubble());
+        	}  
+        	break;                
 	    default:
 	    	__ASSERT_DEBUG( EFalse, 
 	    			User::Panic( _L("TListType Error::SizeChanged()"), 0 ) );
@@ -673,7 +678,14 @@
 		    {
             ChangeActiveList( iListManager->ListExpandableMultiRowWithoutIcon() );
 		    }
-            break;        
+            break;
+            
+        case EListExpandableMultiRowWithoutIconWithBubble:
+      	    {
+      	    ChangeActiveList(iListManager->ListMultiRowWithoutIconWithBubble());
+      	    }  
+      	    break;
+        	                
 	    default:
 	    	__ASSERT_DEBUG( EFalse, 
 	    			User::Panic( _L("TListType Error::SetCandidatesL()"), 0 ) );
@@ -822,6 +834,13 @@
             NotifyClosePage();		    
 		    }
 		    break;
+		    
+		case EListExpandableMultiRowWithoutIconWithBubble:
+      	    {
+      	    ChangeActiveList(iListManager->ListMultiRowWithoutIconWithBubble());
+      	    NotifyClosePage();
+      	    }  
+      	  break;
 	    default:
 	    	__ASSERT_DEBUG( EFalse, 
 	    			User::Panic( _L("TListType Error::ResetAndClear()"), 0 ) );
@@ -1231,7 +1250,13 @@
 			    {
                 ChangeActiveList( iListManager->ListExpandableMultiRowWithoutIcon() );
 			    }
-                break;			    
+                break;
+			case EListExpandableMultiRowWithoutIconWithBubble:
+			  	{
+			  	ChangeActiveList(iListManager->ListMultiRowWithoutIconWithBubble());
+			  	}
+			  	break;
+        	            			    
 		    default:
 		    	__ASSERT_DEBUG( EFalse, 
 		    			User::Panic( _L("TListType Error::SetFont()"), 0 ) );
@@ -1680,6 +1705,7 @@
 	        EnableSecondary(EFalse);
 	        break;
 		case EListExpandableMultiRowWithoutIcon:
+		case EListExpandableMultiRowWithoutIconWithBubble:	
 		    break;
 	    default:
 	    	__ASSERT_DEBUG( EFalse, 
@@ -1719,7 +1745,9 @@
 	     || ( ( ( beforeList == iListManager->ListMultiRowWithIconWithBubble() ))
 	     && (aList != iListManager->ListMultiRowWithIconWithBubble() ) )
 	     || ( ( ( beforeList == iListManager->ListMultiRowRollWithIconWithBubble() ))
-	     && (aList != iListManager->ListMultiRowRollWithIconWithBubble() ) ) )
+	     && (aList != iListManager->ListMultiRowRollWithIconWithBubble() ) ) 
+	     || ( ( ( beforeList == iListManager->ListMultiRowWithoutIconWithBubble() ))
+	     && (aList != iListManager->ListMultiRowWithoutIconWithBubble() ) ))
 		{
 	    rect.Shrink(TSize(0,-1));
 	    RootControl()->ReDrawRect(rect);
@@ -1919,8 +1947,9 @@
 				}
 		    }
 		    break;
-        case EListExpandableMultiRowWithoutIcon:
-            break;              
+		case EListExpandableMultiRowWithoutIcon:
+		case EListExpandableMultiRowWithoutIconWithBubble:	
+			break;              
 		case EListNoExpandable:
 		case EListNoExpandableWithBubble:
 			break;
@@ -2080,6 +2109,7 @@
 	iListManager->ListMultiRowRollWithIconWithBubble()->SetDropdownListImgID(aDropdownListDrawInfo);
 	
 	iListManager->ListExpandableMultiRowWithoutIcon()->SetDropdownListImgID(aDropdownListDrawInfo);
+	iListManager->ListMultiRowWithoutIconWithBubble()->SetDropdownListImgID(aDropdownListDrawInfo);
 	}
 
 CFepUiLayout* CFepCtrlDropdownList::UiLayout()
@@ -2233,10 +2263,33 @@
         
         rect.iTl.iY = iBubbleVerticalMargin + aRect.iTl.iY - 
                       iBubbleSize.iHeight;
-        rect.iBr.iY = iBubbleVerticalMargin + aRect.iTl.iY;
-		
-		TRAP_IGNORE(iBubbleCtrl->SetTextL(aText));		
-	
+        if ( rect.iTl.iY < 0 )
+        	{
+        	rect.iTl.iY = iBubbleVerticalMargin;
+        	}
+        
+        rect.iBr.iY = rect.iTl.iY + iBubbleSize.iHeight;
+		    
+        if((TBidiText::TextDirectionality(aText) == TBidiText:: ERightToLeft) && (aText.Length() > 1))
+          {
+          HBufC* displayStr = aText.AllocLC();
+         
+          TInt i = 0;
+          TInt charNum = displayStr->Length();
+         
+          while(i < charNum)
+              {
+              displayStr->Des()[i] = aText[(charNum-1)-i];
+              ++i;
+              }
+           TRAP_IGNORE(iBubbleCtrl->SetTextL(*displayStr));     
+           CleanupStack::PopAndDestroy(displayStr);
+          }
+       else
+          {
+          TRAP_IGNORE(iBubbleCtrl->SetTextL(aText));
+          }
+	          
         iBubbleCtrl->Popup(rect);
         }
     }