diff options
-rw-r--r-- | dw/fltkui.cc | 80 | ||||
-rw-r--r-- | dw/fltkui.hh | 4 | ||||
-rw-r--r-- | dw/ui.cc | 21 |
3 files changed, 103 insertions, 2 deletions
diff --git a/dw/fltkui.cc b/dw/fltkui.cc index 51cd41c6..a78ab7de 100644 --- a/dw/fltkui.cc +++ b/dw/fltkui.cc @@ -145,6 +145,8 @@ using namespace lout::container::typed; FltkResource::FltkResource (FltkPlatform *platform) { + DBG_OBJ_CREATE ("dw::fltk::ui::FltkResource"); + this->platform = platform; allocation.x = 0; @@ -180,6 +182,8 @@ FltkResource::~FltkResource () } if (style) style->unref (); + + DBG_OBJ_DELETE (); } void FltkResource::attachView (FltkView *view) @@ -209,6 +213,10 @@ void FltkResource::detachView (FltkView *view) void FltkResource::sizeAllocate (core::Allocation *allocation) { + DBG_OBJ_MSGF ("resize", 0, "<b>sizeAllocate</b> ((%d, %d; %d * (%d + %d))", + allocation->x, allocation->y, allocation->width, + allocation->ascent, allocation->descent); + this->allocation = *allocation; view->allocateFltkWidget (widget, allocation); } @@ -293,6 +301,20 @@ void FltkResource::setEnabled (bool enabled) // ---------------------------------------------------------------------- +template <class I> FltkSpecificResource<I>::FltkSpecificResource (FltkPlatform + *platform) : + FltkResource (platform) +{ + DBG_OBJ_CREATE ("dw::fltk::ui::FltkSpecificResource<>"); + DBG_OBJ_BASECLASS (I); + DBG_OBJ_BASECLASS (FltkResource); +} + +template <class I> FltkSpecificResource<I>::~FltkSpecificResource () +{ + DBG_OBJ_DELETE (); +} + template <class I> void FltkSpecificResource<I>::sizeAllocate (core::Allocation *allocation) { @@ -367,6 +389,9 @@ Fl_Widget *FltkLabelButtonResource::createNewWidget (core::Allocation void FltkLabelButtonResource::sizeRequest (core::Requisition *requisition) { + DBG_OBJ_MSG ("resize", 0, "<b>sizeRequest</b>"); + DBG_OBJ_MSG_START (); + if (style) { FltkFont *font = (FltkFont*)style->font; fl_font(font->font,font->size); @@ -380,6 +405,10 @@ void FltkLabelButtonResource::sizeRequest (core::Requisition *requisition) requisition->ascent = 1; requisition->descent = 0; } + + DBG_OBJ_MSGF ("resize", 1, "result: %d * (%d + %d)", + requisition->width, requisition->ascent, requisition->descent); + DBG_OBJ_MSG_END (); } /* @@ -513,6 +542,17 @@ void FltkComplexButtonResource::sizeAllocate (core::Allocation *allocation) { FltkResource::sizeAllocate (allocation); + DBG_OBJ_MSGF_O ("resize", 0, flatView, + "<b>resize</b> (%d %d, <i>%d - 2 * %d =</i> %d, " + "<i>%d + %d - 2 * %d =</i> %d)", + reliefXThickness (), reliefYThickness (), + allocation->width, reliefXThickness (), + allocation->width - 2 * reliefXThickness (), + allocation->ascent, allocation->descent, + reliefYThickness (), + allocation->ascent + allocation->descent + - 2 * reliefYThickness ()); + ((FltkFlatView*)flatView)->resize ( reliefXThickness (), reliefYThickness (), allocation->width - 2 * reliefXThickness (), @@ -634,6 +674,9 @@ void FltkEntryResource::setDisplayed(bool displayed) void FltkEntryResource::sizeRequest (core::Requisition *requisition) { + DBG_OBJ_MSG ("resize", 0, "<b>sizeRequest</b>"); + DBG_OBJ_MSG_START (); + if (displayed() && style) { FltkFont *font = (FltkFont*)style->font; fl_font(font->font,font->size); @@ -650,6 +693,10 @@ void FltkEntryResource::sizeRequest (core::Requisition *requisition) requisition->ascent = 0; requisition->descent = 0; } + + DBG_OBJ_MSGF ("resize", 1, "result: %d * (%d + %d)", + requisition->width, requisition->ascent, requisition->descent); + DBG_OBJ_MSG_END (); } void FltkEntryResource::sizeAllocate (core::Allocation *allocation) @@ -657,6 +704,11 @@ void FltkEntryResource::sizeAllocate (core::Allocation *allocation) if (!label) { FltkResource::sizeAllocate(allocation); } else { + DBG_OBJ_MSGF ("resize", 0, + "<b>sizeAllocate</b> ((%d, %d; %d * (%d + %d))", + allocation->x, allocation->y, allocation->width, + allocation->ascent, allocation->descent); + this->allocation = *allocation; /* push the Fl_Input over to the right of the label */ @@ -779,6 +831,9 @@ void FltkMultiLineTextResource::setWidgetStyle (Fl_Widget *widget, void FltkMultiLineTextResource::sizeRequest (core::Requisition *requisition) { + DBG_OBJ_MSG ("resize", 0, "<b>sizeRequest</b>"); + DBG_OBJ_MSG_START (); + if (style) { FltkFont *font = (FltkFont*)style->font; fl_font(font->font,font->size); @@ -797,6 +852,10 @@ void FltkMultiLineTextResource::sizeRequest (core::Requisition *requisition) requisition->ascent = 1; requisition->descent = 0; } + + DBG_OBJ_MSGF ("resize", 1, "result: %d * (%d + %d)", + requisition->width, requisition->ascent, requisition->descent); + DBG_OBJ_MSG_END (); } const char *FltkMultiLineTextResource::getText () @@ -864,6 +923,9 @@ void FltkToggleButtonResource<I>::setWidgetStyle (Fl_Widget *widget, template <class I> void FltkToggleButtonResource<I>::sizeRequest (core::Requisition *requisition) { + DBG_OBJ_MSG ("resize", 0, "<b>sizeRequest</b>"); + DBG_OBJ_MSG_START (); + FltkFont *font = (FltkFont *) (this->FltkResource::style ? this->FltkResource::style->font : NULL); @@ -877,6 +939,10 @@ void FltkToggleButtonResource<I>::sizeRequest (core::Requisition *requisition) requisition->ascent = 1; requisition->descent = 0; } + + DBG_OBJ_MSGF ("resize", 1, "result: %d * (%d + %d)", + requisition->width, requisition->ascent, requisition->descent); + DBG_OBJ_MSG_END (); } @@ -1116,6 +1182,9 @@ int FltkOptionMenuResource::getMaxItemWidth() void FltkOptionMenuResource::sizeRequest (core::Requisition *requisition) { + DBG_OBJ_MSG ("resize", 0, "<b>sizeRequest</b>"); + DBG_OBJ_MSG_START (); + if (style) { FltkFont *font = (FltkFont*)style->font; fl_font(font->font, font->size); @@ -1130,6 +1199,10 @@ void FltkOptionMenuResource::sizeRequest (core::Requisition *requisition) requisition->ascent = 1; requisition->descent = 0; } + + DBG_OBJ_MSGF ("resize", 1, "result: %d * (%d + %d)", + requisition->width, requisition->ascent, requisition->descent); + DBG_OBJ_MSG_END (); } void FltkOptionMenuResource::enlargeMenu () @@ -1405,6 +1478,9 @@ int FltkListResource::getMaxItemWidth() void FltkListResource::sizeRequest (core::Requisition *requisition) { + DBG_OBJ_MSG ("resize", 0, "<b>sizeRequest</b>"); + DBG_OBJ_MSG_START (); + if (style) { CustBrowser *b = (CustBrowser *) widget; int height = b->full_height(); @@ -1425,6 +1501,10 @@ void FltkListResource::sizeRequest (core::Requisition *requisition) requisition->ascent = 1; requisition->descent = 0; } + + DBG_OBJ_MSGF ("resize", 1, "result: %d * (%d + %d)", + requisition->width, requisition->ascent, requisition->descent); + DBG_OBJ_MSG_END (); } int FltkListResource::getNumberOfItems() diff --git a/dw/fltkui.hh b/dw/fltkui.hh index 8667a0cb..a0d2d7b7 100644 --- a/dw/fltkui.hh +++ b/dw/fltkui.hh @@ -223,8 +223,8 @@ public: template <class I> class FltkSpecificResource: public I, public FltkResource { public: - inline FltkSpecificResource (FltkPlatform *platform) : - FltkResource (platform) { } + FltkSpecificResource (FltkPlatform *platform); + ~FltkSpecificResource (); void sizeAllocate (core::Allocation *allocation); void draw (core::View *view, core::Rectangle *area); @@ -191,10 +191,17 @@ void Resource::setEmbed (Embed *embed) void Resource::getExtremes (Extremes *extremes) { + DBG_OBJ_MSG ("resize", 0, "<b>getExtremes</b>"); + DBG_OBJ_MSG_START (); + /* Simply return the requisition width */ Requisition requisition; sizeRequest (&requisition); extremes->minWidth = extremes->maxWidth = requisition.width; + + DBG_OBJ_MSGF ("resize", 1, "result: %d / %d", + extremes->minWidth, extremes->maxWidth); + DBG_OBJ_MSG_END (); } void Resource::sizeAllocate (Allocation *allocation) @@ -311,19 +318,33 @@ ComplexButtonResource::~ComplexButtonResource () void ComplexButtonResource::sizeRequest (Requisition *requisition) { + DBG_OBJ_MSG ("resize", 0, "<b>sizeRequest</b>"); + DBG_OBJ_MSG_START (); + Requisition widgetRequisition; childWidget->sizeRequest (&widgetRequisition); requisition->width = widgetRequisition.width + 2 * reliefXThickness (); requisition->ascent = widgetRequisition.ascent + reliefYThickness (); requisition->descent = widgetRequisition.descent + reliefYThickness (); + + DBG_OBJ_MSGF ("resize", 1, "result: %d * (%d + %d)", + requisition->width, requisition->ascent, requisition->descent); + DBG_OBJ_MSG_END (); } void ComplexButtonResource::getExtremes (Extremes *extremes) { + DBG_OBJ_MSG ("resize", 0, "<b>getExtremes</b>"); + DBG_OBJ_MSG_START (); + Extremes widgetExtremes; childWidget->getExtremes (&widgetExtremes); extremes->minWidth = widgetExtremes.minWidth + 2 * reliefXThickness (); extremes->maxWidth = widgetExtremes.maxWidth + 2 * reliefXThickness (); + + DBG_OBJ_MSGF ("resize", 1, "result: %d / %d", + extremes->minWidth, extremes->maxWidth); + DBG_OBJ_MSG_END (); } void ComplexButtonResource::sizeAllocate (Allocation *allocation) |