diff -r ebc84c812384 -r 46218c8b8afa Symbian3/PDK/Source/GUID-07DD47FD-86B7-4AFD-BEDB-DF6EA12DFC6C.dita --- a/Symbian3/PDK/Source/GUID-07DD47FD-86B7-4AFD-BEDB-DF6EA12DFC6C.dita Thu Mar 11 15:24:26 2010 +0000 +++ b/Symbian3/PDK/Source/GUID-07DD47FD-86B7-4AFD-BEDB-DF6EA12DFC6C.dita Thu Mar 11 18:02:22 2010 +0000 @@ -1,125 +1,125 @@ - - - - - -Using -button states -

The states can also be added to button dynamically. To add button states -as required, use the method AddStateL() in the class CAknButton.

-// Add state with button text and help text -HBufC* stateText = StringLoader::LoadLC( R_MYAPP_BUTTON_TEXT ); -HBufC* stateHelpText = StringLoader::LoadLC( R_MYAPP_BUTTON_TEXT ); -button->AddStateL( 0, 0, 0, 0, *stateText, *stateHelpText, 0 ); -CleanupStack::PopAndDestroy( 2 ); // stateText, stateHelpText - -// Add state with icon -… -#include <avkon.mbg> -… -TPtrC8 pathPtr( ( TUint8* ) AVKON_BITMAP_FILE ); -HBufC *filePath = HBufC::NewLC( pathPtr.Length() ); -filePath->Des().Copy( pathPtr ); -button->AddStateL( *filePath, - EMbmAvkonQgn_indi_volume_arrow_down, - EMbmAvkonQgn_indi_volume_arrow_down_mask, - 0, 0, - EMbmAvkonQgn_indi_volume_arrow_down, - EMbmAvkonQgn_indi_volume_arrow_down_mask, - 0, 0, - KNullDesC, KNullDesC, 0, - KAknsIIDQgnIndiVolumeArrowDown, - KAknsIIDQgnIndiVolumeArrowDownInactive, - KAknsIIDQgnIndiVolumeArrowDownSelected, - KAknsIIDDefault ); -CleanupStack::PopAndDestroy( filePath ); - -

The following sample code defines three different kinds of buttons with -button states in a resource file.

-#include <avkon.mbg> -#include <aknsconstants.hrh> - -… - -RESOURCE AVKON_BUTTON r_myapp_command_button - { - flags = 0; - states = - { - AVKON_BUTTON_STATE - { - bmpfile = AVKON_BITMAP_FILE; - bmpid = EMbmAvkonQgn_indi_volume_arrow_down; - bmpmask = EMbmAvkonQgn_indi_volume_arrow_down_mask; - press_bmpid = EMbmAvkonQgn_indi_volume_arrow_down; - press_bmpmask = EMbmAvkonQgn_indi_volume_arrow_down_mask; - helptxt = "Volume down"; - // Skinning support for state icon - extension = r_myapp_command_button_extension; - } - }; - } - -RESOURCE AVKON_BUTTON_STATE_EXTENSION r_myapp_command_button_extension - { - bmbSkinIdMajor = EAknsMajorGeneric; - bmbSkinIdMinor = EAknsMinorGenericQgnIndiVolumeArrowDown; - } - -RESOURCE AVKON_BUTTON r_myapp_onoff_button - { - flags = 0; - states = - { - AVKON_BUTTON_STATE - { - txt = "Off"; - helptxt = "Turn on"; - }, - AVKON_BUTTON_STATE - { - flags = KAknButtonStateHasLatchedFrame; - txt = "On"; - helptxt = "Turn off"; - } - }; - } - -RESOURCE AVKON_BUTTON r_myapp_mode_button - { - flags = 0; - states = - { - AVKON_BUTTON_STATE - { - txt = "Mode 1"; - helptxt = "Switch to 2"; - }, - AVKON_BUTTON_STATE - { - txt = "Mode 2"; - helptxt = "Switch to 3"; - }, - AVKON_BUTTON_STATE - { - txt = "Mode 3"; - helptxt = "Switch to 1"; - } - }; - } - - -

