// SetLocalValue // . Either start/end a group, or set a modifier locally Emitter& Emitter::SetLocalValue(EMITTER_MANIP value) { if(!good()) return *this; switch(value) { case BeginSeq: EmitBeginSeq(); break; case EndSeq: EmitEndSeq(); break; case BeginMap: EmitBeginMap(); break; case EndMap: EmitEndMap(); break; case Key: EmitKey(); break; case Value: EmitValue(); break; default: m_pState->SetLocalValue(value); break; } return *this; }
/* Perform action for specified select type */ void DoSelectTypeAction ( SelectType selection /* selection type */ ) { if ( IsMainFormWinActive() || IsFullscreenformActive() || FrmGetActiveFormID() == frmLibrary ) { if ( IsMainFormWinActive() && selection != SELECT_TOGGLE_AUTOSCROLL && selection != SELECT_INCREASE_AUTOSCROLL && selection != SELECT_DECREASE_AUTOSCROLL && selection != SELECT_FULL_PAGE_UP && selection != SELECT_FULL_PAGE_DOWN && selection != SELECT_HALF_PAGE_UP && selection != SELECT_HALF_PAGE_DOWN && selection != SELECT_ONE_LINE_UP && selection != SELECT_ONE_LINE_DOWN ) { DoAutoscrollToggle( AUTOSCROLL_OFF ); } switch ( selection ) { case SELECT_NONE: break; #ifdef SUPPORT_WORD_LOOKUP #ifdef SUPPORT_PPI case SELECT_WORD_LOOKUP_PPI: isSelectWordTapMode = ! isSelectWordTapMode; selectedWordAction = SELECT_WORD_PPI; ShowSelectWordTapIcon(); break; #endif #ifdef SUPPORT_ANNOTATION case SELECT_WORD_LOOKUP_ANNOTATE: isSelectWordTapMode = ! isSelectWordTapMode; selectedWordAction = SELECT_WORD_ANNOTATE; ShowSelectWordTapIcon(); break; #endif case SELECT_WORD_LOOKUP_SEARCH_FORM: isSelectWordTapMode = ! isSelectWordTapMode; selectedWordAction = SELECT_WORD_SEARCH_FORM; ShowSelectWordTapIcon(); break; case SELECT_WORD_LOOKUP_TO_CLIPBOARD: isSelectWordTapMode = ! isSelectWordTapMode; selectedWordAction = SELECT_WORD_TO_CLIPBOARD; ShowSelectWordTapIcon(); break; #endif case SELECT_SAVE_POSITION: AddToHistory( GetCurrentRecordId() ); break; case SELECT_BRIGHTNESS_ADJUST: EmitKey( vchrBrightness, commandKeyMask ); break; case SELECT_TOGGLE_BACKLIGHT: EmitKey( vchrBacklight, commandKeyMask ); break; case SELECT_CONTRAST_ADJUST: EmitKey( vchrContrast, commandKeyMask ); break; case SELECT_ONE_LINE_UP: DoPageMove( GetDefaultMainStyleHeight() ); break; case SELECT_ONE_LINE_DOWN: DoPageMove( -GetDefaultMainStyleHeight() ); break; case SELECT_FULL_PAGE_UP: if ( Prefs()->autoscrollEnabled && Prefs()->autoscrollDir == AUTOSCROLL_UP ) DoAutoscrollIncr(); else if ( Prefs()->autoscrollEnabled ) DoAutoscrollDecr(); else if ( Prefs()->pageControlsLink && OnFirstScreen() && NO_RECORD == GetSequentialRecordId( DIRECTION_UP ) ) GoToFirstAnchor(); else DoPageMove( RotGetScrollValue() ); break; case SELECT_HALF_PAGE_UP: if ( Prefs()->autoscrollEnabled && Prefs()->autoscrollDir == AUTOSCROLL_UP ) DoAutoscrollIncr(); else if ( Prefs()->autoscrollEnabled ) DoAutoscrollDecr(); else if ( Prefs()->pageControlsLink && OnFirstScreen() && NO_RECORD == GetSequentialRecordId( DIRECTION_UP ) ) GoToFirstAnchor(); else DoPageMove( RotGetScrollValue() / 2 ); break; case SELECT_FULL_PAGE_DOWN: if ( Prefs()->autoscrollEnabled && Prefs()->autoscrollDir == AUTOSCROLL_UP ) DoAutoscrollDecr(); else if ( Prefs()->autoscrollEnabled ) DoAutoscrollIncr(); else if ( Prefs()->pageControlsLink && OnLastScreen() ) GoToLastAnchor(); else DoPageMove( -RotGetScrollValue() ); break; case SELECT_HALF_PAGE_DOWN: if ( Prefs()->autoscrollEnabled && Prefs()->autoscrollDir == AUTOSCROLL_UP ) DoAutoscrollDecr(); else if ( Prefs()->autoscrollEnabled ) DoAutoscrollIncr(); else if ( Prefs()->pageControlsLink && OnLastScreen() ) GoToLastAnchor(); else DoPageMove( -RotGetScrollValue() / 2 ); break; case SELECT_GO_BACK: if ( IsFullscreenformActive() ) FsDoControlAction( -( LEFTCONTROL + 1 ) ); else DoControlAction( -( LEFTCONTROL + 1 ) ); break; case SELECT_GO_FORWARD: if ( IsFullscreenformActive() ) FsDoControlAction( -( RIGHTCONTROL + 1 ) ); else DoControlAction( -( RIGHTCONTROL + 1 ) ); break; case SELECT_GO_HOME: if ( IsFullscreenformActive() ) FsDoControlAction( -( HOMECONTROL + 1 ) ); else DoControlAction( -( HOMECONTROL + 1 ) ); break; case SELECT_GO_TO_TOP: if ( IsFullscreenformActive() ) FsAdjustVerticalOffset( FULLSCREEN_TOP ); else GotoLocation( TOP ); break; case SELECT_GO_TO_BOTTOM: if ( IsFullscreenformActive() ) FsAdjustVerticalOffset( FULLSCREEN_BOTTOM ); else GotoLocation( BOTTOM ); break; case SELECT_FIND: FrmPopupForm( frmSearch ); break; case SELECT_FIND_AGAIN: SearchAgain(); break; case SELECT_ADD_BOOKMARK: DoAddBookmark(); break; case SELECT_VIEW_BOOKMARKS: FrmPopupForm( frmBookmarks ); break; case SELECT_OPEN_LIBRARY: CloseDocument(); FrmGotoForm( GetValidForm( frmLibrary ) ); break; case SELECT_DETAILS: FrmPopupForm( frmDetails ); break; case SELECT_PREFS: FrmGotoForm( frmPrefs ); break; case SELECT_BUTTON_ACTION: PrefsButtonShowFirst(); FrmGotoForm( frmPrefs ); break; case SELECT_TAP_ACTION: PrefsControlShowFirst(); FrmGotoForm( frmPrefs ); break; case SELECT_GESTURE_ACTION: PrefsGestureShowFirst(); FrmGotoForm( frmPrefs ); break; case SELECT_TOGGLE_AUTOSCROLL: DoAutoscrollToggle( AUTOSCROLL_TOGGLE ); break; case SELECT_INCREASE_AUTOSCROLL: DoAutoscrollIncr(); break; case SELECT_DECREASE_AUTOSCROLL: DoAutoscrollDecr(); break; case SELECT_NEXT_ANCHOR: HandleNextControl(); break; case SELECT_PREV_ANCHOR: HandlePrevControl(); break; case SELECT_GO_TO_LINK: if ( IsFullscreenformActive() ) { if ( 0 < actualAnchor ) FsDoControlAction( actualAnchor ); } else { DoControlAction( actualAnchor ); } break; case SELECT_COPY_TO_MEMO: DoHardcopy(); break; case SELECT_DELETE_DOCUMENT: DoDeleteDocument(); break; case SELECT_FONT: PrefsFontShowFirst(); FrmGotoForm( frmPrefs ); break; case SELECT_COMMAND_STROKE: EmitKey( vchrCommand, commandKeyMask ); break; case SELECT_MENU: EmitKey( vchrMenu, commandKeyMask ); break; #ifdef HAVE_ROTATE case SELECT_ROTATE_LEFT: { RotateType angle; angle = Prefs()->rotate; switch ( angle ) { case ROTATE_ZERO: angle = ROTATE_PLUS90; break; case ROTATE_PLUS90: angle = ROTATE_MINUS90; break; case ROTATE_MINUS90: angle = ROTATE_ZERO; } if ( Prefs()->individualDocumentLayout ) GetHistoryPtr()->rotate = angle; else Prefs()->rotate = angle; FrmUpdateForm( Prefs()->lastForm, frmRedrawUpdateCode ); break; } case SELECT_ROTATE_RIGHT: { RotateType angle; angle = Prefs()->rotate; switch ( angle ) { case ROTATE_PLUS90: angle = ROTATE_ZERO; break; case ROTATE_MINUS90: angle = ROTATE_PLUS90; break; case ROTATE_ZERO: angle = ROTATE_MINUS90; break; } if ( Prefs()->individualDocumentLayout ) GetHistoryPtr()->rotate = angle; else Prefs()->rotate = angle; FrmUpdateForm( Prefs()->lastForm, frmRedrawUpdateCode ); break; } #endif case SELECT_TOGGLE_TOOLBAR: if ( ! IsFormMain( Prefs()->lastForm ) ) break; if ( Prefs()->toolbar != TOOLBAR_NONE ) { Prefs()->savedToolbar = Prefs()->toolbar; Prefs()->toolbar = TOOLBAR_NONE; } else { if ( Prefs()->savedToolbar == TOOLBAR_NONE ) Prefs()->toolbar = TOOLBAR_TOP; else Prefs()->toolbar = Prefs()->savedToolbar; } #ifdef HAVE_SILKSCREEN if ( GetDIAState() == DIA_STATE_NO_STATUS_BAR && Prefs()->toolbar != TOOLBAR_NONE ) SetDIAState( Prefs()->savedSilkscreen ); #endif FrmUpdateForm( Prefs()->lastForm, frmRedrawUpdateCode ); break; case SELECT_TOGGLE_FULLSCREEN: { UInt16 newToolbarState; UInt16 newScrollbarState; DIAStateType newDIAState; if ( Prefs()->toolbar == TOOLBAR_NONE && Prefs()->scrollbar == SCROLLBAR_NONE ) { /* From fullscreen to non-fullscreen */ if ( Prefs()->savedToolbar == TOOLBAR_NONE && Prefs()->savedScrollbar == SCROLLBAR_NONE ) { Prefs()->savedToolbar = TOOLBAR_TOP; Prefs()->savedScrollbar = SCROLLBAR_RIGHT; } if ( Prefs()->savedSilkscreen == DIA_STATE_NO_STATUS_BAR ) { Prefs()->savedSilkscreen = DIA_STATE_MIN; } newToolbarState = Prefs()->savedToolbar; newScrollbarState = Prefs()->savedScrollbar; newDIAState = Prefs()->savedSilkscreen; } else { /* From non-fullscreen to fullscreen */ newToolbarState = TOOLBAR_NONE; newScrollbarState = SCROLLBAR_NONE; newDIAState = DIA_STATE_NO_STATUS_BAR; } Prefs()->savedToolbar = Prefs()->toolbar; Prefs()->savedScrollbar = Prefs()->scrollbar; Prefs()->savedSilkscreen = GetDIAState(); Prefs()->toolbar = newToolbarState; Prefs()->scrollbar = newScrollbarState; SetDIAState( newDIAState ); FrmUpdateForm( Prefs()->lastForm, frmRedrawUpdateCode ); break; } default: break; } } }