Exemple #1
0
/*---------------------------------------------------------------updateScroll-+
|                                                                             |
+----------------------------------------------------------------------------*/
void updateScroll()
{
   FormPtr frm = FrmGetActiveForm();
   FieldPtr field = (FieldPtr)FrmGetObjectPtr(
      frm,
      FrmGetObjectIndex(frm, MainConsoleField)
   );
   ScrollBarPtr scroll = (ScrollBarPtr)FrmGetObjectPtr(
      frm,
      FrmGetObjectIndex(frm,MainConsoleScrollBar)
   );
   UInt16 currentPosition, textHeight, fieldHeight, maxValue;

   FldGetScrollValues(field, &currentPosition, &textHeight, &fieldHeight);
   if (textHeight > fieldHeight) {
      maxValue = textHeight - fieldHeight;
   }else {
      maxValue = 0;
   }
   SclSetScrollBar(scroll, currentPosition, 0, maxValue, fieldHeight - 1);
}
Exemple #2
0
void UpdateScrollbar( Word fldindex, Word sbarindex )
{
	FormPtr frm=FrmGetActiveForm();
	FieldPtr fld;
	ScrollBarPtr scroll;
	Word currentPosition;
	Word textHeight;
	Word fieldHeight;
	Word maxValue;

	fld = FrmGetObjectPtr( frm, FrmGetObjectIndex( frm, fldindex ) );
	FldGetScrollValues( fld, &currentPosition, &textHeight, &fieldHeight );

	if( textHeight>fieldHeight )
		maxValue = textHeight - fieldHeight;
	else if( currentPosition )
		maxValue = currentPosition;
	else
		maxValue = 0;

	scroll = FrmGetObjectPtr( frm, FrmGetObjectIndex( frm, sbarindex ) );

	SclSetScrollBar( scroll, currentPosition, 0, maxValue, fieldHeight-1 );
}
Boolean AnnotationFormHandleEvent
    (
    EventType* event  /* pointer to an EventType structure */
    )
{
    Boolean     handled;

    handled = ResizeHandleEvent( event );

    if ( handled )
        return handled;

    switch ( event->eType ) {
        case frmOpenEvent:
            AnnotationFormInit();
            handled = true;
            break;
            
        case keyDownEvent:
            switch ( event->data.keyDown.chr ) {
                case pageUpChr:
                    if ( FldScrollable( field, winUp ) )
                        FldScrollField( field, 1, winUp );
                    UpdateFieldScrollbar( field, scrollBar );
                    break;

                case pageDownChr:
                    if ( FldScrollable( field, winDown ) )
                        FldScrollField( field, 1, winDown );
                    UpdateFieldScrollbar( field, scrollBar );
                    break;

                default: {
                    UInt16 scrollPos;
                    UInt16 textHeight;
                    UInt16 fieldHeight;

                    FldGetScrollValues( field, &scrollPos, &textHeight, &fieldHeight );

                    if ( FldHandleEvent( field, event ) ) {
                        UInt16 newScrollPos;
                        UInt16 newTextHeight;
                        UInt16 newFieldHeight;

                        FldGetScrollValues( field, &newScrollPos, 
                            &newTextHeight, &newFieldHeight );

                        if ( scrollPos != newScrollPos || textHeight != newTextHeight ||
                             fieldHeight != newFieldHeight )
                            UpdateFieldScrollbar( field, scrollBar );
                            
                        handled = true;
                    }
                    break;
                }
            }
            break;

        case sclRepeatEvent:
            ScrollMessage( field, event->data.sclRepeat.newValue -
                                         event->data.sclRepeat.value );
            break;

        case ctlSelectEvent:
            switch ( event->data.ctlSelect.controlID ){
                case frmAnnotationCancel:
                	AnnotationFormClose();
                    FrmReturnToForm( Prefs()->lastForm );
                    handled = true;
                    break;

                case frmAnnotationOK:
                	SaveAnnotation();
                	AnnotationFormClose();
                    FrmReturnToForm( Prefs()->lastForm );
                    if ( IsFormMain( Prefs()->lastForm ) )
                        FrmUpdateForm( GetMainFormId(), frmRedrawUpdateCode );
  	            handled = true;
                    break;

                case frmAnnotationDelete:
                    if ( entryP->id.indexInParagraph != NEW_ANNOTATION ) {
                        DeleteAnnotation( &( entryP->id ) );
                    }
                	AnnotationFormClose();
                    if ( IsFormMain( Prefs()->lastForm ) )
                        FrmUpdateForm( GetMainFormId(), frmRedrawUpdateCode );
                    FrmReturnToForm( Prefs()->lastForm );
                    handled = true;
                    break;

                default:
                    handled = true;
                    break;
            }
            break;

        case frmCloseEvent:
            AnnotationFormClose();
            handled = false;
            break;

        default:
            handled = false;
    }
    return handled;
}