platform_reveal.hpp
Go to the documentation of this file.
00001 /* 00002 Copyright 2005-2007 Adobe Systems Incorporated 00003 Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt 00004 or a copy at http://stlab.adobe.com/licenses.html) 00005 */ 00006 00007 /****************************************************************************************************/ 00008 00009 #ifndef ADOBE_WIDGET_REVEAL_HPP 00010 #define ADOBE_WIDGET_REVEAL_HPP 00011 00012 /****************************************************************************************************/ 00013 00014 #include <adobe/config.hpp> 00015 00016 #define WINDOWS_LEAN_AND_MEAN 1 00017 #include <windows.h> 00018 00019 #include <adobe/any_regular.hpp> 00020 00021 #include <adobe/future/widgets/headers/platform_label.hpp> 00022 00023 #include <boost/function.hpp> 00024 00025 /****************************************************************************************************/ 00026 00027 namespace adobe { 00028 00029 /****************************************************************************************************/ 00030 00031 struct reveal_t : boost::noncopyable 00032 { 00033 typedef any_regular_t model_type; 00034 00035 typedef boost::function<void (const model_type&)> setter_type; 00036 00037 reveal_t(const std::string& name, 00038 const any_regular_t& show_value, 00039 theme_t theme, 00040 const std::string& alt_text); 00041 00042 void initialize(HWND parent); 00043 00044 void measure(extents_t& result); 00045 00046 void place(const place_data_t& place_data); 00047 00048 void display(const any_regular_t& value); 00049 00050 void monitor(const setter_type& proc); 00051 00052 HWND control_m; 00053 theme_t theme_m; 00054 label_t name_m; 00055 bool using_label_m; 00056 setter_type hit_proc_m; 00057 any_regular_t show_value_m; 00058 any_regular_t current_value_m; 00059 std::string alt_text_m; 00060 }; 00061 00062 /****************************************************************************************************/ 00063 00064 namespace view_implementation { 00065 00066 /****************************************************************************************************/ 00067 00068 void set_value_from_model(reveal_t& value, const any_regular_t& new_value); 00069 00070 /****************************************************************************************************/ 00071 00072 } // namespace view_implementation 00073 00074 /****************************************************************************************************/ 00075 00076 } // namespace adobe 00077 00078 /****************************************************************************************************/ 00079 00080 #endif 00081 00082 /****************************************************************************************************/ |