|
From: Foster B. <fos...@us...> - 2005-04-13 16:21:28
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/sources/mac In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2921/adobe-source/adobe/test/visual/sources/mac Modified Files: metrics.cpp ui_core_implementation.cpp Log Message: Beginning widget library documenation; more config.hpp options (thanks Boost!) Index: metrics.cpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/sources/mac/metrics.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** metrics.cpp 12 Apr 2005 17:24:49 -0000 1.1 --- metrics.cpp 13 Apr 2005 16:21:17 -0000 1.2 *************** *** 13,16 **** --- 13,17 ---- #include <adobe/virtual_machine.hpp> #include <adobe/source/expression_parser.hpp> + #include <adobe/name.hpp> #include <adobe/dictionary.hpp> #include <adobe/array.hpp> *************** *** 40,44 **** /****************************************************************************************************/ ! dictionary_t widget_metrics(const dictionary_t& context) { dictionary_t result; --- 41,45 ---- /****************************************************************************************************/ ! dictionary_t widget_metrics(const std::string& xstr, const dictionary_t& context) { dictionary_t result; *************** *** 46,51 **** try { ! std::string metric_xstr("<xstr id='metric'/>"); ! std::stringstream expression_stream(std::string(xstr_t(metric_xstr.c_str(), metric_xstr.size(), context).get())); expression_parser parser(expression_stream, line_position_t("widget_metrics")); array_t expression; --- 47,51 ---- try { ! std::stringstream expression_stream(std::string(xstr_t(xstr.c_str(), xstr.size(), context).get())); expression_parser parser(expression_stream, line_position_t("widget_metrics")); array_t expression; Index: ui_core_implementation.cpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/sources/mac/ui_core_implementation.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** ui_core_implementation.cpp 12 Apr 2005 17:24:49 -0000 1.9 --- ui_core_implementation.cpp 13 Apr 2005 16:21:17 -0000 1.10 *************** *** 44,53 **** #define ADOBE_WIDGET_TAG_BOILERPLATE(widget, static_tag) \ ! template <> name_t widget_tag<widget>(const widget&) { return static_name_t(static_tag); } ! template <typename T> name_t widget_tag(const T&) { return static_name_t("unknown"); } ! ADOBE_WIDGET_TAG_BOILERPLATE(adobe::checkbox_t::implementation_t, "checkbox") ! ADOBE_WIDGET_TAG_BOILERPLATE(adobe::radio_button_t::implementation_t, "radio_button") /****************************************************************************************************/ --- 44,66 ---- #define ADOBE_WIDGET_TAG_BOILERPLATE(widget, static_tag) \ ! template <> std::string widget_tag<widget>(const widget&) { return std::string(static_tag); } ! template <typename T> std::string widget_tag(const T&) { return std::string("<xstr id='metric_unknown'/>{ }</xstr>"); } ! ADOBE_WIDGET_TAG_BOILERPLATE(adobe::group_t::implementation_t, "<xstr id='metric_group'/>"); ! ADOBE_WIDGET_TAG_BOILERPLATE(adobe::tab_group_t::implementation_t, "<xstr id='metric_tab_group'/>"); ! ADOBE_WIDGET_TAG_BOILERPLATE(adobe::button_t::implementation_t, "<xstr id='metric_button'/>"); ! ADOBE_WIDGET_TAG_BOILERPLATE(adobe::panel_t::implementation_t, "<xstr id='metric_panel'/>"); ! ADOBE_WIDGET_TAG_BOILERPLATE(adobe::radio_button_t::implementation_t, "<xstr id='metric_radio_button'/>"); ! ADOBE_WIDGET_TAG_BOILERPLATE(adobe::checkbox_t::implementation_t, "<xstr id='metric_checkbox'/>"); ! ADOBE_WIDGET_TAG_BOILERPLATE(adobe::link_t::implementation_t, "<xstr id='metric_link'/>"); ! ADOBE_WIDGET_TAG_BOILERPLATE(adobe::progress_bar_t::implementation_t, "<xstr id='metric_progress_bar'/>"); ! ADOBE_WIDGET_TAG_BOILERPLATE(adobe::separator_t::implementation_t, "<xstr id='metric_separator'/>"); ! ADOBE_WIDGET_TAG_BOILERPLATE(adobe::static_text_t::implementation_t, "<xstr id='metric_static_text'/>"); ! ADOBE_WIDGET_TAG_BOILERPLATE(adobe::edit_text_t::implementation_t, "<xstr id='metric_edit_text'/>"); ! ADOBE_WIDGET_TAG_BOILERPLATE(adobe::popup_t::implementation_t, "<xstr id='metric_popup'/>"); ! ADOBE_WIDGET_TAG_BOILERPLATE(adobe::unit_edit_text_t::implementation_t, "<xstr id='metric_unit_edit_text'/>"); ! ADOBE_WIDGET_TAG_BOILERPLATE(adobe::slider_t::implementation_t, "<xstr id='metric_slider'/>"); ! ADOBE_WIDGET_TAG_BOILERPLATE(adobe::bevel_button_t::implementation_t, "<xstr id='metric_bevel_button'/>"); /****************************************************************************************************/ *************** *** 72,89 **** adobe::static_name_t k_attribute_theme_small("small"); adobe::static_name_t k_attribute_theme_mini("mini"); - adobe::static_name_t k_attribute_widget("widget"); ! adobe::static_name_t k_metric_height("height"); ! adobe::static_name_t k_metric_width("width"); ! adobe::static_name_t k_metric_fudge_top("fudge_top"); ! adobe::static_name_t k_metric_fudge_left("fudge_left"); ! adobe::static_name_t k_metric_fudge_height("fudge_height"); ! adobe::static_name_t k_metric_fudge_width("fudge_width"); ! adobe::static_name_t k_metric_fudge_baseline("fudge_baseline"); ! adobe::static_name_t k_metric_outset_top("outset_top"); ! adobe::static_name_t k_metric_outset_left("outset_left"); ! adobe::static_name_t k_metric_outset_bottom("outset_bottom"); ! adobe::static_name_t k_metric_outset_right("outset_right"); ! adobe::static_name_t k_metric_text_gap("text_gap"); /****************************************************************************************************/ --- 85,95 ---- adobe::static_name_t k_attribute_theme_small("small"); adobe::static_name_t k_attribute_theme_mini("mini"); ! adobe::static_name_t k_metric_size("size"); ! adobe::static_name_t k_metric_adjust_position("adjust_position"); ! adobe::static_name_t k_metric_adjust_size("adjust_size"); ! adobe::static_name_t k_metric_adjust_baseline("adjust_baseline"); ! adobe::static_name_t k_metric_outset("outset"); ! adobe::static_name_t k_metric_spacing("spacing"); /****************************************************************************************************/ *************** *** 1911,1917 **** context_write[k_attribute_theme] = adobe::value_t(attribute_theme_value); - context_write[k_attribute_widget] = adobe::value_t(widget_tag(w)); ! return adobe::metric_extractor_t(widget_metrics(context)); } --- 1917,1922 ---- context_write[k_attribute_theme] = adobe::value_t(attribute_theme_value); ! return adobe::metric_extractor_t(widget_metrics(widget_tag(w), context)); } *************** *** 1940,1958 **** } ! result.height() = w.metrics_m(k_metric_height) - w.metrics_m(k_metric_fudge_height); ! result.width() = w.metrics_m(k_metric_width) - w.metrics_m(k_metric_fudge_width); if (text_width != 0) ! result.width() += text_width + w.metrics_m(k_metric_text_gap); if (text_baseline != -1) ! result.slice_m[adobe::rectangle_slices_t::vertical].poi_m.push_back(text_baseline - w.metrics_m(k_metric_fudge_baseline)); // adjust outsets in accordance with the fudges ! result.slice_m[adobe::rectangle_slices_t::vertical].outset_m.first += w.metrics_m(k_metric_outset_top); ! result.slice_m[adobe::rectangle_slices_t::vertical].outset_m.second -= w.metrics_m(k_metric_outset_top) + w.metrics_m(k_metric_outset_bottom); ! result.slice_m[adobe::rectangle_slices_t::horizontal].outset_m.first += w.metrics_m(k_metric_outset_left); ! result.slice_m[adobe::rectangle_slices_t::horizontal].outset_m.second -= w.metrics_m(k_metric_outset_left) + w.metrics_m(k_metric_outset_right); return result; --- 1945,1975 ---- } ! result.height() = w.metrics_m(k_metric_size, adobe::metric_extractor_t::index_height) - ! w.metrics_m(k_metric_adjust_size, adobe::metric_extractor_t::index_height); ! result.width() = w.metrics_m(k_metric_size, adobe::metric_extractor_t::index_width) - ! w.metrics_m(k_metric_adjust_size, adobe::metric_extractor_t::index_width); if (text_width != 0) ! result.width() += text_width + w.metrics_m(k_metric_spacing); if (text_baseline != -1) ! result.slice_m[adobe::rectangle_slices_t::vertical].poi_m.push_back(text_baseline - w.metrics_m(k_metric_adjust_baseline)); // adjust outsets in accordance with the fudges ! result.slice_m[adobe::rectangle_slices_t::vertical].outset_m.first += ! w.metrics_m(k_metric_outset, adobe::metric_extractor_t::index_top); ! ! result.slice_m[adobe::rectangle_slices_t::vertical].outset_m.second -= ! w.metrics_m(k_metric_outset, adobe::metric_extractor_t::index_top) + ! w.metrics_m(k_metric_outset, adobe::metric_extractor_t::index_bottom); ! ! ! result.slice_m[adobe::rectangle_slices_t::horizontal].outset_m.first += ! w.metrics_m(k_metric_outset, adobe::metric_extractor_t::index_left); ! ! result.slice_m[adobe::rectangle_slices_t::horizontal].outset_m.second -= ! w.metrics_m(k_metric_outset, adobe::metric_extractor_t::index_left) + ! w.metrics_m(k_metric_outset, adobe::metric_extractor_t::index_right); return result; *************** *** 1982,1995 **** void shed_fudges(const adobe::control_t& control, adobe::point_t& position, adobe::rectangle_t& geometry) { ! position.first = position.first - control.metrics_m(k_metric_fudge_left) - geometry.slice_m[adobe::rectangle_slices_t::horizontal].outset_m.first; ! position.second = position.second - control.metrics_m(k_metric_fudge_top) - geometry.slice_m[adobe::rectangle_slices_t::vertical].outset_m.first; long outset_height( geometry.slice_m[adobe::rectangle_slices_t::vertical].outset_m.first + geometry.slice_m[adobe::rectangle_slices_t::vertical].outset_m.second); long outset_width( geometry.slice_m[adobe::rectangle_slices_t::horizontal].outset_m.first + geometry.slice_m[adobe::rectangle_slices_t::horizontal].outset_m.second); ! geometry.height() += control.metrics_m(k_metric_fudge_height) + outset_height; ! geometry.width() += control.metrics_m(k_metric_fudge_width) + outset_width; } --- 1999,2019 ---- void shed_fudges(const adobe::control_t& control, adobe::point_t& position, adobe::rectangle_t& geometry) { ! position.first = position.first - ! control.metrics_m(k_metric_adjust_position, adobe::metric_extractor_t::index_left) - ! geometry.slice_m[adobe::rectangle_slices_t::horizontal].outset_m.first; ! ! position.second = position.second - ! control.metrics_m(k_metric_adjust_position, adobe::metric_extractor_t::index_top) - ! geometry.slice_m[adobe::rectangle_slices_t::vertical].outset_m.first; ! long outset_height( geometry.slice_m[adobe::rectangle_slices_t::vertical].outset_m.first + geometry.slice_m[adobe::rectangle_slices_t::vertical].outset_m.second); + long outset_width( geometry.slice_m[adobe::rectangle_slices_t::horizontal].outset_m.first + geometry.slice_m[adobe::rectangle_slices_t::horizontal].outset_m.second); ! geometry.height() += control.metrics_m(k_metric_adjust_size, adobe::metric_extractor_t::index_height) + outset_height; ! geometry.width() += control.metrics_m(k_metric_adjust_size, adobe::metric_extractor_t::index_width) + outset_width; } *************** *** 2642,2650 **** assert(control_m); ! std::string name(get_control_title(control_m)); ! if (name == std::string()) return rectangle_t(); ! return get_text_dimensions(name, theme_m); } --- 2666,2674 ---- assert(control_m); ! rectangle_t result(widget_best_bounds(*this, get_control_title(control_m))); ! result.slice_m[rectangle_slices_t::vertical].frame_m.first = result.height(); ! return result; } *************** *** 2906,2911 **** assert(first != last); - //fudges_m.bottom() = 1; - std::copy(first, last, std::back_inserter<implementation_t::state_set_t>(state_set_m)); --- 2930,2933 ---- *************** *** 2925,2958 **** assert(control_m); ! rectangle_t result(_super::best_bounds()); ! std::string cur_title(get_control_title(control_m)); ! ! /* ! REVISIT (sparent) : Apparently in Mac OS X 10.3.5 there is a bug where ::SetControlTitleWithCFString() ! won't terminate (at least not in any reasonable time) if the button is very large (we are currently ! defaulting to 2K x 2K pixels). So before we set the title we adjust the bounds with ::SetControlBounds(). ! */ ! ! set_bounds(point_t(), result); ! ! implementation_t::state_set_t::iterator first(state_set_m.begin()); ! implementation_t::state_set_t::iterator last(state_set_m.end()); ! ! for (; first != last; ++first) ! { ! set_control_title(control_m, first->name_m); ! ! rectangle_t temp(_super::best_bounds()); ! ! if (temp.height() > result.height()) ! result.slice_m[rectangle_slices_t::vertical] = temp.slice_m[rectangle_slices_t::vertical]; ! ! if (temp.width() > result.width()) ! result.slice_m[rectangle_slices_t::horizontal] = temp.slice_m[rectangle_slices_t::horizontal]; ! } ! set_control_title(control_m, cur_title); ! return result; } --- 2947,2957 ---- assert(control_m); ! std::vector<std::string> name_set; ! adobe::for_each(state_set_m, ! boost::bind(&std::vector<std::string>::push_back, boost::ref(name_set), ! boost::bind(&state_set_t::value_type::name_m, _1))); ! return widget_best_bounds(*this, &name_set[0], &name_set[0] + name_set.size()); } *************** *** 3716,3720 **** /* REVISIT (sparent) : Set outsets here. */ ! return result; } --- 3715,3721 ---- /* REVISIT (sparent) : Set outsets here. */ ! rectangle_t lame_cw_debugger_issue(result); ! ! return lame_cw_debugger_issue; } *************** *** 4243,4247 **** unit_edit_text_t::implementation_t::implementation_t() : ! using_popup_m(false), popup_width_m(0), popup_height_m(0), popup_adjust_m(0), edit_width_m(0) { } --- 4244,4248 ---- unit_edit_text_t::implementation_t::implementation_t() : ! _super(), using_popup_m(false), popup_width_m(0), popup_height_m(0), popup_adjust_m(0), edit_width_m(0) { } *************** *** 4340,4344 **** /* REVISIT (sparent) : Set outsets here. */ ! return result; } --- 4341,4347 ---- /* REVISIT (sparent) : Set outsets here. */ ! rectangle_t lame_cw_debugger_issue(result); ! ! return lame_cw_debugger_issue; } |