예제 #1
0
int BC_WidgetGrid::guess_y(int colno){
	calculate_maxs();
	int y = y_t;
	for (int i = 0; i < colno; i++)
		y += maxh[i] + rowgaps;
	return (y);
}
예제 #2
0
int BC_WidgetGrid::guess_x(int colno){
	calculate_maxs();
	int x = x_l;
	for (int i = 0; i < colno; i++)
		x += maxw[i] + colgaps;
	return (x);
}
예제 #3
0
int BC_WidgetGrid::get_w(){
	calculate_maxs();
	int x = 0;
	for (int i = 0; i < BC_WG_Cols; i++)
		if (maxw[i] > 0)
			x += maxw[i] + colgaps;
	return (x);
}
예제 #4
0
int BC_WidgetGrid::get_h(){
	calculate_maxs();
	int y = 0;
	for (int i = 0; i < BC_WG_Rows; i++)
		if (maxh[i] > 0)
			y += maxh[i] + rowgaps;
	return (y);
}
예제 #5
0
void BC_WidgetGrid::print(){
	printf("\nWidget Grid: Widths: x_l=%d y_t=%d x_r=%d y_b=%d\n",x_l,y_t,x_r,y_b);
	calculate_maxs();
	for (int r = 0; r < BC_WG_Rows; r++) {
		for (int c = 0; c < BC_WG_Cols; c++) {
			printf("%d,%d\t",getw_w(r,c),getw_h(r,c));
		}
		printf("MAX: %d\n",maxh[r]);
	}
	printf("---------------------------------------------\n");
	for (int c = 0; c < BC_WG_Cols; c++) 
		printf("%d\t",maxw[c]);
	printf("\n\n");

}
예제 #6
0
void BC_WidgetGrid::move_widgets(){
	calculate_maxs();
	int r,c,x,y;
	int xn,yn;
	y = y_t;
	for (r = 0; r < BC_WG_Rows; r++) {
		x = x_l;
		for (c = 0; c < BC_WG_Cols; c++) {
			switch (widget_valign[r][c]){
			default:
			case VALIGN_TOP:
				yn = y;
				break;
			case VALIGN_CENTER:
				yn = y + (maxh[r] - getw_h(r,c))/2;
				break;
			case VALIGN_BOTTOM:
				yn = y + (maxh[r] - getw_h(r,c));
				break;
			}
				
			switch (widget_halign[r][c]){
			default:
			case HALIGN_LEFT:
				xn = x;
				break;
			case HALIGN_CENTER:
				xn = x + (maxw[c] - getw_w(r,c))/2;
				break;
			case HALIGN_RIGHT:
				xn = x + (maxw[c] - getw_w(r,c));
				break;
			}
			setw_position(r,c,xn,yn); // + (maxh[r] - getw_h(r,c))/2);
			x += colgaps + maxw[c];
		}
		y += rowgaps + maxh[r];
	}
}