[boost] RE: Re: Filesystem: create_directories

2003-08-03 Thread Vladimir Prus
Reid Sweatman wrote:

>> > Another option might be: "create_directory_and_parents"
>> > That name is longer than "create_directories" although it better
>> > describes the function.
>>
>> I like "create_directory_path"

> That one's good, and captures the essential distinction well.  Other
> possibles:  "create_full_directory," or "create_rooted_directory."  Dunno.
> On whole, I might prefer your choice.  Although it again lengthens the
> name, "create_directory_and_path" captures another minor piece of the
> distinction. You could also play with the distinction (none save semantic
> in most file systems) between "pathname" and "filename;" a filename is
> usually just the thing at the leaf-terminal end of the path (and needn't
> be a "file," save as a directory is often actually implemented as such),
> while the pathname is the full Monty.

FWIW, I don't like
- "create_full_directory", because I don't understand what it means for
directory to be full. "Full of files" is one interpretation which is not
correct.
- "create_rooted_directory", because I don't know what's "rooted" directory.
- "create_directory_and_path", because how if one can create directory, one
can name that directory, and the path should already exist.

So, to summarize, I've no problem with the current name that I've
introduced. Of other suggestions "create_directory_and_parents" looks best
to me. "ensure_directory_exists" does not imply any operational semantic
(i.e. the name does not say that the directory will be created. One might
expect exception to be thrown if dir does not exist). "demand_directory" is
good. One problem is that "demand" still does not communicate to me that
something will be created.

- Volodya



> 
> In the original scheme, I would think the problem with
> "create_directories" is that it would seem to imply (to me, at any rate)
> the creation of multiple
> directories at the same depth in the file system.  Anyway, them's my
> kibitz's.
> 
> Reid Sweatman
> 
> 
> ___
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost


___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: Sudden VC6 ICEs in BGL code

2003-08-03 Thread Vladimir Prus
David Abrahams wrote:

> David Abrahams <[EMAIL PROTECTED]> writes:
> 
>> Jeremy Siek <[EMAIL PROTECTED]> writes:
>>
>>> I seem to remember the named parameters mechanism being fragile
>>> under VC6.
>>
>> After a painstaking binary search in recent CVS states for the ICE, I
>> narrowed it down to:
> 
> 
> 
> Worked around now in CVS.

Had no idea my innocent change will break anything. Why doesn't vc6 like
declarations of static methods inside class?

- Volodya


___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: Filesystem: create_directories

2003-08-03 Thread Vladimir Prus
David Abrahams wrote:

> The documentation for create_directories makes no sense.  It says
> only:
> 
> void create_directories( const path & ph );
> 
> Precondition: ph.empty() ||
> forall p: p == ph || is_parent(p, ph): is_directory(p) || !exists( p )
> 
> Postcondition: exists(ph) && is_directory(ph)
> 
> It looks as though this is the same as create_directory, but has a
> weird precondition.  

Sure. It has the (almost) the same postcondition, but has waeker
precondition: the parent directories are not required to exist.

> I swear I was *completely* baffled by its
> purpose until I looked at the header file.

I'd say that pre/post conditions are just correct. Maybe more docs can be
added.

> The comment in the header file describes it pretty well, though.

Ehm... only postcondition there is not correct: is_empty(ph) is not
guaranteed.

- Volodya


___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] C++ Builder 6 and Boost Generic Graph Library

2003-08-03 Thread Rizky Herucakra
awhile ago I tried to compile this simple program:
 
#include
 
int main (){
 
   return 0;
}
 
 
and Borland C++ Builder 6 refuse to compile.
I have track the problem and it seemed that Borland C++ builder has problem with template partial specialization with constant. The program below also refuse to compile
 
template< class T>
class A{
 typedef T type;
 };
 
template 
class A< const T>{
typedef  T consttype;
};
 
int main (){
 return 0;
}
 
does anybody has the workaround with this ? By the way, I use Boost version 1.30.0 ( the latest)
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software

[boost] Re: Re: Re: Re: Re: Re: Re: Re: Re: GUI/GDI template library

2003-08-03 Thread Philippe A. Bouchard
brock wrote:

[...]

>> Is it possible to associate widget instances with functions?
>
> Like with boost::bind?
>
>button b;
>edit e;
>
>button.set_on_pushed(boost::bind(&edit::disable_window, &e));
>
> (This is not how my library class names looks now, but how they will
> when rewritten)

Looks a lot better this way IMO.



Philippe



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Re: [boost] Re: Re: Re: Re: Re: Re: Re: Re: GUI/GDI template library

2003-08-03 Thread brock

