コード例 #1
0
ファイル: Layouts.c プロジェクト: PsyPhy/GRASPonISS
void LayoutSetDisplayEdgesRelative( Layout layout, 
				    double left, double bottom, 
				    double right, double top ) {

  int row, column;
  double x, y;

  View view;

  double width = (right - left) / (double) layout->columns;
  double height = (top - bottom) / (double) layout->rows;
  double x_space = layout->x_space;
  double y_space = layout->y_space;

  for ( row = 0; row < layout->rows; row++ ) {
    for ( column = 0; column < layout->columns; column++ ) {

      x = left + column * width;
      y = top - row * height;
      ViewSetDisplayEdgesRelative( LayoutView( layout, row, column ),
				   x + x_space, 
				   y - height + y_space, 
				   x + width - x_space, 
				   y - y_space );



    }
  }

  view = LayoutView( layout, 0, 0 );
  layout->display_left = view->display_left;
  layout->display_top = view->display_top;

  view = LayoutView( layout, layout->rows - 1, layout->columns - 1 );
  layout->display_right = view->display_right;
  layout->display_bottom = view->display_bottom;

}
コード例 #2
0
ファイル: Layouts.c プロジェクト: PsyPhy/GRASPonISS
View LayoutViewNT( Layout layout, int n ) {

  int row, column;

  if ( n >= layout->rows * layout->columns ) {
    fprintf( stderr, "Invalid layout number: %d (%d)\n",
	     n, layout->rows * layout->columns );
    n = 0;
  }

  column = n / layout->rows;
  row = n % layout->rows;
  return( LayoutView( layout, row, column ) );

}
コード例 #3
0
ファイル: CardLayout.cpp プロジェクト: mariuz/haiku
// SetVisibleItem
void
BCardLayout::SetVisibleItem(BLayoutItem* item)
{
	if (item == fVisibleItem)
		return;

	if (item != NULL && IndexOfItem(item) < 0)
		return;

	if (fVisibleItem != NULL)
		fVisibleItem->SetVisible(false);

	fVisibleItem = item;

	if (fVisibleItem != NULL) {
		fVisibleItem->SetVisible(true);

		LayoutView();
	}
}
コード例 #4
0
ファイル: Layouts.c プロジェクト: PsyPhy/GRASPonISS
int LayoutProcessInput( Layout layout, float display_x, float display_y,
			int *row, int *column ) {

  View view;
  int lrow, lcolumn;

  for ( lrow = 0; lrow < layout->rows; lrow++ ) {
    for ( lcolumn = 0; lcolumn < layout->columns; lcolumn++ ) {

      view = LayoutView( layout, lrow, lcolumn );
      if ( ViewDisplayPointInside( view, display_x, display_y ) ) {

	*row = lrow;
	*column = lcolumn;
	return( TRUE );

      }

    }
  }

  return( FALSE );
 
}
コード例 #5
0
ファイル: Layouts.c プロジェクト: PsyPhy/GRASPonISS
int LayoutInput( Layout layout, View *view, int *row, int *column ) {

  float ix, iy;
  int   event;

  event = DisplayInput( layout->display, &ix, &iy );

  for ( *row = 0; *row < layout->rows; (*row)++ ) {
    for ( *column = 0; *column < layout->columns; (*column)++ ) {

      *view = LayoutView( layout, *row, *column );
      if ( ViewDisplayPointInside( *view, ix, iy ) ) {

	return( event );

      }

    }
  }

  *view = 0;
  return( event );
 
}