diff -r 000000000000 -r 89d6a7a84779 Symbian3/SDK/Source/GUID-96C49728-8C78-4D82-876D-6B1196362D44.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/SDK/Source/GUID-96C49728-8C78-4D82-876D-6B1196362D44.dita Thu Jan 21 18:18:20 2010 +0000 @@ -0,0 +1,80 @@ + + + + + +Setting +button properties not specific to any state +
Button +frame

If the button has a frame, change its features by setting +new frame IDs using the method SetFrameAndCenterIds() in the class CAknButton.

Use the flag KAknButtonStateHasLatchedFrame for +a button state to set whether the frame for the button in the state in question +should look latched down.

To disable the frame for the button, use +the KAknButtonNoFrame flag.

+
Button text

By +default, the button text is truncated to fit the size of the button. Use the KAknButtonSizeFitText flag +to make the method MinimumSize() return the size into which the text fits. To change the font, color, +and alignment of the text, use the following methods in CAknButton:

    +
  • SetTextFont()

  • +
  • SetTextColorIds()

  • +
  • SetTextHorizontalAlignment()

  • +
  • SetTextVerticalAlignment()

  • +
+
Button icon

If +you use an icon in your button, you can use the same icon for both the pressed +and non-pressed states; however, for the dimmed state another icon is recommended. +For the icon's appearance, follow the Symbian +look and feel guidelines. Dimmed icons are generated automatically +if they are not provided by the application.

To change the scale mode +for the icon image, use the method CAnkButton::SetIconScaleMode(). By default, the button +component uses the EAspectRatioNotPreserved mode, so that +the icon fits the size of the button. To adjust the icon’s alignment on the +button, use the methods CAknButton::SetIconHorizontalAlignment() and CAknButton::SetIconVerticalAlignment().

+
Button help +text

If the button provides a help text, it is shown close to the +button if the button is focused or the stylus is held down for some time. +You can set the state-specific help text when constructing the button, at +the construction of a button state, or by calling CAknButtonState::SetHelpTextL(). To set the help +text for a dimmed button, use the method CAknButton::SetDimmedHelpTextL().

To change +time-outs for the help text, use the method CAknButton::SetHelpNoteTimeouts().

To display +and hide the button help text, use the methods ShowHelpL() and HideHelp() in the class CAknButton.

+
Button background

CAknButton supports +a background composed of both a CCoeControl background interface +and an Avkon skin background. If both are set, the CCoeControl-based +background has higher priority. In case of CCoeControl-based +background, do the following in order for the button’s background to be drawn +by the container:

    +
  • Set the container class to be derived from the MCoeControlBackground interface.

  • +
  • Provide implementation for the Draw() method in the MCoeControlBackground interface.

  • +
  • Call the SetBackground( pointerToContainer ) method +for the button.

  • +

If the background is set from the skin, use the method CAknButton::SetBackGroundIds().

For implementation +examples, see the sample code below:

// Text alignment top-left corner +CGraphicsContext::TTextAlign horAlignment( CGraphicsContext::ELeft ); +CAknButton::TAlignment verAlignment( CAknButton::ETop ); +textButton->SetTextHorizontalAlignment( horAlignment ); +textButton->SetTextVerticalAlignment( verAlignment ); + +// Preserve icon button aspect ratio +iconButton->SetIconScaleMode( EAspectRatioPreserved ); + +// Help texts +HBufC* helpText = StringLoader::LoadLC( R_MYAPP_HELPTEXT ); +HBufC* dimmedHelpText = StringLoader::LoadLC( R_MYAPP_DIM_HELPTEXT ); +// Set help text to current state +textButton->State()->SetHelpTextL( *helpText ); +// Set dimmed help text to all states +textButton->SetDimmedHelpTextL( *dimmedHelpText ); +CleanupStack::PopAndDestroy( 2 ); // helpText, dimmedHelpText +// Help note timeout adjustments +const TInt KButtonTimeoutBeforeNote = 300; +const TInt KButtonTimeoutNoteInView = 5000; +textButton->SetHelpNoteTimeouts( KButtonTimeoutBeforeNote, KButtonTimeoutNoteInView ); +
+
\ No newline at end of file