- Original Message -
From: "Philippe A. Bouchard" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, August 03, 2003 9:33 PM
Subject: [boost] Re: Re: Re: Re: Re: Re: Re: Re: GUI/GDI template library


> brock wrote:
>
> [...]
>
> > What do you mean by "official macros"?  The only macros in my code
> > are in
> > the implementation, you shouldn't see any in user code.
>
> Sorry I guess I have misinterpreted BEGIN_MESSAGE_MAP() in
> boost_gui_test.cpp.

Oh, that is auto generated MSVC 6 stuff.

[...]

> > If you're talking about message notifications, I use something like:
> >
> >struct window {
> >
> >   void set_on_change(boost::funtion0);
> >
> >   void set_on_character_typed(boost::function1);
> >};
>
> Is it possible to associate widget instances with functions?

Like with boost::bind?

   button b;
   edit e;

   button.set_on_pushed(boost::bind(&edit::disable_window, &e));

(This is not how my library class names looks now, but how they will when
rewritten)


Brock

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: Re: Re: Re: Re: Re: Re: Re: GUI/GDI template library

2003-08-03 Thread Philippe A. Bouchard
brock wrote:

[...]

> What do you mean by "official macros"?  The only macros in my code
> are in
> the implementation, you shouldn't see any in user code.

Sorry I guess I have misinterpreted BEGIN_MESSAGE_MAP() in
boost_gui_test.cpp.

> I'm pretty
> sure
> they use macros in similar situations in boost::tuple and
> boost::function.

Macros should be used only for compiler-specific definitions, compilation
options or to simplify complex recursive typelists for internal usages.  My
0.02$.

> In the case of the GUI library though, I think you're correct in
> saying that overloading an operator would lead to a more elegant
> solution and I can get rid of all of the macros.  I did really enjoy
> the boost preprocessor lib though.
>
> If you're talking about message notifications, I use something like:
>
>struct window {
>
>   void set_on_change(boost::funtion0);
>
>   void set_on_character_typed(boost::function1);
>};

Is it possible to associate widget instances with functions?



Philippe



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Re: [boost] Re: Re: Re: Re: Re: Re: Re: GUI/GDI template library

2003-08-03 Thread brock

- Original Message -
From: "Philippe A. Bouchard" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, August 03, 2003 8:40 PM
Subject: [boost] Re: Re: Re: Re: Re: Re: Re: GUI/GDI template library


[...]

> Find a way not to rely on "official macros".  Those are false hopes.

What do you mean by "official macros"?  The only macros in my code are in
the implementation, you shouldn't see any in user code.  I'm pretty sure
they use macros in similar situations in boost::tuple and boost::function.
In the case of the GUI library though, I think you're correct in saying that
overloading an operator would lead to a more elegant solution and I can get
rid of all of the macros.  I did really enjoy the boost preprocessor lib
though.

If you're talking about message notifications, I use something like:

   struct window {

  void set_on_change(boost::funtion0);

  void set_on_character_typed(boost::function1);
   };


Brock

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: Re: Re: Re: Re: Re: Re: GUI/GDI template library

2003-08-03 Thread Philippe A. Bouchard
brock wrote:

[...]

>> - "boost_gui_test/dialog.cpp" is pretty cool... I like it for its
>> simplicity but the syntax could be even more elegant.  Try some
>> operator << instead
> of
>> a macro defined number of parameters.  Nobody likes this idea.
>
> Probably true, I think I was just looking for an excuse to try the
> preprocessor library :)

Or an array of rows defined a compile-time, a list or rows at run-time, etc.

>> - Work on the macro defined WxWindows signal / slot mechanism; this
>> is ugly. Maybe the suggestions I've sent to Mr. Slettebo could help.
>
> I'll have to look into that.  Most of the signal/slot stuff I do (if
> I get your intention correctly) relies on boost::function<>.

Find a way not to rely on "official macros".  Those are false hopes.



Philippe



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: Filesystem: create_directories

2003-08-03 Thread David Abrahams
Thomas Witt <[EMAIL PROTECTED]> writes:

> I'de like to get away from create. As I understand it, what we really
> want is to make sure a directory path actually exists without
> necessarily creating any directories. To me calling a create function
> for something that already exists should be an error. I can't see a
> reasonable way to have these semantics with create_directories.
>
> What about something like this:
>
> ensure_path_exists(path);

I have a word I use in scenarios like this: "demand".

  demand_directory(path)

"Demand" is not a perfect fit, but if you treat it like a term of
art, it works.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Re: [boost] Re: Re: Re: Re: Re: Re: GUI/GDI template library

2003-08-03 Thread brock

- Original Message -
From: "Philippe A. Bouchard" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, August 03, 2003 8:04 PM
Subject: [boost] Re: Re: Re: Re: Re: Re: GUI/GDI template library


