Re: padding cleanup



On Thu, Sep 2, 2010 at 12:50 PM, Havoc Pennington

>
> Implementation-wise, I'm kind of leaning toward this, plus
> virtualizing "get the extra padding for request" and "remove the extra
> padding for allocation" and calling those virtual methods from the
> wrappers.
>
> So in this world, GtkSizeRequest, size_request, size_allocate are all
> unchanged. GtkWidget has "modify request" / "modify allocation"
> virtual functions. After size requesting the widget, those virtual
> functions might be called from _gtk_size_group_bump_requisition where
> we currently use aux_info->width,height. In fact, the aux_info forced
> size request could now be implemented inside gtkwidget.c by these
> vfuncs, so AuxInfo could be completely privatized.

Yeah, this sounds like a good approach.

Of course, this only handles the size_request side of things.
It would be up to individual containers to respect the h/v-align in
their size_allocate (basically replacing their current child
properties), correct ?

I also agree that just leaving GtkMisc and GtkAlignment as-is, and
aiming for removing them in 4.0, is the best we can do at this point.

One thing that is not addressed yet is how we will split this between
application control and theme control. To illustrate the point, here
is the list of 'layout' properties we have currently:
GtkAlignment::bottom-padding
GtkAlignment::left-padding
GtkAlignment::right-padding
GtkAlignment::top-padding
GtkBox::spacing
GtkButtonBox::layout-style
GtkTable::column-spacing
GtkTable::row-spacing
GtkExpander::spacing
GtkContainer::border-width
GtkMisc::xalign
GtkMisc::yalign
GtkMisc::xpad
GtkMisc::ypad

And here are some of the 'layout' style properties:
GtkDialog::action-area-border
GtkDialog::button-spacing
GtkDialog::content-area-border
GtkDialog::content-area-spacing
GtkInfoBar::action-area-border
GtkInfoBar::button-spacing
GtkInfoBar::content-area-border
GtkInfoBar::content-area-spacing
GtkMessageDialog::message-border
GtkAssistant::content-padding
GtkAssistant::header-padding
GtkProgressBar::xspacing
GtkProgressBar::yspacing
GtkButton::default-border
GtkButton::default-outside-border
GtkButton::inner-border
GtkButton::image-spacing
GtkEntry::inner-border
GtkEntry::progress-border
GtkScale::value-spacing
GtkMenu::horizontal-offset
GtkMenu::horizontal-padding
GtkMenu::vertical-offset
GtkMenu::vertical-padding
GtkMenuBar::internal-padding
GtkMenuItem::horizontal-padding
GtkMenuItem::toggle-spacing
GtkToolbar::internal-padding
GtkToolItemGroup::header-spacing
GtkToolButton::icon-spacing
GtkButtonBox::child-internal-pad-x
GtkButtonBox::child-internal-pad-y
GtkExpander::expander-spacing
GtkScrolledWindow::scrollbar-spacing
GtkCalendar::horizontal-separation
GtkCalendar::vertical-separation
GtkCalendar::inner-border
GtkRange::stepper-spacing
GtkWidget::focus-padding


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]