Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 52408 Details for
Bug 83384
wxWidgets 2.5.4 is out. need to add some USE ??
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
exGTk-2.5.4-radiobox.patch
wxGTK-2.5.4-radiobox.patch (text/plain), 12.80 KB, created by
Giacomo Perale
on 2005-03-01 12:33:38 UTC
(
hide
)
Description:
exGTk-2.5.4-radiobox.patch
Filename:
MIME Type:
Creator:
Giacomo Perale
Created:
2005-03-01 12:33:38 UTC
Size:
12.80 KB
patch
obsolete
>diff -u -r1.95 -r1.99 >--- src/gtk/radiobox.cpp 2005/01/06 12:41:27 1.95 >+++ src/gtk/radiobox.cpp 2005/02/28 22:29:06 1.99 >@@ -2,7 +2,7 @@ > // Name: radiobox.cpp > // Purpose: > // Author: Robert Roebling >-// Id: $Id: radiobox.cpp,v 1.95 2005/01/06 12:41:27 ABX Exp $ >+// Id: $Id: radiobox.cpp,v 1.99 2005/02/28 22:29:06 RR Exp $ > // Copyright: (c) 1998 Robert Roebling > // Licence: wxWindows licence > ///////////////////////////////////////////////////////////////////////////// >@@ -200,8 +200,29 @@ > // assert here but just use the correct value for it > m_majorDim = majorDim == 0 ? n : majorDim; > >+ int num_per_major = (n - 1) / m_majorDim +1; >+ >+ int num_of_cols = 0; >+ int num_of_rows = 0; >+ if (HasFlag(wxRA_SPECIFY_COLS)) >+ { >+ num_of_cols = m_majorDim; >+ num_of_rows = num_per_major; >+ } >+ else >+ { >+ num_of_cols = num_per_major; >+ num_of_rows = m_majorDim; >+ } >+ > GtkRadioButton *m_radio = (GtkRadioButton*) NULL; > >+ GtkWidget *table = gtk_table_new( num_of_rows, num_of_cols, FALSE ); >+ gtk_table_set_col_spacings( GTK_TABLE(table), 1 ); >+ gtk_table_set_row_spacings( GTK_TABLE(table), 1 ); >+ gtk_widget_show( table ); >+ gtk_container_add( GTK_CONTAINER(m_widget), table ); >+ > wxString label; > GSList *radio_button_group = (GSList *) NULL; > for (int i = 0; i < n; i++) >@@ -217,12 +238,32 @@ > } > > m_radio = GTK_RADIO_BUTTON( gtk_radio_button_new_with_label( radio_button_group, wxGTK_CONV( label ) ) ); >+ gtk_widget_show( GTK_WIDGET(m_radio) ); > > gtk_signal_connect( GTK_OBJECT(m_radio), "key_press_event", > GTK_SIGNAL_FUNC(gtk_radiobox_keypress_callback), (gpointer)this ); > > m_boxes.Append( (wxObject*) m_radio ); > >+ if (HasFlag(wxRA_SPECIFY_COLS)) >+ { >+ int left = i%num_of_cols; >+ int right = (i%num_of_cols) + 1; >+ int top = i/num_of_cols; >+ int bottom = (i/num_of_cols)+1; >+ gtk_table_attach( GTK_TABLE(table), GTK_WIDGET(m_radio), left, right, top, bottom, >+ GTK_FILL, GTK_FILL, 1, 1 ); >+ } >+ else >+ { >+ int left = i/num_of_rows; >+ int right = (i/num_of_rows) + 1; >+ int top = i%num_of_rows; >+ int bottom = (i%num_of_rows)+1; >+ gtk_table_attach( GTK_TABLE(table), GTK_WIDGET(m_radio), left, right, top, bottom, >+ GTK_FILL, GTK_FILL, 1, 1 ); >+ } >+ > ConnectWidget( GTK_WIDGET(m_radio) ); > > if (!i) gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(m_radio), TRUE ); >@@ -235,25 +276,14 @@ > > gtk_signal_connect( GTK_OBJECT(m_radio), "focus_out_event", > GTK_SIGNAL_FUNC(gtk_radiobutton_focus_out), (gpointer)this ); >- >- gtk_pizza_put( GTK_PIZZA(m_parent->m_wxwindow), >- GTK_WIDGET(m_radio), >- m_x+10, m_y+10+(i*24), 10, 10 ); > } > > m_parent->DoAddChild( this ); > >- bool wasShown = IsShown(); >- if ( wasShown ) >- Hide(); // prevent PostCreation() from showing us >- > SetLabel( title ); > > PostCreation(size); > >- if ( wasShown ) >- Show(); >- > return true; > } > >@@ -268,145 +298,6 @@ > } > } > >-void wxRadioBox::DoSetSize( int x, int y, int width, int height, int sizeFlags ) >-{ >- wxWindow::DoSetSize( x, y, width, height, sizeFlags ); >- >- LayoutItems(false); >-} >- >-wxSize wxRadioBox::DoGetBestSize() const >-{ >- wxSize size = LayoutItems(true); >- >- GtkRequisition req; >- req.width = 2; >- req.height = 2; >- (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(m_widget) )->size_request ) (m_widget, &req ); >- if (req.width > size.x) >- size.x = req.width; >- >- CacheBestSize(size); >- return size; >-} >- >-wxSize wxRadioBox::LayoutItems(bool justCalc) const >-{ >- wxSize res( 0, 0 ); >- >- // avoid dividing by 0 below >- wxCHECK_MSG( m_majorDim, res, wxT("dimension of radiobox should not be 0!") ); >- >- int num_per_major = (m_boxes.GetCount() - 1) / m_majorDim +1; >- >- int x = 7; >- int y = 15; >- >- int num_of_cols = 0; >- int num_of_rows = 0; >- if (HasFlag(wxRA_SPECIFY_COLS)) >- { >- num_of_cols = m_majorDim; >- num_of_rows = num_per_major; >- } >- else >- { >- num_of_cols = num_per_major; >- num_of_rows = m_majorDim; >- } >- >- int lineheight = GetCharHeight()+2; >- >- if ( HasFlag(wxRA_SPECIFY_COLS) || >- (HasFlag(wxRA_SPECIFY_ROWS) && (num_of_cols > 1)) ) >- { >- for (int j = 0; j < num_of_cols; j++) >- { >- y = 3; >- y += lineheight; >- >- int max_len = 0; >- wxList::compatibility_iterator node = m_boxes.Item( j*num_of_rows ); >- for (int i1 = 0; i1< num_of_rows; i1++) >- { >- GtkWidget *button = GTK_WIDGET( node->GetData() ); >- >- GtkRequisition req; >- req.width = 2; >- req.height = 2; >- (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(button) )->size_request ) >- (button, &req ); >- >- if (req.width > max_len) max_len = req.width; >- >- if ( !justCalc ) >- gtk_pizza_move( GTK_PIZZA(m_parent->m_wxwindow), button, m_x+x, m_y+y ); >- y += req.height; >- >- node = node->GetNext(); >- if (!node) break; >- } >- >- // we don't know the max_len before >- >- node = m_boxes.Item( j*num_of_rows ); >- for (int i2 = 0; i2< num_of_rows; i2++) >- { >- GtkWidget *button = GTK_WIDGET( node->GetData() ); >- >- if ( !justCalc ) >- gtk_pizza_resize( GTK_PIZZA(m_parent->m_wxwindow), button, max_len, lineheight ); >- >- node = node->GetNext(); >- if (!node) break; >- } >- >- if (y > res.y) res.y = y; >- >- x += max_len + 2; >- } >- >- res.x = x+4; >- res.y += 4; >- } >- else >- { >- int max = 0; >- >- wxList::compatibility_iterator node = m_boxes.GetFirst(); >- while (node) >- { >- GtkWidget *button = GTK_WIDGET( node->GetData() ); >- >- GtkRequisition req; >- req.width = 2; >- req.height = 2; >- (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(button) )->size_request ) >- (button, &req ); >- >- if (req.width > max) max = req.width; >- >- node = node->GetNext(); >- } >- >- node = m_boxes.GetFirst(); >- while (node) >- { >- GtkWidget *button = GTK_WIDGET( node->GetData() ); >- >- if ( !justCalc ) >- gtk_pizza_set_size( GTK_PIZZA(m_parent->m_wxwindow), button, m_x+x, m_y+y, max, lineheight ); >- x += max; >- >- node = node->GetNext(); >- } >- res.x = x+4; >- res.y = 40; >- } >- >- return res; >-} >- > bool wxRadioBox::Show( bool show ) > { > wxCHECK_MSG( m_widget != NULL, false, wxT("invalid radiobox") ); >@@ -435,7 +326,7 @@ > > int wxRadioBox::FindString( const wxString &find ) const > { >- wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid radiobox") ); >+ wxCHECK_MSG( m_widget != NULL, wxNOT_FOUND, wxT("invalid radiobox") ); > > int count = 0; > >@@ -456,7 +347,7 @@ > node = node->GetNext(); > } > >- return -1; >+ return wxNOT_FOUND; > } > > void wxRadioBox::SetFocus() >@@ -497,7 +388,7 @@ > > int wxRadioBox::GetSelection(void) const > { >- wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid radiobox") ); >+ wxCHECK_MSG( m_widget != NULL, wxNOT_FOUND, wxT("invalid radiobox") ); > > int count = 0; > >@@ -512,16 +403,16 @@ > > wxFAIL_MSG( wxT("wxRadioBox none selected") ); > >- return -1; >+ return wxNOT_FOUND; > } > > wxString wxRadioBox::GetString( int n ) const > { >- wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid radiobox") ); >+ wxCHECK_MSG( m_widget != NULL, wxEmptyString, wxT("invalid radiobox") ); > > wxList::compatibility_iterator node = m_boxes.Item( n ); > >- wxCHECK_MSG( node, wxT(""), wxT("radiobox wrong index") ); >+ wxCHECK_MSG( node, wxEmptyString, wxT("radiobox wrong index") ); > > GtkLabel *label = GTK_LABEL( BUTTON_CHILD(node->GetData()) ); > >@@ -575,28 +466,30 @@ > return true; > } > >-void wxRadioBox::Enable( int item, bool enable ) >+bool wxRadioBox::Enable( int item, bool enable ) > { >- wxCHECK_RET( m_widget != NULL, wxT("invalid radiobox") ); >+ wxCHECK_MSG( m_widget != NULL, false, wxT("invalid radiobox") ); > > wxList::compatibility_iterator node = m_boxes.Item( item ); > >- wxCHECK_RET( node, wxT("radiobox wrong index") ); >+ wxCHECK_MSG( node, false, wxT("radiobox wrong index") ); > > GtkButton *button = GTK_BUTTON( node->GetData() ); > GtkLabel *label = GTK_LABEL( BUTTON_CHILD(button) ); > > gtk_widget_set_sensitive( GTK_WIDGET(button), enable ); > gtk_widget_set_sensitive( GTK_WIDGET(label), enable ); >+ >+ return true; > } > >-void wxRadioBox::Show( int item, bool show ) >+bool wxRadioBox::Show( int item, bool show ) > { >- wxCHECK_RET( m_widget != NULL, wxT("invalid radiobox") ); >+ wxCHECK_MSG( m_widget != NULL, false, wxT("invalid radiobox") ); > > wxList::compatibility_iterator node = m_boxes.Item( item ); > >- wxCHECK_RET( node, wxT("radiobox wrong index") ); >+ wxCHECK_MSG( node, false, wxT("radiobox wrong index") ); > > GtkWidget *button = GTK_WIDGET( node->GetData() ); > >@@ -604,11 +497,13 @@ > gtk_widget_show( button ); > else > gtk_widget_hide( button ); >+ >+ return true; > } > > wxString wxRadioBox::GetStringSelection() const > { >- wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid radiobox") ); >+ wxCHECK_MSG( m_widget != NULL, wxEmptyString, wxT("invalid radiobox") ); > > wxList::compatibility_iterator node = m_boxes.GetFirst(); > while (node) >@@ -629,7 +524,7 @@ > } > > wxFAIL_MSG( wxT("wxRadioBox none selected") ); >- return wxT(""); >+ return wxEmptyString; > } > > bool wxRadioBox::SetStringSelection( const wxString &s ) >@@ -637,7 +532,7 @@ > wxCHECK_MSG( m_widget != NULL, false, wxT("invalid radiobox") ); > > int res = FindString( s ); >- if (res == -1) return false; >+ if (res == wxNOT_FOUND) return false; > SetSelection( res ); > > return true; > >--- include/wx/radiobox.h 2005/02/13 19:01:13 1.25 >+++ include/wx/radiobox.h 2005/02/23 16:24:14 1.27 >@@ -4,7 +4,7 @@ > // Author: Vadim Zeitlin > // Modified by: > // Created: 10.09.00 >-// RCS-ID: $Id: radiobox.h,v 1.25 2005/02/13 19:01:13 VZ Exp $ >+// RCS-ID: $Id: radiobox.h,v 1.27 2005/02/23 16:24:14 ABX Exp $ > // Copyright: (c) wxWidgets team > // Licence: wxWindows licence > /////////////////////////////////////////////////////////////////////////////// >@@ -32,8 +32,8 @@ > { > public: > // change the individual radio button state >- virtual void Enable(int n, bool enable = true) = 0; >- virtual void Show(int n, bool show = true) = 0; >+ virtual bool Enable(int n, bool enable = true) = 0; >+ virtual bool Show(int n, bool show = true) = 0; > > // layout parameters > virtual int GetColumnCount() const = 0; > >--- include/wx/gtk/radiobox.h 2005/01/06 12:41:24 1.38 >+++ include/wx/gtk/radiobox.h 2005/02/28 20:31:31 1.41 >@@ -2,7 +2,7 @@ > // Name: wx/gtk/radiobox.h > // Purpose: > // Author: Robert Roebling >-// Id: $Id: radiobox.h,v 1.38 2005/01/06 12:41:24 ABX Exp $ >+// Id: $Id: radiobox.h,v 1.41 2005/02/28 20:31:31 RR Exp $ > // Copyright: (c) 1998 Robert Roebling > // Licence: wxWindows licence > ///////////////////////////////////////////////////////////////////////////// >@@ -87,8 +87,8 @@ > wxString GetString( int n ) const; > void SetString( int n, const wxString& label ); > >- void Show( int item, bool show ); >- void Enable( int item, bool enable ); >+ virtual bool Show( int item, bool show = true ); >+ virtual bool Enable( int item, bool enable = true ); > > virtual wxString GetStringSelection() const; > virtual bool SetStringSelection( const wxString& s ); >@@ -123,11 +123,6 @@ > void ApplyToolTip( GtkTooltips *tips, const wxChar *tip ); > #endif // wxUSE_TOOLTIPS > >- // reposition the radio buttons correctly unless justCalc == true and >- // return the total size needed to accommodate them >- wxSize LayoutItems(bool justCalc) const; >- >- virtual void DoSetSize( int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO ); > virtual void OnInternalIdle(); > > bool m_hasFocus, >@@ -136,12 +131,13 @@ > wxList m_boxes; > > protected: >- // implement some base class methods >- virtual wxSize DoGetBestSize() const; >- > // common part of all ctors > void Init(); > >+ // check that the index is valid >+ // FIXME: remove once GTK will derive from wxRadioBoxBase >+ inline bool IsValid(int n) const { return n >= 0 && n < GetCount(); } >+ > private: > DECLARE_DYNAMIC_CLASS(wxRadioBox) > }; >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 83384
:
52373
| 52408