> brock wrote:
>
> [...]
>
> > Having a library with an interface that
> > leverages the advantages of modern C++ saves me a lot more time than
> > what I spent making the library.
>
> That is true.  Maintenance is important also.
>
> [...]
>
> > I've been proposing, something like:
> >
> >gui_manager app = row( "name", edit(&employee::ssn));
> >
> >app.set_data(get_employee());
> >
> > It is in the files section with the name boost_gui.zip.  If someone
> > would at least tell me that my ideas stink I would feel better :)
>
> Yeah... I am not a Boost consultant but here goes a little overview:

Thanks for taking a look!

>
> - You're "boost_gui/Functors.h" is already defined in ...
partly
> specialize it.

A lot of stuff in the implementation is out of date.  Some of it was even
written in the dark times before I found boost.

>
> - "boost_gui_test/dialog.cpp" is pretty cool... I like it for its
simplicity
> but the syntax could be even more elegant.  Try some operator << instead
of
> a macro defined number of parameters.  Nobody likes this idea.

Probably true, I think I was just looking for an excuse to try the
preprocessor library :)

>
> - Work on the macro defined WxWindows signal / slot mechanism; this is
ugly.
> Maybe the suggestions I've sent to Mr. Slettebo could help.

I'll have to look into that.  Most of the signal/slot stuff I do (if I get
your intention correctly) relies on boost::function<>.


Brock

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: Re: Re: Re: Re: Re: GUI/GDI template library

2003-08-03 Thread Philippe A. Bouchard
brock wrote:

[...]

> Having a library with an interface that
> leverages the advantages of modern C++ saves me a lot more time than
> what I spent making the library.

That is true.  Maintenance is important also.

[...]

> I've been proposing, something like:
>
>gui_manager app = row( "name", edit(&employee::ssn));
>
>app.set_data(get_employee());
>
> It is in the files section with the name boost_gui.zip.  If someone
> would at least tell me that my ideas stink I would feel better :)

Yeah... I am not a Boost consultant but here goes a little overview:

- You're "boost_gui/Functors.h" is already defined in ... partly
specialize it.

- "boost_gui_test/dialog.cpp" is pretty cool... I like it for its simplicity
but the syntax could be even more elegant.  Try some operator << instead of
a macro defined number of parameters.  Nobody likes this idea.

- Work on the macro defined WxWindows signal / slot mechanism; this is ugly.
Maybe the suggestions I've sent to Mr. Slettebo could help.

[...]



Philippe



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: Re: Re: Re: Re: GUI/GDI template library

2003-08-03 Thread Philippe A. Bouchard
Philippe A. Bouchard wrote:

[...]

>  emit (a.sigdone)(99);

Let's call it the placement "emit" operator ;)



Just joking...

Philippe



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Re: [boost] Re: Re: Re: Re: Re: GUI/GDI template library

2003-08-03 Thread brock
Personally I would much rather start from scratch.  I want something that is
boost from the ground up, not a project that has a code so old it supports
MSVC 4.0.  Who knows if the folks at wxWindows or elsewhere have the same
goals as boost.  Don't they have an open source license?  Developing a GUI
library from the ground up will be hard, but worthwhile.  Developing a GUI
applications is also hard.  Having a library with an interface that
leverages the advantages of modern C++ saves me a lot more time than what I
spent making the library.  From what I've seen of the interface to
wxWindows, I don't think I'd be gaining much over MFC.

Anyway, I do have a library whose interface (if not yet implementation) is
platform independent.  I haven't gotten any feedback about whether anyone
likes the library itself, or the syntax I've been proposing, something like:

   gui_manager app = row( "name", edit(&employee::ssn));

   app.set_data(get_employee());

It is in the files section with the name boost_gui.zip.  If someone would at
least tell me that my ideas stink I would feel better :)  As soon as I get
everything upgraded to VC 7 I'm going to rewrite it with the idea of
submitting it to boost for a review.  I've never written a GUI for another
platform but if no one wants to colaborate I'll do that too.  Any
suggestions?  Developing this will be work, but it is not rocket science.

- Original Message -
From: "Philippe A. Bouchard" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, August 03, 2003 7:02 PM
Subject: [boost] Re: Re: Re: Re: Re: GUI/GDI template library