To set current state for the button, use the method SetCurrentState() in the class CAknButton. -To get a pointer to the current state of the button, use State() method. -The index of the current state can be acquired with the method CAknButton::StateIndex().

-if ( button->StateIndex() == 0 ) -{ - button->SetCurrentState( 1, ETrue ); -} + + + + + +Using +button states +

The states can also be added to button dynamically. To add button states +as required, use the method AddStateL() in the class CAknButton.

+// Add state with button text and help text +HBufC* stateText = StringLoader::LoadLC( R_MYAPP_BUTTON_TEXT ); +HBufC* stateHelpText = StringLoader::LoadLC( R_MYAPP_BUTTON_TEXT ); +button->AddStateL( 0, 0, 0, 0, *stateText, *stateHelpText, 0 ); +CleanupStack::PopAndDestroy( 2 ); // stateText, stateHelpText + +// Add state with icon +… +#include <avkon.mbg> +… +TPtrC8 pathPtr( ( TUint8* ) AVKON_BITMAP_FILE ); +HBufC *filePath = HBufC::NewLC( pathPtr.Length() ); +filePath->Des().Copy( pathPtr ); +button->AddStateL( *filePath, + EMbmAvkonQgn_indi_volume_arrow_down, + EMbmAvkonQgn_indi_volume_arrow_down_mask, + 0, 0, + EMbmAvkonQgn_indi_volume_arrow_down, + EMbmAvkonQgn_indi_volume_arrow_down_mask, + 0, 0, + KNullDesC, KNullDesC, 0, + KAknsIIDQgnIndiVolumeArrowDown, + KAknsIIDQgnIndiVolumeArrowDownInactive, + KAknsIIDQgnIndiVolumeArrowDownSelected, + KAknsIIDDefault ); +CleanupStack::PopAndDestroy( filePath ); + +

The following sample code defines three different kinds of buttons with +button states in a resource file.

+#include <avkon.mbg> +#include <aknsconstants.hrh> + +… + +RESOURCE AVKON_BUTTON r_myapp_command_button + { + flags = 0; + states = + { + AVKON_BUTTON_STATE + { + bmpfile = AVKON_BITMAP_FILE; + bmpid = EMbmAvkonQgn_indi_volume_arrow_down; + bmpmask = EMbmAvkonQgn_indi_volume_arrow_down_mask; + press_bmpid = EMbmAvkonQgn_indi_volume_arrow_down; + press_bmpmask = EMbmAvkonQgn_indi_volume_arrow_down_mask; + helptxt = "Volume down"; + // Skinning support for state icon + extension = r_myapp_command_button_extension; + } + }; + } + +RESOURCE AVKON_BUTTON_STATE_EXTENSION r_myapp_command_button_extension + { + bmbSkinIdMajor = EAknsMajorGeneric; + bmbSkinIdMinor = EAknsMinorGenericQgnIndiVolumeArrowDown; + } + +RESOURCE AVKON_BUTTON r_myapp_onoff_button + { + flags = 0; + states = + { + AVKON_BUTTON_STATE + { + txt = "Off"; + helptxt = "Turn on"; + }, + AVKON_BUTTON_STATE + { + flags = KAknButtonStateHasLatchedFrame; + txt = "On"; + helptxt = "Turn off"; + } + }; + } + +RESOURCE AVKON_BUTTON r_myapp_mode_button + { + flags = 0; + states = + { + AVKON_BUTTON_STATE + { + txt = "Mode 1"; + helptxt = "Switch to 2"; + }, + AVKON_BUTTON_STATE + { + txt = "Mode 2"; + helptxt = "Switch to 3"; + }, + AVKON_BUTTON_STATE + { + txt = "Mode 3"; + helptxt = "Switch to 1"; + } + }; + } + + +

To set current state for the button, use the method SetCurrentState() in the class CAknButton. +To get a pointer to the current state of the button, use State() method. +The index of the current state can be acquired with the method CAknButton::StateIndex().

+if ( button->StateIndex() == 0 ) +{ + button->SetCurrentState( 1, ETrue ); +}
\ No newline at end of file