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...> - 2005-04-05 15:44:08
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/sources/win In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4705/visual/sources/win Modified Files: ui_core_implementation.cpp Log Message: MSVC build updates, fixes Index: ui_core_implementation.cpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/sources/win/ui_core_implementation.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** ui_core_implementation.cpp 5 Apr 2005 06:16:18 -0000 1.11 --- ui_core_implementation.cpp 5 Apr 2005 15:43:58 -0000 1.12 *************** *** 1373,1377 **** LRESULT result = ::CallWindowProc(control->default_window_proc_m, window, message, wParam, lParam); ! #ifdef NDEBUG if (control && message == WM_PAINT) frame_widget(*control); #endif --- 1373,1377 ---- LRESULT result = ::CallWindowProc(control->default_window_proc_m, window, message, wParam, lParam); ! #ifndef NDEBUG if (control && message == WM_PAINT) frame_widget(*control); #endif *************** *** 2444,2448 **** --- 2444,2450 ---- draw_link(*link, context); + #ifndef NDEBUG frame_widget(*control); // Done after the default wind proc has drawn the widget + #endif } |
|
From: Foster B. <fos...@us...> - 2005-04-05 15:44:06
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4705/visual Modified Files: visual.vcproj Log Message: MSVC build updates, fixes Index: visual.vcproj =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/visual.vcproj,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** visual.vcproj 4 Apr 2005 16:43:33 -0000 1.3 --- visual.vcproj 5 Apr 2005 15:43:57 -0000 1.4 *************** *** 144,147 **** --- 144,150 ---- </File> <File + RelativePath=".\sources\win\event_dispatcher.cpp"> + </File> + <File RelativePath=".\sources\express_viewer.cpp"> </File> |
|
From: Ralph T. <ra...@us...> - 2005-04-05 06:16:28
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/sources/win In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7676/adobe-source/adobe/test/visual/sources/win Modified Files: ui_core_implementation.cpp Log Message: We no longer need to override the window procedure unless we want to draw the frame markers, this also means that user_references, etc are not required any more. Additionally I have removed a few lines from the container window procedure which were no longer required (as they were dealing with keyboard events which are already handled in the main message pump). Index: ui_core_implementation.cpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/sources/win/ui_core_implementation.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** ui_core_implementation.cpp 5 Apr 2005 05:46:05 -0000 1.10 --- ui_core_implementation.cpp 5 Apr 2005 06:16:18 -0000 1.11 *************** *** 1376,1387 **** if (control && message == WM_PAINT) frame_widget(*control); #endif - // - // Handle modifier keys here also. - // - if (message == WM_KEYDOWN || message == WM_KEYUP) - { - bool handled(false); - forward_events_to_control(message, wParam, lParam, handled); - } return result; } --- 1376,1379 ---- *************** *** 1400,1404 **** // we don't assume that forward_events_to_control handles the event. // ! if ((control->child_id_m != child_id) || (message == WM_KEYDOWN) || (message == WM_KEYUP)) { bool handled(false); --- 1392,1396 ---- // we don't assume that forward_events_to_control handles the event. // ! if (control->child_id_m != child_id) { bool handled(false); *************** *** 1871,1878 **** if (control_m == NULL) ADOBE_THROW_LAST_ERROR; ! set_user_reference(control_m, this); - trap_window_proc(control_window_proc); for (; first != last; ++first) --- 1863,1870 ---- if (control_m == NULL) ADOBE_THROW_LAST_ERROR; ! #ifdef NDEBUG set_user_reference(control_m, this); trap_window_proc(control_window_proc); + #endif for (; first != last; ++first) *************** *** 2107,2113 **** if (control_m == NULL) ADOBE_THROW_LAST_ERROR; set_user_reference(control_m, this); - trap_window_proc(control_window_proc); } --- 2099,2106 ---- if (control_m == NULL) ADOBE_THROW_LAST_ERROR; + #ifdef NDEBUG set_user_reference(control_m, this); trap_window_proc(control_window_proc); + #endif } *************** *** 2259,2266 **** if (control_m == NULL) ADOBE_THROW_LAST_ERROR; ! set_user_reference(control_m, this); - trap_window_proc(control_window_proc); } --- 2252,2259 ---- if (control_m == NULL) ADOBE_THROW_LAST_ERROR; ! #ifdef NDEBUG set_user_reference(control_m, this); trap_window_proc(control_window_proc); + #endif } *************** *** 2354,2361 **** if (control_m == NULL) ADOBE_THROW_LAST_ERROR; ! set_user_reference(control_m, this); - trap_window_proc(control_window_proc); } --- 2347,2354 ---- if (control_m == NULL) ADOBE_THROW_LAST_ERROR; ! #ifdef NDEBUG set_user_reference(control_m, this); trap_window_proc(control_window_proc); + #endif } *************** *** 2792,2799 **** if (control_m == NULL) ADOBE_THROW_LAST_ERROR; ! set_user_reference(control_m, this); - trap_window_proc(control_window_proc); } --- 2785,2792 ---- if (control_m == NULL) ADOBE_THROW_LAST_ERROR; ! #ifdef NDEBUG set_user_reference(control_m, this); trap_window_proc(control_window_proc); + #endif } *************** *** 2956,2960 **** set_user_reference(control_m, this); - trap_window_proc(edit_text_window_proc); --- 2949,2952 ---- *************** *** 3279,3285 **** if (control_m == NULL) ADOBE_THROW_LAST_ERROR; set_user_reference(control_m, this); - trap_window_proc(control_window_proc); clear_menu_items(); --- 3271,3278 ---- if (control_m == NULL) ADOBE_THROW_LAST_ERROR; + #ifdef NDEBUG set_user_reference(control_m, this); trap_window_proc(control_window_proc); + #endif clear_menu_items(); |
|
From: Ralph T. <ra...@us...> - 2005-04-05 05:46:14
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/sources/win In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1814/adobe-source/adobe/test/visual/sources/win Modified Files: main.cpp ui_core_implementation.cpp Added Files: event_dispatcher.cpp Log Message: The event_dispatcher has moved out of the ui_core_implementation.cpp file. The main message pump now checks for modifier keys whenever an event is recieved. All modifier keys now work on Windows. Index: main.cpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/sources/win/main.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** main.cpp 23 Mar 2005 18:52:00 -0000 1.2 --- main.cpp 5 Apr 2005 05:46:05 -0000 1.3 *************** *** 7,10 **** --- 7,11 ---- #include "express_viewer.hpp" + #include "event_dispatcher.hpp" #include "report_exception.hpp" *************** *** 112,115 **** --- 113,124 ---- while ( GetMessage( &msg, 0, 0, 0 ) ) { + // + // Push every message through the event_dispatcher, in case it is a keyboard + // modifier. + // + event_dispatcher::keyboard(msg.message, msg.wParam); + // + // We always pass every message though to the application anyway. + // TranslateMessage( &msg ); DispatchMessage( &msg ); --- 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 <adobe/future/enum_ops.hpp> #include <sstream> /****************************************************************************************************/ adobe::modifiers_t convert_modifiers(ULONG os_modifiers) { adobe::modifiers_t result(adobe::modifiers_none_s); #define MAPMOD(osmod, adobemod) if (os_modifiers == (osmod)) result = result | (adobemod) // // Note that VK_MENU is the ALT key, and that VK_APPS is the "popup menu" key. // If I plug my keyboard into a Mac then the Windows-logo key becomes the Apple // key (also called the command key). However, the Windows-logo key brings up // the start menu, so I'm using the "popup menu" key for command instead. // MAPMOD(VK_CAPITAL, adobe::modifiers_caps_lock_s); MAPMOD(VK_CONTROL, adobe::modifiers_any_control_s); MAPMOD(VK_SHIFT, adobe::modifiers_any_shift_s); MAPMOD(VK_MENU, adobe::modifiers_any_option_s); MAPMOD(VK_APPS, adobe::modifiers_any_command_s); 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(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 (HMENU)child_id_m; } /****************************************************************************************************/ HMENU event_dispatcher::reference::child_id() const { return (HMENU)child_id_m; } /****************************************************************************************************/ } /****************************************************************************************************/ Index: ui_core_implementation.cpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/sources/win/ui_core_implementation.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** ui_core_implementation.cpp 4 Apr 2005 23:32:25 -0000 1.9 --- ui_core_implementation.cpp 5 Apr 2005 05:46:05 -0000 1.10 *************** *** 79,103 **** /****************************************************************************************************/ - adobe::modifiers_t convert_modifiers(ULONG os_modifiers) - { - adobe::modifiers_t result(adobe::modifiers_none_s); - - #define MAPMOD(osmod, adobemod) if ((os_modifiers & (osmod)) == (osmod)) result |= (adobemod) - - MAPMOD(VK_CAPITAL, adobe::modifiers_caps_lock_s); - MAPMOD(VK_LMENU, adobe::modifiers_any_command_s); - MAPMOD(VK_LSHIFT, adobe::modifiers_left_shift_s); - MAPMOD(VK_LWIN, adobe::modifiers_left_option_s); - MAPMOD(VK_LCONTROL, adobe::modifiers_left_control_s); - MAPMOD(VK_RMENU, adobe::modifiers_any_command_s); - MAPMOD(VK_RSHIFT, adobe::modifiers_right_shift_s); - MAPMOD(VK_RWIN, adobe::modifiers_right_option_s); - MAPMOD(VK_RCONTROL, adobe::modifiers_right_control_s); - - return result; - } - - /****************************************************************************************************/ - namespace hackery { --- 79,82 ---- *************** *** 1069,1219 **** /****************************************************************************************************/ // - /// This class's job is to keep track of control_t instances, and the windows which they - /// own. It keeps track of them all in order to dispatch events to them in a safe manner - /// (safer than assuming the user data section of HWND is a pointer into this address space). - /// It works by issuing out sequential numbers which are used by CreateWindow as the HMENU - /// value (which is LPARAM on all incoming events). - /// - /// This class is a reference counted singleton. It is acquired via inc_ref and released - /// via dec_ref. - // - // REVISIT (ralpht): The event_dispatcher singleton+refcounted mechanism is very crude, - // it should be expanded into something more generic, as various other objects - // probably follow the same pattern. - // - class event_dispatcher - { - typedef std::map<int, control_t*> control_map_t; - - control_map_t control_map_m; ///< The control_map_m contains the mapping from HMENU value to control_t. - int current_value_m;///< The current HMENU value to assign. - static int ref_count_m; ///< The reference count. - static event_dispatcher* instance_m; ///< Our instance. - // - /// The constructor is private to enforce the singleton nature - /// of this class. - // - event_dispatcher() : current_value_m(1000) {} - public: - // - /// Return the single instance of this class. This is the only way - /// to get a valid reference to the event_dispatcher. This reference - /// must be released with dec_ref. - /// - /// \return a reference to the single instance of this class. - /// \sa dec_ref - // - static event_dispatcher& inc_ref() - { - if (ref_count_m == 0) - { - instance_m = new event_dispatcher; - } - ref_count_m++; - return *instance_m; - } - // - /// Release this event dispatcher reference. - // - void dec_ref() - { - ref_count_m--; - if (ref_count_m == 0) - { - delete instance_m; - instance_m = 0; - } - } - // - /// Return a number to use as the new window's child ID - /// and associate the returned number with the given control. - /// - /// \param control the control to associate with the number - /// which will be returned. - /// \return the number to use as the child ID in CreateWindow. - // - HMENU subscribe(control_t* control) - { - // - // Make sure that we actually have a control! - // - if (!control) return 0; - // - // Associate the values and return the child ID. - control_map_m[current_value_m] = control; - return (HMENU)current_value_m++; - } - // - /// Remove the association to the given control, such that - /// it will never be called into unless it subscribes and - /// creates a new window. - /// - /// Typically this function is called before a control is - /// deleted. - /// - /// \param control the control to never call again. - // - void unsubscribe(const control_t* control) - { - control_map_t::iterator first = control_map_m.begin(); - control_map_t::iterator last = control_map_m.end(); - while (first != last) - { - if (first->second == control) - { - control_map_m.erase(first); - return; - } - first++; - } - } - // - /// Try to propagate an event out to an individual child window. - /// - /// \param message the Windows event type. - /// \param wParam the pointer parameter. - /// \param lParam the integer parameter, usually the child ID. - /// \param handled set to true if a matching child was found, - /// false otherwise. - /// - /// \return the event return code, from the widget's event method. - // - LRESULT event(UINT message, WPARAM wParam, LPARAM lParam, bool& handled) - { - handled = false; - // - // Normally the child id is the low word of the wParam. - // - int id = LOWORD(wParam); - control_map_t::iterator control = control_map_m.find(id); - if(control == control_map_m.end()) return 0; - // - // Invoke the event handler. - // - handled = true; - return control->second->event(message, wParam, lParam); - } - // - /// Inform all controls that a modifier key has been pressed or - /// released. - /// - /// \param modifiers the modifier key combination currently pressed. - // - void modify(modifiers_t modifiers) - { - // - // Iterate through all of the controls. - // - // REVISIT (ralpht): Use for_each, and some kind of functor compose here. - // - for(control_map_t::iterator i = control_map_m.begin(); i != control_map_m.end(); i++) - i->second->modify(modifiers); - } - }; - int event_dispatcher::ref_count_m = 0; - event_dispatcher* event_dispatcher::instance_m = 0; - - /****************************************************************************************************/ - // /// This function encapsulates the logic for deciding if a message should be /// sent to the event_dispatcher for submission to child windows. If the --- 1048,1051 ---- *************** *** 1226,1262 **** { handled = false; if ((message == WM_COMMAND) || (message == WM_NOTIFY)) ! { ! event_dispatcher& ed = event_dispatcher::inc_ref(); ! LRESULT rv = ed.event(message, wParam, lParam, handled); ! ed.dec_ref(); ! return rv; ! } ! else if (message == WM_KEYDOWN || message == WM_KEYUP) ! { ! // ! // This might be a notifier event. We never claim to ! // handle key events, as the destination control may ! // require them for something else. ! // ! static modifiers_t previous_modifiers(modifiers_none_s); ! modifiers_t current_modifiers(convert_modifiers(wParam)); ! // ! // If the current modifiers are different from the ! // previous ones then tell all of the controls about ! // it. ! // ! if (current_modifiers != previous_modifiers) ! { ! event_dispatcher& ed(event_dispatcher::inc_ref()); ! ed.modify(current_modifiers); ! ed.dec_ref(); ! } ! // ! // Make sure that we always compare against the previous ! // modifiers. ! // ! previous_modifiers = previous_modifiers; ! } return 0; } --- 1058,1067 ---- { handled = false; + // + // We let event_dispatcher::event set handled either way if we determine + // that this event is suitable for controls. + // if ((message == WM_COMMAND) || (message == WM_NOTIFY)) ! return event_dispatcher::event(message, wParam, lParam, handled); return 0; } *************** *** 1625,1629 **** control_t::control_t() : control_m(0), uxtheme_type_m(0), theme_m(theme_default_s), default_window_proc_m(0), ! event_dispatcher_m(event_dispatcher::inc_ref()), child_id_m(0) #ifndef NDEBUG , placed_m(false) --- 1430,1434 ---- control_t::control_t() : control_m(0), uxtheme_type_m(0), theme_m(theme_default_s), default_window_proc_m(0), ! child_id_m(0) #ifndef NDEBUG , placed_m(false) *************** *** 1673,1677 **** control_t::control_t(const control_t& rhs) : control_m(0), uxtheme_type_m(0), theme_m(rhs.theme_m), default_window_proc_m(0), ! event_dispatcher_m(event_dispatcher::inc_ref()), child_id_m(0) #ifndef NDEBUG , placed_m(false) --- 1478,1482 ---- control_t::control_t(const control_t& rhs) : control_m(0), uxtheme_type_m(0), theme_m(rhs.theme_m), default_window_proc_m(0), ! child_id_m(0) #ifndef NDEBUG , placed_m(false) *************** *** 1689,1696 **** { // - // Make sure that we no longer get events delivered here. - // - event_dispatcher_m.unsubscribe(this); - // // Set the window procedure back to it's original value so that the // User32 internal data can be freed. --- 1494,1497 ---- *************** *** 1703,1710 **** if (::GetParent(control_m) == 0) ::DestroyWindow(control_m); - // - // Release our event_dispatcher reference. - // - event_dispatcher_m.dec_ref(); } --- 1504,1507 ---- |
|
From: Ralph T. <ra...@us...> - 2005-04-05 05:46:13
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1814/adobe-source/adobe/test/visual Modified Files: Jamfile Log Message: The event_dispatcher has moved out of the ui_core_implementation.cpp file. The main message pump now checks for modifier keys whenever an event is recieved. All modifier keys now work on Windows. Index: Jamfile =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/Jamfile,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Jamfile 1 Apr 2005 19:11:48 -0000 1.4 --- Jamfile 5 Apr 2005 05:46:04 -0000 1.5 *************** *** 10,14 **** PLATFORM_HEADERS = headers/win ; PLATFORM_SOURCE_DIR = sources/win ; ! PLATFORM_SOURCES = sources/win/metrics.cpp ; } else { PLATFORM_HEADERS = headers/mac ; --- 10,14 ---- PLATFORM_HEADERS = headers/win ; PLATFORM_SOURCE_DIR = sources/win ; ! PLATFORM_SOURCES = sources/win/metrics.cpp sources/win/event_dispatcher.cpp ; } else { PLATFORM_HEADERS = headers/mac ; |
|
From: Ralph T. <ra...@us...> - 2005-04-05 05:46:13
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/headers/win In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1814/adobe-source/adobe/test/visual/headers/win Modified Files: ui_core_implementation.hpp Added Files: event_dispatcher.hpp Log Message: The event_dispatcher has moved out of the ui_core_implementation.cpp file. The main message pump now checks for modifier keys whenever an event is recieved. All modifier keys now work on Windows. Index: ui_core_implementation.hpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/headers/win/ui_core_implementation.hpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** ui_core_implementation.hpp 4 Apr 2005 23:32:24 -0000 1.7 --- ui_core_implementation.hpp 5 Apr 2005 05:46:04 -0000 1.8 *************** *** 16,19 **** --- 16,20 ---- #include "ui_core.hpp" + #include "event_dispatcher.hpp" #include <adobe/future/memory.hpp> *************** *** 126,130 **** int uxtheme_type_m; static HWND invisible_parent_m; // an invisible window used as the initial parent for all controls. ! class event_dispatcher& event_dispatcher_m; // event handling mechanism. HMENU child_id_m; // this control_m's child id. #ifndef NDEBUG --- 127,131 ---- int uxtheme_type_m; static HWND invisible_parent_m; // an invisible window used as the initial parent for all controls. ! event_dispatcher::reference event_dispatcher_m; // ref. to singleton event dispatcher. HMENU child_id_m; // this control_m's child id. #ifndef NDEBUG --- NEW FILE: event_dispatcher.hpp --- /* 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 header defines the event_dispatcher, a class which is used to send events /// to the correct control_t. It works by knowing about all control_t's and the /// child IDs of thier windows. When an event comes in, it finds out which child ID /// generated it and forwards the event to the owning control_t. /// /// It is also able to handle keyboard modifier events, before they get translated /// and dispatched by the message pump. When the currently pressed combination of /// modifiers changes all of the controls are informed, in case they need to change /// their titles. // /****************************************************************************************************/ #ifndef ADOBE_EVENT_DISPATCHER_HPP #define ADOBE_EVENT_DISPATCHER_HPP /****************************************************************************************************/ #include <map> #include <string> #include <windows.h> /****************************************************************************************************/ namespace adobe { /****************************************************************************************************/ class control_t; /****************************************************************************************************/ // /// The event_dispatcher keeps track of all control_t's and the child ids which /// they use. All control_t objects should contain a event_dispatcher::reference /// inside them. // class event_dispatcher { typedef std::map<int, control_t*> control_map_t; control_map_t control_map_m; ///< Mapping Child ID -> control_t* int current_id_m; ///< Child ID to next issue // /// This private constructor maintains the singleton nature of /// this class. // event_dispatcher(); friend class reference; public: // /// This reference class contains a reference to the event_dispatcher, /// and should be used by controls to subscribe and unsubscribe -- all /// controls should have one of these as a member variable. // class reference { int child_id_m; ///< The child ID for the owning control_t. public: // /// This constructor initializes all values to zero, and acquires a /// reference to the event_dispatcher. // reference(); // /// Unsubscribe any control which subscribed to the event_dispatcher /// and release the reference to the event_dispatcher. // ~reference(); // /// Subscribe the given control_t to the event_dispatcher. The returned /// value should be used as the child Id for the window which the given /// control will create. /// /// \param control the control to subscribe to events. /// \return the child id for the control to use. // HMENU subscribe(control_t* control); // /// Return the child ID. /// /// \return the child id to use for windows belonging to the subscribed /// control, or NULL if no control has subscribed through this /// reference. // HMENU child_id() const; }; // /// Dispatch an event through to the control which needs to process it. /// /// \param message The Windows message type. /// \param wParam The pointer parameter of the message. /// \param lParam the long parameter of the message. /// \param handled this reference bool is set to true if the message /// was dispatched to a child, or to false if no child /// could be found. /// \return the result of the event. // static LRESULT event(UINT message, WPARAM wParam, LPARAM lParam, bool& handled); // /// Examine the given keyboard message and send any required modifier events /// to controls. /// /// \param message The Windows message type. /// \param wParam The WPARAM value from the Windows message. // static void keyboard(UINT message, WPARAM wParam); }; /****************************************************************************************************/ } /****************************************************************************************************/ #endif /****************************************************************************************************/ |
|
From: Ralph T. <ra...@us...> - 2005-04-04 23:33:48
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/sources/win In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8573/adobe-source/adobe/test/visual/sources/win Modified Files: display.cpp ui_core_implementation.cpp Log Message: Event handling in Win32 has been rewritten. Most of the custom window procedures have been removed to allow for a more traditional event handling mechanism. I will add modifiers in a later commit, as I am still experimenting with the best way to capture modifier events. Index: display.cpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/sources/win/display.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** display.cpp 19 Mar 2005 00:16:44 -0000 1.1 --- display.cpp 4 Apr 2005 23:32:25 -0000 1.2 *************** *** 125,135 **** HWND parent_view(unwrap(parent)); - LONG style(::GetWindowLongPtr(element, GWL_STYLE)); - - style |= WS_CHILD; - style &= ~WS_POPUP; - - if (::SetWindowLongPtr(element, GWL_STYLE, style) == 0) ADOBE_REQUIRE_STATUS(::GetLastError()); - if (::SetParent(element, parent_view) == 0) ADOBE_REQUIRE_STATUS(::GetLastError()); --- 125,128 ---- Index: ui_core_implementation.cpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/sources/win/ui_core_implementation.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** ui_core_implementation.cpp 4 Apr 2005 16:43:34 -0000 1.8 --- ui_core_implementation.cpp 4 Apr 2005 23:32:25 -0000 1.9 *************** *** 24,27 **** --- 24,28 ---- #include <iostream> #include <ctime> + #include <map> /****************************************************************************************************/ *************** *** 48,52 **** { DWORD error(::GetLastError()); [...1454 lines suppressed...] template <> display_t::position_t insert<button_t>(display_t& display, display_t::position_t& parent, button_t& element) --- 4798,4805 ---- /* Non-default specialization for button_t */ ! //ADOBE_VIEW_FOR_ELEMENT_BOILERPLATE_SPECIALIZATION(button_t); + //ADOBE_VIEW_FOR_ELEMENT_AND_INSERT_BOILERPLATE_SPECIALIZATION(button_t); + /* template <> display_t::position_t insert<button_t>(display_t& display, display_t::position_t& parent, button_t& element) *************** *** 4538,4541 **** --- 4823,4827 ---- return result; } + */ /****************************************************************************************************/ |
|
From: Ralph T. <ra...@us...> - 2005-04-04 23:32:43
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/headers/win In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8573/adobe-source/adobe/test/visual/headers/win Modified Files: ui_core_implementation.hpp Log Message: Event handling in Win32 has been rewritten. Most of the custom window procedures have been removed to allow for a more traditional event handling mechanism. I will add modifiers in a later commit, as I am still experimenting with the best way to capture modifier events. Index: ui_core_implementation.hpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/headers/win/ui_core_implementation.hpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ui_core_implementation.hpp 1 Apr 2005 19:11:49 -0000 1.6 --- ui_core_implementation.hpp 4 Apr 2005 23:32:24 -0000 1.7 *************** *** 87,91 **** void set_bounds(const point_t& position, const rectangle_t& geometry); void set_name(const std::string& name); ! virtual void set_theme(theme_t theme); void adorn_theme(theme_t theme); void unadorn_theme(theme_t theme); --- 87,91 ---- void set_bounds(const point_t& position, const rectangle_t& geometry); void set_name(const std::string& name); ! virtual void set_theme(theme_t theme); void adorn_theme(theme_t theme); void unadorn_theme(theme_t theme); *************** *** 96,99 **** --- 96,114 ---- void signal_focus(const implementation::control_focus_proc_t& proc); void trap_window_proc(WNDPROC new_window_proc); + // + /// This function is invoked when the parent window of this control recieves a message + /// generated by the control's window. + /// + /// \param message Windows message code. + /// \param wParam pointer parameter. + /// \param lParam long parameter. + // + virtual LRESULT event(UINT message, WPARAM wParam, LPARAM lParam); + // + /// This function is invoked when one of the modifier keys is pressed or released. + /// + /// \param modifiers the modifier keys currently pressed. + // + virtual void modify(modifiers_t modifiers); ADOBE_SERIALIZABLE_TOTAL_ORDERING_BOILERPLATE_FRIEND_DECLARATION(adobe::control_t); *************** *** 110,113 **** --- 125,131 ---- point_t position_m; // saving set_bounds param for widget framing int uxtheme_type_m; + static HWND invisible_parent_m; // an invisible window used as the initial parent for all controls. + class event_dispatcher& event_dispatcher_m; // event handling mechanism. + HMENU child_id_m; // this control_m's child id. #ifndef NDEBUG bool placed_m; // used in the framing rect code to make sure the widget is placed first *************** *** 202,205 **** --- 220,224 ---- void set_value(const value_t& new_value); void signal_value_change(const implementation::tab_group_value_proc_t& proc); + virtual LRESULT event(UINT msg, WPARAM wParam, LPARAM lParam); ADOBE_SERIALIZABLE_TOTAL_ORDERING_BOILERPLATE_FRIEND_DECLARATION(adobe::tab_group_t::implementation_t); *************** *** 246,249 **** --- 265,269 ---- void set_value(modifiers_t modifiers, const value_t& value); void set_contributing(modifiers_t modifiers, const dictionary_t& value); + virtual void modify(modifiers_t modifiers); ADOBE_SERIALIZABLE_TOTAL_ORDERING_BOILERPLATE_FRIEND_DECLARATION(adobe::button_t::implementation_t); *************** *** 254,257 **** --- 274,278 ---- state_set_t state_set_m; + modifiers_t modifiers_m; //EventHandlerRef handler_ref_m; }; *************** *** 419,422 **** --- 440,444 ---- void signal_post_edit(const implementation::edit_text_post_edit_proc_t& proc); void signal_label_hit(const implementation::edit_text_label_hit_proc_t& proc); + virtual LRESULT event(UINT msg, WPARAM wParam, LPARAM lParam); ADOBE_SERIALIZABLE_TOTAL_ORDERING_BOILERPLATE_FRIEND_DECLARATION(adobe::edit_text_t::implementation_t); *************** *** 425,429 **** static_text_t name_m; ! std::string field_text_m; static_text_t static_disabled_text_m; //HWND scroll_control_m; --- 447,451 ---- static_text_t name_m; ! std::wstring field_text_m; static_text_t static_disabled_text_m; //HWND scroll_control_m; *************** *** 466,469 **** --- 488,492 ---- void select_with_text(const std::string& text); void signal_value_change(const implementation::popup_value_proc_t& proc); + virtual LRESULT event(UINT message, WPARAM wParam, LPARAM lParam); ADOBE_SERIALIZABLE_TOTAL_ORDERING_BOILERPLATE_FRIEND_DECLARATION(adobe::popup_t::implementation_t); *************** *** 502,511 **** void set_static_disabled(bool is_static_disabled); ! void add_popup_menu_item(const std::string& name, const adobe::value_t& value) ! { get_popup().add_menu_item(name, value); } ! void select_popup_with_text(const std::string& text) ! { get_popup().select_with_text(text); } ! void signal_popup_value_change(implementation::popup_value_proc_t proc) ! { get_popup().signal_value_change(proc); } ADOBE_SERIALIZABLE_TOTAL_ORDERING_BOILERPLATE_FRIEND_DECLARATION(adobe::unit_edit_text_t::implementation_t); --- 525,531 ---- void set_static_disabled(bool is_static_disabled); ! void add_popup_menu_item(const std::string& name, const adobe::value_t& value); ! void select_popup_with_text(const std::string& text); ! void signal_popup_value_change(implementation::popup_value_proc_t proc); ADOBE_SERIALIZABLE_TOTAL_ORDERING_BOILERPLATE_FRIEND_DECLARATION(adobe::unit_edit_text_t::implementation_t); |
|
From: Foster B. <fos...@us...> - 2005-04-04 16:44:19
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28178/adobe-source/adobe/test/visual Modified Files: visual.vcproj Log Message: documentation, bug fixes Index: visual.vcproj =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/visual.vcproj,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** visual.vcproj 23 Mar 2005 18:51:54 -0000 1.2 --- visual.vcproj 4 Apr 2005 16:43:33 -0000 1.3 *************** *** 53,57 **** Name="VCPreLinkEventTool"/> <Tool ! Name="VCResourceCompilerTool"/> <Tool Name="VCWebServiceProxyGeneratorTool"/> --- 53,58 ---- Name="VCPreLinkEventTool"/> <Tool ! Name="VCResourceCompilerTool" ! AdditionalIncludeDirectories=".\resources"/> <Tool Name="VCWebServiceProxyGeneratorTool"/> *************** *** 91,95 **** LinkIncremental="1" AdditionalLibraryDirectories="..\..\build\boost_lib\bin;..\..\build\asl_lib_dev\bin" ! IgnoreDefaultLibraryNames="LIBCMTD" GenerateDebugInformation="TRUE" SubSystem="2" --- 92,96 ---- LinkIncremental="1" AdditionalLibraryDirectories="..\..\build\boost_lib\bin;..\..\build\asl_lib_dev\bin" ! IgnoreDefaultLibraryNames="LIBCMT" GenerateDebugInformation="TRUE" SubSystem="2" *************** *** 106,110 **** Name="VCPreLinkEventTool"/> <Tool ! Name="VCResourceCompilerTool"/> <Tool Name="VCWebServiceProxyGeneratorTool"/> --- 107,112 ---- Name="VCPreLinkEventTool"/> <Tool ! Name="VCResourceCompilerTool" ! AdditionalIncludeDirectories=".\resources"/> <Tool Name="VCWebServiceProxyGeneratorTool"/> *************** *** 154,157 **** --- 156,162 ---- </File> <File + RelativePath=".\sources\win\metrics.cpp"> + </File> + <File RelativePath=".\sources\ui_core.cpp"> </File> *************** *** 161,172 **** </Filter> <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl;inc;xsd" - UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> - </Filter> - <Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> </Filter> </Files> --- 166,175 ---- </Filter> <Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> + <File + RelativePath=".\visual.rc"> + </File> </Filter> </Files> |
|
From: Foster B. <fos...@us...> - 2005-04-04 16:44:19
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28178/adobe-source/adobe/source Modified Files: eve.cpp Log Message: documentation, bug fixes Index: eve.cpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/source/eve.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** eve.cpp 24 Mar 2005 19:37:55 -0000 1.4 --- eve.cpp 4 Apr 2005 16:43:33 -0000 1.5 *************** *** 914,922 **** // REVISIT (sparent) : We need a warning mechanism to report this issue! ! assert (!gslice.frame_m.first || (leading_outset_position > gslice.frame_m.first)); pslice.outset_m.first = std::max(pslice.outset_m.first, -leading_outset_position); ! assert (!gslice.frame_m.second || (trailing_outset_position > gslice.frame_m.second)); pslice.outset_m.second = std::max(pslice.outset_m.second, -trailing_outset_position); --- 914,922 ---- // REVISIT (sparent) : We need a warning mechanism to report this issue! ! assert (!gslice.frame_m.first || (leading_outset_position >= gslice.frame_m.first)); pslice.outset_m.first = std::max(pslice.outset_m.first, -leading_outset_position); ! assert (!gslice.frame_m.second || (trailing_outset_position >= gslice.frame_m.second)); pslice.outset_m.second = std::max(pslice.outset_m.second, -trailing_outset_position); *************** *** 960,964 **** pslice.outset_m.first = std::max(pslice.outset_m.first, -leading_outset_position); ! assert (!gslice.frame_m.second || (trailing_outset_position > gslice.frame_m.second)); pslice.outset_m.second = std::max(pslice.outset_m.second, -trailing_outset_position); --- 960,964 ---- pslice.outset_m.first = std::max(pslice.outset_m.first, -leading_outset_position); ! assert (!gslice.frame_m.second || (trailing_outset_position >= gslice.frame_m.second)); pslice.outset_m.second = std::max(pslice.outset_m.second, -trailing_outset_position); |
|
From: Foster B. <fos...@us...> - 2005-04-04 16:44:19
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/sources/structure In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28178/adobe-source/adobe/documentation/sources/structure Modified Files: mainpage.dox Log Message: documentation, bug fixes Index: mainpage.dox =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/sources/structure/mainpage.dox,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** mainpage.dox 19 Mar 2005 00:16:42 -0000 1.1 --- mainpage.dox 4 Apr 2005 16:43:32 -0000 1.2 *************** *** 47,50 **** --- 47,53 ---- \section main_news Latest News + \subsection main_news_2005_04_01 April 01, 2005 - ASL 1.0.2 Released + The Adobe Source Libraries 1.0.2 is now available for \ref main_download. Changes include a budding Win32 implementation of Adobe Begin, increased compiler compatibility, and extensive bug fixes and additions. The Win32 implementation of Adobe Begin does not have the same functionality as the Mac version, however it is in a place where it demonstrates the functionality of Adam and Eve well enough to warrant release. + \subsection main_news_2005_03_08 March 08, 2005 - RSS Feeds Available SourceForge.net has a series of RSS feeds available to update you on the latest happenings with the Adobe Source Libraries. The feeds can be found <a href="http://sourceforge.net/export/rss2_project.php?group_id=132417" target="_new">here</a> or you can use the following links directly: |
|
From: Foster B. <fos...@us...> - 2005-04-04 16:43:45
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/sources/win In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28178/adobe-source/adobe/test/visual/sources/win Modified Files: ui_core_implementation.cpp Log Message: documentation, bug fixes Index: ui_core_implementation.cpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/sources/win/ui_core_implementation.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** ui_core_implementation.cpp 1 Apr 2005 20:52:20 -0000 1.7 --- ui_core_implementation.cpp 4 Apr 2005 16:43:34 -0000 1.8 *************** *** 1706,1710 **** --- 1706,1712 ---- LRESULT result = handled ? 0 : ::CallWindowProc( control->default_window_proc_m, window, message, wParam, lParam ); + #ifndef NDEBUG if (control && message == WM_PAINT) frame_widget(*control); + #endif return result; *************** *** 1867,1871 **** --- 1869,1875 ---- LRESULT result = handled ? 0 : ::CallWindowProc( control->default_window_proc_m, window, message, wParam, lParam ); + #ifndef NDEBUG if (control && message == WM_PAINT) frame_widget(*control); + #endif return result; *************** *** 1944,1948 **** --- 1948,1954 ---- LRESULT result = handled ? 0 : ::CallWindowProc( control->default_window_proc_m, window, message, wParam, lParam ); + #ifndef NDEBUG if (control && message == WM_PAINT) frame_widget(*control); + #endif return result; *************** *** 2114,2118 **** --- 2120,2126 ---- LRESULT result = handled ? 0 : ::CallWindowProc( control->default_window_proc_m, window, message, wParam, lParam ); + #ifndef NDEBUG if (control && message == WM_PAINT) frame_widget(*control); + #endif return result; *************** *** 2223,2227 **** --- 2231,2237 ---- LRESULT result = handled ? 0 : ::CallWindowProc( control->default_window_proc_m, window, message, wParam, lParam ); + #ifndef NDEBUG if (control && message == WM_PAINT) frame_widget(*control); + #endif return result; *************** *** 2365,2369 **** --- 2375,2381 ---- draw_link(*link, context); + #ifndef NDEBUG frame_widget(*control); // Done after the default wind proc has drawn the widget + #endif } *************** *** 2676,2680 **** --- 2688,2694 ---- LRESULT result = handled ? 0 : ::CallWindowProc( control->default_window_proc_m, window, message, wParam, lParam ); + #ifndef NDEBUG if (control && message == WM_PAINT) frame_widget(*control); + #endif return result; *************** *** 2816,2820 **** --- 2830,2836 ---- } + #ifndef NDEBUG if (control && message == WM_PAINT) frame_widget(*control); + #endif return result; *************** *** 3170,3174 **** --- 3186,3192 ---- LRESULT result = handled ? 0 : ::CallWindowProc( control->default_window_proc_m, window, message, wParam, lParam ); + #ifndef NDEBUG if (control && message == WM_PAINT) frame_widget(*control); + #endif return result; |
|
From: David C. <unc...@us...> - 2005-04-03 00:31:46
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/headers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21699/sandbox/adobe-source/adobe/test/visual/headers Modified Files: ui_core.hpp Log Message: fixed use of __MWERKS__ Index: ui_core.hpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/headers/ui_core.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ui_core.hpp 23 Mar 2005 18:51:58 -0000 1.3 --- ui_core.hpp 3 Apr 2005 00:31:38 -0000 1.4 *************** *** 247,251 **** std::string format(const Numeric& x) { ! #ifdef __MWERKS__ return format<adobe::value_t>(adobe::value_t(x)); #elif defined(BOOST_MSVC) --- 247,251 ---- std::string format(const Numeric& x) { ! #if ADOBE_PLATFORM_MAC return format<adobe::value_t>(adobe::value_t(x)); #elif defined(BOOST_MSVC) *************** *** 260,264 **** Numeric parse(const std::string& str, adobe::value_t = adobe::value_t()) { ! #ifdef __MWERKS__ return parse<adobe::value_t>(str, adobe::value_t(Numeric())).template get<Numeric>(); #elif defined(BOOST_MSVC) --- 260,264 ---- Numeric parse(const std::string& str, adobe::value_t = adobe::value_t()) { ! #if ADOBE_PLATFORM_MAC return parse<adobe::value_t>(str, adobe::value_t(Numeric())).template get<Numeric>(); #elif defined(BOOST_MSVC) |
|
From: David C. <unc...@us...> - 2005-04-03 00:31:39
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/sources In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21371/sandbox/adobe-source/adobe/test/visual/sources Modified Files: ui_core.cpp Log Message: fixed use of __MWERKS__ Index: ui_core.cpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/test/visual/sources/ui_core.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ui_core.cpp 30 Mar 2005 01:47:24 -0000 1.2 --- ui_core.cpp 3 Apr 2005 00:31:31 -0000 1.3 *************** *** 50,54 **** void system_beep() { ! #ifdef __MWERKS__ ::SysBeep(10); #elif defined(BOOST_MSVC) --- 50,54 ---- void system_beep() { ! #if ADOBE_PLATFORM_MAC ::SysBeep(10); #elif defined(BOOST_MSVC) |
|
From: David C. <unc...@us...> - 2005-04-03 00:30:04
|
Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20413/sandbox/adobe-source/adobe Modified Files: cmath.hpp Log Message: fixed use of __MWERKS__ Index: cmath.hpp =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/cmath.hpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** cmath.hpp 19 Mar 2005 00:16:38 -0000 1.1 --- cmath.hpp 3 Apr 2005 00:29:55 -0000 1.2 *************** *** 26,30 **** #include <cmath> ! #if defined __MWERKS__ namespace adobe { --- 26,30 ---- #include <cmath> ! #if ADOBE_PLATFORM_MAC namespace adobe { |
|
From: Foster B. <fos...@us...> - 2005-04-02 05:48:33
|
Update of /cvsroot/adobe-source/adobe-source/adobe/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17172/adobe/source Modified Files: array.cpp eve.cpp Log Message: asl 1.0.2 Index: eve.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/eve.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** eve.cpp 17 Mar 2005 18:03:14 -0000 1.3 --- eve.cpp 2 Apr 2005 05:47:37 -0000 1.4 *************** *** 20,23 **** --- 20,25 ---- #include <boost/iterator/transform_iterator.hpp> + #include <adobe/config.hpp> + #include <adobe/eve.hpp> *************** *** 39,44 **** /*************************************************************************************************/ ! #ifdef BOOST_MSVC ! #include <cmath> #endif --- 41,46 ---- /*************************************************************************************************/ ! #ifdef ADOBE_PLATFORM_WIN ! #include <cmath> #endif Index: array.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/source/array.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** array.cpp 3 Mar 2005 06:58:38 -0000 1.2 --- array.cpp 2 Apr 2005 05:47:36 -0000 1.3 *************** *** 53,56 **** --- 53,58 ---- /*************************************************************************************************/ + #if !defined(ADOBE_NO_DOCUMENTATION) + struct array_t::implementation_t { *************** *** 101,104 **** --- 103,108 ---- }; + #endif + /*************************************************************************************************/ *************** *** 108,112 **** --- 112,121 ---- /*************************************************************************************************/ + #if ADOBE_NAMESPACE_FRIEND_GCC_BUG + namespace implementation { + #endif + /*************************************************************************************************/ + #if !defined(ADOBE_NO_DOCUMENTATION) template <> array_t& array_set(array_t& object, array_t::size_type index, const value_t& x) *************** *** 132,137 **** --- 141,151 ---- object.object_m->get(index, x); } + #endif /*************************************************************************************************/ + #if ADOBE_NAMESPACE_FRIEND_GCC_BUG + } // namespace implementation + #endif + /*************************************************************************************************/ #ifdef __MWERKS__ *************** *** 234,238 **** value_t& array_t::write_reference::operator[](size_type index) ! { return fArray.get_value_reference(index); } /*************************************************************************************************/ --- 248,252 ---- value_t& array_t::write_reference::operator[](size_type index) ! { return array_m.get_value_reference(index); } /*************************************************************************************************/ |
|
From: Foster B. <fos...@us...> - 2005-04-02 05:48:33
|
Update of /cvsroot/adobe-source/adobe-source/adobe/test/adam_tutorial In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17172/adobe/test/adam_tutorial Modified Files: Jamfile Removed Files: boost-build.jam project-root.jam Log Message: asl 1.0.2 --- boost-build.jam DELETED --- Index: Jamfile =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/test/adam_tutorial/Jamfile,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Jamfile 7 Mar 2005 07:28:36 -0000 1.1 --- Jamfile 2 Apr 2005 05:47:37 -0000 1.2 *************** *** 1,47 **** import testing ; ! project ! : requirements <include>../../ ! : requirements <include>../../../ ! : requirements <include>../../source/ ! : requirements <include>../../../third_party/boost_tp/boost/ ; ! exe "adam_tutorial" ! : main.cpp ! ../../source/adam.cpp ! ../../source/adam_evaluate.cpp ! ../../source/adam_parser.cpp ! ../../source/array.cpp ! ../../source/dictionary.cpp ! ../../source/eve.cpp ! ../../source/eve_evaluate.cpp ! ../../source/eve_parser.cpp ! ../../source/expression_parser.cpp ! ../../source/istream.cpp ! ../../source/lex_stream.cpp ! ../../source/name.cpp ! ../../source/parser_shared.cpp ! ../../source/rectangle.cpp ! ../../source/string_pool.cpp ! ../../source/test_configuration.cpp ! ../../source/token.cpp ! ../../source/typeinfo.cpp ! ../../source/value.cpp ! ../../source/virtual_machine.cpp ! ../../future/source/iomanip.cpp ! ../../future/source/iomanip_pdf.cpp ! ../../../third_party/boost_tp/boost/libs/filesystem/src/convenience.cpp ! ../../../third_party/boost_tp/boost/libs/filesystem/src/exception.cpp ! ../../../third_party/boost_tp/boost/libs/filesystem/src/operations_posix_windows.cpp ! ../../../third_party/boost_tp/boost/libs/filesystem/src/path_posix_windows.cpp ! ../../../third_party/boost_tp/boost/libs/signals/src/connection.cpp ! ../../../third_party/boost_tp/boost/libs/signals/src/named_slot_map.cpp ! ../../../third_party/boost_tp/boost/libs/signals/src/signal_base.cpp ! ../../../third_party/boost_tp/boost/libs/signals/src/slot.cpp ! ../../../third_party/boost_tp/boost/libs/signals/src/trackable.cpp ! ../../../third_party/boost_tp/boost/libs/thread/src/exceptions.cpp ! ../../../third_party/boost_tp/boost/libs/thread/src/mutex.cpp ! ../../../third_party/boost_tp/boost/libs/thread/src/once.cpp ! : <define>ADOBE_SERIALIZATION ; --- 1,11 ---- import testing ; ! project adobe/adam_tutorial ! : requirements <link>static ; ! exe "adam_tutorial" : ! main.cpp ! /adobe//asl_lib_dev ! /boost/filesystem//boost_filesystem ; --- project-root.jam DELETED --- |
|
From: Foster B. <fos...@us...> - 2005-04-02 05:48:32
|
Update of /cvsroot/adobe-source/adobe-source/adobe/build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17172/adobe/build Modified Files: Jamfile Removed Files: boost-build.jam project-root.jam Log Message: asl 1.0.2 --- boost-build.jam DELETED --- Index: Jamfile =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/build/Jamfile,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Jamfile 28 Feb 2005 20:03:45 -0000 1.1 --- Jamfile 2 Apr 2005 05:47:33 -0000 1.2 *************** *** 1,12 **** import testing ; ! project ! : requirements <include>../ ! : requirements <include>../../ ! : requirements <include>../source/ ! : requirements <include>../../third_party/boost_tp/boost/ ; - build-project asl_lib/ ; - build-project asl_lib_dev/ ; - build-project boost_lib/ ; --- 1,113 ---- + # Main Jamfile for building ASL import testing ; + import os ; + # + # This is the extra code required when using serialization. + # + FUTURE_SRC = + assemblage + iomanip + iomanip_pdf + ; + # + # We build two libraries, asl and asl_dev. asl_dev includes the future + # sources and supports serialization. We define a project to make it + # easy to maintain various flags. + # + project adobe + : source-location .. + : usage-requirements + # + # These usage requirements propagate to everything which uses this project. + # + <include>../.. + ; ! alias boost_thread : /boost/thread//boost_thread ; ! alias boost_signals : /boost/signals//boost_signals ; ! # ! # Define flags we need to use to build the objects for the two libraries. ! # ! ASL_OBJ_FLAGS = ! <define>BOOST_THREAD_USE_LIB ! <define>NOMINMAX ! <define>BOOST_THREAD_USE_LIB ! <define>BOOST_ALL_NO_LIB ! # ! # Sadly we have to redefine some of the project parameters ! # here, because the bits inside [ ] are separate from the ! # rest of the setup (we put objects into [ ] so that we can ! # build the same source multiple times...). ! # ! <include>../.. ! <use>boost_thread ! <use>boost_signals ! ; ! ASL_DEV_OBJ_FLAGS = ! $(ASL_OBJ_FLAGS) ! <define>ADOBE_SERIALIZATION ! ; ! # ! # Unfortunately to get the same source file to build twice we need to do ! # some nasty [ obj ... ] type things. For more information see this page: ! # ! # http://www.boost.org/doc/html/bbv2/faq.html ! # ! lib asl_lib_dev : ! [ obj adam_dev_o : source/adam.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj adam_evaluate_dev_o : source/adam_evaluate.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj adam_parser_dev_o : source/adam_parser.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj array_dev_o : source/array.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj dictionary_dev_o : source/dictionary.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj eve_dev_o : source/eve.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj eve_evaluate_dev_o : source/eve_evaluate.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj eve_parser_dev_o : source/eve_parser.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj expression_parser_dev_o : source/expression_parser.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj istream_dev_o : source/istream.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj lex_stream_dev_o : source/lex_stream.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj name_dev_o : source/name.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj parser_shared_dev_o : source/parser_shared.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj rectangle_dev_o : source/rectangle.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj string_pool_dev_o : source/string_pool.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj test_configuration_dev_o : source/test_configuration.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj token_dev_o : source/token.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj typeinfo_dev_o : source/typeinfo.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj value_dev_o : source/value.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! [ obj virtual_machine_dev_o : source/virtual_machine.cpp : $(ASL_DEV_OBJ_FLAGS) ] ! # ! # Add the future sources to the dev build. ! # ! future/source/$(FUTURE_SRC).cpp ! : $(ASL_DEV_OBJ_FLAGS) <link>static ! : ! : <library>boost_signals <library>boost_thread $(ASL_DEV_OBJ_FLAGS) ! ; ! # ! # The asl rule uses similar Jam hackery to build it's objects. ! # ! lib asl_lib : ! [ obj adam_o : source/adam.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj adam_evaluate_o : source/adam_evaluate.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj adam_parser_o : source/adam_parser.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj array_o : source/array.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj dictionary_o : source/dictionary.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj eve_o : source/eve.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj eve_evaluate_o : source/eve_evaluate.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj eve_parser_o : source/eve_parser.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj expression_parser_o : source/expression_parser.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj istream_o : source/istream.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj lex_stream_o : source/lex_stream.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj name_o : source/name.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj parser_shared_o : source/parser_shared.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj rectangle_o : source/rectangle.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj string_pool_o : source/string_pool.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj test_configuration_o : source/test_configuration.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj token_o : source/token.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj typeinfo_o : source/typeinfo.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj value_o : source/value.cpp : $(ASL_OBJ_FLAGS) ] ! [ obj virtual_machine_o : source/virtual_machine.cpp : $(ASL_OBJ_FLAGS) ] ! : <use>boost_signals <use>boost_thread $(ASL_OBJ_FLAGS) <link>static ! : ! : <library>boost_signals <library>boost_thread $(ASL_OBJ_FLAGS) ; --- project-root.jam DELETED --- |
|
From: Foster B. <fos...@us...> - 2005-04-02 05:48:32
|
Update of /cvsroot/adobe-source/adobe-source/adobe In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17172/adobe Modified Files: array.hpp circular_queue.hpp config.hpp istream.hpp Log Message: asl 1.0.2 Index: array.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/array.hpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** array.hpp 3 Mar 2005 06:58:15 -0000 1.2 --- array.hpp 2 Apr 2005 05:47:33 -0000 1.3 *************** *** 12,15 **** --- 12,25 ---- /*************************************************************************************************/ + // REVISIT (fbrereto) : GCC has a compiler bug when it comes to befriending a function inside + // another namespace. Herb Sutter has written an article about it: + // http://gcc.gnu.org/ml/gcc-prs/2002-10/msg01010.html -- This flag moves + // the array_get/array_set code out of the implementation namespace so it + // can compile under GCC. + + #define ADOBE_NAMESPACE_FRIEND_GCC_BUG 0 + + /*************************************************************************************************/ + #include <cstddef> #include <iterator> *************** *** 53,61 **** */ template <typename T> struct array_get; - /*************************************************************************************************/ - template <class T> array_t& array_set(array_t& object, std::size_t index, const T& value); --- 63,77 ---- */ + /*************************************************************************************************/ + + #if !defined(ADOBE_NO_DOCUMENTATION) + #if ADOBE_NAMESPACE_FRIEND_GCC_BUG + namespace implementation { + #endif + /*************************************************************************************************/ + template <typename T> struct array_get; template <class T> array_t& array_set(array_t& object, std::size_t index, const T& value); *************** *** 64,69 **** array_t& array_push_back(array_t& object, const T& value); ! template <class InputIterator> ! array_t array_ctor(InputIterator first, InputIterator last); /*************************************************************************************************/ --- 80,88 ---- array_t& array_push_back(array_t& object, const T& value); ! /*************************************************************************************************/ ! #if ADOBE_NAMESPACE_FRIEND_GCC_BUG ! } // namespace implementation ! #endif ! #endif /*************************************************************************************************/ *************** *** 74,78 **** class array_t : boost::equality_comparable<array_t> ! { public: #if !defined(ADOBE_NO_DOCUMENTATION) --- 93,97 ---- class array_t : boost::equality_comparable<array_t> ! { public: #if !defined(ADOBE_NO_DOCUMENTATION) *************** *** 91,100 **** typedef std::vector<value_t>::const_iterator const_iterator; ! #if defined(__GNUC__) || defined(BOOST_MSVC) ! // GCC won't compile without this: typedef const_iterator iterator; - // ../../third_party/boost_tp/boost/boost/range/iterator.hpp:37: error: no type - // named `iterator' in `const class adobe::array_t' - #endif #if !defined(ADOBE_NO_DOCUMENTATION) --- 110,119 ---- typedef std::vector<value_t>::const_iterator const_iterator; ! /* ! NOTE (sparent) : All iterators are const - an iterator typedef, however, is needed to meet ! the container requirements. ! */ ! typedef const_iterator iterator; #if !defined(ADOBE_NO_DOCUMENTATION) *************** *** 102,106 **** #endif ! typedef std::reverse_iterator<const_iterator> const_reverse_iterator; // basic methods --- 121,126 ---- #endif ! typedef std::reverse_iterator<const_iterator> const_reverse_iterator; ! typedef const_reverse_iterator reverse_iterator; // basic methods *************** *** 115,126 **** explicit array_t(size_type n, const value_t& item = value_empty()); template <class InputIterator> ! array_t(InputIterator first, InputIterator last) ! { ! while (first != last) ! { ! push_back(value_t(*first++)); ! } ! } // read interface --- 135,145 ---- explicit array_t(size_type n, const value_t& item = value_empty()); + #if 0 + // REVISIT (sparent) : This constructor requires access to implementation - + // so we use a function form (copy) instead. + template <class InputIterator> ! array_t(InputIterator first, InputIterator last); ! #endif // read interface *************** *** 142,149 **** template <class T> array_t& set(size_type index, const T& value) ! { return array_set(*this, index, value); } template <class T> array_t& push_back(const T& value) ! { return array_push_back(*this, value); } class back_insert_iterator : public boost::output_iterator_helper<back_insert_iterator> --- 161,180 ---- template <class T> array_t& set(size_type index, const T& value) ! { ! #if ADOBE_NAMESPACE_FRIEND_GCC_BUG ! return implementation::array_set(*this, index, value); ! #else ! return array_set(*this, index, value); ! #endif ! } template <class T> array_t& push_back(const T& value) ! { ! #if ADOBE_NAMESPACE_FRIEND_GCC_BUG ! return implementation::array_push_back(*this, value); ! #else ! return array_push_back(*this, value); ! #endif ! } class back_insert_iterator : public boost::output_iterator_helper<back_insert_iterator> *************** *** 152,155 **** --- 183,190 ---- typedef value_t value_type; + template <typename T> + back_insert_iterator& operator = (const T& value) + { return operator = (value_type(value)); } + back_insert_iterator& operator = (const value_type& value); private: *************** *** 189,195 **** --- 224,236 ---- #if !defined(ADOBE_NO_DOCUMENTATION) private: + #if ADOBE_NAMESPACE_FRIEND_GCC_BUG + friend struct implementation::array_get<value_t>; + friend array_t& implementation::array_set<>(array_t& object, size_type index, const value_t& value); + friend array_t& implementation::array_push_back<>(array_t& object, const value_t& value); + #else friend struct array_get<value_t>; friend array_t& array_set<>(array_t& object, size_type index, const value_t& value); friend array_t& array_push_back<>(array_t& object, const value_t& value); + #endif friend class write_reference; *************** *** 198,218 **** adobe::copy_on_write<implementation_t> object_m; #endif ! }; /*************************************************************************************************/ class array_t::write_reference ! { public: value_t& operator[] (size_type index); ! protected: friend class array_t; write_reference(array_t& x) : ! fArray(x) { } ! private: ! array_t& fArray; ! }; /*************************************************************************************************/ --- 239,260 ---- adobe::copy_on_write<implementation_t> object_m; #endif ! }; /*************************************************************************************************/ class array_t::write_reference ! { public: value_t& operator[] (size_type index); ! ! private: friend class array_t; write_reference(array_t& x) : ! array_m(x) { } ! ! array_t& array_m; ! }; /*************************************************************************************************/ *************** *** 222,226 **** --- 264,273 ---- /*************************************************************************************************/ + #if ADOBE_NAMESPACE_FRIEND_GCC_BUG + namespace implementation { + #endif + /*************************************************************************************************/ + #if !defined(ADOBE_NO_DOCUMENTATION) template <> struct array_get<value_t> *************** *** 250,277 **** /*************************************************************************************************/ - template <class T> - inline const typename promote<T>::type& array_t::get(size_type index) const - { - return array_get<T>()(*this, index, select<T>()); - } - - template <class T> - inline void array_t::get(size_type index, T& value) const - { - array_get<T>()(*this, index, value); - } - - /*************************************************************************************************/ - - template <class InputIterator> - array_t array_ctor(InputIterator first, InputIterator last) - { - array_t result; - std::copy(first, last, result.back_inserter()); - return result; - } - - /*************************************************************************************************/ - template <> array_t& array_set(array_t&, array_t::size_type, const value_t&); --- 297,300 ---- *************** *** 289,292 **** --- 312,342 ---- array_t& array_push_back(array_t& object, const T& x) { return array_push_back(object, value_t(x)); } + #endif + + /*************************************************************************************************/ + #if ADOBE_NAMESPACE_FRIEND_GCC_BUG + } // namespace implementation + #endif + /*************************************************************************************************/ + + template <class T> + inline const typename promote<T>::type& array_t::get(size_type index) const + { + #if ADOBE_NAMESPACE_FRIEND_GCC_BUG + return implementation::array_get<T>()(*this, index, select<T>()); + #else + return array_get<T>()(*this, index, select<T>()); + #endif + } + + template <class T> + inline void array_t::get(size_type index, T& value) const + { + #if ADOBE_NAMESPACE_FRIEND_GCC_BUG + implementation::array_get<T>()(*this, index, value); + #else + array_get<T>()(*this, index, value); + #endif + } /*************************************************************************************************/ Index: config.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/config.hpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** config.hpp 3 Mar 2005 06:58:15 -0000 1.2 --- config.hpp 2 Apr 2005 05:47:33 -0000 1.3 *************** *** 26,32 **** // ADOBE_VERSION / 100000 is the major version - #define ADOBE_VERSION_SUBMINOR 1 - #define ADOBE_VERSION_MINOR 0 #define ADOBE_VERSION_MAJOR 1 #define ADOBE_VERSION (ADOBE_VERSION_MAJOR * 100000 + ADOBE_VERSION_MINOR * 100 + ADOBE_VERSION_SUBMINOR) --- 26,32 ---- // ADOBE_VERSION / 100000 is the major version #define ADOBE_VERSION_MAJOR 1 + #define ADOBE_VERSION_MINOR 0 + #define ADOBE_VERSION_SUBMINOR 2 #define ADOBE_VERSION (ADOBE_VERSION_MAJOR * 100000 + ADOBE_VERSION_MINOR * 100 + ADOBE_VERSION_SUBMINOR) *************** *** 36,39 **** --- 36,71 ---- /*************************************************************************************************/ + namespace adobe { + + /*************************************************************************************************/ + + namespace implementation { + + /*************************************************************************************************/ + + #if defined(BOOST_MSVC) || defined(__MINGW32__) + + #define ADOBE_PLATFORM_WIN 1 + + #elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) + + #define ADOBE_PLATFORM_MAC 1 + + #else + + #error "Your platform is unknown." + + #endif + + /*************************************************************************************************/ + + } // namespace implementation + + /*************************************************************************************************/ + + } // namespace adobe + + /*************************************************************************************************/ + #endif Index: istream.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/istream.hpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** istream.hpp 3 Mar 2005 06:58:15 -0000 1.2 --- istream.hpp 2 Apr 2005 05:47:33 -0000 1.3 *************** *** 68,72 **** std::logic_error(base.what()) { ! adobe::swap(line_position_set_m, base.line_position_set_m); line_position_set_m.push_back(position); } --- 68,72 ---- std::logic_error(base.what()) { ! std::swap(line_position_set_m, base.line_position_set_m); line_position_set_m.push_back(position); } Index: circular_queue.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/circular_queue.hpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** circular_queue.hpp 3 Mar 2005 06:58:15 -0000 1.2 --- circular_queue.hpp 2 Apr 2005 05:47:33 -0000 1.3 *************** *** 87,91 **** #if !defined(ADOBE_NO_DOCUMENTATION) private: ! #ifdef BOOST_MSVC friend void ::swap<T, capacity_k>(adobe::circular_queue<T, Capacity>&, adobe::circular_queue<T, Capacity>&); #else --- 87,91 ---- #if !defined(ADOBE_NO_DOCUMENTATION) private: ! #if (defined BOOST_MSVC) && (_MSC_VER < 1400) friend void ::swap<T, capacity_k>(adobe::circular_queue<T, Capacity>&, adobe::circular_queue<T, Capacity>&); #else |
|
From: Foster B. <fos...@us...> - 2005-04-02 05:48:18
|
Update of /cvsroot/adobe-source/adobe-source/adobe/documentation/sources/asl/related In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17172/adobe/documentation/sources/asl/related Modified Files: adam_language_reference.dox Log Message: asl 1.0.2 Index: adam_language_reference.dox =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/documentation/sources/asl/related/adam_language_reference.dox,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** adam_language_reference.dox 28 Feb 2005 20:48:54 -0000 1.1 --- adam_language_reference.dox 2 Apr 2005 05:47:35 -0000 1.2 *************** *** 49,53 **** \endverbatim ! \subsection cell_qualifiers Cell Qualifiers \subsection initialization Initialization --- 49,54 ---- \endverbatim ! \subsection cell_qualifiers Cell Access Specifiers ! \subsection initialization Initialization |
|
From: Foster B. <fos...@us...> - 2005-04-02 05:48:16
|
Update of /cvsroot/adobe-source/adobe-source/adobe/future/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17172/adobe/future/source Modified Files: assemblage.cpp Log Message: asl 1.0.2 Index: assemblage.cpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/source/assemblage.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** assemblage.cpp 3 Mar 2005 06:58:16 -0000 1.2 --- assemblage.cpp 2 Apr 2005 05:47:36 -0000 1.3 *************** *** 16,21 **** /*************************************************************************************************/ ! assemblage_t::assemblage_t() : ! group_m(INT_MAX) { } --- 16,20 ---- /*************************************************************************************************/ ! assemblage_t::assemblage_t() { } *************** *** 26,39 **** { // disconnect all our connections ! adobe::for_each(connections_m, boost::bind(connection_t::disconnect, _1)); - #if 0 - // signal destruction, cleaning up what the assemblage owns - destruct_signal_m(); - #endif /* REVISIT (sparent) : This should be ! adobe::for_each_reverse(destruct_singnal_m, adobe::apply()); */ --- 25,34 ---- { // disconnect all our connections ! adobe::for_each(connections_m, boost::bind(&connection_t::disconnect, _1)); /* REVISIT (sparent) : This should be ! adobe::for_each_reverse(destruct_signal_m, adobe::apply()); */ *************** *** 60,66 **** void assemblage_t::signal_destruction(const destruct_slot_t& slot) { - #if 0 - destruct_signal_m.connect(--group_m, slot); - #endif destruct_signal_m.push_back(slot); } --- 55,58 ---- |
|
From: Foster B. <fos...@us...> - 2005-04-02 05:48:15
|
Update of /cvsroot/adobe-source/adobe-source/adobe/future In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17172/adobe/future Modified Files: assemblage.hpp memory.hpp Log Message: asl 1.0.2 Index: assemblage.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/assemblage.hpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** assemblage.hpp 3 Mar 2005 06:58:16 -0000 1.2 --- assemblage.hpp 2 Apr 2005 05:47:36 -0000 1.3 *************** *** 16,19 **** --- 16,21 ---- #include <boost/function.hpp> + #include <adobe/functional.hpp> + /*************************************************************************************************/ *************** *** 46,50 **** void delete_on_destruction(T& x) { ! signal_destruction(boost::bind(adobe::delete_ptr<T>(), x)); } --- 48,53 ---- void delete_on_destruction(T& x) { ! adobe::delete_ptr<T> deleter; ! signal_destruction(boost::bind(deleter,x)); } Index: memory.hpp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/future/memory.hpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** memory.hpp 3 Mar 2005 06:58:16 -0000 1.2 --- memory.hpp 2 Apr 2005 05:47:36 -0000 1.3 *************** *** 137,141 **** typedef T element_type; typedef T* pointer_type; ! typedef const T* const_pointer_type; template <class U> struct rebind { typedef adobe::ptr_traits<U> other; }; --- 137,141 ---- typedef T element_type; typedef T* pointer_type; ! typedef const pointer_type const_pointer_type; template <class U> struct rebind { typedef adobe::ptr_traits<U> other; }; |
|
From: Foster B. <fos...@us...> - 2005-04-02 05:48:15
|
Update of /cvsroot/adobe-source/adobe-source/adobe/documentation/sources/asl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17172/adobe/documentation/sources/asl Modified Files: array_t.dox Log Message: asl 1.0.2 Index: array_t.dox =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/documentation/sources/asl/array_t.dox,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** array_t.dox 28 Feb 2005 20:48:54 -0000 1.1 --- array_t.dox 2 Apr 2005 05:47:35 -0000 1.2 *************** *** 3,7 **** \ingroup asl_libraries ! \brief A copy-on-write array of <code>adobe::value_t</code>s. array_t is an array of heterogeneous types. array_t is copy-on-write, intended for usage where copies are frequent, but writing is infrequent. Constructing an empty array will never throw an exception - no allocations are required until something is stored into it. Likewise, copying with assignment or copy constructor will not throw. --- 3,7 ---- \ingroup asl_libraries ! \brief A copy-on-write array of <code>adobe::value_t</code>. array_t is an array of heterogeneous types. array_t is copy-on-write, intended for usage where copies are frequent, but writing is infrequent. Constructing an empty array will never throw an exception - no allocations are required until something is stored into it. Likewise, copying with assignment or copy constructor will not throw. *************** *** 13,17 **** When copy-on-write semantics are not important, it is advised to use <code>std::vector<adobe::value_t></code> or another container type instead of array_t. ! \todo (sparent) We don't have all the random access iterator requirements met yet. \tutorial --- 13,18 ---- When copy-on-write semantics are not important, it is advised to use <code>std::vector<adobe::value_t></code> or another container type instead of array_t. ! \note ! \anchor _1 [1] Because an array_t is copy-on-write, modifications through an iterator are not supported except via back_insert_iterator. \tutorial *************** *** 31,72 **** /*! \typedef adobe::array_t::value_type ! The type of object, <code>T</code>, stored in the <code>array_t</code>. */ /*! \typedef adobe::array_t::reference ! Reference to <code>T</code>. */ /*! \typedef adobe::array_t::const_reference ! Const reference to <code>T</code>. */ /*! \typedef adobe::array_t::pointer ! Pointer to <code>T</code>. */ /*! \typedef adobe::array_t::const_pointer ! Const pointer to <code>T</code>. */ /*! ! \typedef adobe::array_t::const_reverse_iterator ! Const reverse_iterator into elements in the array. */ /*! ! \fn adobe::array_t::array_t(size_type n, const value_t& item) ! Initializes the array_t with <code>n</code> items of value <code>item</code>. */ /*! ! \fn adobe::array_t::array_t(InputIterator first, InputIterator last) ! Copies the elements within <code>(first, last]</code> into the array. */ --- 32,82 ---- /*! \typedef adobe::array_t::value_type ! The type of object, <code>adobe::value_t</code>, stored in the <code>array_t</code>. */ /*! \typedef adobe::array_t::reference ! Reference to <code>adobe::value_t</code>. */ /*! \typedef adobe::array_t::const_reference ! Const reference to <code>adobe::value_t</code>. */ /*! \typedef adobe::array_t::pointer ! Pointer to <code>adobe::value_t</code>. */ /*! \typedef adobe::array_t::const_pointer ! Const pointer to <code>adobe::value_t</code>. */ /*! ! \typedef adobe::array_t::iterator ! A random access iterator for the array \ref _1 "[1]". */ /*! ! \typedef adobe::array_t::const_iterator ! Equivalent to <code>array_t::iterator</code>. ! */ ! /*! ! \typedef adobe::array_t::reverse_iterator ! A reverse iterator into the array \ref _1 "[1]". */ /*! ! \typedef adobe::array_t::const_reverse_iterator ! Equivalent to <code>array_t:: reverse_iterator</code>. ! */ ! /*! ! \fn adobe::array_t::array_t(size_type n, const value_t& item) ! ! Initializes the array_t with <code>n</code> items of value <code>item</code>. */ *************** *** 270,271 **** --- 280,293 ---- <code>true</code> if this array is the only one referrring to its implementation instance (i.e., the implementation instance is currently not being shared). <code>false</code> otherwise. */ + + /*! + \class adobe::array_t::back_insert_iterator array.hpp <adobe/array.hpp> + \ingroup asl_libraries + + \brief a back insert iterator for appending to array_t. + + Assignment through a <code>back_insert_iterator</code> will insert an object after the last element of an <code>array_t</code>. + + \model_of + - \ref output_iterator + */ |
|
From: Foster B. <fos...@us...> - 2005-04-02 05:48:15
|
Update of /cvsroot/adobe-source/adobe-source/adobe/documentation/sources/structure In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17172/adobe/documentation/sources/structure Modified Files: mainpage.dox Log Message: asl 1.0.2 Index: mainpage.dox =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/documentation/sources/structure/mainpage.dox,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** mainpage.dox 19 Mar 2005 00:35:13 -0000 1.4 --- mainpage.dox 2 Apr 2005 05:47:36 -0000 1.5 *************** *** 47,50 **** --- 47,53 ---- \section main_news Latest News + \subsection main_news_2005_04_01 April 01, 2005 - ASL 1.0.2 Released + The Adobe Source Libraries 1.0.2 is now available for \ref main_download. Changes include a budding Win32 implementation of Adobe Begin, increased compiler compatibility, and extensive bug fixes and additions. The Win32 implementation of Adobe Begin does not have the same functionality as the Mac version, however it is in a place where it demonstrates the functionality of Adam and Eve well enough to warrant release. + \subsection main_news_2005_03_08 March 08, 2005 - RSS Feeds Available SourceForge.net has a series of RSS feeds available to update you on the latest happenings with the Adobe Source Libraries. The feeds can be found <a href="http://sourceforge.net/export/rss2_project.php?group_id=132417" target="_new">here</a> or you can use the following links directly: |
|
From: Foster B. <fos...@us...> - 2005-04-02 05:48:14
|
Update of /cvsroot/adobe-source/adobe-source/adobe/build/boost_lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17172/adobe/build/boost_lib Modified Files: boost_lib.mcp boost_lib.vcproj Added Files: boost_lib.sln Removed Files: Jamfile Log Message: asl 1.0.2 Index: boost_lib.vcproj =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/build/boost_lib/boost_lib.vcproj,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** boost_lib.vcproj 17 Mar 2005 18:02:43 -0000 1.2 --- boost_lib.vcproj 2 Apr 2005 05:47:34 -0000 1.3 *************** *** 104,107 **** --- 104,113 ---- </File> <File + RelativePath="..\..\..\third_party\boost_tp\boost\libs\filesystem\src\convenience.cpp"> + </File> + <File + RelativePath="..\..\..\third_party\boost_tp\boost\libs\filesystem\src\exception.cpp"> + </File> + <File RelativePath="..\..\..\third_party\boost_tp\boost\libs\thread\src\exceptions.cpp"> </File> *************** *** 116,119 **** --- 122,131 ---- </File> <File + RelativePath="..\..\..\third_party\boost_tp\boost\libs\filesystem\src\operations_posix_windows.cpp"> + </File> + <File + RelativePath="..\..\..\third_party\boost_tp\boost\libs\filesystem\src\path_posix_windows.cpp"> + </File> + <File RelativePath="..\..\..\third_party\boost_tp\boost\libs\signals\src\signal_base.cpp"> </File> Index: boost_lib.mcp =================================================================== RCS file: /cvsroot/adobe-source/adobe-source/adobe/build/boost_lib/boost_lib.mcp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsfc0ugS and /tmp/cvsuBjJGc differ --- NEW FILE: boost_lib.sln --- Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "boost_lib", "boost_lib.vcproj", "{190F47CE-E201-4ACC-8B49-E52180EE16EB}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {190F47CE-E201-4ACC-8B49-E52180EE16EB}.Debug.ActiveCfg = Debug|Win32 {190F47CE-E201-4ACC-8B49-E52180EE16EB}.Debug.Build.0 = Debug|Win32 {190F47CE-E201-4ACC-8B49-E52180EE16EB}.Release.ActiveCfg = Release|Win32 {190F47CE-E201-4ACC-8B49-E52180EE16EB}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal --- Jamfile DELETED --- |