> Rene Rivera wrote:
> > [2003-08-03] Philippe A. Bouchard wrote:
> >
> >> WxWindows don't have any intermediate compiler but the end user
> >> syntax is not attractive for the signal / slot mechanism (macros).
> >
> > Yes, and no. You can use the macros if you like that sort of stuff.
> > But the signal/slot mecahnism is just as easilly available directly
> > with the "Connect" interface. Thruth is WX doesn't need most, if not
> > all, of the macros it uses. If only you could convice the WX
> > developers of that ;-)
>
> ... other issues:
>
> - Qt is more popular than WxWindows because it is commercial:
> - they can support their product;
> - they can affort to sponsor their product;
> - people won't have to install yet another library;
> - it is binary compatible with previous versions also.
>
> But I think WxWindows developpers can affort to completely rewrite their
> engine if a better syntax is available.  Yours to decide.
>
>
>
> Philippe
>
>
>
> ___
> Unsubscribe & other changes:
http://lists.boost.org/mailman/listinfo.cgi/boost
>

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: Re: Re: Re: Re: GUI/GDI template library

2003-08-03 Thread Philippe A. Bouchard
Rene Rivera wrote:
> [2003-08-03] Philippe A. Bouchard wrote:
>
>> WxWindows don't have any intermediate compiler but the end user
>> syntax is not attractive for the signal / slot mechanism (macros).
>
> Yes, and no. You can use the macros if you like that sort of stuff.
> But the signal/slot mecahnism is just as easilly available directly
> with the "Connect" interface. Thruth is WX doesn't need most, if not
> all, of the macros it uses. If only you could convice the WX
> developers of that ;-)

... other issues:

- Qt is more popular than WxWindows because it is commercial:
- they can support their product;
- they can affort to sponsor their product;
- people won't have to install yet another library;
- it is binary compatible with previous versions also.

But I think WxWindows developpers can affort to completely rewrite their
engine if a better syntax is available.  Yours to decide.



Philippe



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: GUI/GDI template library

2003-08-03 Thread Bohdan
Trying to continue GUI libraries review ( FLTK, WxWin ) 
Any ideas about VCF ( visual component framework ) sourceforge
project ?
Its original idea was taken from Borland C++ Builder.
Unfortunately, this IDE and VCL (pascal GUI library used
by Delphi and c++ builder) doesn't allow to use c++
features like templates and multiple inheritance in gui components.
Anyway idea is great. VCF project is trial to fix this drawback.
They already have new IDE and GUI library more c++
friendly and portable.
   Despite it is relatively new project, it looks great.
Can it be used somehow ? Or more lazy choice :
ask developers to port it to boost ?:))
   It is developed under BSD license. I'm not expert in licenses :(.
If somebody can shed light on this license  thanks.

regards,
bohdan



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: Re: Re: Re: Re: GUI/GDI template library

2003-08-03 Thread Philippe A. Bouchard
How about this one:

#include 
#include 
#include 


using namespace std;


struct Object
{
};

template 
 struct signal : vector< pair >
 {
  typedef typename vector< pair >::value_type
value_type;

  template 
   void connect(Object & o, T U::* s)
   {
push_back(value_type(& o, static_cast(s)));
   }
 };

#define emit(SIGNAL) for (size_t i = 0; i != SIGNAL.size(); ++ i)
(SIGNAL[i].first->*SIGNAL[i].second)


// Usage example:
struct A : Object
{
 signal sigdone;
};

struct B : Object
{
 void slot_bip(int a)
 {
  cout << __PRETTY_FUNCTION__ << ": " << a << endl;
 }

 void slot_refresh(int a)
 {
  cout << __PRETTY_FUNCTION__ << ": " << a << endl;
 }
};

int main()
{
 A a;
 B b;

 a.sigdone.connect(b, & B::slot_bip);
 a.sigdone.connect(b, & B::slot_refresh);

 emit(a.sigdone)(99);
}



Philippe



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Re: [boost] Re: Filesystem: create_directories

2003-08-03 Thread Thomas Witt
David Abrahams wrote:
Dave Gomboc <[EMAIL PROTECTED]> writes:


Ah, naming again.  My favourite. :-)
It's not my favourite, but it matters.

I like create_path_and_directory.  I prefer this order of the two terms
because logically the path exists before the directory itself does.


create_full_path(path, 'd')
create_full_path(path, 'f')
I'de like to get away from create. As I understand it, what we really 
want is to make sure a directory path actually exists without 
necessarily creating any directories. To me calling a create function 
for something that already exists should be an error. I can't see a 
reasonable way to have these semantics with create_directories.

What about something like this:

ensure_path_exists(path);

Thomas

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: Re: Re: Re: Re: GUI/GDI template library

2003-08-03 Thread Philippe A. Bouchard
... or the following with the "emit" keyword defined as the only macro.  The
function connect() could be simplified but I won't go further because it is
not pure C++.  You take the decisions from here:


#include 
#include 
#include 


using namespace std;


struct Object
{
};

