Implemented flat toolbars

corrected mouse cursor over splitter window
  corrected segvs when setting bg colour in text ctrl
  sliders enlarge when they have labels to avoid pixel junk


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2329 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling 1999-05-03 12:19:16 +00:00
parent 7f3b7908d3
commit 858b5bddf6
9 changed files with 74 additions and 3 deletions

View File

@ -420,9 +420,9 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
#define wxTB_3DBUTTONS 0x8000
#define wxTB_HORIZONTAL 0x0002
#define wxTB_VERTICAL 0x0004
// Flatbar/Coolbar under Win98
// Flatbar/Coolbar under Win98/ GTK 1.2
#define wxTB_FLAT 0x0008
// use native docking
// use native docking under GTK
#define wxTB_DOCKABLE 0x0010
/*

View File

@ -549,7 +549,7 @@ m_text(NULL), m_notebook(NULL)
panel = new wxPanel(m_notebook);
(void)new wxStaticBox( panel, -1, "wxGauge and wxSlider", wxPoint(10,10), wxSize(180,130) );
m_gauge = new wxGauge( panel, -1, 200, wxPoint(18,50), wxSize(155, 30) );
m_slider = new wxSlider( panel, ID_SLIDER, 0, 0, 200, wxPoint(18,90), wxSize(155,-1) );
m_slider = new wxSlider( panel, ID_SLIDER, 0, 0, 200, wxPoint(18,90), wxSize(155,-1), wxSL_LABELS );
(void)new wxStaticBox( panel, -1, "Explanation", wxPoint(200,10), wxSize(290,130) );
#ifdef __WXMOTIF__
// No wrapping text in wxStaticText yet :-(

View File

@ -173,6 +173,9 @@ void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event)
m_dragMode = wxSPLIT_DRAG_NONE;
ReleaseMouse();
#ifdef __WXGTK__
SetCursor(* wxSTANDARD_CURSOR);
#endif
// Erase old tracker
DrawSashTracker(m_oldX, m_oldY);

View File

@ -107,7 +107,30 @@ bool wxSlider::Create(wxWindow *parent, wxWindowID id,
m_widget = gtk_hscale_new( (GtkAdjustment *) NULL );
if (style & wxSL_LABELS)
{
gtk_scale_set_draw_value( GTK_SCALE( m_widget ), TRUE );
/* labels need more space and too small window will
cause junk to appear on the dialog */
if (style & wxSL_VERTICAL)
{
wxSize sz( size );
if (sz.x < 35)
{
sz.x = 35;
SetSize( sz );
}
}
else
{
wxSize sz( size );
if (sz.y < 35)
{
sz.y = 35;
SetSize( sz );
}
}
}
else
gtk_scale_set_draw_value( GTK_SCALE( m_widget ), FALSE );

View File

@ -162,6 +162,9 @@ bool wxToolBar::Create( wxWindow *parent, wxWindowID id,
m_widget = gtk_handle_box_new();
gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_toolbar) );
gtk_widget_show( GTK_WIDGET(m_toolbar) );
if (style & wxTB_FLAT)
gtk_handle_box_set_shadow_type( GTK_HANDLE_BOX(m_widget), GTK_SHADOW_NONE );
}
else
{
@ -169,6 +172,11 @@ bool wxToolBar::Create( wxWindow *parent, wxWindowID id,
}
gtk_toolbar_set_tooltips( GTK_TOOLBAR(m_toolbar), TRUE );
#if (GTK_MINOR_VERSION > 0)
if (style & wxTB_FLAT)
gtk_toolbar_set_button_relief( GTK_TOOLBAR(m_toolbar), GTK_RELIEF_NONE );
#endif
m_fg = new GdkColor;
m_fg->red = 0;

View File

@ -960,6 +960,8 @@ void wxTextCtrl::SetBackgroundColour( const wxColour &colour )
wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") );
wxControl::SetBackgroundColour( colour );
if (!m_widget->window) return;
wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE );
if (sysbg.Red() == colour.Red() &&
@ -974,6 +976,7 @@ void wxTextCtrl::SetBackgroundColour( const wxColour &colour )
if (m_windowStyle & wxTE_MULTILINE)
{
GdkWindow *window = GTK_TEXT(m_text)->text_area;
if (!window) return;
m_backgroundColour.CalcPixel( gdk_window_get_colormap( window ) );
gdk_window_set_background( window, m_backgroundColour.GetColor() );
gdk_window_clear( window );

View File

@ -107,7 +107,30 @@ bool wxSlider::Create(wxWindow *parent, wxWindowID id,
m_widget = gtk_hscale_new( (GtkAdjustment *) NULL );
if (style & wxSL_LABELS)
{
gtk_scale_set_draw_value( GTK_SCALE( m_widget ), TRUE );
/* labels need more space and too small window will
cause junk to appear on the dialog */
if (style & wxSL_VERTICAL)
{
wxSize sz( size );
if (sz.x < 35)
{
sz.x = 35;
SetSize( sz );
}
}
else
{
wxSize sz( size );
if (sz.y < 35)
{
sz.y = 35;
SetSize( sz );
}
}
}
else
gtk_scale_set_draw_value( GTK_SCALE( m_widget ), FALSE );

View File

@ -162,6 +162,9 @@ bool wxToolBar::Create( wxWindow *parent, wxWindowID id,
m_widget = gtk_handle_box_new();
gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_toolbar) );
gtk_widget_show( GTK_WIDGET(m_toolbar) );
if (style & wxTB_FLAT)
gtk_handle_box_set_shadow_type( GTK_HANDLE_BOX(m_widget), GTK_SHADOW_NONE );
}
else
{
@ -169,6 +172,11 @@ bool wxToolBar::Create( wxWindow *parent, wxWindowID id,
}
gtk_toolbar_set_tooltips( GTK_TOOLBAR(m_toolbar), TRUE );
#if (GTK_MINOR_VERSION > 0)
if (style & wxTB_FLAT)
gtk_toolbar_set_button_relief( GTK_TOOLBAR(m_toolbar), GTK_RELIEF_NONE );
#endif
m_fg = new GdkColor;
m_fg->red = 0;

View File

@ -960,6 +960,8 @@ void wxTextCtrl::SetBackgroundColour( const wxColour &colour )
wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") );
wxControl::SetBackgroundColour( colour );
if (!m_widget->window) return;
wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE );
if (sysbg.Red() == colour.Red() &&
@ -974,6 +976,7 @@ void wxTextCtrl::SetBackgroundColour( const wxColour &colour )
if (m_windowStyle & wxTE_MULTILINE)
{
GdkWindow *window = GTK_TEXT(m_text)->text_area;
if (!window) return;
m_backgroundColour.CalcPixel( gdk_window_get_colormap( window ) );
gdk_window_set_background( window, m_backgroundColour.GetColor() );
gdk_window_clear( window );