You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
(67) |
Apr
(455) |
May
(202) |
Jun
(136) |
Jul
(203) |
Aug
(60) |
Sep
(88) |
Oct
(64) |
Nov
(56) |
Dec
(78) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(271) |
Feb
(207) |
Mar
|
Apr
|
May
(167) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Foster B. <fos...@us...> - 2006-01-24 19:39:05
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/begin/headers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12473/adobe-source/adobe/test/begin/headers Modified Files: express_viewer.hpp report_exception.hpp Log Message: moved win/ directories to win32/ to anticipate a possible widgets port for WPF; added a 'mini-sheet' to Eve so you can save UI state information (what tab is currently selected) without mucking up your Adam model; started the modal_dialog_interface, an API that'll be used to direct a modal dialog interaction between the user and the application (it's still in its infancy); other misc bug fixes Index: express_viewer.hpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/begin/headers/express_viewer.hpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** express_viewer.hpp 6 Jan 2006 18:03:01 -0000 1.6 --- express_viewer.hpp 24 Jan 2006 19:38:50 -0000 1.7 *************** *** 118,121 **** --- 118,125 ---- } + // NOTE (fbrereto) : Mat Marcus made me do it! + const boost::filesystem::path& get_path() const + { return path_m; } + template <typename I> void set_contents(I first, I last) *************** *** 163,170 **** const char* file_name() const { ! if (dirty_m) ! return "(temporary file buffer)"; ! else ! return path_m.string().c_str(); } --- 167,171 ---- const char* file_name() const { ! return path_m.string().c_str(); } *************** *** 326,329 **** --- 327,336 ---- // void _monitor_file_dirty( adobe::name_t dirty_cell_name, bool dirty ); + // + /// Looks up the filebuffer_t for the path specified + /// + /// \param file_path the name of the celll to set + // + const adobe::file_buffer_t& _file_lookup( adobe::name_t file_path ); public: *************** *** 376,379 **** --- 383,391 ---- void serialize_connections(); // + /// Runs the currently selected Adam/Eve pair as a modal dialog + /// using the modal dialog interface API suite. + // + void run_current_as_modal(); + // /// Set the file name of the Eve file to load. This does not actually /// load the file or display the window, call display_window to make *************** *** 413,417 **** /// \param msg the message to post. // ! void display_error( const std::string& msg ); }; --- 425,436 ---- /// \param msg the message to post. // ! void display_error( const std::string& msg ); ! // ! /// Get the line at the given offset on the given file ! /// ! /// \param file_name the file ! /// \param line_start_position the position ! std::string application_t::format_stream_error(adobe::name_t file_name, std::streampos line_start_position); ! }; Index: report_exception.hpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/begin/headers/report_exception.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** report_exception.hpp 6 Jan 2006 18:03:01 -0000 1.3 --- report_exception.hpp 24 Jan 2006 19:38:50 -0000 1.4 *************** *** 13,16 **** --- 13,17 ---- #include <adobe/config.hpp> + #include <adobe/future/widgets/headers/ui_core_common.hpp> #include <iostream> *************** *** 28,43 **** /****************************************************************************************************/ - namespace implementation { - - /*************************************************************************************************/ - - void report_exception(const std::string& error_message); - - /****************************************************************************************************/ - - } // namespace implementation - - /****************************************************************************************************/ - void system_beep(); --- 29,32 ---- *************** *** 48,58 **** /****************************************************************************************************/ // - /// Specifies the callback report_exception will notify in the case of an error - // - - void set_report_exception_callback(report_exception_proc_t proc); - - /****************************************************************************************************/ - // /// Formats the exception currently being thrown and sends it off to /// the callback previously specified by set_report_exception_callback --- 37,40 ---- *************** *** 77,81 **** } ! implementation::report_exception(err); } --- 59,63 ---- } ! adobe::report_ui_element_error(err); } |
From: Foster B. <fos...@us...> - 2006-01-24 19:39:05
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/ide_projects/darwin/asl_widgets.xcodeproj In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12473/adobe-source/ide_projects/darwin/asl_widgets.xcodeproj Modified Files: project.pbxproj Log Message: moved win/ directories to win32/ to anticipate a possible widgets port for WPF; added a 'mini-sheet' to Eve so you can save UI state information (what tab is currently selected) without mucking up your Adam model; started the modal_dialog_interface, an API that'll be used to direct a modal dialog interaction between the user and the application (it's still in its infancy); other misc bug fixes Index: project.pbxproj =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/ide_projects/darwin/asl_widgets.xcodeproj/project.pbxproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** project.pbxproj 6 Jan 2006 18:03:05 -0000 1.1 --- project.pbxproj 24 Jan 2006 19:38:51 -0000 1.2 *************** *** 16,22 **** CE5C20A6094799FA00EB4BB6 /* ui_overlay.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CE5C20A2094799FA00EB4BB6 /* ui_overlay.cpp */; }; CE5C22AF0947ADD700EB4BB6 /* assemblage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CE5C22AB0947ADD700EB4BB6 /* assemblage.cpp */; }; - CE5C22B00947ADD700EB4BB6 /* iomanip_asl_cel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CE5C22AC0947ADD700EB4BB6 /* iomanip_asl_cel.cpp */; }; - CE5C22B10947ADD700EB4BB6 /* iomanip_pdf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CE5C22AD0947ADD700EB4BB6 /* iomanip_pdf.cpp */; }; - CE5C22B20947ADD700EB4BB6 /* iomanip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CE5C22AE0947ADD700EB4BB6 /* iomanip.cpp */; }; CEC06A0B0948A55300AFC610 /* libasl_dev.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC06A080948A54600AFC610 /* libasl_dev.a */; }; /* End PBXBuildFile section */ --- 16,19 ---- *************** *** 66,72 **** CE5C20A2094799FA00EB4BB6 /* ui_overlay.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ui_overlay.cpp; path = ../../adobe/future/widgets/sources/mac/ui_overlay.cpp; sourceTree = SOURCE_ROOT; }; CE5C22AB0947ADD700EB4BB6 /* assemblage.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = assemblage.cpp; path = ../../adobe/future/source/assemblage.cpp; sourceTree = SOURCE_ROOT; }; - CE5C22AC0947ADD700EB4BB6 /* iomanip_asl_cel.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = iomanip_asl_cel.cpp; path = ../../adobe/future/source/iomanip_asl_cel.cpp; sourceTree = SOURCE_ROOT; }; - CE5C22AD0947ADD700EB4BB6 /* iomanip_pdf.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = iomanip_pdf.cpp; path = ../../adobe/future/source/iomanip_pdf.cpp; sourceTree = SOURCE_ROOT; }; - CE5C22AE0947ADD700EB4BB6 /* iomanip.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = iomanip.cpp; path = ../../adobe/future/source/iomanip.cpp; sourceTree = SOURCE_ROOT; }; CEC069FC0948A54600AFC610 /* asl_dev.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = asl_dev.xcodeproj; sourceTree = "<group>"; }; D2AAC046055464E500DB518D /* libasl_widgets.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libasl_widgets.a; sourceTree = BUILT_PRODUCTS_DIR; }; --- 63,66 ---- *************** *** 101,107 **** children = ( CE5C22AB0947ADD700EB4BB6 /* assemblage.cpp */, - CE5C22AC0947ADD700EB4BB6 /* iomanip_asl_cel.cpp */, - CE5C22AD0947ADD700EB4BB6 /* iomanip_pdf.cpp */, - CE5C22AE0947ADD700EB4BB6 /* iomanip.cpp */, CE5C209F094799FA00EB4BB6 /* display.cpp */, CE5C20A0094799FA00EB4BB6 /* metrics.cpp */, --- 95,98 ---- *************** *** 239,245 **** CE5C20A6094799FA00EB4BB6 /* ui_overlay.cpp in Sources */, CE5C22AF0947ADD700EB4BB6 /* assemblage.cpp in Sources */, - CE5C22B00947ADD700EB4BB6 /* iomanip_asl_cel.cpp in Sources */, - CE5C22B10947ADD700EB4BB6 /* iomanip_pdf.cpp in Sources */, - CE5C22B20947ADD700EB4BB6 /* iomanip.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; --- 230,233 ---- |
From: Foster B. <fos...@us...> - 2006-01-24 19:39:05
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/begin/resources/begin.nib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12473/adobe-source/adobe/test/begin/resources/begin.nib Modified Files: info.nib objects.xib Log Message: moved win/ directories to win32/ to anticipate a possible widgets port for WPF; added a 'mini-sheet' to Eve so you can save UI state information (what tab is currently selected) without mucking up your Adam model; started the modal_dialog_interface, an API that'll be used to direct a modal dialog interaction between the user and the application (it's still in its infancy); other misc bug fixes Index: objects.xib =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/begin/resources/begin.nib/objects.xib,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** objects.xib 7 Nov 2005 18:08:59 -0000 1.2 --- objects.xib 24 Jan 2006 19:38:50 -0000 1.3 *************** *** 5,9 **** <string name="customClass">NSApplication</string> </object> ! <array count="53" name="allObjects"> <object class="IBCarbonMenu" id="29"> <string name="title">SimpleHello</string> --- 5,9 ---- <string name="customClass">NSApplication</string> </object> ! <array count="55" name="allObjects"> <object class="IBCarbonMenu" id="29"> <string name="title">SimpleHello</string> *************** *** 125,129 **** <object name="submenu" class="IBCarbonMenu" id="233"> <string name="title">View Options</string> ! <array count="11" name="items"> <object class="IBCarbonMenuItem" id="234"> <boolean name="updateSingleItem">TRUE</boolean> --- 125,129 ---- <object name="submenu" class="IBCarbonMenu" id="233"> <string name="title">View Options</string> ! <array count="13" name="items"> <object class="IBCarbonMenuItem" id="234"> <boolean name="updateSingleItem">TRUE</boolean> *************** *** 193,196 **** --- 193,206 ---- <ostype name="command">SzWg</ostype> </object> + <object class="IBCarbonMenuItem" id="252"> + <boolean name="separator">TRUE</boolean> + <boolean name="updateSingleItem">TRUE</boolean> + </object> + <object class="IBCarbonMenuItem" id="253"> + <boolean name="updateSingleItem">TRUE</boolean> + <string name="title">Run Modal</string> + <string name="keyEquivalent">d</string> + <ostype name="command">dlog</ostype> + </object> </array> </object> *************** *** 321,326 **** <reference idRef="250"/> <reference idRef="251"/> </array> ! <array count="53" name="allParents"> <reference idRef="1"/> <reference idRef="29"/> --- 331,338 ---- <reference idRef="250"/> <reference idRef="251"/> + <reference idRef="252"/> + <reference idRef="253"/> </array> ! <array count="55" name="allParents"> <reference idRef="1"/> <reference idRef="29"/> *************** *** 376,379 **** --- 388,393 ---- <reference idRef="246"/> <reference idRef="246"/> + <reference idRef="233"/> + <reference idRef="233"/> </array> <dictionary count="2" name="nameTable"> *************** *** 383,386 **** <reference idRef="29"/> </dictionary> ! <unsigned_int name="nextObjectID">252</unsigned_int> </object> --- 397,400 ---- <reference idRef="29"/> </dictionary> ! <unsigned_int name="nextObjectID">254</unsigned_int> </object> Index: info.nib =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/begin/resources/begin.nib/info.nib,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** info.nib 7 Nov 2005 18:08:59 -0000 1.2 --- info.nib 24 Jan 2006 19:38:50 -0000 1.3 *************** *** 11,15 **** </dict> <key>IBFramework Version</key> ! <string>439.0</string> <key>IBOpenObjects</key> <array> --- 11,15 ---- </dict> <key>IBFramework Version</key> ! <string>443.0</string> <key>IBOpenObjects</key> <array> *************** *** 17,21 **** </array> <key>IBSystem Version</key> ! <string>8C46</string> <key>targetFramework</key> <string>IBCarbonFramework</string> --- 17,21 ---- </array> <key>IBSystem Version</key> ! <string>8G32</string> <key>targetFramework</key> <string>IBCarbonFramework</string> |
From: Foster B. <fos...@us...> - 2006-01-24 19:39:05
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/modal_dialog_interface/resources/modal_dialog_interface.nib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12473/adobe-source/adobe/test/modal_dialog_interface/resources/modal_dialog_interface.nib Added Files: classes.nib info.nib objects.xib Log Message: moved win/ directories to win32/ to anticipate a possible widgets port for WPF; added a 'mini-sheet' to Eve so you can save UI state information (what tab is currently selected) without mucking up your Adam model; started the modal_dialog_interface, an API that'll be used to direct a modal dialog interaction between the user and the application (it's still in its infancy); other misc bug fixes --- NEW FILE: objects.xib --- <?xml version="1.0" standalone="yes"?> <object class="NSIBObjectData"> <string name="targetFramework">IBCarbonFramework</string> <object name="rootObject" class="NSCustomObject" id="1"> <string name="customClass">NSApplication</string> </object> <array count="28" name="allObjects"> <object class="IBCarbonMenu" id="29"> <string name="title">main</string> <array count="3" name="items"> <object class="IBCarbonMenuItem" id="185"> <string name="title">modal_dialog_interface</string> <object name="submenu" class="IBCarbonMenu" id="184"> <string name="title">modal_dialog_interface</string> <array count="1" name="items"> <object class="IBCarbonMenuItem" id="187"> <boolean name="disabled">TRUE</boolean> <string name="title">About modal_dialog_interface</string> <int name="keyEquivalentModifier">0</int> <ostype name="command">abou</ostype> </object> </array> <string name="name">_NSAppleMenu</string> </object> </object> <object class="IBCarbonMenuItem" id="127"> <string name="title">File</string> <object name="submenu" class="IBCarbonMenu" id="131"> <string name="title">File</string> <array count="10" name="items"> <object class="IBCarbonMenuItem" id="139"> <boolean name="disabled">TRUE</boolean> <string name="title">New</string> <string name="keyEquivalent">n</string> <ostype name="command">new </ostype> </object> <object class="IBCarbonMenuItem" id="134"> <boolean name="disabled">TRUE</boolean> <string name="title">Openâ¦</string> <string name="keyEquivalent">o</string> <ostype name="command">open</ostype> </object> <object class="IBCarbonMenuItem" id="133"> <boolean name="separator">TRUE</boolean> </object> <object class="IBCarbonMenuItem" id="130"> <boolean name="disabled">TRUE</boolean> <string name="title">Close</string> <string name="keyEquivalent">w</string> <ostype name="command">clos</ostype> </object> <object class="IBCarbonMenuItem" id="138"> <boolean name="disabled">TRUE</boolean> <string name="title">Save</string> <string name="keyEquivalent">s</string> <ostype name="command">save</ostype> </object> <object class="IBCarbonMenuItem" id="137"> <boolean name="disabled">TRUE</boolean> <string name="title">Save Asâ¦</string> <string name="keyEquivalent">S</string> <ostype name="command">svas</ostype> </object> <object class="IBCarbonMenuItem" id="132"> <boolean name="disabled">TRUE</boolean> <string name="title">Revert</string> <string name="keyEquivalent">r</string> <ostype name="command">rvrt</ostype> </object> <object class="IBCarbonMenuItem" id="128"> <boolean name="separator">TRUE</boolean> </object> <object class="IBCarbonMenuItem" id="135"> <boolean name="disabled">TRUE</boolean> <string name="title">Page Setupâ¦</string> <string name="keyEquivalent">P</string> <ostype name="command">page</ostype> </object> <object class="IBCarbonMenuItem" id="136"> <boolean name="disabled">TRUE</boolean> <string name="title">Printâ¦</string> <string name="keyEquivalent">p</string> <ostype name="command">prnt</ostype> </object> </array> </object> </object> <object class="IBCarbonMenuItem" id="152"> <string name="title">Edit</string> <object name="submenu" class="IBCarbonMenu" id="147"> <string name="title">Edit</string> <array count="10" name="items"> <object class="IBCarbonMenuItem" id="141"> <boolean name="disabled">TRUE</boolean> <string name="title">Undo</string> <string name="keyEquivalent">z</string> <ostype name="command">undo</ostype> </object> <object class="IBCarbonMenuItem" id="146"> <boolean name="disabled">TRUE</boolean> <string name="title">Redo</string> <string name="keyEquivalent">Z</string> <ostype name="command">redo</ostype> </object> <object class="IBCarbonMenuItem" id="142"> <boolean name="separator">TRUE</boolean> </object> <object class="IBCarbonMenuItem" id="143"> <boolean name="disabled">TRUE</boolean> <string name="title">Cut</string> <string name="keyEquivalent">x</string> <ostype name="command">cut </ostype> </object> <object class="IBCarbonMenuItem" id="149"> <boolean name="disabled">TRUE</boolean> <string name="title">Copy</string> <string name="keyEquivalent">c</string> <ostype name="command">copy</ostype> </object> <object class="IBCarbonMenuItem" id="144"> <boolean name="disabled">TRUE</boolean> <string name="title">Paste</string> <string name="keyEquivalent">v</string> <ostype name="command">past</ostype> </object> <object class="IBCarbonMenuItem" id="151"> <boolean name="disabled">TRUE</boolean> <string name="title">Delete</string> <ostype name="command">clea</ostype> </object> <object class="IBCarbonMenuItem" id="148"> <boolean name="disabled">TRUE</boolean> <string name="title">Select All</string> <string name="keyEquivalent">a</string> <ostype name="command">sall</ostype> </object> <object class="IBCarbonMenuItem" id="199"> <boolean name="separator">TRUE</boolean> </object> <object class="IBCarbonMenuItem" id="198"> <boolean name="disabled">TRUE</boolean> <string name="title">Special Charactersâ¦</string> <ostype name="command">chrp</ostype> </object> </array> </object> </object> </array> <string name="name">_NSMainMenu</string> </object> <reference idRef="127"/> <reference idRef="128"/> <reference idRef="130"/> <reference idRef="131"/> <reference idRef="132"/> <reference idRef="133"/> <reference idRef="134"/> <reference idRef="135"/> <reference idRef="136"/> <reference idRef="137"/> <reference idRef="138"/> <reference idRef="139"/> <reference idRef="141"/> <reference idRef="142"/> <reference idRef="143"/> <reference idRef="144"/> <reference idRef="146"/> <reference idRef="147"/> <reference idRef="148"/> <reference idRef="149"/> <reference idRef="151"/> <reference idRef="152"/> <reference idRef="184"/> <reference idRef="185"/> <reference idRef="187"/> <reference idRef="198"/> <reference idRef="199"/> </array> <array count="28" name="allParents"> <reference idRef="1"/> <reference idRef="29"/> <reference idRef="131"/> <reference idRef="131"/> <reference idRef="127"/> <reference idRef="131"/> <reference idRef="131"/> <reference idRef="131"/> <reference idRef="131"/> <reference idRef="131"/> <reference idRef="131"/> <reference idRef="131"/> <reference idRef="131"/> <reference idRef="147"/> <reference idRef="147"/> <reference idRef="147"/> <reference idRef="147"/> <reference idRef="147"/> <reference idRef="152"/> <reference idRef="147"/> <reference idRef="147"/> <reference idRef="147"/> <reference idRef="29"/> <reference idRef="185"/> <reference idRef="29"/> <reference idRef="184"/> <reference idRef="147"/> <reference idRef="147"/> </array> <dictionary count="2" name="nameTable"> <string>Files Owner</string> <reference idRef="1"/> <string>MenuBar</string> <reference idRef="29"/> </dictionary> <unsigned_int name="nextObjectID">200</unsigned_int> </object> --- NEW FILE: info.nib --- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>IBDocumentLocation</key> <string>81 8 356 240 0 0 1440 878 </string> <key>IBEditorPositions</key> <dict> <key>29</key> <string>220 644 276 44 0 0 1440 878 </string> </dict> <key>IBFramework Version</key> <string>443.0</string> <key>IBOldestOS</key> <integer>3</integer> <key>IBOpenObjects</key> <array> <integer>29</integer> </array> <key>IBSystem Version</key> <string>8G32</string> <key>targetFramework</key> <string>IBCarbonFramework</string> </dict> </plist> --- NEW FILE: classes.nib --- { IBClasses = (); IBVersion = 1; } |
From: Foster B. <fos...@us...> - 2006-01-24 19:39:05
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/gil In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12473/adobe-source/adobe/test/gil Modified Files: pixel.cpp pixel_iterator.cpp Log Message: moved win/ directories to win32/ to anticipate a possible widgets port for WPF; added a 'mini-sheet' to Eve so you can save UI state information (what tab is currently selected) without mucking up your Adam model; started the modal_dialog_interface, an API that'll be used to direct a modal dialog interaction between the user and the application (it's still in its infancy); other misc bug fixes Index: pixel.cpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/gil/pixel.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pixel.cpp 6 Jan 2006 18:03:03 -0000 1.1 --- pixel.cpp 24 Jan 2006 19:38:51 -0000 1.2 *************** *** 53,59 **** gil_function_requires<PixelConcept<rgb8c_pixel> >(); ! gil_function_requires<PixelsConvertibleConcept<rgb8_pixel,cmyk16_pixel> >(); ! gil_function_requires<PixelsConvertibleConcept<rgb8_pixel,cmyk16_planar_ref> >(); ! gil_function_requires<PixelsConvertibleConcept<gray8c_pixel,cmyk16_planar_ref> >(); BOOST_STATIC_ASSERT(rgb_tag::num_channels==3); --- 53,59 ---- gil_function_requires<PixelConcept<rgb8c_pixel> >(); ! gil_function_requires<PixelConvertibleConcept<rgb8_pixel,cmyk16_pixel> >(); ! gil_function_requires<PixelConvertibleConcept<rgb8_pixel,cmyk16_planar_ref> >(); ! gil_function_requires<PixelConvertibleConcept<gray8c_pixel,cmyk16_planar_ref> >(); BOOST_STATIC_ASSERT(rgb_tag::num_channels==3); Index: pixel_iterator.cpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/gil/pixel_iterator.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pixel_iterator.cpp 6 Jan 2006 18:03:03 -0000 1.1 --- pixel_iterator.cpp 24 Jan 2006 19:38:51 -0000 1.2 *************** *** 36,41 **** boost::function_requires<MutablePixelStepIteratorConcept<rgb8_step_ptr> >(); ! boost::function_requires<MutableXYLocatorConcept<rgb8_step_loc> >(); ! boost::function_requires<XYLocatorConcept<rgb8c_planar_step_loc> >(); boost::function_requires<MutablePixelStepIteratorConcept<cmyk8_planar_step_ptr> >(); --- 36,41 ---- boost::function_requires<MutablePixelStepIteratorConcept<rgb8_step_ptr> >(); ! boost::function_requires<MutablePixelLocatorConcept<rgb8_step_loc> >(); ! boost::function_requires<PixelLocatorConcept<rgb8c_planar_step_loc> >(); boost::function_requires<MutablePixelStepIteratorConcept<cmyk8_planar_step_ptr> >(); |
From: Foster B. <fos...@us...> - 2006-01-24 19:39:03
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/future/widgets/sources/win32 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12473/adobe-source/adobe/future/widgets/sources/win32 Added Files: display.cpp event_dispatcher.cpp metrics.cpp ui_core_implementation.cpp ui_overlay.cpp Log Message: moved win/ directories to win32/ to anticipate a possible widgets port for WPF; added a 'mini-sheet' to Eve so you can save UI state information (what tab is currently selected) without mucking up your Adam model; started the modal_dialog_interface, an API that'll be used to direct a modal dialog interaction between the user and the application (it's still in its infancy); other misc bug fixes --- NEW FILE: display.cpp --- /* Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ /****************************************************************************************************/ #define WINDOWS_LEAN_AND_MEAN 1 #include <windows.h> #include "display.hpp" #include <cassert> #include <stdexcept> /****************************************************************************************************/ namespace { /****************************************************************************************************/ struct view_wrap { explicit view_wrap(HWND ref) : ref_m(ref) { } HWND ref_m; }; /****************************************************************************************************/ HWND unwrap(adobe::display_t::position_t& position) { return (boost::any_cast<view_wrap>(position)).ref_m; } /****************************************************************************************************/ adobe::display_t::position_t wrap(HWND view) { return adobe::display_t::position_t(view_wrap(view)); } /****************************************************************************************************/ } // namespace /****************************************************************************************************/ #if 0 #pragma mark - #endif /****************************************************************************************************/ namespace adobe { /****************************************************************************************************/ display_t& get_main_display() { static display_t display_s; return display_s; } /****************************************************************************************************/ struct display_t::implementation_t { void erase(display_t::position_t& position); HWND root_m; }; /****************************************************************************************************/ template <typename DisplayElement> display_t::position_t insert(display_t& display, display_t::position_t& position, DisplayElement& element) { return display.insert(position, element); } /****************************************************************************************************/ template <> HWND unwrap_display_token<HWND, adobe::display_t::position_t>(adobe::display_t::position_t& position) { return (boost::any_cast<view_wrap>(position)).ref_m; } /****************************************************************************************************/ #if 0 #pragma mark - #endif /****************************************************************************************************/ display_t::display_t() : object_m(new implementation_t()) { } display_t::~display_t() { delete object_m; object_m = 0; } display_t::implementation_t& display_t::implementation() { return *object_m; } const display_t::implementation_t& display_t::implementation() const { return *object_m; } template <typename DisplayElement> void display_t::set_root(DisplayElement&) { } template <> void display_t::set_root<HWND>(HWND& root) { object_m->root_m = root; } display_t::position_t display_t::root() { return wrap(object_m->root_m); } void display_t::erase(position_t& position) { return object_m->erase(position); } template <typename DisplayElement> display_t::position_t display_t::insert(position_t& parent, DisplayElement& element) { return insert(parent, adobe::view_for_element<HWND>(element)); } /****************************************************************************************************/ template <> display_t::position_t display_t::insert<HWND>(position_t& parent, HWND& element) { if (parent.type() == typeid(view_wrap)) { HWND parent_view(unwrap(parent)); if (::SetParent(element, parent_view) == 0) throw std::runtime_error("display_t::insert<HWND>"); // ADOBE_REQUIRE_STATUS(::GetLastError()); assert(::GetParent(element) == parent_view); } return wrap(element); } /****************************************************************************************************/ #if 0 #pragma mark - #endif /****************************************************************************************************/ void display_t::implementation_t::erase(display_t::position_t&) { // REVISIT (fbrereto) : What should we do here? // 1) Call DetachSubView on the position? // 2) Call erase recursively for all children of the position? // 3) Invalidate (wipe) the position data? // 4) Invoke some (currently nonexistent) detach() callback for the client? // 4a) With what parameters, considering questions 1, 2, & 3? } /****************************************************************************************************/ } // namespace adobe /****************************************************************************************************/ --- NEW FILE: metrics.cpp --- /* Copyright 2005 Ralph Thomas Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ /****************************************************************************************************/ // // This is the implementation of the class which looks up widget metrics on // Windows systems. It has two implementations, one uses UxTheme to look up // widget metrics, and the other uses constant values (and is used on systems // where UxTheme is unavailable or Visual Styles are disabled). // /****************************************************************************************************/ #include "metrics.hpp" #include "wincast.hpp" #include <sstream> #include <stdexcept> #include <tchar.h> #include <cstring> #include <boost/static_assert.hpp> #include <uxtheme.h> //Yuck: #include <tmschema.h> #define SCHEME_STRINGS 1 #include <tmschema.h> //End yuck /****************************************************************************************************/ namespace adobe { /****************************************************************************************************/ // /// This implementation of metrics_t uses the Win32 library to lookup font attributes. /// It returns constant values for other metrics. // class metrics_win32_t : public metrics_t { // /// Store the class name of the window which we're currently examining. // std::wstring class_name_m; protected: // /// Return the window class which we are currently returing metrics for. /// /// \return the current window class. // std::wstring get_window_class() const { return class_name_m; } public: // // from metrics_t // bool set_window(HWND window) { WCHAR class_name_buf[50]; if (!GetClassNameW(window, class_name_buf, 50)) return false; class_name_m = class_name_buf; return true; } bool get_font(int widget_type, LOGFONTW& out_font) const { // // On plain windows everything uses DEFAULT_GUI_FONT. // HGDIOBJ font = GetStockObject(DEFAULT_GUI_FONT); if (!font) return false; // // Extract a LOGFONTW from the HFONT. // int rv = GetObject(font, sizeof(out_font), reinterpret_cast<LPVOID>(&out_font)); DeleteObject(font); return (rv != 0); } bool get_font_metrics(int widget_type, TEXTMETRIC& out_metrics) const { // // Try to use the font from get_font before we fall back to DEFAULT_GUI_FONT. // LOGFONTW logical_font = { 0 }; HGDIOBJ font = 0; HDC tmp_dc = GetDC(0); if (get_font(widget_type, logical_font)) { font = (HGDIOBJ)CreateFontIndirectW(&logical_font); } if (!font) font = GetStockObject(DEFAULT_GUI_FONT); // // Get the metrics. // HGDIOBJ oldFont = SelectObject(tmp_dc, font); BOOL have_metrics = GetTextMetrics(tmp_dc, &out_metrics); // // Clean up. // DeleteObject(SelectObject(tmp_dc, oldFont)); ReleaseDC(0, tmp_dc); return hackery::cast<bool>(have_metrics); } bool get_text_extents(int widget_type, std::wstring text, RECT& out_extents) const { // // Create the font and select it into a temporary device context. // HDC tmp_dc = GetDC(0); LOGFONTW logical_font = {0}; HGDIOBJ font = 0; // // Try to use get_font, in case there is another font we're meant // to use. Then fallback on DEFAULT_GUI_FONT. // if (get_font(widget_type, logical_font)) { font = (HGDIOBJ)CreateFontIndirectW(&logical_font); } if (!font) font = GetStockObject(DEFAULT_GUI_FONT); // // Extract the extents. // HGDIOBJ original_font = SelectObject(tmp_dc, font); SIZE out_size = {0, 0}; BOOL have_extents = GetTextExtentPoint32W(tmp_dc, text.c_str(), static_cast<int>(text.size()), &out_size); // // Clean up, and convert the size to a rect. // DeleteObject(SelectObject(tmp_dc, original_font)); ReleaseDC(0, tmp_dc); out_extents.left = 0; out_extents.top = 0; out_extents.right = out_size.cx; out_extents.bottom = out_size.cy; return hackery::cast<bool>(have_extents); } bool get_integer(int widget_type, int measurement, int& out_val) const { if ((widget_type == CP_DROPDOWNBUTTON) && (measurement == TMT_BORDERSIZE) && (class_name_m == L"ComboBox")) { out_val = 1; return true; } if ((widget_type == EP_EDITTEXT) && (measurement == TMT_BORDERSIZE)) { out_val = 1; return true; } out_val = 0; return false; } bool get_size(int widget_type, THEMESIZE measurement, SIZE& out_size) const { if (class_name_m == L"Button") { if ((widget_type == BP_CHECKBOX) || (widget_type == BP_RADIOBUTTON)) { // // Strictly the width of the checkbox widget is 13 pixels. // This adds some padding so that letters don't get clipped. // out_size.cx = 23; out_size.cy = 13; return true; } if (widget_type == BP_GROUPBOX) { out_size.cx = 8; out_size.cy = 8; return true; } out_size.cx = 0; out_size.cy = 0; return true; } out_size.cx = 0; out_size.cy = 0; return false; } bool get_margins(int widget_type, MARGINS& out_margins) const { if ((class_name_m == L"Button") && (widget_type == BP_PUSHBUTTON)) { out_margins.cxLeftWidth = 3; out_margins.cxRightWidth = 3; out_margins.cyTopHeight = 3; out_margins.cyBottomHeight = 3; return true; } return false; } bool get_button_text_margins(int widget_type, RECT& out_margins) const { if ((class_name_m == L"Button") && (widget_type == BP_CHECKBOX)) { out_margins.top = 1; out_margins.left = 1; out_margins.bottom = 1; out_margins.right = 1; return true; } return false; } bool using_styles() const { return false; } void draw_parent_background(HWND window, HDC dc) { // // REVISIT (ralpht): This function doesn't actually get called when visual // styles aren't available, so there's no implementation here. That // may not always be the case, however... // throw std::runtime_error("metrics::draw_parent_background not implemented without visual styles enabled"); } }; /****************************************************************************************************/ const int kState = 1; // /// This implementation of metrics_t uses the UxTheme library to obtain widget metrics. /// It inherits from the plain Win32 implementation because it occasionally falls back /// on the font functions. // class metrics_uxtheme_t : public metrics_win32_t { typedef metrics_win32_t _super; // // Handle to the UxTheme.DLL. // HMODULE theme_dll_m; // // Handle to the theme which we are currently using. // HTHEME theme_m; // // Technically all of these calls are supposed to use a state parameter. We are // only obtaining metrics, rather than drawing, so we don't actually need to // specify any particular state (as metrics should be invariant over all states). // // According to the tmschema.h (in the Platform SDK) a state of 1 should always // work. // // const int kState; // // Because we open UxTheme.DLL dynamically we need to keep function pointers into // the library. These are those. // typedef HTHEME (__stdcall *OpenThemeData_t)(HWND hwnd, LPCWSTR pszClassList); typedef HRESULT (__stdcall *CloseThemeData_t)(HTHEME hTheme); typedef HRESULT (__stdcall *GetThemeMargins_t)(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, int iPropId, RECT* prc, MARGINS* pMargins); typedef HRESULT (__stdcall *GetThemePartSize_t)(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, RECT* pRect, enum THEMESIZE eSize, SIZE* psz); typedef HRESULT (__stdcall *GetThemeInt_t)(HTHEME hTheme, int iPartId, int iStateId, int iPropId, int* piVal); typedef HRESULT (__stdcall *GetThemeTextExtent_t)(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, LPCWSTR pszText, int iCharCount, DWORD dwTextFlags, const RECT* pBoundingRect, RECT* pExtentRect); typedef HRESULT (__stdcall *GetThemeTextMetrics_t)(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, TEXTMETRIC* ptm); typedef HRESULT (__stdcall *GetThemeFont_t)(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, int iPropId, LOGFONTW* pFont); typedef HRESULT (__stdcall *GetThemeSysFont_t)(HTHEME hTheme, int iFontId, LOGFONTW* pFont); typedef HRESULT (__stdcall *DrawThemeParentBackground_t)(HWND window, HDC dc, LPRECT prc); typedef BOOL (__stdcall *IsThemeActive_t)(void); OpenThemeData_t OpenThemeDataPtr; CloseThemeData_t CloseThemeDataPtr; GetThemeMargins_t GetThemeMarginsPtr; GetThemePartSize_t GetThemePartSizePtr; GetThemeInt_t GetThemeIntPtr; GetThemeTextExtent_t GetThemeTextExtentPtr; GetThemeTextMetrics_t GetThemeTextMetricsPtr; GetThemeFont_t GetThemeFontPtr; GetThemeSysFont_t GetThemeSysFontPtr; IsThemeActive_t IsThemeActivePtr; DrawThemeParentBackground_t DrawThemeParentBackgroundPtr; // // We only ever try to load UxTheme.DLL once, this boolean tells us if we were // successful. // bool loaded_m; // /// The HWND we are currently inspecting. // HWND window_m; public: metrics_uxtheme_t() : theme_dll_m(0), theme_m(0), OpenThemeDataPtr(0), CloseThemeDataPtr(0), GetThemeMarginsPtr(0), GetThemePartSizePtr(0), GetThemeIntPtr(0), GetThemeTextExtentPtr(0), GetThemeTextMetricsPtr(0), GetThemeFontPtr(0), GetThemeSysFontPtr(0), IsThemeActivePtr(0), DrawThemeParentBackgroundPtr(0), loaded_m(false), window_m(0) { // // Try to load the UxTheme library, if we can. // theme_dll_m = LoadLibrary(__T("UxTheme.dll")); if (!theme_dll_m) return; // // Load the addresses of the UxTheme functions. // if (!(OpenThemeDataPtr = (OpenThemeData_t)GetProcAddress(theme_dll_m, "OpenThemeData"))) return; if (!(CloseThemeDataPtr = (CloseThemeData_t)GetProcAddress(theme_dll_m, "CloseThemeData"))) return; if (!(GetThemeMarginsPtr = (GetThemeMargins_t)GetProcAddress(theme_dll_m, "GetThemeMargins"))) return; if (!(GetThemePartSizePtr = (GetThemePartSize_t)GetProcAddress(theme_dll_m, "GetThemePartSize"))) return; if (!(GetThemeIntPtr = (GetThemeInt_t)GetProcAddress(theme_dll_m, "GetThemeInt"))) return; if (!(GetThemeTextExtentPtr = (GetThemeTextExtent_t)GetProcAddress(theme_dll_m, "GetThemeTextExtent"))) return; if (!(GetThemeTextMetricsPtr = (GetThemeTextMetrics_t)GetProcAddress(theme_dll_m, "GetThemeTextMetrics"))) return; if (!(GetThemeFontPtr = (GetThemeFont_t)GetProcAddress(theme_dll_m, "GetThemeFont"))) return; if (!(GetThemeSysFontPtr = (GetThemeSysFont_t)GetProcAddress(theme_dll_m, "GetThemeSysFont"))) return; if (!(IsThemeActivePtr = (IsThemeActive_t)GetProcAddress(theme_dll_m, "IsThemeActive"))) return; if (!(DrawThemeParentBackgroundPtr = (DrawThemeParentBackground_t)GetProcAddress(theme_dll_m, "DrawThemeParentBackground"))) return; // // All loaded! // loaded_m = true; } virtual ~metrics_uxtheme_t() { if (theme_dll_m) FreeLibrary(theme_dll_m); } // /// This function returns true if the theme is active. If the theme /// is not active then the plain win32 metrics object should be used. // bool theme_active() const { if (!loaded_m) return false; return hackery::cast<bool>((*IsThemeActivePtr)()); } // // from metrics_t // bool set_window(HWND win) { if (!_super::set_window(win)) return false; // // Keep this window around. // window_m = win; // // Close any already open theme data, and load up the new // data. // if (theme_m) (*CloseThemeDataPtr)(theme_m); // The next section of code tries to account for the fact that the names required // by OpenThemeData are different from the "class name" used by CreateWindowEx // I am having trouble finding definitive documentation on these names, so I am // not going to clean this up and break it out into a reusable conversion function yet. // MM - 11/15/2005 static const wchar_t* class_names[] = { L"ComboBoxEx32", L"SysTabControl32", L"SysTreeView32", L"msctls_progress32", L"msctls_trackbar32", L"msctls_updown32", L"tooltips_class32", //L"Button", //L"ComboBox", //L"Edit", //L"ListBox", //L"NativeFontCtl", //L"ScrollBar", //L"Static", //L"SysAnimate32", //L"SysDateTimePick32", //L"SysIPAddress32", //L"SysListView32", //L"SysMonthCal32", //L"SysPager", //L"msctls_hotkey32", }; static const wchar_t* theme_names[] = { L"ComboBox", L"Tab", L"TreeView", L"Progress", L"Trackbar", L"Spin", L"Tooltip", //L"Button", //L"Edit", //L"Globals", //L"Header", //L"Menu", //L"Rebar", //L"Scrollbar", //L"Status", //L"Toolbar", //L"Window" }; const std::wstring& class_name = get_window_class(); const wchar_t *theme_name = class_name.c_str(); BOOST_STATIC_ASSERT(sizeof(class_names)==sizeof(theme_names)); const ptrdiff_t names_count = sizeof(class_names)/sizeof(wchar_t*); const wchar_t** i = class_names; while(i != &class_names[names_count] && std::wcscmp(*i, theme_name) != 0) ++i; if(i != &class_names[names_count]) theme_name = theme_names[i - class_names]; theme_m = (*OpenThemeDataPtr)(win, theme_name); return (theme_m != 0); } bool get_font(int widget_type, LOGFONTW& out_font) const { // // We need ensure that we have a handle to the theme before // continuing. // if (!theme_m) return false; if (widget_type != -1) { HDC tmp_dc = GetDC(0); HRESULT hr = (*GetThemeFontPtr)(theme_m, tmp_dc, widget_type, kState, TMT_FONT, &out_font); ReleaseDC(0,tmp_dc); if (hr == S_OK) return true; } // // This widget is a text label, most likely. Give it the // standard message box font. // if (S_OK == (*GetThemeSysFontPtr)(theme_m, TMT_MSGBOXFONT, &out_font)) return true; return false; } // // Previously we had implementations of get_font_metrics and get_text_extents // which used the UXTheme API. We were not getting the values back that we // expected, so we now use the Win32 API for getting those measurements (although // note that we still get the actual widget font with UxTheme). // bool get_integer(int widget_type, int measurement, int& out_val) const { // // We don't fallback from this function. // if ((!theme_m) || (widget_type == -1)) return false; return (S_OK == (*GetThemeIntPtr)(theme_m, widget_type, kState, measurement, &out_val)); } bool get_size(int widget_type, THEMESIZE measurement, SIZE& out_size) const { // // We don't fallback from this function. // if ((!theme_m) || (widget_type == -1)) return false; // // Create a temporary device context and call GetThemePartSize. // HDC tmp_dc = GetDC(0); HRESULT hr = (*GetThemePartSizePtr)(theme_m, tmp_dc, widget_type, kState, 0, measurement, &out_size); ReleaseDC(0, tmp_dc); return (hr == S_OK); } bool get_margins(int widget_type, MARGINS& out_margins) const { // // We don't fall back from this function. // if ((!theme_m) || (widget_type == -1)) return false; // // Use GetThemeMargins call to get the margins for this widget. // return (S_OK == (*GetThemeMarginsPtr)(theme_m, 0, widget_type, kState, TMT_CONTENTMARGINS, 0, &out_margins)); } bool get_button_text_margins(int widget_type, RECT& out_margins) const { // // Fallback if we're not using a theme. // if (!theme_m) return _super::get_button_text_margins(widget_type, out_margins); return hackery::cast<bool>(Button_GetTextMargin(window_m, &out_margins)); } bool using_styles() const { return theme_active(); } void draw_parent_background(HWND window, HDC dc) { if (!loaded_m) return; (*DrawThemeParentBackgroundPtr)(window, dc, 0); } }; /****************************************************************************************************/ metrics_t& metrics_t::get_instance() { static metrics_win32_t win32_instance; static metrics_uxtheme_t uxtheme_instance; if (uxtheme_instance.theme_active()) return uxtheme_instance; return win32_instance; } /****************************************************************************************************/ } /****************************************************************************************************/ --- NEW FILE: ui_overlay.cpp --- /* Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ /****************************************************************************************************/ #ifndef NDEBUG #define WINDOWS_LEAN_AND_MEAN 1 #include <windows.h> #include "ui_overlay.hpp" #include <adobe/forest.hpp> #include <boost/bind.hpp> /****************************************************************************************************/ namespace { /****************************************************************************************************/ struct overlay_data_t { adobe::point_2d_t origin_m; adobe::extents_t extents_m; }; typedef adobe::forest<overlay_data_t> overlay_forest_t; typedef POINT coord_t; typedef std::vector<coord_t> coord_set_t; /****************************************************************************************************/ overlay_forest_t::iterator unwrap(adobe::ui_overlay_t::position_t& position) { return boost::any_cast<overlay_forest_t::iterator>(position); } /****************************************************************************************************/ adobe::ui_overlay_t::position_t wrap(overlay_forest_t::iterator view) { return adobe::ui_overlay_t::position_t(view); } /****************************************************************************************************/ RECT get_window_client_offset_rect(HWND window) { assert(window); RECT window_rect; RECT client_rect; ::GetWindowRect(window, &window_rect); ::GetClientRect(window, &client_rect); ::ClientToScreen(window, (LPPOINT) &client_rect.left); ::ClientToScreen(window, (LPPOINT) &client_rect.right); RECT result; result.left = std::abs(window_rect.left - client_rect.left); result.top = std::abs(window_rect.top - client_rect.top); result.right = std::abs(window_rect.right - client_rect.right); result.bottom = std::abs(window_rect.bottom - client_rect.bottom); return result; } /****************************************************************************************************/ void draw_line_path(HDC context, coord_set_t& points) { if (points.size() < 2) return; ::Polyline(context, &points[0], static_cast<int>(points.size())); points.erase(points.begin(), points.end()); } /****************************************************************************************************/ } // namespace /****************************************************************************************************/ namespace adobe { /****************************************************************************************************/ struct ui_overlay_t::implementation_t { implementation_t(); ~implementation_t(); struct draw_element_t { enum element_type { element_type_top_left, element_type_top_right, element_type_bottom_left, element_type_bottom_right, element_type_horizontal_poi, element_type_vertical_poi, element_type_count // always be last }; draw_element_t(element_type type, const RECT& rect, const COLORREF& color) : type_m(type), rect_m(rect), color_m(color) { } draw_element_t(const draw_element_t& rhs) : type_m(rhs.type_m), rect_m(rhs.rect_m), color_m(rhs.color_m) { } element_type type_m; RECT rect_m; COLORREF color_m; }; typedef std::vector<draw_element_t> draw_element_set_t; position_t root(HWND& element); position_t insert(position_t parent); void place(position_t node, const point_2d_t& origin, const extents_t& extents); void framing(bool do_framing); overlay_data_t flatten_overlay_data(overlay_forest_t::iterator iter); void tick_extents(const overlay_data_t& overlay_data, HWND main_window, draw_element_set_t& set); void draw_tick(HDC context, const draw_element_set_t::value_type& element); HWND overlay_m; HWND source_m; bool framing_m; overlay_forest_t tree_m; }; /****************************************************************************************************/ ui_overlay_t::ui_overlay_t() : object_m(new implementation_t()) { } ui_overlay_t::~ui_overlay_t() { delete object_m; } template <typename DisplayElement> ui_overlay_t::position_t ui_overlay_t::root(DisplayElement& element) { return ui_overlay_t::position_t(); } template <> ui_overlay_t::position_t ui_overlay_t::root<HWND>(HWND& element) { return object_m->root(element); } ui_overlay_t::position_t ui_overlay_t::insert(position_t parent) { return object_m->insert(parent); } void ui_overlay_t::place(position_t node, const point_2d_t& origin, const extents_t& extents) { return object_m->place(node, origin, extents); } void ui_overlay_t::framing(bool do_framing) { object_m->framing(do_framing); } ui_overlay_t::implementation_t& ui_overlay_t::implementation() { return *object_m; } const ui_overlay_t::implementation_t& ui_overlay_t::implementation() const { return *object_m; } /****************************************************************************************************/ #if 0 #pragma mark - #endif /****************************************************************************************************/ ui_overlay_t::implementation_t::implementation_t() : overlay_m(0), source_m(0), framing_m(false) { } /****************************************************************************************************/ ui_overlay_t::implementation_t::~implementation_t() { if (overlay_m) ::DestroyWindow(overlay_m); overlay_m = 0; } /****************************************************************************************************/ ui_overlay_t::position_t ui_overlay_t::implementation_t::root(HWND& element) { assert(element); source_m = element; return wrap(tree_m.insert(tree_m.begin(), overlay_data_t())); } /****************************************************************************************************/ ui_overlay_t::position_t ui_overlay_t::implementation_t::insert(position_t parent) { overlay_forest_t::iterator position(unwrap(parent)); position.edge() = adobe::forest_trailing_edge; return wrap(tree_m.insert(position, overlay_data_t())); } /****************************************************************************************************/ void ui_overlay_t::implementation_t::place(position_t node, const point_2d_t& origin, const extents_t& extents) { overlay_forest_t::iterator position(unwrap(node)); position->origin_m = origin; position->extents_m = extents; } /****************************************************************************************************/ void ui_overlay_t::implementation_t::framing(bool do_framing) { assert(source_m); framing_m = do_framing; if (!do_framing) { //set_control_invalid(control_m); } else { HWND main_window(source_m);//::GetAncestor(source_m, GA_ROOT)); HDC context(::GetWindowDC(main_window)); draw_element_set_t tick_set; overlay_forest_t::preorder_iterator first(tree_m.begin()); overlay_forest_t::preorder_iterator last(tree_m.end()); ::BringWindowToTop(main_window); for (; first != last; ++first) tick_extents(flatten_overlay_data(first.base()), main_window, tick_set); if (!tick_set.empty()) adobe::for_each(tick_set, boost::bind(&implementation_t::draw_tick, boost::ref(*this), context, _1)); ::ReleaseDC(main_window, context); } } /****************************************************************************************************/ overlay_data_t ui_overlay_t::implementation_t::flatten_overlay_data(overlay_forest_t::iterator iter) { overlay_data_t result; point_2d_t& origin(result.origin_m); overlay_forest_t::iterator last(tree_m.end()); result.extents_m = iter->extents_m; for (; iter != last; iter = find_parent(iter)) { origin.x_m += iter->origin_m.x_m; origin.y_m += iter->origin_m.y_m; } return result; } /****************************************************************************************************/ void ui_overlay_t::implementation_t::tick_extents(const overlay_data_t& overlay_data, HWND main_window, draw_element_set_t& set) { typedef draw_element_t de_t; static const long tick(3); static COLORREF blue(RGB(0, 0, 255)); static COLORREF red(RGB(255, 0, 0)); const point_2d_t& position(overlay_data.origin_m); const extents_t& extents(overlay_data.extents_m); RECT extra(get_window_client_offset_rect(main_window)); long top(position.y_m + extra.top - 1); long left(position.x_m + extra.left); long bottom(top + extents.height() - 1); long right(left + extents.width()); long tick_width(std::min(tick, extents.width())); long tick_height(std::min(tick, extents.height())); long tick_start_right(std::max(right - tick, left)); long tick_start_bottom(std::max(bottom - tick, top)); RECT top_left_rect = { left, top, left + tick_width, top + tick_height }; RECT top_right_rect = { tick_start_right, top, tick_start_right + tick_width, top + tick_height }; RECT bottom_left_rect = { left, tick_start_bottom + 1, left + tick_width + 1, tick_start_bottom + tick_height }; RECT bottom_right_rect = { tick_start_right - 1, tick_start_bottom + 1, tick_start_right + tick_width, tick_start_bottom + tick_height }; set.push_back(de_t(de_t::element_type_top_left, top_left_rect, blue)); set.push_back(de_t(de_t::element_type_top_right, top_right_rect, blue)); set.push_back(de_t(de_t::element_type_bottom_left, bottom_left_rect, blue)); set.push_back(de_t(de_t::element_type_bottom_right, bottom_right_rect, blue)); { guide_set_t::const_iterator iter(extents.horizontal().poi_m.begin()); guide_set_t::const_iterator last(extents.horizontal().poi_m.end()); for (; iter != last; ++iter) { guide_set_t::value_type cur(*iter); long poi(left + cur); RECT top_tick = { poi, top, poi + 1, top + tick_height }; RECT bottom_tick = { poi, bottom - tick_height, poi + 1, bottom }; set.push_back(de_t(de_t::element_type_horizontal_poi, top_tick, red)); set.push_back(de_t(de_t::element_type_horizontal_poi, bottom_tick, red)); } } { guide_set_t::const_iterator iter(extents.vertical().poi_m.begin()); guide_set_t::const_iterator last(extents.vertical().poi_m.end()); for (; iter != last; ++iter) { guide_set_t::value_type cur(*iter); long poi(top + cur); RECT left_tick = { left, poi, left + tick_width, poi + 1 }; RECT right_tick = { right - tick_width, poi, right, poi + 1 }; set.push_back(de_t(de_t::element_type_vertical_poi, left_tick, red)); set.push_back(de_t(de_t::element_type_vertical_poi, right_tick, red)); } } } /****************************************************************************************************/ void ui_overlay_t::implementation_t::draw_tick(HDC context, const draw_element_set_t::value_type& element) { typedef draw_element_set_t::value_type desvt_t; coord_set_t points; long top(element.rect_m.top + 1); long left(element.rect_m.left); long bottom(element.rect_m.bottom + 1); long right(element.rect_m.right - 1); coord_t top_left = { left, top }; coord_t top_right = { right, top }; coord_t bottom_left = { left, bottom }; coord_t bottom_right = { right, bottom }; HPEN pen(::CreatePen(PS_SOLID, 1, element.color_m)); HPEN old_pen((HPEN) SelectObject(context, pen)); if (element.type_m == desvt_t::element_type_top_left) { points.push_back(top_right); points.push_back(top_left); points.push_back(bottom_left); } else if (element.type_m == desvt_t::element_type_top_right) { points.push_back(top_left); points.push_back(top_right); points.push_back(bottom_right); } else if (element.type_m == desvt_t::element_type_bottom_left) { points.push_back(top_left); points.push_back(bottom_left); points.push_back(bottom_right); } else if (element.type_m == desvt_t::element_type_bottom_right) { points.push_back(top_right); points.push_back(bottom_right); points.push_back(bottom_left); } else if (element.type_m == desvt_t::element_type_horizontal_poi) { points.push_back(top_left); points.push_back(bottom_left); } else if (element.type_m == desvt_t::element_type_vertical_poi) { points.push_back(top_left); points.push_back(top_right); } draw_line_path(context, points); // clean up pen work SelectObject(context, old_pen); DeleteObject(pen); } /****************************************************************************************************/ } // namespace adobe /****************************************************************************************************/ #endif /****************************************************************************************************/ --- NEW FILE: event_dispatcher.cpp --- /* Copyright 2005 Ralph Thomas Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ /****************************************************************************************************/ #include "event_dispatcher.hpp" #include "ui_core_implementation.hpp" #include "wincast.hpp" #include <adobe/future/enum_ops.hpp> #include <sstream> /****************************************************************************************************/ adobe::modifiers_t convert_modifiers(ULONG os_modifiers) { adobe::modifiers_t result(adobe::modifiers_none_s); #define ADOBE_MAPMOD(osmod, adobemod) if (os_modifiers == (osmod)) result = result | (adobemod) // // Note that VK_MENU is the ALT key. // ADOBE_MAPMOD(VK_CAPITAL, adobe::modifiers_caps_lock_s); ADOBE_MAPMOD(VK_CONTROL, adobe::modifiers_any_control_s); ADOBE_MAPMOD(VK_SHIFT, adobe::modifiers_any_shift_s); ADOBE_MAPMOD(VK_MENU, adobe::modifiers_any_option_s); #undef ADOBE_MAPMOD return result; } /****************************************************************************************************/ namespace adobe { /****************************************************************************************************/ // /// This is the global single instance of the event_dispatcher, and it's /// reference count. // static event_dispatcher* event_singleton_g = 0; static unsigned int event_refcount_g = 0; /****************************************************************************************************/ event_dispatcher::event_dispatcher() : current_id_m(1000) { } /****************************************************************************************************/ LRESULT event_dispatcher::event(UINT message, WPARAM wParam, LPARAM lParam, bool& handled) { handled = false; // // Let's first ensure that we actually have an event_dispatcher to work // on. // if (!event_refcount_g) return 0; // // The child id is usually the low word of the wParam. // control_map_t& cmap(event_singleton_g->control_map_m); control_map_t::iterator control = cmap.find(LOWORD(wParam)); if (control == cmap.end()) return 0; // // We found something to invoke, so we claim that we handled the message // and return the value of the control's event method. // handled = true; return control->second->event(message, wParam, lParam); } /****************************************************************************************************/ void event_dispatcher::keyboard(UINT message, WPARAM wParam) { // // Verify that this is a keyboard message which could contain // modifiers. // if ((message != WM_KEYDOWN) && (message != WM_KEYUP) && (message != WM_SYSKEYDOWN) && (message != WM_SYSKEYUP)) return; // // Ensure that we have an event_dispatcher to work on. // if (!event_refcount_g) return; // // Look up the modifiers which this event translates to. If they // have changed since the last time then we can tell the controls // about it. // static modifiers_t previous_modifiers(modifiers_none_s); // // This is the modifier which corresponds to the key which was // just pressed or released. // modifiers_t the_modifier(convert_modifiers(hackery::cast<ULONG>(wParam))); modifiers_t current_modifiers(previous_modifiers); // // Now we need to either add or remove the current modifier // from the previous modifiers. // if ((message == WM_KEYDOWN) || (message == WM_SYSKEYDOWN)) current_modifiers |= the_modifier; else current_modifiers &= ~the_modifier; // // Only dispatch to all of the children if the currently // pressed modifiers has changed. // if (previous_modifiers != current_modifiers) { // // Iterate through all of the controls and tell them of // the new modifier state. // control_map_t::iterator first = event_singleton_g->control_map_m.begin(); control_map_t::iterator last = event_singleton_g->control_map_m.end(); while (first != last) { first->second->modify(current_modifiers); first++; } } previous_modifiers = current_modifiers; } /****************************************************************************************************/ event_dispatcher::reference::reference() : child_id_m(-1) { // // If the reference count is zero then we have to allocate a new // event dispatcher. // if (!event_refcount_g) event_singleton_g = new event_dispatcher(); event_refcount_g++; } /****************************************************************************************************/ event_dispatcher::reference::~reference() { // // If we subscribed a control then it will be in the map, we // must remove that mapping so that events don't get sent there // any more. // event_dispatcher::control_map_t::iterator us = event_singleton_g->control_map_m.find(child_id_m); if (us != event_singleton_g->control_map_m.end()) event_singleton_g->control_map_m.erase(us); // // Decrease the reference count and delete the event_dispatcher // if there are no remaining references. // event_refcount_g--; if (!event_refcount_g) { delete event_singleton_g; event_singleton_g = 0; } } /****************************************************************************************************/ HMENU event_dispatcher::reference::subscribe(control_t* control) { // // If we're not given a control then we have nothing to subscribe. // if (!control) return 0; // // Store the child ID we're going to use, so that child_id can return it. // child_id_m = event_singleton_g->current_id_m++; event_singleton_g->control_map_m[child_id_m] = control; return child_id(); } /****************************************************************************************************/ HMENU event_dispatcher::reference::child_id() const { return hackery::cast<HMENU>(child_id_m); } /****************************************************************************************************/ } /****************************************************************************************************/ --- NEW FILE: ui_core_implementation.cpp --- /* Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ /****************************************************************************************************/ #include "ui_core_implementation.hpp" #include "ui_core_common.hpp" #include "display.hpp" #include "ui_overlay.hpp" #include "metrics.hpp" #include "wincast.hpp" #include <adobe/value.hpp> #include <adobe/array.hpp> [...4434 lines suppressed...] display_t::position_t result; // if (scroll_ref) result = display.insert<HWND>(parent, scroll_ref); // else result = display.insert<HWND>(parent, ref); if (label_ref) display.insert<HWND>(parent, label_ref); if (static_disable_ref) display.insert<HWND>(parent, static_disable_ref); if (popup_static_disable_ref) display.insert<HWND>(parent, popup_static_disable_ref); if (popup_ref) display.insert<HWND>(parent, popup_ref); return result; } /****************************************************************************************************/ } // namespace adobe /****************************************************************************************************/ |
From: Foster B. <fos...@us...> - 2006-01-24 19:39:03
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/ide_projects/darwin/asl_dev.xcodeproj In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12473/adobe-source/ide_projects/darwin/asl_dev.xcodeproj Modified Files: project.pbxproj Log Message: moved win/ directories to win32/ to anticipate a possible widgets port for WPF; added a 'mini-sheet' to Eve so you can save UI state information (what tab is currently selected) without mucking up your Adam model; started the modal_dialog_interface, an API that'll be used to direct a modal dialog interaction between the user and the application (it's still in its infancy); other misc bug fixes Index: project.pbxproj =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/ide_projects/darwin/asl_dev.xcodeproj/project.pbxproj,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** project.pbxproj 6 Jan 2006 18:03:05 -0000 1.1 --- project.pbxproj 24 Jan 2006 19:38:51 -0000 1.2 *************** *** 42,45 **** --- 42,51 ---- CEC069EB0948A52200AFC610 /* libboost_signals.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC069DF0948A50F00AFC610 /* libboost_signals.a */; }; CEC069EC0948A52200AFC610 /* libboost_threads.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC069E30948A50F00AFC610 /* libboost_threads.a */; }; + CEE3EC3909855FAD0006417C /* modal_dialog_interface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEE3EC3809855FAD0006417C /* modal_dialog_interface.cpp */; }; + CEE3EC4F0985B1B10006417C /* iomanip_asl_cel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEE3EC4C0985B1B10006417C /* iomanip_asl_cel.cpp */; }; + CEE3EC500985B1B10006417C /* iomanip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEE3EC4D0985B1B10006417C /* iomanip.cpp */; }; + CEE3EC510985B1B10006417C /* iomanip_pdf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEE3EC4E0985B1B10006417C /* iomanip_pdf.cpp */; }; + E5934CDB097C2435009079A9 /* basic_sheet.hpp in Headers */ = {isa = PBXBuildFile; fileRef = E5934CDA097C2435009079A9 /* basic_sheet.hpp */; }; + E59413DF097CA523009159B4 /* basic_sheet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E59413DE097CA523009159B4 /* basic_sheet.cpp */; }; /* End PBXBuildFile section */ *************** *** 64,68 **** containerPortal = CEC069CF0948A50F00AFC610 /* boost_filesystem.xcodeproj */; proxyType = 2; ! remoteGlobalIDString = D2AAC046055464E500DB518D /* libboost_filesystem.a */; remoteInfo = boost_filesystem; }; --- 70,74 ---- containerPortal = CEC069CF0948A50F00AFC610 /* boost_filesystem.xcodeproj */; proxyType = 2; ! remoteGlobalIDString = D2AAC046055464E500DB518D; remoteInfo = boost_filesystem; }; *************** *** 71,75 **** containerPortal = CEC069D20948A50F00AFC610 /* boost_signals.xcodeproj */; proxyType = 2; ! remoteGlobalIDString = D2AAC046055464E500DB518D /* libboost_signals.a */; remoteInfo = boost_signals; }; --- 77,81 ---- containerPortal = CEC069D20948A50F00AFC610 /* boost_signals.xcodeproj */; proxyType = 2; ! remoteGlobalIDString = D2AAC046055464E500DB518D; remoteInfo = boost_signals; }; *************** *** 78,82 **** containerPortal = CEC069D50948A50F00AFC610 /* boost_threads.xcodeproj */; proxyType = 2; ! remoteGlobalIDString = D2AAC046055464E500DB518D /* libboost_threads.a */; remoteInfo = boost_threads; }; --- 84,88 ---- containerPortal = CEC069D50948A50F00AFC610 /* boost_threads.xcodeproj */; proxyType = 2; ! remoteGlobalIDString = D2AAC046055464E500DB518D; remoteInfo = boost_threads; }; *************** *** 85,89 **** containerPortal = CEC069D20948A50F00AFC610 /* boost_signals.xcodeproj */; proxyType = 1; ! remoteGlobalIDString = D2AAC045055464E500DB518D /* boost_signals */; remoteInfo = boost_signals; }; --- 91,95 ---- containerPortal = CEC069D20948A50F00AFC610 /* boost_signals.xcodeproj */; proxyType = 1; ! remoteGlobalIDString = D2AAC045055464E500DB518D; remoteInfo = boost_signals; }; *************** *** 92,96 **** containerPortal = CEC069D50948A50F00AFC610 /* boost_threads.xcodeproj */; proxyType = 1; ! remoteGlobalIDString = D2AAC045055464E500DB518D /* boost_threads */; remoteInfo = boost_threads; }; --- 98,102 ---- containerPortal = CEC069D50948A50F00AFC610 /* boost_threads.xcodeproj */; proxyType = 1; ! remoteGlobalIDString = D2AAC045055464E500DB518D; remoteInfo = boost_threads; }; *************** *** 99,103 **** containerPortal = CEC069CF0948A50F00AFC610 /* boost_filesystem.xcodeproj */; proxyType = 1; ! remoteGlobalIDString = D2AAC045055464E500DB518D /* boost_filesystem */; remoteInfo = boost_filesystem; }; --- 105,109 ---- containerPortal = CEC069CF0948A50F00AFC610 /* boost_filesystem.xcodeproj */; proxyType = 1; ! remoteGlobalIDString = D2AAC045055464E500DB518D; remoteInfo = boost_filesystem; }; *************** *** 142,146 **** --- 148,158 ---- CEC069D20948A50F00AFC610 /* boost_signals.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = boost_signals.xcodeproj; sourceTree = "<group>"; }; CEC069D50948A50F00AFC610 /* boost_threads.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = boost_threads.xcodeproj; sourceTree = "<group>"; }; + CEE3EC3809855FAD0006417C /* modal_dialog_interface.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = modal_dialog_interface.cpp; path = ../../adobe/future/source/modal_dialog_interface.cpp; sourceTree = SOURCE_ROOT; }; + CEE3EC4C0985B1B10006417C /* iomanip_asl_cel.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = iomanip_asl_cel.cpp; path = ../../adobe/future/source/iomanip_asl_cel.cpp; sourceTree = SOURCE_ROOT; }; + CEE3EC4D0985B1B10006417C /* iomanip.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = iomanip.cpp; path = ../../adobe/future/source/iomanip.cpp; sourceTree = SOURCE_ROOT; }; + CEE3EC4E0985B1B10006417C /* iomanip_pdf.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = iomanip_pdf.cpp; path = ../../adobe/future/source/iomanip_pdf.cpp; sourceTree = SOURCE_ROOT; }; D2AAC046055464E500DB518D /* libasl_dev.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libasl_dev.a; sourceTree = BUILT_PRODUCTS_DIR; }; + E5934CDA097C2435009079A9 /* basic_sheet.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = basic_sheet.hpp; path = ../../adobe/basic_sheet.hpp; sourceTree = SOURCE_ROOT; }; + E59413DE097CA523009159B4 /* basic_sheet.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = basic_sheet.cpp; path = ../../adobe/source/basic_sheet.cpp; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ *************** *** 167,170 **** --- 179,183 ---- C6A0FF2B0290797F04C91782 /* Documentation */, 1AB674ADFE9D54B511CA2CBB /* Products */, + E59413DB097CA49B009159B4 /* headers */, ); name = boost_signals; *************** *** 174,181 **** --- 187,199 ---- isa = PBXGroup; children = ( + CEE3EC4C0985B1B10006417C /* iomanip_asl_cel.cpp */, + CEE3EC4D0985B1B10006417C /* iomanip.cpp */, + CEE3EC4E0985B1B10006417C /* iomanip_pdf.cpp */, + CEE3EC3809855FAD0006417C /* modal_dialog_interface.cpp */, CE5C20D609479C0200EB4BB6 /* adam_evaluate.cpp */, CE5C20D709479C0200EB4BB6 /* adam_parser.cpp */, CE5C20D809479C0200EB4BB6 /* adam.cpp */, CE5C20D909479C0200EB4BB6 /* array.cpp */, + E59413DE097CA523009159B4 /* basic_sheet.cpp */, CE5C20DA09479C0200EB4BB6 /* dictionary.cpp */, CE5C20DB09479C0200EB4BB6 /* eve_evaluate.cpp */, *************** *** 268,271 **** --- 286,297 ---- sourceTree = "<group>"; }; + E59413DB097CA49B009159B4 /* headers */ = { + isa = PBXGroup; + children = ( + E5934CDA097C2435009079A9 /* basic_sheet.hpp */, + ); + name = headers; + sourceTree = "<group>"; + }; /* End PBXGroup section */ *************** *** 275,278 **** --- 301,305 ---- buildActionMask = 2147483647; files = ( + E5934CDB097C2435009079A9 /* basic_sheet.hpp in Headers */, ); runOnlyForDeploymentPostprocessing = 0; *************** *** 398,401 **** --- 425,433 ---- CE5C211209479C0200EB4BB6 /* zuid_uuid.cpp in Sources */, CE5C211309479C0200EB4BB6 /* zuid.cpp in Sources */, + E59413DF097CA523009159B4 /* basic_sheet.cpp in Sources */, + CEE3EC3909855FAD0006417C /* modal_dialog_interface.cpp in Sources */, + CEE3EC4F0985B1B10006417C /* iomanip_asl_cel.cpp in Sources */, + CEE3EC500985B1B10006417C /* iomanip.cpp in Sources */, + CEE3EC510985B1B10006417C /* iomanip_pdf.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; |
From: Foster B. <fos...@us...> - 2006-01-24 19:39:03
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/begin/sources/win In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12473/adobe-source/adobe/test/begin/sources/win Removed Files: main.cpp Log Message: moved win/ directories to win32/ to anticipate a possible widgets port for WPF; added a 'mini-sheet' to Eve so you can save UI state information (what tab is currently selected) without mucking up your Adam model; started the modal_dialog_interface, an API that'll be used to direct a modal dialog interaction between the user and the application (it's still in its infancy); other misc bug fixes --- main.cpp DELETED --- |
From: Foster B. <fos...@us...> - 2006-01-24 19:39:01
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/future/widgets/headers/win In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12473/adobe-source/adobe/future/widgets/headers/win Removed Files: event_dispatcher.hpp metrics.hpp ui_core_implementation.hpp wincast.hpp Log Message: moved win/ directories to win32/ to anticipate a possible widgets port for WPF; added a 'mini-sheet' to Eve so you can save UI state information (what tab is currently selected) without mucking up your Adam model; started the modal_dialog_interface, an API that'll be used to direct a modal dialog interaction between the user and the application (it's still in its infancy); other misc bug fixes --- event_dispatcher.hpp DELETED --- --- wincast.hpp DELETED --- --- ui_core_implementation.hpp DELETED --- --- metrics.hpp DELETED --- |
From: Foster B. <fos...@us...> - 2006-01-24 19:38:58
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/future In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12473/adobe-source/adobe/future Added Files: modal_dialog_interface.hpp Log Message: moved win/ directories to win32/ to anticipate a possible widgets port for WPF; added a 'mini-sheet' to Eve so you can save UI state information (what tab is currently selected) without mucking up your Adam model; started the modal_dialog_interface, an API that'll be used to direct a modal dialog interaction between the user and the application (it's still in its infancy); other misc bug fixes --- NEW FILE: modal_dialog_interface.hpp --- /* Copyright 2005-2006 Adobe Systems Incorporated Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt or a copy at http://opensource.adobe.com/licenses.html) */ /****************************************************************************************************/ #include <utility> #include <adobe/dictionary.hpp> #include <adobe/array.hpp> /****************************************************************************************************/ namespace adobe { /****************************************************************************************************/ enum display_options_t { dialog_display_s, dialog_no_display_s, dialog_never_display_s }; typedef std::pair<adobe::dictionary_t, adobe::array_t> record_info_t; struct dialog_result_t { adobe::record_info_t record_m; adobe::dictionary_t display_state_m; adobe::dictionary_t command_m; }; adobe::dialog_result_t handle_dialog( const adobe::dictionary_t& input, const adobe::record_info_t& record, const adobe::dictionary_t& display_state, adobe::display_options_t display_options, std::istream& layout_definition, std::istream& sheet_definition); /****************************************************************************************************/ } // namespace adobe /****************************************************************************************************/ |
From: Foster B. <fos...@us...> - 2006-01-24 19:38:57
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/gil/test/image_test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12473/adobe-source/adobe/gil/test/image_test Added Files: gil_test.vssscc Log Message: moved win/ directories to win32/ to anticipate a possible widgets port for WPF; added a 'mini-sheet' to Eve so you can save UI state information (what tab is currently selected) without mucking up your Adam model; started the modal_dialog_interface, an API that'll be used to direct a modal dialog interaction between the user and the application (it's still in its infancy); other misc bug fixes --- NEW FILE: gil_test.vssscc --- (This appears to be a binary file; contents omitted.) |
From: Foster B. <fos...@us...> - 2006-01-24 19:38:55
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/sources/doxygen_support_files/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12473/adobe-source/adobe/documentation/sources/doxygen_support_files/include Added Files: gil_design_guide.pdf gil_tutorial.pdf Log Message: moved win/ directories to win32/ to anticipate a possible widgets port for WPF; added a 'mini-sheet' to Eve so you can save UI state information (what tab is currently selected) without mucking up your Adam model; started the modal_dialog_interface, an API that'll be used to direct a modal dialog interaction between the user and the application (it's still in its infancy); other misc bug fixes --- NEW FILE: gil_tutorial.pdf --- (This appears to be a binary file; contents omitted.) --- NEW FILE: gil_design_guide.pdf --- (This appears to be a binary file; contents omitted.) |
From: Foster B. <fos...@us...> - 2006-01-24 19:38:53
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/sources/doxygen_support_files In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12473/adobe-source/adobe/documentation/sources/doxygen_support_files Added Files: include_stub.dox Log Message: moved win/ directories to win32/ to anticipate a possible widgets port for WPF; added a 'mini-sheet' to Eve so you can save UI state information (what tab is currently selected) without mucking up your Adam model; started the modal_dialog_interface, an API that'll be used to direct a modal dialog interaction between the user and the application (it's still in its infancy); other misc bug fixes --- NEW FILE: include_stub.dox --- /*! \page asl_include_stub ASL include stub page This stub page is included so Doxygen will include stuff that we haven't otherwise specified in a way Doxygen will include it automatically. \image html grant_munsey.jpg "Grant and his wife Sandy in 2000" \image html gil_design_guide.pdf "GIL Design Guide (PDF)" \image html gil_tutorial.pdf "GIL Tutorial (PDF)" */ |
From: Foster B. <fos...@us...> - 2006-01-24 19:38:53
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/sources/doxygen_support_files/images In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12473/adobe-source/adobe/documentation/sources/doxygen_support_files/images Removed Files: stlab.jpg Log Message: moved win/ directories to win32/ to anticipate a possible widgets port for WPF; added a 'mini-sheet' to Eve so you can save UI state information (what tab is currently selected) without mucking up your Adam model; started the modal_dialog_interface, an API that'll be used to direct a modal dialog interaction between the user and the application (it's still in its infancy); other misc bug fixes --- stlab.jpg DELETED --- |
From: Foster B. <fos...@us...> - 2006-01-24 19:38:52
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/html In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12473/adobe-source/adobe/documentation/html Added Files: gil_design_guide.pdf gil_tutorial.pdf Log Message: moved win/ directories to win32/ to anticipate a possible widgets port for WPF; added a 'mini-sheet' to Eve so you can save UI state information (what tab is currently selected) without mucking up your Adam model; started the modal_dialog_interface, an API that'll be used to direct a modal dialog interaction between the user and the application (it's still in its infancy); other misc bug fixes --- NEW FILE: gil_tutorial.pdf --- (This appears to be a binary file; contents omitted.) --- NEW FILE: gil_design_guide.pdf --- (This appears to be a binary file; contents omitted.) |
From: Foster B. <fos...@us...> - 2006-01-24 19:38:52
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/bin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12473/adobe-source/adobe/bin Added Files: make-distribution.bat Log Message: moved win/ directories to win32/ to anticipate a possible widgets port for WPF; added a 'mini-sheet' to Eve so you can save UI state information (what tab is currently selected) without mucking up your Adam model; started the modal_dialog_interface, an API that'll be used to direct a modal dialog interaction between the user and the application (it's still in its infancy); other misc bug fixes --- NEW FILE: make-distribution.bat --- @ECHO OFF SET DEBUG_DISTRO_PATH=distribution\x86\debug\Adobe Begin\ SET RELEASE_DISTRO_PATH=distribution\x86\release\Adobe Begin\ SET ARTIFACT_PATH=ide_projects\vc8\build\Win32\ SET VC8_DEFAULT_ROOT=%ProgramFiles%\Microsoft Visual Studio 8\ REM ### This will make the current directory to be that of the build script PUSHD %~dp0 PUSHD ..\..\ IF NOT EXIST "%ARTIFACT_PATH%" ( ECHO ### Error: You must first do a build of Adobe Begin using the MSVC 8 IDE projects before using this script. EXIT /B 1 ) IF NOT EXIST "%DEBUG_DISTRO_PATH%" ( ECHO Making debug distribution directory MKDIR "%DEBUG_DISTRO_PATH%" ) IF EXIST "%DEBUG_DISTRO_PATH%" ( ECHO Clearing out debug distribution directory DEL /F /Q "%DEBUG_DISTRO_PATH%*" ) IF NOT EXIST "%RELEASE_DISTRO_PATH%" ( ECHO Making release distribution directory MKDIR "%RELEASE_DISTRO_PATH%" ) IF EXIST "%RELEASE_DISTRO_PATH%" ( ECHO Clearing out debug distribution directory DEL /F /Q "%RELEASE_DISTRO_PATH%*" ) IF EXIST "%VC8_DEFAULT_ROOT%" ( SET VC8_ROOT=%VC8_DEFAULT_ROOT% ) IF "_%VC8_ROOT%_" == "__" ( ECHO ### Error: Your installation of MSVC 8 is not in the default location, nor do you have a VC8_ROOT environment variable set. EXIT /B 1 ) CALL "%VC8_ROOT%VC\bin\VCVARS32.bat" SET DEBUG_REDIST_DIR=%VCINSTALLDIR%\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT\ SET RELEASE_REDIST_DIR=%VCINSTALLDIR%\redist\x86\Microsoft.VC80.CRT\ COPY "%DEBUG_REDIST_DIR%Microsoft.VC80.DebugCRT.manifest" "%DEBUG_DISTRO_PATH%" COPY "%DEBUG_REDIST_DIR%msvcm80d.dll" "%DEBUG_DISTRO_PATH%" COPY "%DEBUG_REDIST_DIR%msvcp80d.dll" "%DEBUG_DISTRO_PATH%" COPY "%DEBUG_REDIST_DIR%msvcr80d.dll" "%DEBUG_DISTRO_PATH%" COPY "%RELEASE_REDIST_DIR%Microsoft.VC80.CRT.manifest" "%RELEASE_DISTRO_PATH%" COPY "%RELEASE_REDIST_DIR%msvcm80.dll" "%RELEASE_DISTRO_PATH%" COPY "%RELEASE_REDIST_DIR%msvcp80.dll" "%RELEASE_DISTRO_PATH%" COPY "%RELEASE_REDIST_DIR%msvcr80.dll" "%RELEASE_DISTRO_PATH%" SET DEBUG_ARTIFACT_DIR=%ARTIFACT_PATH%Debug\begin\ SET RELEASE_ARTIFACT_DIR=%ARTIFACT_PATH%Release\begin\ COPY "%DEBUG_ARTIFACT_DIR%begin.exe" "%DEBUG_DISTRO_PATH%" COPY "%DEBUG_ARTIFACT_DIR%editor.eve" "%DEBUG_DISTRO_PATH%" COPY "%DEBUG_ARTIFACT_DIR%editor.adm" "%DEBUG_DISTRO_PATH%" COPY "%DEBUG_ARTIFACT_DIR%glossary.xstr" "%DEBUG_DISTRO_PATH%" COPY "%RELEASE_ARTIFACT_DIR%begin.exe" "%RELEASE_DISTRO_PATH%" COPY "%RELEASE_ARTIFACT_DIR%editor.eve" "%RELEASE_DISTRO_PATH%" COPY "%RELEASE_ARTIFACT_DIR%editor.adm" "%RELEASE_DISTRO_PATH%" COPY "%RELEASE_ARTIFACT_DIR%glossary.xstr" "%RELEASE_DISTRO_PATH%" POPD POPD ECHO Done! EXIT /B 0 |
From: Foster B. <fos...@us...> - 2006-01-24 19:30:33
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/modal_dialog_interface/resources/modal_dialog_interface.nib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9349/adobe-source/adobe/test/modal_dialog_interface/resources/modal_dialog_interface.nib Log Message: Directory /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/modal_dialog_interface/resources/modal_dialog_interface.nib added to the repository |
From: Foster B. <fos...@us...> - 2006-01-24 19:17:41
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/modal_dialog_interface/resources In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3350/adobe-source/adobe/test/modal_dialog_interface/resources Log Message: Directory /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/modal_dialog_interface/resources added to the repository |
From: Foster B. <fos...@us...> - 2006-01-24 19:17:40
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/gil/test/image_test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3350/adobe-source/adobe/gil/test/image_test Log Message: Directory /cvsroot/adobe-source/sandbox/adobe-source/adobe/gil/test/image_test added to the repository |
From: Foster B. <fos...@us...> - 2006-01-24 19:15:48
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/begin/sources/win32 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2558/adobe-source/adobe/test/begin/sources/win32 Log Message: Directory /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/begin/sources/win32 added to the repository |
From: Foster B. <fos...@us...> - 2006-01-24 19:15:46
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/modal_dialog_interface In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2483/adobe-source/adobe/test/modal_dialog_interface Log Message: Directory /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/modal_dialog_interface added to the repository |
From: Foster B. <fos...@us...> - 2006-01-24 19:15:34
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/gil/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2483/adobe-source/adobe/gil/test Log Message: Directory /cvsroot/adobe-source/sandbox/adobe-source/adobe/gil/test added to the repository |
From: Foster B. <fos...@us...> - 2006-01-24 19:15:32
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/sources/doxygen_support_files/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2483/adobe-source/adobe/documentation/sources/doxygen_support_files/include Log Message: Directory /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/sources/doxygen_support_files/include added to the repository |
From: Foster B. <fos...@us...> - 2006-01-24 19:15:32
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/future/widgets/sources/win32 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2483/adobe-source/adobe/future/widgets/sources/win32 Log Message: Directory /cvsroot/adobe-source/sandbox/adobe-source/adobe/future/widgets/sources/win32 added to the repository |
From: Foster B. <fos...@us...> - 2006-01-24 19:15:31
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/future/widgets/headers/win32 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2483/adobe-source/adobe/future/widgets/headers/win32 Log Message: Directory /cvsroot/adobe-source/sandbox/adobe-source/adobe/future/widgets/headers/win32 added to the repository |