template 
 struct signal : vector< pair >
 {
  typedef typename vector< pair >::value_type
value_type;

  void connect(Object * p, T Object::* s)
  {
   push_back(value_type(p, s));
  }
 };

#define emit(SIGNAL) for (size_t i = 0; i != SIGNAL.size(); ++ i)
(SIGNAL[i].first->*SIGNAL[i].second)


// Usage example:
struct A : Object
{
 signal sigdone;
};

struct B : Object
{
 void slot_bip(int a, ...)
 {
  cout << __PRETTY_FUNCTION__ << ": " << a << endl;
 }

 void slot_refresh(int a, ...)
 {
  cout << __PRETTY_FUNCTION__ << ": " << a << endl;
 }
};

int main()
{
 A a;
 B b;

 a.sigdone.connect(& b, (void (Object::*)(int)) & B::slot_bip);
 a.sigdone.connect(& b, (void (Object::*)(int)) & B::slot_refresh);

 emit (a.sigdone)(99);
}



Philippe



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: Re: Re: Re: Re: GUI/GDI template library

2003-08-03 Thread Philippe A. Bouchard
Here is a better example.  I am breaking standards when upcasting a pointer
to member though ((void (B::*)(int) -> (void (Object::*)(int))).  This is
why I never proposed it ;)


#include 
#include 
#include 


using namespace std;


struct Object
{
};

template 
 struct signal : list< pair >
 {
  typedef typename list< pair >::value_type
value_type;

  void connect(Object * p, T Object::* s)
  {
   push_back(value_type(p, s));
  }

  template 
   void emit(U const & u, V const & v)
   {
for (typename list::iterator i = begin(); i != end(); ++ i)
{
 (i->first->*i->second)(u, v);
}
   }

  template 
   void emit(U const & u)
   {
for (typename list::iterator i = begin(); i != end(); ++ i)
{
 (i->first->*i->second)(u);
}
   }

   void emit()
   {
for (typename list::iterator i = begin(); i != end(); ++ i)
{
 (i->first->*i->second)();
}
   }
 };


// Usage example:
struct A : Object
{
 signal sigdone;
};

struct B : Object
{
 void slot_bip(int a, ...)
 {
  cout << __PRETTY_FUNCTION__ << ": " << a << endl;
 }

 void slot_refresh(int a, ...)
 {
  cout << __PRETTY_FUNCTION__ << ": " << a << endl;
 }
};


int main()
{
 A a;
 B b;

 a.sigdone.connect(& b, (void (Object::*)(int)) & B::slot_bip);
 a.sigdone.connect(& b, (void (Object::*)(int)) & B::slot_refresh);

 a.sigdone.emit(99);
}



Philippe



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: Re: Re: Re: Re: GUI/GDI template library

2003-08-03 Thread Philippe A. Bouchard
Terje Slettebø wrote:

[...]

