mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
better GncDenseCal minimum-size requesting
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15803 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
855beadbd2
commit
b0d66bf40d
@ -89,10 +89,9 @@ static void gdc_reconfig(GncDenseCal *dcal);
|
|||||||
|
|
||||||
static void gdc_free_all_mark_data(GncDenseCal *dcal);
|
static void gdc_free_all_mark_data(GncDenseCal *dcal);
|
||||||
|
|
||||||
#if 0
|
static void _gdc_compute_min_size(GncDenseCal *dcal,
|
||||||
static void gnc_dense_cal_size_request(GtkWidget *widget,
|
guint *min_width, guint *min_height);
|
||||||
GtkRequisition *requisition);
|
static void _gdc_set_cal_min_size_req(GncDenseCal *dcal);
|
||||||
#endif // 0o
|
|
||||||
static gint gnc_dense_cal_motion_notify(GtkWidget *widget,
|
static gint gnc_dense_cal_motion_notify(GtkWidget *widget,
|
||||||
GdkEventMotion *event);
|
GdkEventMotion *event);
|
||||||
static gint gnc_dense_cal_button_press(GtkWidget *widget,
|
static gint gnc_dense_cal_button_press(GtkWidget *widget,
|
||||||
@ -289,8 +288,6 @@ gnc_dense_cal_init(GncDenseCal *dcal)
|
|||||||
}
|
}
|
||||||
|
|
||||||
dcal->cal_drawing_area = GTK_DRAWING_AREA(gtk_drawing_area_new());
|
dcal->cal_drawing_area = GTK_DRAWING_AREA(gtk_drawing_area_new());
|
||||||
// @@fixme gtk_widget_set_size_request(...) : real min size.
|
|
||||||
gtk_widget_set_size_request(GTK_WIDGET(dcal->cal_drawing_area), 100, 200);
|
|
||||||
gtk_widget_add_events(GTK_WIDGET(dcal->cal_drawing_area), (GDK_EXPOSURE_MASK
|
gtk_widget_add_events(GTK_WIDGET(dcal->cal_drawing_area), (GDK_EXPOSURE_MASK
|
||||||
| GDK_BUTTON_PRESS_MASK
|
| GDK_BUTTON_PRESS_MASK
|
||||||
| GDK_BUTTON_RELEASE_MASK
|
| GDK_BUTTON_RELEASE_MASK
|
||||||
@ -408,15 +405,15 @@ gnc_dense_cal_init(GncDenseCal *dcal)
|
|||||||
recompute_extents(dcal);
|
recompute_extents(dcal);
|
||||||
recompute_mark_storage(dcal);
|
recompute_mark_storage(dcal);
|
||||||
|
|
||||||
/* Now that we're "sure" of our configuration, compute initial
|
/* Compute initial scaling factors; will be increased when we're
|
||||||
* scaling factors; will be increased when we're allocated enough
|
* allocated enough space to scale up. */
|
||||||
* space to scale up. */
|
|
||||||
{
|
{
|
||||||
PangoLayout *layout;
|
PangoLayout *layout;
|
||||||
int width_88, height_88;
|
int width_88, height_88;
|
||||||
int width_XXX, height_XXX;
|
int width_XXX, height_XXX;
|
||||||
|
|
||||||
layout = gtk_widget_create_pango_layout(GTK_WIDGET(dcal), NULL);
|
layout = gtk_widget_create_pango_layout(GTK_WIDGET(dcal), NULL);
|
||||||
|
|
||||||
pango_layout_set_text(layout, "88", -1);
|
pango_layout_set_text(layout, "88", -1);
|
||||||
pango_layout_get_pixel_size(layout, &width_88, &height_88);
|
pango_layout_get_pixel_size(layout, &width_88, &height_88);
|
||||||
|
|
||||||
@ -438,6 +435,15 @@ gnc_dense_cal_init(GncDenseCal *dcal)
|
|||||||
gtk_widget_show_all(GTK_WIDGET(dcal));
|
gtk_widget_show_all(GTK_WIDGET(dcal));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_gdc_set_cal_min_size_req(GncDenseCal *dcal)
|
||||||
|
{
|
||||||
|
guint min_width, min_height;
|
||||||
|
|
||||||
|
_gdc_compute_min_size(dcal, &min_width, &min_height);
|
||||||
|
gtk_widget_set_size_request(GTK_WIDGET(dcal->cal_drawing_area), min_width, min_height);
|
||||||
|
}
|
||||||
|
|
||||||
GtkWidget*
|
GtkWidget*
|
||||||
gnc_dense_cal_new(void)
|
gnc_dense_cal_new(void)
|
||||||
{
|
{
|
||||||
@ -652,32 +658,28 @@ gdc_reconfig(GncDenseCal *dcal)
|
|||||||
gnc_dense_cal_draw_to_buffer(dcal);
|
gnc_dense_cal_draw_to_buffer(dcal);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
static void
|
static void
|
||||||
gnc_dense_cal_size_request(GtkWidget *widget,
|
_gdc_compute_min_size(GncDenseCal *dcal, guint *min_width, guint *min_height)
|
||||||
GtkRequisition *requisition)
|
|
||||||
{
|
{
|
||||||
GncDenseCal *dcal = GNC_DENSE_CAL(widget);
|
if (min_width != NULL)
|
||||||
if (!dcal->initialized)
|
|
||||||
{
|
{
|
||||||
g_warning("Uninitialized size request\n");
|
*min_width =
|
||||||
requisition->width = DENSE_CAL_DEFAULT_WIDTH;
|
(dcal->leftPadding * 2)
|
||||||
requisition->height = DENSE_CAL_DEFAULT_HEIGHT;
|
+ (num_cols(dcal)* (col_width_at(dcal, dcal->min_x_scale)
|
||||||
return;
|
+ dcal->label_width))
|
||||||
|
+ ((num_cols(dcal)-1) * COL_BORDER_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (min_height != NULL)
|
||||||
|
{
|
||||||
|
*min_height=
|
||||||
|
(dcal->topPadding * 2)
|
||||||
|
+ MINOR_BORDER_SIZE
|
||||||
|
+ dcal->dayLabelHeight
|
||||||
|
+ (num_weeks_per_col(dcal)
|
||||||
|
* week_height_at(dcal, dcal->min_y_scale));
|
||||||
}
|
}
|
||||||
requisition->width =
|
|
||||||
(dcal->leftPadding * 2)
|
|
||||||
+ (num_cols(dcal)* (col_width_at(dcal, dcal->min_x_scale)
|
|
||||||
+ dcal->label_width))
|
|
||||||
+ ((num_cols(dcal)-1) * COL_BORDER_SIZE);
|
|
||||||
requisition->height =
|
|
||||||
(dcal->topPadding * 2)
|
|
||||||
+ MINOR_BORDER_SIZE
|
|
||||||
+ dcal->dayLabelHeight
|
|
||||||
+ (num_weeks_per_col(dcal)
|
|
||||||
* week_height_at(dcal, dcal->min_y_scale));
|
|
||||||
}
|
}
|
||||||
#endif // 0
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
recompute_x_y_scales(GncDenseCal *dcal)
|
recompute_x_y_scales(GncDenseCal *dcal)
|
||||||
@ -718,6 +720,8 @@ recompute_x_y_scales(GncDenseCal *dcal)
|
|||||||
* MINOR_BORDER_SIZE))
|
* MINOR_BORDER_SIZE))
|
||||||
/ denom);
|
/ denom);
|
||||||
dcal->y_scale = MAX(dcal->y_scale, dcal->min_y_scale);
|
dcal->y_scale = MAX(dcal->y_scale, dcal->min_y_scale);
|
||||||
|
|
||||||
|
_gdc_set_cal_min_size_req(dcal);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
Reference in New Issue
Block a user