From ca26177c3093ba7b4e66a4ced6e34041a263411d Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Thu, 27 May 1999 19:54:05 +0000 Subject: [PATCH] Color cubes now get created on 8-bit true-color visual as well. (This exists). Added MakeModal() to wxFrame. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2585 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/gtk/frame.h | 3 +++ include/wx/gtk1/frame.h | 3 +++ samples/image/image.cpp | 11 +++++++++++ src/gtk/app.cpp | 13 +++++++++++-- src/gtk/frame.cpp | 14 ++++++++++++++ src/gtk1/app.cpp | 13 +++++++++++-- src/gtk1/frame.cpp | 14 ++++++++++++++ 7 files changed, 67 insertions(+), 4 deletions(-) diff --git a/include/wx/gtk/frame.h b/include/wx/gtk/frame.h index 13a543e0fe..145f5c6392 100644 --- a/include/wx/gtk/frame.h +++ b/include/wx/gtk/frame.h @@ -83,6 +83,9 @@ public: virtual void SetTitle( const wxString &title ); virtual wxString GetTitle() const { return m_title; } + // make the window modal (all other windows unresponsive) + virtual void MakeModal(bool modal = TRUE); + virtual void SetIcon( const wxIcon &icon ); virtual void Iconize( bool WXUNUSED(iconize)) { } virtual bool IsIconized() const { return FALSE; } diff --git a/include/wx/gtk1/frame.h b/include/wx/gtk1/frame.h index 13a543e0fe..145f5c6392 100644 --- a/include/wx/gtk1/frame.h +++ b/include/wx/gtk1/frame.h @@ -83,6 +83,9 @@ public: virtual void SetTitle( const wxString &title ); virtual wxString GetTitle() const { return m_title; } + // make the window modal (all other windows unresponsive) + virtual void MakeModal(bool modal = TRUE); + virtual void SetIcon( const wxIcon &icon ); virtual void Iconize( bool WXUNUSED(iconize)) { } virtual bool IsIconized() const { return FALSE; } diff --git a/samples/image/image.cpp b/samples/image/image.cpp index c13b9f3d85..36879ba4c8 100644 --- a/samples/image/image.cpp +++ b/samples/image/image.cpp @@ -41,6 +41,7 @@ public: wxBitmap *my_horse_png; wxBitmap *my_horse_jpeg; wxBitmap *my_horse_gif; + wxBitmap *my_horse_bmp; wxBitmap *my_square; wxBitmap *my_anti; @@ -91,6 +92,7 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id, my_horse_png = (wxBitmap*) NULL; my_horse_jpeg = (wxBitmap*) NULL; my_horse_gif = (wxBitmap*) NULL; + my_horse_bmp = (wxBitmap*) NULL; my_square = (wxBitmap*) NULL; my_anti = (wxBitmap*) NULL; @@ -133,6 +135,11 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id, else my_horse_gif = new wxBitmap( image.ConvertToBitmap() ); + if ( !image.LoadFile( dir + wxString("horse.bmp"), wxBITMAP_TYPE_BMP ) ) + wxLogError("Can't load BMP image"); + else + my_horse_bmp = new wxBitmap( image.ConvertToBitmap() ); + image.LoadFile( dir + wxString("test.png"), wxBITMAP_TYPE_PNG ); my_square = new wxBitmap( image.ConvertToBitmap() ); @@ -144,6 +151,7 @@ MyCanvas::~MyCanvas() delete my_horse_png; delete my_horse_jpeg; delete my_horse_gif; + delete my_horse_bmp; delete my_square; delete my_anti; } @@ -171,6 +179,9 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) ) dc.DrawText( "GIF handler", 30, 595 ); if (my_horse_gif && my_horse_gif->Ok()) dc.DrawBitmap( *my_horse_gif, 30, 610 ); + + dc.DrawText( "BMP handler", 30, 815 ); + if (my_horse_bmp && my_horse_bmp->Ok()) dc.DrawBitmap( *my_horse_bmp, 30, 830 ); } void MyCanvas::CreateAntiAliasedBitmap() diff --git a/src/gtk/app.cpp b/src/gtk/app.cpp index 97ef298d00..a6b21a616b 100644 --- a/src/gtk/app.cpp +++ b/src/gtk/app.cpp @@ -343,7 +343,7 @@ bool wxApp::OnInitGui() int index = -1; GdkColor *colors = cmap->colors; - if(colors) + if (colors) { int max = 3 * 65536; @@ -359,7 +359,16 @@ bool wxApp::OnInitGui() } } } - + else + { + /* assume 8-bit true or static colors. this really + exists. */ + GdkVisual* vis = gdk_colormap_get_visual( cmap ); + index = (r >> (5 - vis->red_prec)) << vis->red_shift; + index |= (g >> (5 - vis->green_prec)) << vis->green_shift; + index |= (b >> (5 - vis->blue_prec)) << vis->blue_shift; + } + m_colorCube[ (r*1024) + (g*32) + b ] = index; } } diff --git a/src/gtk/frame.cpp b/src/gtk/frame.cpp index 1f8dcc9d63..d9299edf62 100644 --- a/src/gtk/frame.cpp +++ b/src/gtk/frame.cpp @@ -742,6 +742,20 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height m_resizing = FALSE; } +void wxFrame::MakeModal( bool modal ) +{ + if (modal) + { + gtk_grab_add( m_widget ); + gtk_main(); + gtk_grab_remove( m_widget ); + } + else + { + gtk_main_quit(); + } +} + void wxFrame::OnInternalIdle() { if (!m_sizeSet && GTK_WIDGET_REALIZED(m_wxwindow)) diff --git a/src/gtk1/app.cpp b/src/gtk1/app.cpp index 97ef298d00..a6b21a616b 100644 --- a/src/gtk1/app.cpp +++ b/src/gtk1/app.cpp @@ -343,7 +343,7 @@ bool wxApp::OnInitGui() int index = -1; GdkColor *colors = cmap->colors; - if(colors) + if (colors) { int max = 3 * 65536; @@ -359,7 +359,16 @@ bool wxApp::OnInitGui() } } } - + else + { + /* assume 8-bit true or static colors. this really + exists. */ + GdkVisual* vis = gdk_colormap_get_visual( cmap ); + index = (r >> (5 - vis->red_prec)) << vis->red_shift; + index |= (g >> (5 - vis->green_prec)) << vis->green_shift; + index |= (b >> (5 - vis->blue_prec)) << vis->blue_shift; + } + m_colorCube[ (r*1024) + (g*32) + b ] = index; } } diff --git a/src/gtk1/frame.cpp b/src/gtk1/frame.cpp index 1f8dcc9d63..d9299edf62 100644 --- a/src/gtk1/frame.cpp +++ b/src/gtk1/frame.cpp @@ -742,6 +742,20 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height m_resizing = FALSE; } +void wxFrame::MakeModal( bool modal ) +{ + if (modal) + { + gtk_grab_add( m_widget ); + gtk_main(); + gtk_grab_remove( m_widget ); + } + else + { + gtk_main_quit(); + } +} + void wxFrame::OnInternalIdle() { if (!m_sizeSet && GTK_WIDGET_REALIZED(m_wxwindow)) -- 2.47.2