> It's also possible to do the signal/slot without macros on wxWindows.
> See here (http://www.wxwindows.org/hworld2.txt) for an example. It's
> all done in standard C++, without any macros.

It is a lot better this way, I was not aware of this new syntax.  But it
seems you still need global IDs to refer to the members...  A signal is
really a list of pointer to members, maybe the following could simplify the
situation.  This is an example, but the signal<>::emit should be overloaded
for N template parameters, N times:

#include 
#include 
#include 


using namespace std;


struct Object
{
};

template 
 struct signal : list< pair >
 {
  typedef pair type;

  void emit(...)
  {
   for (typename list::iterator i = begin(); i != end(); ++ i)
   {
(i->first->*i->second)();
   }
  }
 };


struct A : Object
{
 signal sigdone;
};

struct B : Object
{
 void slot_bip()
 {
  cout << __PRETTY_FUNCTION__ << endl;
 }

 void slot_refresh()
 {
  cout << __PRETTY_FUNCTION__ << endl;
 }
};


int main()
{
 A a;
 B b;

 a.sigdone.push_back(make_pair(& b, (void (Object::*)(...)) & B::slot_bip));
 a.sigdone.push_back(make_pair(& b, (void (Object::*)(...)) &
B::slot_refresh));

 a.sigdone.emit();
}


> The syntax is similar to Qt's signal/slot mechanism, but without any
> preprocessor/intermediate compiler (MOC) needed.
>
> Here's a version using macros, which then resembles MFC
> (http://www.wxwindows.org/hworld.txt).

Yeah, this is what I was talking about.



Philippe



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Re: [boost] Re: Re: Re: Re: GUI/GDI template library

2003-08-03 Thread Terje Slettebø
>From: "Philippe A. Bouchard" <[EMAIL PROTECTED]>

> WxWindows don't have any intermediate compiler but the end user syntax is
> not attractive for the signal / slot mechanism (macros).

It's also possible to do the signal/slot without macros on wxWindows. See
here (http://www.wxwindows.org/hworld2.txt) for an example. It's all done in
standard C++, without any macros.

The syntax is similar to Qt's signal/slot mechanism, but without any
preprocessor/intermediate compiler (MOC) needed.

Here's a version using macros, which then resembles MFC
(http://www.wxwindows.org/hworld.txt).

Naturally, one might use Boost.Signals for a boostified version.


Regards,

Terje

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Re: [boost] Re: Re: Re: Re: GUI/GDI template library

2003-08-03 Thread Rene Rivera
[2003-08-03] Philippe A. Bouchard wrote:

>WxWindows don't have any intermediate compiler but the end user syntax is
>not attractive for the signal / slot mechanism (macros).  

Yes, and no. You can use the macros if you like that sort of stuff. But the
signal/slot mecahnism is just as easilly available directly with the
"Connect" interface. Thruth is WX doesn't need most, if not all, of the
macros it uses. If only you could convice the WX developers of that ;-)


-- grafik - Don't Assume Anything
-- rrivera (at) acm.org - grafik (at) redshift-software.com
-- 102708583 (at) icq
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: Re: GUI/GDI template library

2003-08-03 Thread Rainer Deyke
E. Gladyshev wrote:
> --- Rainer Deyke <[EMAIL PROTECTED]> wrote:
>> For a GUI library to be useful to me, it would need
>> to support custom
>> physical GUI layers.  I would then write my own
> [...]
>> full-screen multimedia.  I
>> realize that my needs are unusual, and boost::gui
>> may be unable to
>> accomodate them.
>
> It seems strange to me, why are you willing to give up
> on your requirements. What is so unusual about them? I
> believe boost::gui must accomodate them and it can.
> Your requirements are very reasonable IMHO.

Ok.

>> Nonetheless I also dislike the idea of
>> PhysicalGUILayer as a template
>> parameter to all GUI elements.
>
> PhysicalGUILayer is great for your requirements. Why
> do you dislike it?

There's the compile-time issue, but there's also the physical dependency
between the high-level GUI structure and the physical GUI layer.  I would
prefer a system where they are kept independent.  This would have the
benefit of allowing the phyisical GUI layer to be specified at runtime.

top_level_window = create_top_level_window();
if (using_wx_windows) {
  wx_gui_layer::run(top_level_windows);
} else {

  win32_gui_layer::run(top_level_windows);
}

>> It violates the
>> principle of Once and Only
>> Once.
>
> You can use a default template parameter for the
> PhysicalGUILayer and define it only once in your
> program.

The GUI code would still be physically bound to a single physical GUI layer.


-- 
Rainer Deyke - [EMAIL PROTECTED] - http://eldwood.com



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: Re: Re: Re: GUI/GDI template library

2003-08-03 Thread Philippe A. Bouchard
Pavel Vozenilek wrote:

[...]

> Here is interesting review of five GUI toolkits, including wxWindows:
> http://freshmeat.net/articles/view/928/


For the Qt toolkit, they kinda forgot to mention that they work in parallel
with the KDE project (http://kde.org) so they have a huge open source
support for their development extensions (class KHTML, ...).  But their moc
compiler creates intermediate files and it could be annoying sometimes.

WxWindows don't have any intermediate compiler but the end user syntax is
not attractive for the signal / slot mechanism (macros).  On the other hand,
I really like their free bundled IDE + MinGW + WxWindows package under
Microsoft Windows: Dev-C++ (http://www.bloodshed.net/).



Philippe



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: Filesystem: create_directories

2003-08-03 Thread David Abrahams
Dave Gomboc <[EMAIL PROTECTED]> writes:

> Ah, naming again.  My favourite. :-)
>
> I like create_path_and_directory.  I prefer this order of the two terms
> because logically the path exists before the directory itself does.

create_full_path(path, 'd')
create_full_path(path, 'f')

??

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Re: [boost] Re: Preparing 1.30.1 Release

2003-08-03 Thread John Maddock

>I've applied the first two; I'm not comfortable applying the regex
>patches myself; it takes someone who knows the library to verify that
>they're OK.  John can do it, though, as far as I'm concerned.

done,

John.

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: plans for a bugfix release ?

2003-08-03 Thread David Abrahams
Misha Bergal <[EMAIL PROTECTED]> writes:

> "Misha Bergal" <[EMAIL PROTECTED]> writes:
>
>> "David Abrahams" <[EMAIL PROTECTED]> wrote in message
>> news:[EMAIL PROTECTED]
>> >
>> > Thanks.  The hyperlinks to test failure logs don't ever scroll to the
>> > appropriate section of the output on IE6.
> Fixed 
>> The compiler_status changes from main trunk need to be integrated back to
>> RC_1_30_0 .
>> If I don't hear from somebody about it, I will just apply patch locally.
> Done

Could you possibly do another regression run? There have been quite a
few little changes since the last one.

Thanks, Misha!

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: Re: Re: Re: GUI/GDI template library

2003-08-03 Thread Pavel Vozenilek

"Terje Slettebø" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> Make no mistake - this is a lot of work, too. However, it may be much less
> work than creating one from scratch. What do we want - vaporware of a
Boost
> GUI library coming "real soon now", perhaps not appearing for many years,
if
> ever, due to the amount of work, or adapting an existing solution and
being
> able to use it here and now, with a boostified version to come?
>
Every project needs to start and can be labeled 'vaporware' at this moment.

> My goal was to include
> existing libraries in the discussion, and that has been met.
>
Exhaustive list of toolkits is on:
http://www.free-soft.org/guitool/

Here is interesting review of five GUI toolkits, including wxWindows:
http://freshmeat.net/articles/view/928/

/Pavel




___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] RE: Re: Filesystem: create_directories

2003-08-03 Thread Dave Gomboc
> > > > create_directory
> > > > and
> > > > create_directories
> > >
> > > Another option might be: "create_directory_and_parents"
> > > That name is longer than "create_directories" although it better
> > > describes the function.
> >
> > I like "create_directory_path"
> 
> That one's good, and captures the essential distinction well.  Other
> possibles:  "create_full_directory," or "create_rooted_directory."  
> Dunno. On whole, I might prefer your choice.  Although it again 
> lengthens the name, "create_directory_and_path" captures another minor 
> piece of the distinction. You could also play with the distinction (none 
> save semantic in most file systems) between "pathname" and "filename;" a 
> filename is usually just the thing at the leaf-terminal end of the path 
> (and needn't be a "file," save as a directory is often actually 
> implemented as such), while the pathname is the full Monty.
> 
> In the original scheme, I would think the problem with 
> "create_directories" is that it would seem to imply (to me, at any rate) 
> the creation of multiple directories at the same depth in the file 
> system.  Anyway, them's my kibitz's.

Ah, naming again.  My favourite. :-)

I like create_path_and_directory.  I prefer this order of the two terms
because logically the path exists before the directory itself does.

Dave

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Re: [boost] Re: Re: Re: GUI/GDI template library

2003-08-03 Thread Terje Slettebø
>From: "Rob & Lori" <[EMAIL PROTECTED]>

> E. Gladyshev wrote:
>
> >--- Edward Diener <[EMAIL PROTECTED]> wrote:
> >
> >>As you have pointed out in the rest of your post, it
> >>may prove more
> >>worthwhile to work with the developers which already
> >>exist for a free
> >>cross-platform framework like wxWindows, in order to
> >>encourage them to use
> >>more modern C++ idioms
> >
> >I agree with this suggestion.  I am wondering how
> >realistic would it be?

As I quoted from their roadmap, there are plans to do this - at least
changing the components used to standard components, such as changing
wxString to std::sstring. After all, the library originated long before
there was a standard, and a standard string.

> Personally I'm not certain I like that idea.  WxWindows is much more
> than just multi-platform GUI.  This means when you only need the GUI
> you'll be linking to everything else in their library, which increases
> your code size.

I'm aware of that. However, with boostification/transforming it to use
modern C++ idioms, one might also change it to use existing standard
components for these, or Boost components.

One might also omit parts not strictly belonging to a GUI library, such as
database access. Or one could include it, if no Boost library supports that
at the time.

Make no mistake - this is a lot of work, too. However, it may be much less
work than creating one from scratch. What do we want - vaporware of a Boost
GUI library coming "real soon now", perhaps not appearing for many years, if
ever, due to the amount of work, or adapting an existing solution and being
able to use it here and now, with a boostified version to come?

Anyway, it was just a thought. wxWindows is already tested and debugged -
and has been used in real-world projects. It's shown its worth.

By the way, dynamic layout have been mentioned (like layout managers in
Java), and wxWindows support these, as well.

As Alec Ross pointed out, there's also an XML-based portable resource format
(XRC) (http://www.wxwindows.org/manuals/2.4.0/wx478.htm), and a resource
editor for it.

> Besides, I believe it would take more effort to change all the existing
> WxWindows code to use modern C++ techniques (which they would probably
> be against for backwards compatibility reasons) than it would to create
> one from scratch.

This might also be. It is something to consider. My goal was to include
existing libraries in the discussion, and that has been met.


Regards,

Terje

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Re: [boost] Re: Re: Re: GUI/GDI template library

2003-08-03 Thread Terje Slettebø
>From: "Edward Diener" <[EMAIL PROTECTED]>

> Terje Slettebø wrote:
> >> From: "Edward Diener" <[EMAIL PROTECTED]>
> >
> >> Add to this the fact that nearly every C++ programmer already works
> >> with a framework library depending on his implementation of choice.
> >> On Windows alone I know of WTL, ATL, MFC, OWL, VCL, wxWindows, QT,
> >> and no doubt
> > others
> >> about which I have no knowledde, each tied very closely to a
> >> particular
> > C++
> >> compiler, IDE, and implementation.
> >
> > I just wanted to point out that several of these, Qt and wxWindows,
> > are cross-platform, so they are not tied to any specific compiler or
> > platform. wxWindows is also Open Source, and I've good experience
> > with the little I've used it. It's very easy to get up and running
> > with it (at least it was on Windows). snipped...
>
> I see you are supporting my main point which was that re-inventing a GUI
> framework for Boost, with both many platform dependent and cross-platform
> frameworks already in place and very popular with most C++ programmers,
will
> be duplicating functionality which already exists. I do realize that most
of
> these frameworks do not use template techniques but that doesn't make them
> necessarily any less popular with their many users. Also, as I pointed
out,
> the amount of work necessary to implement an effective GUI framework is
> enormous, given the differences in GUI controls and GDI-like functionality
> on the major OSs.

I complately agree. That was also an unspoken point of my posting - that
there's an enourmous amount of work to do this. Just wrapping/emulating
_one_ platform is a lot of work. I've been working on a Windows/Direct3D
wrapper, myself, which wraps the Win32 API, and especially due to the
low-level nature of this API, it's a lot of work to do so. Since I
discovered wxWindows, I've preferred to use that, instead, than duplicating
all the work that has gone into cross-platform GUI toolkits/frameworks like
wxWindows.

> I am certainly not against the OP trying to do something like this for
Boost
> but I think that is naive to assume that one can create such a Boost
> templated cross-platform framework without a tremendous amount of work and
> time spent invesigating the GUI and graphics APIs of a number of OSs. OTOH
> if the consensus is that such a framework will work only by having the end
> user plug-in to it classes with the appropriate functionality for a
generic
> idea, such as a listbox let's say, there will be enormous amount of work
for
> the end-user to do and even then the templated listbox may provide hooks
> into only a very small amount of functionality which listboxes represent
on
> that user's particular OS.
>
> As you have pointed out in the rest of your post, it may prove more
> worthwhile to work with the developers which already exist for a free
> cross-platform framework like wxWindows, in order to encourage them to use
> more modern C++ idioms which will make using their framework easier for
> end-users, than attempting to recreate one all over again. Boostifying
> wxWindows and having Boost developers and wxWindows talking to each other
> about better techniques for making wxWindows easier to program may be much
> more worthwhile than re-creating yet another GUI/Graphics framework.

That has also been my thought. As we've both pointed out, greating such a
library is a lot of work. There's a reason there's not yet a Boost.GUI.
There's a lot of developers at the wxWindows project, for example, showing
this. I just wanted to point out this point, too, to consider existing
libraries, as well. Boost has several times adopted libraries originating
elsewhere, and with an existing body of developers, as well, e.g.
Boost.Spirit.

The other mentioned cross-platform GUI similar in capability to wxWindows,
Qt, is not Open Source - there's an older Open Source non-commercial Windows
version, but not the more recent one, and not for commercial use. That makes
its license incompatible with Boost.


Regards,

Terje

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: plans for a bugfix release ?

2003-08-03 Thread Misha Bergal
David Abrahams <[EMAIL PROTECTED]> writes:
 
> I am slightly concerned about the number of unexpected failures with
> intel7.1-stlport.  Is there a configuration problem?

Yes, there is. The main trunks intel-win32-tools.jam,1.28 enables
wchar_t for our configuration but RC_1_30_0 intel-win32-tools.jam,1.23
doesn't. 

Our STL installation is compiled with wchar_t support. I will setup
another copy compiled without it.

-- 
Misha Bergal
MetaCommunications Engineering

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: plans for a bugfix release ?

2003-08-03 Thread Misha Bergal
"Misha Bergal" <[EMAIL PROTECTED]> writes:

> "David Abrahams" <[EMAIL PROTECTED]> wrote in message
> news:[EMAIL PROTECTED]
> >
> > Thanks.  The hyperlinks to test failure logs don't ever scroll to the
> > appropriate section of the output on IE6.
Fixed 
> The compiler_status changes from main trunk need to be integrated back to
> RC_1_30_0 .
> If I don't hear from somebody about it, I will just apply patch locally.
Done

Misha Bergal
MetaCommunications Engineering

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost