mkdir ~/wxgtk_dist/wxGTK/utils
cp Makefile ~/wxgtk_dist/wxGTK/utils
+echo wxGLCanvas..
+
cd glcanvas
mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas
cp ./docs/notes.txt ~/wxgtk_dist/wxGTK/utils/glcanvas/NOTES.txt
cp penguin.lwo ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin
cd ../../..
+echo DialogEd..
+
cd dialoged/src
mkdir ~/wxgtk_dist/wxGTK/utils/dialoged
cp Makefile ~/wxgtk_dist/wxGTK/utils/dialoged
cp *.xpm ~/wxgtk_dist/wxGTK/utils/dialoged/bitmaps
cd ../../..
+echo wxPython..
+
cd wxPython
mkdir ~/wxgtk_dist/wxGTK/utils/wxPython
cp README.txt ~/wxgtk_dist/wxGTK/utils/wxPython
-cp TODO.txt ~/wxgtk_dist/wxGTK/utils/wxPython
+
mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/src
cp ./src/* ~/wxgtk_dist/wxGTK/utils/wxPython/src
+
mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/src/gtk
cp ./src/gtk/* ~/wxgtk_dist/wxGTK/utils/wxPython/src/gtk
+
+mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/lib
+cp ./lib/*.py ~/wxgtk_dist/wxGTK/utils/wxPython/lib
+
mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/tests
+cp ./tests/README.txt ~/wxgtk_dist/wxGTK/utils/wxPython/tests
cp ./tests/*.py ~/wxgtk_dist/wxGTK/utils/wxPython/tests
+
+mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/demo
+cp ./tests/README.txt ~/wxgtk_dist/wxGTK/utils/wxPython/demo
+cp ./tests/*.py ~/wxgtk_dist/wxGTK/utils/wxPython/demo
+cp ./tests/*.pyc ~/wxgtk_dist/wxGTK/utils/wxPython/demo
+mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/demo/bitmaps
+cp ./tests/bitmaps/* ~/wxgtk_dist/wxGTK/utils/wxPython/demo/bitmaps
+
mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/tests/bitmaps
cp ./tests/bitmaps/* ~/wxgtk_dist/wxGTK/utils/wxPython/tests/bitmaps
+cd ..
+
+echo wxOLE..
+
+cd wxOLE
+mkdir ~/wxgtk_dist/wxGTK/utils/wxOLE
+mkdir ~/wxgtk_dist/wxGTK/utils/wxOLE/gtk
+cp ./gtk/wxole.* ~/wxgtk_dist/wxGTK/utils/wxOLE/gtk
+mkdir ~/wxgtk_dist/wxGTK/utils/wxOLE/samples
+mkdir ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet
+cp ./samples/servlet/Makefile ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet
+cp ./samples/servlet/*.xpm ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet
+cp ./samples/servlet/*.cpp ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet
+cp ./samples/servlet/*.gnorba ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet
+
cd ../..
+
echo Samples dir..
cd samples
probably have a broken compiler, which includes almost
everything that is called gcc. If there is just any way
for you to use egcs, use egcs. We are sorry, but we cannot
-fix gcc for the moment.
+fix gcc.
* The most simple program
-------------------------
at
http://www.gtk.org
-We also mirror GTK+ 1.2.1 at my ftp site. You'll find information
+We also mirror GTK+ 1.2.1 at my ftp site soon. You'll find information
about downloading at my homepage.
* Additional libraries
- DLD 6.0
- SuSE 6.0
-On IRIX you can also use SGI threads if Posix-Threads
-are not present. The SGI threads will be detected by
-configure automatically.
-
You can enable thread support by running
./configure "--with-threads"
ldconfig
exit
-NB: I included thread support in wxWindows/Gtk, as this
-problem will disappear in the near future when all major
-Linux Variants have moved to glibc 2. Also, the Linux
-Base Standard will include glibc 2 and Posix threads.
-
NB: DO NOT COMPILE WXGTK WITH GCC AND THREADS, SINCE
-ALL PROGRAMS WILL CRASH UPON START-UP. Just always
+ALL PROGRAMS WILL CRASH UPON START-UP! Just always
use egcs and be happy.
* Create your configuration
The following options handle the kind of library you want to build.
- --with-threads Compile with thread support.
+ --with-threads Compile with thread support. Threads
+ support is also required for the
+ socket code to work.
--without-shared Do not create shared libraries.
- --without-optimise Do not optimise the code.
+ --without-optimise Do not optimise the code. Can
+ sometimes be useful for debugging
+ and is required on some architectures
+ such as Sun with gcc 2.8.X which
+ would otherwise produce segvs.
--with-profile Add profiling info to the object
files. Currently broken, I think.
Read more at www.letters.com/dmalloc/
--with-debug_info Add debug info to object files and
- executables.
+ executables for use with debuggers
+ such as gdb (or its many frontends).
--with-debug_flag Define __DEBUG__ and __WXDEBUG__ when
- compiling.
+ compiling. This enable wxWindows' very
+ useful internal debugging tricks (such
+ as automatically reporting illegal calls)
+ to work. Note that program and library
+ must be compiled with the same debug
+ options.
* Feature Options
-------------------
-As I don't yet care for binary size and target mainly at
-producing a shared library, wxWindows's configure system auto-
-matically enables all features, as long as they are already
-implemented. It is currently NOT possible to disable these
-options (in contrast to what configure tells you).
+When producing an executable that is linked statically with wxGTK
+you'll be surprised at its immense size. This can sometimes be
+drastically reduced by removing features from wxWindows that
+are not used in your program. The most relevant such features
+are
+
+ --without-libpng Disables PNG image format code.
+
+ --without-libjpeg Disables JPEG image format code.
+
+ --without-odbc Disables ODBC code.
+
+ --without-wxresources Disables the use of *.wxr type
+ resources.
+
+ --without-threads Disables threads.
+
+ --without-sockets Disables sockets.
+
+ --without-dnd Disables Drag'n'Drop.
+
+ --without-clipboard Disables Clipboard.
+
+ --without-serial Disables object instance serialiasation.
+
+ --without-streams Disables the wxStream classes.
+
+Apart from disabling certain features you can very often "strip"
+the program of its debugging information resulting in a significant
+reduction in size.
* Compiling
-------------
make yourself some coffee, as it will take some time. On an old
386SX possibly week. During compilation, you'll get a few
-warning messages.
+warning messages depending in your compiler.
if you want to be more selective:
- make src will build only the base libraries
+ make will build only the base libraries
make samples will build the samples
- make other will build everything in other
make user will build everything in user
Then you may install the library and it's header files under
This is also the place where all the object-files will go.
(Currently there arent any global binaries).
-If you want to conserve disk space by removing unnecessary
+If you want to save disk space by removing unnecessary
object-files:
- make clean_obj
+ make clean
-will do the work for you.
+in the various directories will do the work for you.
* Creating a new Project
--------------------------
gtk_widget_push_colormap( colormap );
gtk_widget_push_visual( visual );
- m_glWidget = gtk_drawing_area_new();
- gtk_widget_set_events( m_glWidget,
- GDK_EXPOSURE_MASK |
- GDK_POINTER_MOTION_HINT_MASK |
- GDK_POINTER_MOTION_MASK |
- GDK_BUTTON_MOTION_MASK |
- GDK_BUTTON1_MOTION_MASK |
- GDK_BUTTON2_MOTION_MASK |
- GDK_BUTTON3_MOTION_MASK |
- GDK_BUTTON_PRESS_MASK |
- GDK_BUTTON_RELEASE_MASK |
- GDK_KEY_PRESS_MASK |
- GDK_KEY_RELEASE_MASK |
- GDK_ENTER_NOTIFY_MASK |
- GDK_LEAVE_NOTIFY_MASK );
-
- GTK_WIDGET_SET_FLAGS( m_glWidget, GTK_CAN_FOCUS );
+ m_glWidget = gtk_myfixed_new();
gtk_widget_pop_visual();
gtk_widget_pop_colormap();
wxScrolledWindow::Create( parent, id, pos, size, style, name );
+ GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS );
+ GTK_WIDGET_SET_FLAGS( m_glWidget, GTK_CAN_FOCUS );
+
gtk_myfixed_put( GTK_MYFIXED(m_wxwindow), m_glWidget, 0, 0 );
gtk_signal_connect( GTK_OBJECT(m_glWidget), "expose_event",
/* connect to key press and mouse handlers etc. */
ConnectWidget( m_glWidget );
+ /* must be realized for OpenGl output */
+ gtk_widget_realize( m_glWidget );
+
gtk_widget_show( m_glWidget );
m_glContext = new wxGLContext( TRUE, this, palette );
{
gtk_widget_set_usize( m_widget, m_width, m_height );
- gtk_drawing_area_size( GTK_DRAWING_AREA(m_glWidget), m_width, m_height );
+ gtk_widget_set_usize( m_glWidget, m_width, m_height );
GtkAllocation allo;
allo.x = 0;
allo.width = m_width;
allo.height = m_height;
gtk_widget_size_allocate( m_glWidget, &allo );
+
}
}